And another question : is there a way to force 3Dvision to work in windowed mode ? We have to go to a kind of full screen mode with DCS, that make display of jauges on second screen impossible.
And another question : is there a way to force 3Dvision to work in windowed mode ? We have to go to a kind of full screen mode with DCS, that make display of jauges on second screen impossible.
I'm having troubles with exitting the fullscreen after the recent update. It happens when I change the resolution in game to smaller, then back to 1080p and then press alt+enter. The game still occupies the whole screen but the focus is on the explorer's window below.
I'm having troubles with exitting the fullscreen after the recent update. It happens when I change the resolution in game to smaller, then back to 1080p and then press alt+enter. The game still occupies the whole screen but the focus is on the explorer's window below.
[center][color="orange"]3DMigoto 1.2.29 is out:[/color]
[url]https://github.com/bo3b/3Dmigoto/releases/tag/1.2.29[/url][/center]
This is a bug fix release:
- Fixes crash when compiling a custom shader that produces warnings when logging is disabled.
- The SetWindowPos hook introduced in 1.2.28 must now be explicitly requested with full_screen=2
- The StereoParams texture is now updated once per frame on Present (previously it was updated in ClearRenderTarget, which in some games like The Witness could cause it be become significantly out of date, and in other games would needlessly update multiple times per frame).
@Oomek can you please test to see if this resolves your full screen issue?
This is a bug fix release:
- Fixes crash when compiling a custom shader that produces warnings when logging is disabled.
- The SetWindowPos hook introduced in 1.2.28 must now be explicitly requested with full_screen=2
- The StereoParams texture is now updated once per frame on Present (previously it was updated in ClearRenderTarget, which in some games like The Witness could cause it be become significantly out of date, and in other games would needlessly update multiple times per frame).
@Oomek can you please test to see if this resolves your full screen issue?
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
@DarkStarSword sorry mate. I had fullscreen set to 0, that's why I wasn't able to minimize the game window. If it's not supposed to be like this bear in mind it's still like that in 1.2.29
I've also tried your new copy_desc method of adding a new render targets.
Unfortunately the custom shader which supposed to clear the buffer is adding values to it. I believe it's something to do with the OM blending state of the [s]resource[/s] render target I'm copying the description from.
I hope I understood your example correctly.
[code]
[Present]
run = CustomShaderClearBuffer
[ResourceHeadlights]
[ShaderOverride-4977ae594eb27c06]
Hash = 4977ae594eb27c06
ResourceHeadlights = copy_desc o0
o1 = reference ResourceHeadlights
post o1 = null
[ResourceBackupo0]
[CustomShaderClearBuffer]
vs = Shaders\clear_rt.vs.hlsl
ps = Shaders\clear_rt.ps.hlsl
ResourceBackupo0 = ref o0
o0 = ResourceHeadlights
Draw = 6, 0
post o0 = ResourceBackupo0
[/code]
@DarkStarSword sorry mate. I had fullscreen set to 0, that's why I wasn't able to minimize the game window. If it's not supposed to be like this bear in mind it's still like that in 1.2.29
I've also tried your new copy_desc method of adding a new render targets.
Unfortunately the custom shader which supposed to clear the buffer is adding values to it. I believe it's something to do with the OM blending state of the resource render target I'm copying the description from.
I hope I understood your example correctly.
I modified the post [url=https://forums.geforce.com/default/topic/685657/3d-vision/3dmigoto-now-open-source-/post/4801019/#4801019]810[/url] because the faulty shader was not uploaded in the post.
Is it something to do in order to make it work ?
I found another bug in the decompiler:
[code]// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position 0 xyzw 0 POS float
// TEXCOORD 0 xyz 1 NONE float xyz
// TEXCOORD 1 xy 2 NONE float xy
// TEXCOORD 2 zw 2 NONE float zw
// TEXCOORD 3 xyz 3 NONE float xyz
// TEXCOORD 4 xyz 4 NONE float xyz
// TEXCOORD 5 xyzw 5 NONE float xy w
[/code]
[code]dcl_input_ps linear centroid v1.xyz
dcl_input_ps linear centroid v2.xy
dcl_input_ps linear centroid v2.zw
dcl_input_ps linear centroid v3.xyz
dcl_input_ps linear centroid v4.xyz
dcl_input_ps linear centroid v5.xyw
[/code]
[code]void main(
float4 v0 : SV_Position0,
linear centroid float4 v1 : TEXCOORD0,
linear centroid float2 v2 : TEXCOORD1,
linear centroid float2 w2 : TEXCOORD2,
linear centroid float4 v3 : TEXCOORD3,
linear centroid float4 v4 : TEXCOORD4,
linear centroid float4 v5 : TEXCOORD5,
out float4 o0 : SV_Target0)
[/code]
Then in the code I got the following throwing an error:
[code]
r0.xyzw = r0.xyxy * float4(0.400000006,0.400000006,0.5,0.5) + v2.xyzw;
[/code]
It's just one shader so I fixed it. There is no rush with that.
dcl_input_ps linear centroid v1.xyz
dcl_input_ps linear centroid v2.xy
dcl_input_ps linear centroid v2.zw
dcl_input_ps linear centroid v3.xyz
dcl_input_ps linear centroid v4.xyz
dcl_input_ps linear centroid v5.xyw
void main(
float4 v0 : SV_Position0,
linear centroid float4 v1 : TEXCOORD0,
linear centroid float2 v2 : TEXCOORD1,
linear centroid float2 w2 : TEXCOORD2,
linear centroid float4 v3 : TEXCOORD3,
linear centroid float4 v4 : TEXCOORD4,
linear centroid float4 v5 : TEXCOORD5,
out float4 o0 : SV_Target0)
Then in the code I got the following throwing an error:
Catching up on the posts in this thread...
[quote="Oomek"]Would it be possible to add some switch which would allow 3DM to load precompiled shaders even if all the hlsl files were deleted?[/quote]Possible, yes - but someone needs to add the code to do it, and I'm a bit reluctant to touch the code responsible for replacing shaders without refactoring it to make it easier to understand and more manageable first as I will surely break something and not know.
[quote="helifax"]I was wondering if there a way to copy the Depth Buffer from the current Frame without specifying a HASH from which shader to copy?[/quote]I've been thinking about this possibility as well. I've got a few ideas for how it might work, but I need to implement them and try them out in a few games to see how well they work in practice. There is also the old ZRepair support from Chiri's original code, which can match a depth buffer by hash and inject it, and it kind of worked last time I tried, but had some fairly major problems with incorrect bind flags and using a resource simultaneously as an input and output.
[quote="lefuneste"]Hi DarkStarSword,
I found a new problems with DCS
3DMigoto dump a shader than can not be reloaded. Here are the related messages in d3d11_log.txt[/quote]
That's a known limitation of the decompiler - you need to add the structure definition (copied from the assembly version) and work out the right item in the structure that the instruction was accessing (which in this case will be whatever the first item is since it's accessing byte offset 0). There's more info here:
[url]https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4739720/#4739720[/url]
[quote]By the way, it seems also that some shaders can not be dumped. Here is the log when I try to dump it:
[code]*** Overlay call CoInitializeEx failed: -2147417850
StereoScreenShot on Mark: D:\jeux\DCS World 2 OpenAlpha\bin\ShaderFixes\1ebdb3925859d5f6-vs.jps, result: 0
creating HLSL representation.
******* Exception caught while decompiling shader ******
error while decompiling.
> FAILED to copy Marked shader to ShaderFixes[/code][/quote]Can you dump out the assembly of that shader (export_shaders=1) and post that?
Oomek said:Would it be possible to add some switch which would allow 3DM to load precompiled shaders even if all the hlsl files were deleted?
Possible, yes - but someone needs to add the code to do it, and I'm a bit reluctant to touch the code responsible for replacing shaders without refactoring it to make it easier to understand and more manageable first as I will surely break something and not know.
helifax said:I was wondering if there a way to copy the Depth Buffer from the current Frame without specifying a HASH from which shader to copy?
I've been thinking about this possibility as well. I've got a few ideas for how it might work, but I need to implement them and try them out in a few games to see how well they work in practice. There is also the old ZRepair support from Chiri's original code, which can match a depth buffer by hash and inject it, and it kind of worked last time I tried, but had some fairly major problems with incorrect bind flags and using a resource simultaneously as an input and output.
lefuneste said:Hi DarkStarSword,
I found a new problems with DCS
3DMigoto dump a shader than can not be reloaded. Here are the related messages in d3d11_log.txt
That's a known limitation of the decompiler - you need to add the structure definition (copied from the assembly version) and work out the right item in the structure that the instruction was accessing (which in this case will be whatever the first item is since it's accessing byte offset 0). There's more info here:
[quote="lefuneste"]And another question : is there a way to force 3Dvision to work in windowed mode ? We have to go to a kind of full screen mode with DCS, that make display of jauges on second screen impossible.[/quote]Not possible (unless you want to use Discover mode) - that's a driver limitation that 3D will only work in exclusive full screen mode for DX11 games.
[quote="Oomek"]@DarkStarSword sorry mate. I had fullscreen set to 0, that's why I wasn't able to minimize the game window. If it's not supposed to be like this bear in mind it's still like that in 1.2.29[/quote]Thanks for clearing that up. I was surprised that fullscreen=0 is having an effect, but I checked the 3DMigoto nvapi project and see it has additional code which might be causing that.
[quote]I've also tried your new copy_desc method of adding a new render targets.
Unfortunately the custom shader which supposed to clear the buffer is adding values to it. I believe it's something to do with the OM blending state of the [s]resource[/s] render target I'm copying the description from.[/quote]Very likely. It looks like I'll need to add support for overriding the OM blend state sooner rather than later. I was thinking about initially just adding this to the CustomShader sections since they will often need it and don't have to worry about merging it with the game's existing blend state for multiple render targets. Adding it to the generic command list can come later.
[quote="Oomek"]I found another bug in the decompiler:[/quote]The bug isn't in the definition, it's in the referencing of whatever variable was overloaded in TEXCOORD2. This is a known issue, but is a rare enough edge case that we have been hand fixing it whenever it comes up.
lefuneste said:And another question : is there a way to force 3Dvision to work in windowed mode ? We have to go to a kind of full screen mode with DCS, that make display of jauges on second screen impossible.
Not possible (unless you want to use Discover mode) - that's a driver limitation that 3D will only work in exclusive full screen mode for DX11 games.
Oomek said:@DarkStarSword sorry mate. I had fullscreen set to 0, that's why I wasn't able to minimize the game window. If it's not supposed to be like this bear in mind it's still like that in 1.2.29
Thanks for clearing that up. I was surprised that fullscreen=0 is having an effect, but I checked the 3DMigoto nvapi project and see it has additional code which might be causing that.
I've also tried your new copy_desc method of adding a new render targets.
Unfortunately the custom shader which supposed to clear the buffer is adding values to it. I believe it's something to do with the OM blending state of the resource render target I'm copying the description from.
Very likely. It looks like I'll need to add support for overriding the OM blend state sooner rather than later. I was thinking about initially just adding this to the CustomShader sections since they will often need it and don't have to worry about merging it with the game's existing blend state for multiple render targets. Adding it to the generic command list can come later.
Oomek said:I found another bug in the decompiler:
The bug isn't in the definition, it's in the referencing of whatever variable was overloaded in TEXCOORD2. This is a known issue, but is a rare enough edge case that we have been hand fixing it whenever it comes up.
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
[quote="DarkStarSword"]Thanks for clearing that up. I was surprised that fullscreen=0 is having an effect, but I checked the 3DMigoto nvapi project and see it has additional code which might be causing that.
[/quote]
Currently I'm using Migoto with nvapi.dll renamed. The problem still exists even with full_screen commented out.
I'm uploading a video showing how to reproduce that borderless and "always on top" game window.
What works I think is:
1. launch the game in fullscreen
2. alt+enter to window
3. maximize window
4. alt+enter to fullscreen
5. temporarily change the game resolution.
at this moment alt+enter and alt+tab will fail.
[url]https://youtu.be/yhQV-nSoZ9s[/url]
DarkStarSword said:Thanks for clearing that up. I was surprised that fullscreen=0 is having an effect, but I checked the 3DMigoto nvapi project and see it has additional code which might be causing that.
Currently I'm using Migoto with nvapi.dll renamed. The problem still exists even with full_screen commented out.
I'm uploading a video showing how to reproduce that borderless and "always on top" game window.
What works I think is:
1. launch the game in fullscreen
2. alt+enter to window
3. maximize window
4. alt+enter to fullscreen
5. temporarily change the game resolution.
[quote="DarkStarSword"]Can you dump out the assembly of that shader (export_shaders=1) and post that?
[/quote]
I set export_shaders=1 and had the same messages (and still no shader dumped)
[code]*** Overlay call CoInitializeEx failed: -2147417850
StereoScreenShot on Mark: D:\jeux\DCS World 2 OpenAlpha\bin\ShaderFixes\1ebdb3925859d5f6-vs.jps, result: 0
creating HLSL representation.
******* Exception caught while decompiling shader ******
error while decompiling.
> FAILED to copy Marked shader to ShaderFixes[/code]
If it can helps, DCS World is freely downloadable : http://www.digitalcombatsimulator.com/en/downloads/world/alpha/
[quote="DarkStarSword"]export_shaders dumps it into ShaderCache as assembly when it is first loaded, so you should be able to find it there.[/quote]
Here is a shader fot which I only have a jps generated and he error message above: http://www.mediafire.com/view/78upt944b447gzp/faulty_1ebdb3925859d5f6-vs.txt
EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64
https://github.com/bo3b/3Dmigoto/releases/tag/1.2.29
This is a bug fix release:
- Fixes crash when compiling a custom shader that produces warnings when logging is disabled.
- The SetWindowPos hook introduced in 1.2.28 must now be explicitly requested with full_screen=2
- The StereoParams texture is now updated once per frame on Present (previously it was updated in ClearRenderTarget, which in some games like The Witness could cause it be become significantly out of date, and in other games would needlessly update multiple times per frame).
@Oomek can you please test to see if this resolves your full screen issue?
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD
Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword
I've also tried your new copy_desc method of adding a new render targets.
Unfortunately the custom shader which supposed to clear the buffer is adding values to it. I believe it's something to do with the OM blending state of the
resourcerender target I'm copying the description from.I hope I understood your example correctly.
EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64
Is it something to do in order to make it work ?
Then in the code I got the following throwing an error:
It's just one shader so I fixed it. There is no rush with that.
EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64
Possible, yes - but someone needs to add the code to do it, and I'm a bit reluctant to touch the code responsible for replacing shaders without refactoring it to make it easier to understand and more manageable first as I will surely break something and not know.
I've been thinking about this possibility as well. I've got a few ideas for how it might work, but I need to implement them and try them out in a few games to see how well they work in practice. There is also the old ZRepair support from Chiri's original code, which can match a depth buffer by hash and inject it, and it kind of worked last time I tried, but had some fairly major problems with incorrect bind flags and using a resource simultaneously as an input and output.
That's a known limitation of the decompiler - you need to add the structure definition (copied from the assembly version) and work out the right item in the structure that the instruction was accessing (which in this case will be whatever the first item is since it's accessing byte offset 0). There's more info here:
https://forums.geforce.com/default/topic/766890/3d-vision/bo3bs-school-for-shaderhackers/post/4739720/#4739720
Can you dump out the assembly of that shader (export_shaders=1) and post that?
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD
Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword
Thanks for clearing that up. I was surprised that fullscreen=0 is having an effect, but I checked the 3DMigoto nvapi project and see it has additional code which might be causing that.
Very likely. It looks like I'll need to add support for overriding the OM blend state sooner rather than later. I was thinking about initially just adding this to the CustomShader sections since they will often need it and don't have to worry about merging it with the game's existing blend state for multiple render targets. Adding it to the generic command list can come later.
The bug isn't in the definition, it's in the referencing of whatever variable was overloaded in TEXCOORD2. This is a known issue, but is a rare enough edge case that we have been hand fixing it whenever it comes up.
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD
Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword
Here's the pixel shader in question:
Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35
with:
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD
Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword
Dual boot Win 7 x64 & Win 10 (1809) | Geforce Drivers 417.35
Currently I'm using Migoto with nvapi.dll renamed. The problem still exists even with full_screen commented out.
I'm uploading a video showing how to reproduce that borderless and "always on top" game window.
What works I think is:
1. launch the game in fullscreen
2. alt+enter to window
3. maximize window
4. alt+enter to fullscreen
5. temporarily change the game resolution.
at this moment alt+enter and alt+tab will fail.
https://youtu.be/yhQV-nSoZ9s
EVGA GeForce GTX 980 SC
Core i5 2500K
MSI Z77A-G45
8GB DDR3
Windows 10 x64
I set export_shaders=1 and had the same messages (and still no shader dumped)
If it can helps, DCS World is freely downloadable : http://www.digitalcombatsimulator.com/en/downloads/world/alpha/
2x Geforce GTX 980 in SLI provided by NVIDIA, i7 6700K 4GHz CPU, Asus 27" VG278HE 144Hz 3D Monitor, BenQ W1070 3D Projector, 120" Elite Screens YardMaster 2, 32GB Corsair DDR4 3200MHz RAM, Samsung 850 EVO 500G SSD, 4x750GB HDD in RAID5, Gigabyte Z170X-Gaming 7 Motherboard, Corsair Obsidian 750D Airflow Edition Case, Corsair RM850i PSU, HTC Vive, Win 10 64bit
Alienware M17x R4 w/ built in 3D, Intel i7 3740QM, GTX 680m 2GB, 16GB DDR3 1600MHz RAM, Win7 64bit, 1TB SSD, 1TB HDD, 750GB HDD
Pre-release 3D fixes, shadertool.py and other goodies: http://github.com/DarkStarSword/3d-fixes
Support me on Patreon: https://www.patreon.com/DarkStarSword or PayPal: https://www.paypal.me/DarkStarSword
Here is a shader fot which I only have a jps generated and he error message above: http://www.mediafire.com/view/78upt944b447gzp/faulty_1ebdb3925859d5f6-vs.txt