-
Notifications
You must be signed in to change notification settings - Fork 906
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discoloration/washed out colors - nVidia #90
Comments
Please attach log files, it seems that some of the shaders aren't working (or at least not doing the right thing). Valley renders correctly on RADV. |
With staging-vulkan looks ok for me (with opt hacks too). BTW you don't need to have full wine-staging installed but only |
@pchome What is "staging-vulkan"? Wine-vulkan https://github.com/roderickc/wine-vulkan is not really "staging" if that is what you mean? Wine-vulkan is "vulkan-loader" patched ontop of wine-3.2, and if modifying wine-dev = staging, then i understand what you mean. I just mention this so there is no missunderstanding between wine-staging with staging-dev's implementation of vulkan api vs. wine-vulkan-3.2 tho. |
|
@pchome Oki :) So, in principle not that really changed vs. using wine-vulkan. Also tested this with wine-staging-2.21, and there was no change. (Did not think it would be either, afaik its just a loader for the linux vulkan api, and not a "driver" in itself). I could ofc be totally wrong, and the problem lies with my linux vulkan api's tho. Gonna do some searching to see if i can find a native vulkan test that also have a windows vulkan demo. nVidia have some, but they do not run too well under wine. @doitsujin Attaching logs from superposition and valley, aswell as screenshots comparing wine-dx11 vs wine-dxvk. The wine-dx11 of superposition is severely bugged i guess due to some missing functions or something, but valley runs well. |
Who knows.
vs
|
@pchome Well.. i dont know. Still not working for me. What libvulkan1 libraries are you using on your linux distro? and what distro for that matter? :) |
I have run the "ThreadedRenderingVK" fish-demo from nvidia, and the colors seem fine. I also ran vkQuake for windows in wine (using Vulkan), and the colors i guess seem oki, but the game is from the ages, so there is not really any fancy effects to view. The problem i find is that there is not really that many pre-compiled binaries for Linux to test when it comes to Vulkan stuff... They all requires a random number of different compilers and libraries.. and other versions of whatever, so i go stir crazy just trying to compile some crap demo. Since noone else seem to have any problems with DXVK and the colors, it's probably something i do wrong when i compile or something.. i dunno. Thinking of taking a couple of years break, so this thing perhaps gets in some distro's repository for me to test :) |
Gentoo
|
Using wine-vulkan-3.2 i seem to only get washed-out colors with dxvk. Same with wine-staging-2.21. I think i will have to conclude with me doing something wrong when compiling dxvk, so ill fiddle around with it a bit more. Tips are welcome :) |
@SveSop , i have the same issue here with superposition. using the same driver and a gtx 970. will check with valley |
Has not really much to do with it when viewing it in gpu caps viewer, cos thats from the driver. I have @pingubot Hmm.. interesting. I had problems installing the 387.34 driver that @pchome is using cos of my 4.15 kernel.. and i believe some retpoline patches the kernel source has that does not work too well when compiling with DKMS even on 4.4 current kernel for Ubuntu. I guess Gentoo dont have binary drivers, so is the driver is compiled from nVidia source downloaded from nVidia.com? |
Yes, and patched w/ 4.15-rc1-384.98.patch.gz |
Ill maybe have a peek at the patches if its possible to use this on the Ubuntu 387.34 DKMS source.. cos if not, i wont fiddle with the nVidia source drivers as this usually tends to go tits up if not done right under Ubuntu :) There is a slight discrepency with kernel 4.15 and not using gcc-7.3 for the "wanted" retpoline gcc functions when compiling binary drivers. So far no gcc-7.3 available at the Toolchain-test PPA, and no backport for gcc-8 for Ubuntu. |
Oh, and if possible @pchome could you post a side-by-side comparison picture of a scene in Vally between wine-devel-3.2 w/dx11 and DXVK w/vulkan? (Put up DXVK hud too if you can) |
The only thing - save from installing Gentoo - i have not tested is that staging-vulkan dll.o loader compiled you have mentioned. Could you maybe post a screenshot of the "desk" in Superposition just for comparison? |
@pchome |
Unless ofc the 9xx model is "vulkan bugged" when it comes to drivers? @pingubot also run a 970 if i remember correct... |
yes, i also have a970. I also tried downgrading the drivers to 384,111, but the issue persists. In addition to the wrong colours, i have the issue that the benchmark is heavily stuttering (the shown fps do not reflect that). |
@pingubot I think that fps-stutter is some sort of wine problem, cos that happens with wine if you run opengl too. It is not like that in the "Game" mode tho, so not sure what's going on there. @doitsujin I tested one more thing in my search for this problem.. and that was that i bought "The Talos Principle" on steam. Talos Principle is obviously another graphics engine than Unigine tho.. And from what i have seen so far, Superposition uses "Unigine 2", and Heaven/Valley uses "Unigine 1".. something like that. The discoloration also seems far worse with Superposition and "Unigine 2" engine. Screenshots attached: Vulkan_wine |
If you actually look at the log files, Superposition is not even supposed to work - it requires Stream Output, which isn't implemented yet. As for Valley, it fails to compile one particular pipeline, which is probably responsible for parts of the lighting (which is probably caused by another bug in the shader compiler):
There is no "washed out colors" problem specifically, even though the symptoms might suggest there is. |
Agree. Would it perhaps be better to call it "texture reflection" problem? |
@pchome Do you see any change if you use 390.25 with your GTX 750? |
@doitsujin Can you give me a pointer to the shader that fails to compile. I'll take a look here to see what's causing it to fail. Thanks. |
@pdaniell-nv |
Here are the shaders bound to the pipeline when compiling fails. |
@pdaniell-nv |
@pchome Thanks for the update. So the 970 vs 750 issue doesn't appear to be driver related, but GPU. I still have no brilliant ideas why that might be the case, especially after the device simulation that @SveSop did. I tried to reproduce it locally but on Windows superposition crashed on startup when using the dxvk binaries from 2/24. I didn't dig into much further. Perhaps I'll try heaven next. |
If this related to launcher bugs it's possible to run benchmark directly with corresponding parameters passed:
It's looks like @ all |
Hopefully you remembered to add the env variable: |
@doitsujin @pchome As i mentioned earlier - starting the linux version with > 4GB vram usage for me, throws a warning message, but in wine it will not due to not able to determine how much vram i actually have. So i guess the crashing is gone, or atleast heavily improved.Lets see what results @pchome gets. |
Did some more testing, and a "debug" log running tail -f of the file, and it seems as when i load >4GB of vram, the graphics pipeline compiling just stops and nothing more happens and i have to just kill wine. I also observed VRAM usage max out around 4GB on my 4GB card, so instead of crashing, it just loads textures to vram until "full", and then stops doing anything useful. No observed increase in system ram usage either... |
@SveSop @pchome Thanks for the tips. I was able to run it locally and I can see what the issue with Superposition probably is with NVIDIA GPUs. There are two shaders that are using 14 uniform buffers, but our limit for maxPerStageDescriptorUniformBuffers is 12. In this case there are probably two constant buffers for each shader that are getting dropped on the floor. If possible you could spill uniform buffers over 12 to use SSBOs instead. The validation layers should have caught this error. If they're not, it's probably worth filing an issue here: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues. |
@doitsujin From looking at the hardware database for eg. a AMD RX480 card, it shows |
I'll be honest, I did not expect this. The code was built around the assumption that Vulkan drivers on D3D11-capable hardware would at least provide support for the features and limits that D3D11 requires. On AMD, the number of descriptors is practically unlimited, and even Intel drivers seem to report fairly generous limits in that regard. @pdaniell-nv is this a hardware limitation or is there a chance that this limit may be increased in future drivers? Using read-only SSBOs instead of uniform buffers is certainly possible, but quite a lot of work, and it needs to be tested carefully. |
@doitsujin The reason our UBO limit for Vulkan is less than DX and OpenGL is that we have to use some constant buffers internally in Vulkan as part of our implementation. Unfortunately it's not something we can easily change. If we were to match DX it looks like we would need at least 15 UBOs (D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT). How many descriptor sets does DXVK use? |
@pdaniell-nv DXVK would need 14 UBO slots since that's what D3D11 applications are allowed to use at most (
Each pipeline layout consists of only one descriptor set layout, if that's what you're asking, with one |
any news on that topic @pdaniell-nv ? |
Yes, we are investigating increasing our UBO limit. If successful, a driver with the new limit will be available mid-April. |
@pdaniell-nv , thank you for the information,Hopefully you can get it implemented. Btw, beside the ubo limit, do you have a timeframe when all the fixes in the nvidia shader compiler will land in newer drivers ? I installed 390.42, are fixes already in there ? |
The BitfieldInsert/BitfieldExtract bug should be fixed with Linux driver 390.42. The other bugs are fixed in later drivers. |
We just released a new 396.18.02 beta driver for Linux at https://developer.nvidia.com/vulkan-driver. This new driver increases the per-shader stage limit for UBOs from 12 to 15. Hopefully this fixes Superposition. |
This is as close as it can get come colors it seems @pdaniell-nv . Have not done any benching or "flip lightswitches" yet, but so far an ocean of difference :) ("Native" being Linux OGL client) |
Great, and thanks for reporting back @SveSop - looks like I can close this then. |
I am struggling a bit with what i see as "washed out colors" when using DXVK.
I dont know if these issues is due to the "have to hack-fix with spirv-opt" shader compilation on the nVidia drivers, or if its a nVidia issue.. or just me.
If you take a look at the 2 attached pictures, its a side-by-side comparison from Unigine Valley, and Unigine Superposition. Its clearly a lot brighter or "bland" in Valley, and in Unigine Superposition it almost looks like its a thin layer of dust covering everything.
Just me?
nVidia GTX 970 w/ 390.25 driver
wine-vulkan-3.2
The text was updated successfully, but these errors were encountered: