Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.
Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.
CoreX9 Custom watercooling (valkswagen polo radiator)
I7-8700k@stock
TitanX pascal with shitty stock cooler
Win7/10
Video: Passive 3D fullhd 3D@60hz/channel Denon x1200w /Hc5 x 2 Geobox501->eeColorBoxes->polarizers/omega filttersCustom made silverscreen
Ocupation: Enterprenior.Painting/surfacing/constructions
Interests/skills:
3D gaming,3D movies, 3D printing,Drums, Bass and guitar.
Suomi - FINLAND - perkele
[quote="Metaloholic"]Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.[/quote]
Helifax can comment on OpenGL games and why that double render is not very simple there.
For DX11 though, it actually is this simple, just having the engine render twice, with duplicated calls, slightly offset. That's basically what the 3D Vision Automatic mode in the driver actually does. And it works really well for DX9 games that mostly use forward rendering.
However... the problem is not the normal calls, it is the approach used by every developer nowadays, which is deferred rendering. Deferred rendering puts some work back into the PixelShader, which breaks that simple duplicated call approach, because it doesn't really follow the normal VS->PS model. They have gone outside the model in order to get better performance for lots of lights.
That's why we almost always have problems with lights and then shadows. They are done by deferred rendering. What we do with our hacks is to fix up that deferred render so that it also gets fixed to the right spot. Developer could do this a lot easier than we can, but they don't actually understand anything about stereo rendering, so they don't.
Next in line has been this new fad of tiled lighting, which is a way to cheat it even further, and do a bunch of work that used to be done on the CPU on the GPU. They break up the full scene into tiles, and use the ComputeShader to decide the lighting effects for that tile. The further away they are, the less they do. This is a way to get even more lights into a scene, but still keep it performing. These are really hard for us to fix, because it's basically random what they do in the CS, doesn't follow any of the normal models.
One last curiousity I've run across recently is that for VR, the trend is to move heavily back to forward rendering for performance reasons. This is why The Lab looks so good, and most Unity games. They use either Valve's forward renderer, or Unity's forward renderer.
Games built with Unreal 4 have looked pretty fuzzy and bad in VR- because they still use deferred rendering. The very latest version has shipped with a new forward renderer, and Oculus has built one that people can use. All very much beta for those pieces.
Metaloholic said:Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.
Helifax can comment on OpenGL games and why that double render is not very simple there.
For DX11 though, it actually is this simple, just having the engine render twice, with duplicated calls, slightly offset. That's basically what the 3D Vision Automatic mode in the driver actually does. And it works really well for DX9 games that mostly use forward rendering.
However... the problem is not the normal calls, it is the approach used by every developer nowadays, which is deferred rendering. Deferred rendering puts some work back into the PixelShader, which breaks that simple duplicated call approach, because it doesn't really follow the normal VS->PS model. They have gone outside the model in order to get better performance for lots of lights.
That's why we almost always have problems with lights and then shadows. They are done by deferred rendering. What we do with our hacks is to fix up that deferred render so that it also gets fixed to the right spot. Developer could do this a lot easier than we can, but they don't actually understand anything about stereo rendering, so they don't.
Next in line has been this new fad of tiled lighting, which is a way to cheat it even further, and do a bunch of work that used to be done on the CPU on the GPU. They break up the full scene into tiles, and use the ComputeShader to decide the lighting effects for that tile. The further away they are, the less they do. This is a way to get even more lights into a scene, but still keep it performing. These are really hard for us to fix, because it's basically random what they do in the CS, doesn't follow any of the normal models.
One last curiousity I've run across recently is that for VR, the trend is to move heavily back to forward rendering for performance reasons. This is why The Lab looks so good, and most Unity games. They use either Valve's forward renderer, or Unity's forward renderer.
Games built with Unreal 4 have looked pretty fuzzy and bad in VR- because they still use deferred rendering. The very latest version has shipped with a new forward renderer, and Oculus has built one that people can use. All very much beta for those pieces.
Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607 Latest 3Dmigoto Release Bo3b's School for ShaderHackers
I believe is an incompatibility between the Frostbite 3 Engine and 3D Vision Automatic Driver:
For example,
Having any form of VSYNC enabled (in-game or NvPanel) will make the game to render certain elements 2D. (We have seen this over and over in DA:Inquisition, SW:Battlefront) After numerous tests, I discovered is related to VSYNC. Leaving VSYNC OFF will remove this wrong behaviour and everything will render 3D every single time (Some screen tearing might happen. Also, you can enable VSYNC after the MAP is loaded and no problems, but having VSYNC enabled on Loading Screens causes this issue).
This shows that while VSYNC is ON the 3D Vision driver FAILS to stereorize certain elements/shaders.
The whole Compute Shader Path is behaving exactly like. Is working just in one eye (Right eye, which is also the last one to be rendered before a Present.) I believe the game renders the whole "lighting system - CS" as a Post Process and only applies it after a Present on top of the last frame.
(This kinda sounds like the Render Target is Mono ?!?!)
I tried numerous things to make it least render in the LEFT eye and not the Right EYE. (Opposite to what is doing.) Initially I thought is a CLAMP of some sort, and since we multiply the position with -1 for the left eye I thought that maybe because we could potentially get a negative number, the CS shader is discarding this. NOPE, this wasn't the case.
Fixing the Tiles for the Lights wasn't hard and I've done it. This works perfectly fine for the shaders that render in both eyes, but most of them just render once, in one eye (the other eye completely lacks all the Lighting coming from the CS). I've played with all the profiles and tried all the things that I could think of for the NV profile... Still same result.
So far only the Frostbite 3 games seem to have this incompatibility with 3D Vision Automatic driver. Since the games look so beautiful, I expect the engine cheats a bit. Probably this is why 3D Vision Automatic fails to stereorize all shaders...
I believe is an incompatibility between the Frostbite 3 Engine and 3D Vision Automatic Driver:
For example,
Having any form of VSYNC enabled (in-game or NvPanel) will make the game to render certain elements 2D. (We have seen this over and over in DA:Inquisition, SW:Battlefront) After numerous tests, I discovered is related to VSYNC. Leaving VSYNC OFF will remove this wrong behaviour and everything will render 3D every single time (Some screen tearing might happen. Also, you can enable VSYNC after the MAP is loaded and no problems, but having VSYNC enabled on Loading Screens causes this issue).
This shows that while VSYNC is ON the 3D Vision driver FAILS to stereorize certain elements/shaders.
The whole Compute Shader Path is behaving exactly like. Is working just in one eye (Right eye, which is also the last one to be rendered before a Present.) I believe the game renders the whole "lighting system - CS" as a Post Process and only applies it after a Present on top of the last frame.
(This kinda sounds like the Render Target is Mono ?!?!)
I tried numerous things to make it least render in the LEFT eye and not the Right EYE. (Opposite to what is doing.) Initially I thought is a CLAMP of some sort, and since we multiply the position with -1 for the left eye I thought that maybe because we could potentially get a negative number, the CS shader is discarding this. NOPE, this wasn't the case.
Fixing the Tiles for the Lights wasn't hard and I've done it. This works perfectly fine for the shaders that render in both eyes, but most of them just render once, in one eye (the other eye completely lacks all the Lighting coming from the CS). I've played with all the profiles and tried all the things that I could think of for the NV profile... Still same result.
So far only the Frostbite 3 games seem to have this incompatibility with 3D Vision Automatic driver. Since the games look so beautiful, I expect the engine cheats a bit. Probably this is why 3D Vision Automatic fails to stereorize all shaders...
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
I actually found this paper where the Lead Architect talks about the CS and how they implemented it in Frostbite 2.0 engine. While it must be different in Frostbite 3, I expect much of the things are pretty the same or based on this:
http://s09.idav.ucdavis.edu/talks/04-JAndersson-ParallelFrostbite-Siggraph09.pdf
Also according to this papaper:
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/GDC11_DX11inBF3.pdf
It seems they had issues with 3D Vision Automatic in BF3 (Frostbite 2.0) and they decided to manually do their 2xRendering rather than relying on the driver;) Probably they had more or less had the same issues;)
It seems they had issues with 3D Vision Automatic in BF3 (Frostbite 2.0) and they decided to manually do their 2xRendering rather than relying on the driver;) Probably they had more or less had the same issues;)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
Interesting PDF...
Now i see that the "clipping" in the left part of the lights is actually they cull implementation...now that i read the PDF i don't know if is fixable withtout breaking the light.
Yesterday i do a couple of test using 1 CS in Mirror Edge and found something interesting....i need to test another CS. I will post my results in the "Bo3b's School..." thread. There is a litle chance that we can do something in the shader.
Interesting PDF...
Now i see that the "clipping" in the left part of the lights is actually they cull implementation...now that i read the PDF i don't know if is fixable withtout breaking the light.
Yesterday i do a couple of test using 1 CS in Mirror Edge and found something interesting....i need to test another CS. I will post my results in the "Bo3b's School..." thread. There is a litle chance that we can do something in the shader.
[quote="bo3b"][quote="Metaloholic"]Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.[/quote]
Helifax can comment on OpenGL games and why that double render is not very simple there.
For DX11 though, it actually is this simple, just having the engine render twice, with duplicated calls, slightly offset. That's basically what the 3D Vision Automatic mode in the driver actually does. And it works really well for DX9 games that mostly use forward rendering.
However... the problem is not the normal calls, it is the approach used by every developer nowadays, which is deferred rendering. Deferred rendering puts some work back into the PixelShader, which breaks that simple duplicated call approach, because it doesn't really follow the normal VS->PS model. They have gone outside the model in order to get better performance for lots of lights.
That's why we almost always have problems with lights and then shadows. They are done by deferred rendering. What we do with our hacks is to fix up that deferred render so that it also gets fixed to the right spot. Developer could do this a lot easier than we can, but they don't actually understand anything about stereo rendering, so they don't.
Next in line has been this new fad of tiled lighting, which is a way to cheat it even further, and do a bunch of work that used to be done on the CPU on the GPU. They break up the full scene into tiles, and use the ComputeShader to decide the lighting effects for that tile. The further away they are, the less they do. This is a way to get even more lights into a scene, but still keep it performing. These are really hard for us to fix, because it's basically random what they do in the CS, doesn't follow any of the normal models.
One last curiousity I've run across recently is that for VR, the trend is to move heavily back to forward rendering for performance reasons. This is why The Lab looks so good, and most Unity games. They use either Valve's forward renderer, or Unity's forward renderer.
Games built with Unreal 4 have looked pretty fuzzy and bad in VR- because they still use deferred rendering. The very latest version has shipped with a new forward renderer, and Oculus has built one that people can use. All very much beta for those pieces.[/quote]
Man you know your stuff, even i understood all of it :D
I now understand better why is the fixin so time consuming, Thanks bo3b
talking about VR ...i might see tomorrow pimax4k headset as my friend bought one, if anyone is interested i can say few words if i get to try it out as a 3d vision FullHD only user , as i have no experiences in any VR device.
allthough i kind of can quess what to expect.
Metaloholic said:Great work Helifax, im shure it will be a great fix. The outsides mainly matter anyways.
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.
Helifax can comment on OpenGL games and why that double render is not very simple there.
For DX11 though, it actually is this simple, just having the engine render twice, with duplicated calls, slightly offset. That's basically what the 3D Vision Automatic mode in the driver actually does. And it works really well for DX9 games that mostly use forward rendering.
However... the problem is not the normal calls, it is the approach used by every developer nowadays, which is deferred rendering. Deferred rendering puts some work back into the PixelShader, which breaks that simple duplicated call approach, because it doesn't really follow the normal VS->PS model. They have gone outside the model in order to get better performance for lots of lights.
That's why we almost always have problems with lights and then shadows. They are done by deferred rendering. What we do with our hacks is to fix up that deferred render so that it also gets fixed to the right spot. Developer could do this a lot easier than we can, but they don't actually understand anything about stereo rendering, so they don't.
Next in line has been this new fad of tiled lighting, which is a way to cheat it even further, and do a bunch of work that used to be done on the CPU on the GPU. They break up the full scene into tiles, and use the ComputeShader to decide the lighting effects for that tile. The further away they are, the less they do. This is a way to get even more lights into a scene, but still keep it performing. These are really hard for us to fix, because it's basically random what they do in the CS, doesn't follow any of the normal models.
One last curiousity I've run across recently is that for VR, the trend is to move heavily back to forward rendering for performance reasons. This is why The Lab looks so good, and most Unity games. They use either Valve's forward renderer, or Unity's forward renderer.
Games built with Unreal 4 have looked pretty fuzzy and bad in VR- because they still use deferred rendering. The very latest version has shipped with a new forward renderer, and Oculus has built one that people can use. All very much beta for those pieces.
Man you know your stuff, even i understood all of it :D
I now understand better why is the fixin so time consuming, Thanks bo3b
talking about VR ...i might see tomorrow pimax4k headset as my friend bought one, if anyone is interested i can say few words if i get to try it out as a 3d vision FullHD only user , as i have no experiences in any VR device.
allthough i kind of can quess what to expect.
CoreX9 Custom watercooling (valkswagen polo radiator)
I7-8700k@stock
TitanX pascal with shitty stock cooler
Win7/10
Video: Passive 3D fullhd 3D@60hz/channel Denon x1200w /Hc5 x 2 Geobox501->eeColorBoxes->polarizers/omega filttersCustom made silverscreen
Ocupation: Enterprenior.Painting/surfacing/constructions
Interests/skills:
3D gaming,3D movies, 3D printing,Drums, Bass and guitar.
Suomi - FINLAND - perkele
Highly interested in your Pimax4K-experience, Metaloholic!
I ordered my Pimax last Saturday and then (after reading some very off-turning reviews) I canceled my order 2 days later. Still I am very interested in your findings!
Highly interested in your Pimax4K-experience, Metaloholic!
I ordered my Pimax last Saturday and then (after reading some very off-turning reviews) I canceled my order 2 days later. Still I am very interested in your findings!
Quite a bit of people reporting DX errors and it seems to be only realted to nvidia so the drivers might have some issues with this game
https://forums.battlefield.com/en-us/discussion/38131/directx-function-error-nvidia
there are some commands available in this game that seems like 3d related not sure if they do anything tho
RenderDevice.StereoConvergenceScale
RenderDevice.StereoSeparationScale
RenderDevice.StereoSoldierZoomConvergenceScale
[quote="tehace"]Quite a bit of people reporting DX errors and it seems to be only realted to nvidia so the drivers might have some issues with this game
https://forums.battlefield.com/en-us/discussion/38131/directx-function-error-nvidia
there are some commands available in this game that seems like 3d related not sure if they do anything tho
RenderDevice.StereoConvergenceScale
RenderDevice.StereoSeparationScale
RenderDevice.StereoSoldierZoomConvergenceScale
[/quote]
Same error as every other Crashbite errr Frostbite engine;) (DA:I, SW:Battlefront, etc) nothing new and there is no fix;) Their engine is pushed to the limit of stability.
Same error as every other Crashbite errr Frostbite engine;) (DA:I, SW:Battlefront, etc) nothing new and there is no fix;) Their engine is pushed to the limit of stability.
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
[quote="DHR"]Interesting PDF...
Now i see that the "clipping" in the left part of the lights is actually they cull implementation...now that i read the PDF i don't know if is fixable withtout breaking the light.
Yesterday i do a couple of test using 1 CS in Mirror Edge and found something interesting....i need to test another CS. I will post my results in the "Bo3b's School..." thread. There is a litle chance that we can do something in the shader. [/quote]
Interesting;) What did you find out exactly?:)
DHR said:Interesting PDF...
Now i see that the "clipping" in the left part of the lights is actually they cull implementation...now that i read the PDF i don't know if is fixable withtout breaking the light.
Yesterday i do a couple of test using 1 CS in Mirror Edge and found something interesting....i need to test another CS. I will post my results in the "Bo3b's School..." thread. There is a litle chance that we can do something in the shader.
Interesting;) What did you find out exactly?:)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
I'm getting pumped for this game in 3D.
Thanks a lot for putting in the hours Helifax.
It's a shame about the async compute woes but i'm sure they'll be a workaround at some point.
Hopefully DHR has found a 'happy accident' that allows fixers to fix these annoying things.
Good work! :D
I'm getting pumped for this game in 3D.
Thanks a lot for putting in the hours Helifax.
It's a shame about the async compute woes but i'm sure they'll be a workaround at some point.
Hopefully DHR has found a 'happy accident' that allows fixers to fix these annoying things.
@helifax
I do the following test: Take 1 CS (Mirror Edge Catalyst) and used the HLSL (hand fixed) and ASM version. The shader controls 2 source lights.
1) 2D behavior without 3Dmigoto/Normal behavior: Both source lights time to time pass over each others (One light movement pass over the other light). Both lights works OK.
2) Using the shader in ASM: Both source lights are fixed with the code, BUT when pass over each others one light is only displayed in one eye. The one eye issue!!
3) Using the shader in HLSL (hand fixed): Both source lights are fixed with the code, BUT when pass over each others one light (first one) is disabled. When the second lights goes, the first come back.
4) 3D with no 3Dmigoto: a) First lights source: Left eye there is no light and Right eye have the same behavior than point 3) / b) Second lights source: Left eye have the same behavior than point 3) and Right eye there is no light
The strange thing is when apply the fixing code (point 2 or 3)....both source lights are fixed independant, so the fixing works for both source lights.....so the point 4 make this even more strange.
The other thing is this may indicate that also something works different with the ASM shader, because in the point 4 the behavior in 3D is that disappear in both eyes, not only in one eye.
Maybe the issue with the one eye lights is because in the same CS, there are 2 or more source lights that are displayed at the same time all the time in the screen (maybe one source lights is off when you move the camera at certain angles, so time to time you see correctly)....so according with my test, you will always see (in ASM) a one eye light...and no lights in HLSL.
In the worst case, we can fix the CS lights using HSLS....but when they pass over each other one of them disappear (or when are displayed at the same time)....is better that the one eye issue.
I need to test another CS in HLSL... the other shader have only 1 source lights....so this one should work all the time, because there is no other source light in the same shader that make them pass over each others and disappear.
I also start to playing with the IF statements in the shader (all of them), maybe one of them make the other lights disappear....but nothing. Also make some tweak in different location in the shader and nothing.
I smell a driver/profile thing (maybe we need another flag instead 0x00004000 or 0x00008000 for this Compute shader)....in theory...both source lights should be 2D, displayed in both eyes....but there are working ok (displayed) in different eyes (First lights source ok in right eye and second source light Ok in left eye)
I do the following test: Take 1 CS (Mirror Edge Catalyst) and used the HLSL (hand fixed) and ASM version. The shader controls 2 source lights.
1) 2D behavior without 3Dmigoto/Normal behavior: Both source lights time to time pass over each others (One light movement pass over the other light). Both lights works OK.
2) Using the shader in ASM: Both source lights are fixed with the code, BUT when pass over each others one light is only displayed in one eye. The one eye issue!!
3) Using the shader in HLSL (hand fixed): Both source lights are fixed with the code, BUT when pass over each others one light (first one) is disabled. When the second lights goes, the first come back.
4) 3D with no 3Dmigoto: a) First lights source: Left eye there is no light and Right eye have the same behavior than point 3) / b) Second lights source: Left eye have the same behavior than point 3) and Right eye there is no light
The strange thing is when apply the fixing code (point 2 or 3)....both source lights are fixed independant, so the fixing works for both source lights.....so the point 4 make this even more strange.
The other thing is this may indicate that also something works different with the ASM shader, because in the point 4 the behavior in 3D is that disappear in both eyes, not only in one eye.
Maybe the issue with the one eye lights is because in the same CS, there are 2 or more source lights that are displayed at the same time all the time in the screen (maybe one source lights is off when you move the camera at certain angles, so time to time you see correctly)....so according with my test, you will always see (in ASM) a one eye light...and no lights in HLSL.
In the worst case, we can fix the CS lights using HSLS....but when they pass over each other one of them disappear (or when are displayed at the same time)....is better that the one eye issue.
I need to test another CS in HLSL... the other shader have only 1 source lights....so this one should work all the time, because there is no other source light in the same shader that make them pass over each others and disappear.
I also start to playing with the IF statements in the shader (all of them), maybe one of them make the other lights disappear....but nothing. Also make some tweak in different location in the shader and nothing.
I smell a driver/profile thing (maybe we need another flag instead 0x00004000 or 0x00008000 for this Compute shader)....in theory...both source lights should be 2D, displayed in both eyes....but there are working ok (displayed) in different eyes (First lights source ok in right eye and second source light Ok in left eye)
Interesting but the behavior between HLSL and ASM sounds like compiler issues.
By default, without 3DMigoto all the lights render in One eye. Using the ASM shaders the behavior is not changed, which means is OK.
Is the wip that you sent me a while ago, showing point 3) ?
I literally tried all the profiles in the driver that have a DX10 flag and no one works. So, is either a driver issue (less likely as only Frostbite 3 engine shows this) or a driver problem.
Sadly, I don't think there is anything we can do:( (We could render sequential frames and all this goes away but, well we have sync issues there, so I think we need to disable CS in these games :( Which was the original "fix" I found out more than 2 years ago :(( )
Interesting but the behavior between HLSL and ASM sounds like compiler issues.
By default, without 3DMigoto all the lights render in One eye. Using the ASM shaders the behavior is not changed, which means is OK.
Is the wip that you sent me a while ago, showing point 3) ?
I literally tried all the profiles in the driver that have a DX10 flag and no one works. So, is either a driver issue (less likely as only Frostbite 3 engine shows this) or a driver problem.
Sadly, I don't think there is anything we can do:( (We could render sequential frames and all this goes away but, well we have sync issues there, so I think we need to disable CS in these games :( Which was the original "fix" I found out more than 2 years ago :(( )
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
[quote="helifax"]By default, without 3DMigoto all the lights render in One eye. Using the ASM shaders the behavior is not changed, which means is OK.[/quote]
Yes, but depending on the source light in the same CS....render in one different eye.
[quote="helifax"]Interesting but the behavior between HLSL and ASM sounds like compiler issues.[/quote]
Maybe...i don't discard that.....but in my test in Point 4 (3D with no 3Dmigito installed) i have the same behavior than Point 3 (HLSL), not Point 2 (ASM)....at least in Mirror Edge.
The WIP i send you have the ASM CS fixed (Point 2), not HLSL.
I suppose this Engine don't have the option to use normal lights instead of using CS? in the case of Mirror Edge a lot of lights will be off....very sad.
helifax said:By default, without 3DMigoto all the lights render in One eye. Using the ASM shaders the behavior is not changed, which means is OK.
Yes, but depending on the source light in the same CS....render in one different eye.
helifax said:Interesting but the behavior between HLSL and ASM sounds like compiler issues.
Maybe...i don't discard that.....but in my test in Point 4 (3D with no 3Dmigito installed) i have the same behavior than Point 3 (HLSL), not Point 2 (ASM)....at least in Mirror Edge.
The WIP i send you have the ASM CS fixed (Point 2), not HLSL.
I suppose this Engine don't have the option to use normal lights instead of using CS? in the case of Mirror Edge a lot of lights will be off....very sad.
Nope:( Sadly it doesn't have that option:(( Is either CS or nothing:((
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
Can you explain to an average Joe why is it not possible just to tell the engine render twice, both at a Little different view point?
Allthough I have a feel it can't be that Simple as then there where absolutely no reason for the devs not to include 3D game option in their game releases.
CoreX9 Custom watercooling (valkswagen polo radiator)
I7-8700k@stock
TitanX pascal with shitty stock cooler
Win7/10
Video: Passive 3D fullhd 3D@60hz/channel Denon x1200w /Hc5 x 2 Geobox501->eeColorBoxes->polarizers/omega filttersCustom made silverscreen
Ocupation: Enterprenior.Painting/surfacing/constructions
Interests/skills:
3D gaming,3D movies, 3D printing,Drums, Bass and guitar.
Suomi - FINLAND - perkele
Helifax can comment on OpenGL games and why that double render is not very simple there.
For DX11 though, it actually is this simple, just having the engine render twice, with duplicated calls, slightly offset. That's basically what the 3D Vision Automatic mode in the driver actually does. And it works really well for DX9 games that mostly use forward rendering.
However... the problem is not the normal calls, it is the approach used by every developer nowadays, which is deferred rendering. Deferred rendering puts some work back into the PixelShader, which breaks that simple duplicated call approach, because it doesn't really follow the normal VS->PS model. They have gone outside the model in order to get better performance for lots of lights.
That's why we almost always have problems with lights and then shadows. They are done by deferred rendering. What we do with our hacks is to fix up that deferred render so that it also gets fixed to the right spot. Developer could do this a lot easier than we can, but they don't actually understand anything about stereo rendering, so they don't.
Next in line has been this new fad of tiled lighting, which is a way to cheat it even further, and do a bunch of work that used to be done on the CPU on the GPU. They break up the full scene into tiles, and use the ComputeShader to decide the lighting effects for that tile. The further away they are, the less they do. This is a way to get even more lights into a scene, but still keep it performing. These are really hard for us to fix, because it's basically random what they do in the CS, doesn't follow any of the normal models.
One last curiousity I've run across recently is that for VR, the trend is to move heavily back to forward rendering for performance reasons. This is why The Lab looks so good, and most Unity games. They use either Valve's forward renderer, or Unity's forward renderer.
Games built with Unreal 4 have looked pretty fuzzy and bad in VR- because they still use deferred rendering. The very latest version has shipped with a new forward renderer, and Oculus has built one that people can use. All very much beta for those pieces.
Acer H5360 (1280x720@120Hz) - ASUS VG248QE with GSync mod - 3D Vision 1&2 - Driver 372.54
GTX 970 - i5-4670K@4.2GHz - 12GB RAM - Win7x64+evilKB2670838 - 4 Disk X25 RAID
SAGER NP9870-S - GTX 980 - i7-6700K - Win10 Pro 1607
Latest 3Dmigoto Release
Bo3b's School for ShaderHackers
For example,
Having any form of VSYNC enabled (in-game or NvPanel) will make the game to render certain elements 2D. (We have seen this over and over in DA:Inquisition, SW:Battlefront) After numerous tests, I discovered is related to VSYNC. Leaving VSYNC OFF will remove this wrong behaviour and everything will render 3D every single time (Some screen tearing might happen. Also, you can enable VSYNC after the MAP is loaded and no problems, but having VSYNC enabled on Loading Screens causes this issue).
This shows that while VSYNC is ON the 3D Vision driver FAILS to stereorize certain elements/shaders.
The whole Compute Shader Path is behaving exactly like. Is working just in one eye (Right eye, which is also the last one to be rendered before a Present.) I believe the game renders the whole "lighting system - CS" as a Post Process and only applies it after a Present on top of the last frame.
(This kinda sounds like the Render Target is Mono ?!?!)
I tried numerous things to make it least render in the LEFT eye and not the Right EYE. (Opposite to what is doing.) Initially I thought is a CLAMP of some sort, and since we multiply the position with -1 for the left eye I thought that maybe because we could potentially get a negative number, the CS shader is discarding this. NOPE, this wasn't the case.
Fixing the Tiles for the Lights wasn't hard and I've done it. This works perfectly fine for the shaders that render in both eyes, but most of them just render once, in one eye (the other eye completely lacks all the Lighting coming from the CS). I've played with all the profiles and tried all the things that I could think of for the NV profile... Still same result.
So far only the Frostbite 3 games seem to have this incompatibility with 3D Vision Automatic driver. Since the games look so beautiful, I expect the engine cheats a bit. Probably this is why 3D Vision Automatic fails to stereorize all shaders...
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
http://s09.idav.ucdavis.edu/talks/04-JAndersson-ParallelFrostbite-Siggraph09.pdf
Also according to this papaper:
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/GDC11_DX11inBF3.pdf
It seems they had issues with 3D Vision Automatic in BF3 (Frostbite 2.0) and they decided to manually do their 2xRendering rather than relying on the driver;) Probably they had more or less had the same issues;)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Now i see that the "clipping" in the left part of the lights is actually they cull implementation...now that i read the PDF i don't know if is fixable withtout breaking the light.
Yesterday i do a couple of test using 1 CS in Mirror Edge and found something interesting....i need to test another CS. I will post my results in the "Bo3b's School..." thread. There is a litle chance that we can do something in the shader.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
Man you know your stuff, even i understood all of it :D
I now understand better why is the fixin so time consuming, Thanks bo3b
talking about VR ...i might see tomorrow pimax4k headset as my friend bought one, if anyone is interested i can say few words if i get to try it out as a 3d vision FullHD only user , as i have no experiences in any VR device.
allthough i kind of can quess what to expect.
CoreX9 Custom watercooling (valkswagen polo radiator)
I7-8700k@stock
TitanX pascal with shitty stock cooler
Win7/10
Video: Passive 3D fullhd 3D@60hz/channel Denon x1200w /Hc5 x 2 Geobox501->eeColorBoxes->polarizers/omega filttersCustom made silverscreen
Ocupation: Enterprenior.Painting/surfacing/constructions
Interests/skills:
3D gaming,3D movies, 3D printing,Drums, Bass and guitar.
Suomi - FINLAND - perkele
I ordered my Pimax last Saturday and then (after reading some very off-turning reviews) I canceled my order 2 days later. Still I am very interested in your findings!
https://forums.battlefield.com/en-us/discussion/38131/directx-function-error-nvidia
there are some commands available in this game that seems like 3d related not sure if they do anything tho
RenderDevice.StereoConvergenceScale
RenderDevice.StereoSeparationScale
RenderDevice.StereoSoldierZoomConvergenceScale
Acer H5360 / BenQ XL2420T + 3D Vision 2 Kit - EVGA GTX 980TI 6GB - i7-3930K@4.0GHz - DX79SI- 16GB RAM@2133 - Win10x64 Home - HTC VIVE
Same error as every other Crashbite errr Frostbite engine;) (DA:I, SW:Battlefront, etc) nothing new and there is no fix;) Their engine is pushed to the limit of stability.
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Interesting;) What did you find out exactly?:)
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Thanks a lot for putting in the hours Helifax.
It's a shame about the async compute woes but i'm sure they'll be a workaround at some point.
Hopefully DHR has found a 'happy accident' that allows fixers to fix these annoying things.
Good work! :D
I do the following test: Take 1 CS (Mirror Edge Catalyst) and used the HLSL (hand fixed) and ASM version. The shader controls 2 source lights.
1) 2D behavior without 3Dmigoto/Normal behavior: Both source lights time to time pass over each others (One light movement pass over the other light). Both lights works OK.
2) Using the shader in ASM: Both source lights are fixed with the code, BUT when pass over each others one light is only displayed in one eye. The one eye issue!!
3) Using the shader in HLSL (hand fixed): Both source lights are fixed with the code, BUT when pass over each others one light (first one) is disabled. When the second lights goes, the first come back.
4) 3D with no 3Dmigoto: a) First lights source: Left eye there is no light and Right eye have the same behavior than point 3) / b) Second lights source: Left eye have the same behavior than point 3) and Right eye there is no light
The strange thing is when apply the fixing code (point 2 or 3)....both source lights are fixed independant, so the fixing works for both source lights.....so the point 4 make this even more strange.
The other thing is this may indicate that also something works different with the ASM shader, because in the point 4 the behavior in 3D is that disappear in both eyes, not only in one eye.
Maybe the issue with the one eye lights is because in the same CS, there are 2 or more source lights that are displayed at the same time all the time in the screen (maybe one source lights is off when you move the camera at certain angles, so time to time you see correctly)....so according with my test, you will always see (in ASM) a one eye light...and no lights in HLSL.
In the worst case, we can fix the CS lights using HSLS....but when they pass over each other one of them disappear (or when are displayed at the same time)....is better that the one eye issue.
I need to test another CS in HLSL... the other shader have only 1 source lights....so this one should work all the time, because there is no other source light in the same shader that make them pass over each others and disappear.
I also start to playing with the IF statements in the shader (all of them), maybe one of them make the other lights disappear....but nothing. Also make some tweak in different location in the shader and nothing.
I smell a driver/profile thing (maybe we need another flag instead 0x00004000 or 0x00008000 for this Compute shader)....in theory...both source lights should be 2D, displayed in both eyes....but there are working ok (displayed) in different eyes (First lights source ok in right eye and second source light Ok in left eye)
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
By default, without 3DMigoto all the lights render in One eye. Using the ASM shaders the behavior is not changed, which means is OK.
Is the wip that you sent me a while ago, showing point 3) ?
I literally tried all the profiles in the driver that have a DX10 flag and no one works. So, is either a driver issue (less likely as only Frostbite 3 engine shows this) or a driver problem.
Sadly, I don't think there is anything we can do:( (We could render sequential frames and all this goes away but, well we have sync issues there, so I think we need to disable CS in these games :( Which was the original "fix" I found out more than 2 years ago :(( )
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)
Yes, but depending on the source light in the same CS....render in one different eye.
Maybe...i don't discard that.....but in my test in Point 4 (3D with no 3Dmigito installed) i have the same behavior than Point 3 (HLSL), not Point 2 (ASM)....at least in Mirror Edge.
The WIP i send you have the ASM CS fixed (Point 2), not HLSL.
I suppose this Engine don't have the option to use normal lights instead of using CS? in the case of Mirror Edge a lot of lights will be off....very sad.
MY WEB
Helix Mod - Making 3D Better
My 3D Screenshot Gallery
Like my fixes? you can donate to Paypal: dhr.donation@gmail.com
1x Palit RTX 2080Ti Pro Gaming OC(watercooled and overclocked to hell)
3x 3D Vision Ready Asus VG278HE monitors (5760x1080).
Intel i9 9900K (overclocked to 5.3 and watercooled ofc).
Asus Maximus XI Hero Mobo.
16 GB Team Group T-Force Dark Pro DDR4 @ 3600.
Lots of Disks:
- Raid 0 - 256GB Sandisk Extreme SSD.
- Raid 0 - WD Black - 2TB.
- SanDisk SSD PLUS 480 GB.
- Intel 760p 256GB M.2 PCIe NVMe SSD.
Creative Sound Blaster Z.
Windows 10 x64 Pro.
etc
My website with my fixes and OpenGL to 3D Vision wrapper:
http://3dsurroundgaming.com
(If you like some of the stuff that I've done and want to donate something, you can do it with PayPal at tavyhome@gmail.com)