TL;DR I want to find out what is really causing the difference in black levels and colorbanding people are reporting with 1.3.x, especially in DK2?
The long version:
Please excuse me if there are threads about this already. I am finding that most are talking about the symptoms and not the cause.
I am a techie, sci-fi fanatic who found my next big interest in this life with Elite Dangerous in Virtual Reality. Because of my intense commitment to this (and Frontiers 10 year plan for this game), I am deeply invested in making this experience the best it can be. I've invested a lot of money in and around my computer for this. Virtual Reality in general also ofcourse but Elite stands on the top.
My latest concern during my wait for the consumer VR headsets is the black levels in Elite Dangerous which was kind of destroyed with Oculus Runtime 1.3.x (in the DK2). The sudden cutoff, or brightness change between the darkest colours and pitch black (oled off) that have appeared, cause a lot of black smearing (many are reporting that the smearing have returned, but they are not immediately realising that this is because of the black level cutoff).
However, I have as of yet only been able to try this with the DK2 and that is "not supported". But I am still worried this will be the case with the CV1 as well, since I read about CV1 owners are experiencing these bad blacks.
The timewarp and other improvements with Oculus 1.3.x has been wonderful and made me very excited but there are these black levels that have been completely crushed. I have attempted to find information on what is causing this.
I am on Win10 with 5820K, Asus Deluxe-X99 MB, 16 GB, SSD, Asus 980Ti Strix OC
So far I got these facts:
With direct mode there is no way for the user to change any settings for the Rift display anymore.
Black levels was deep and satisfying in Runtime 0.5 and 0.6.
Black levels are deep and satisfying in Runtime 0.8 (through SteamVR).
Black levels are crushed with Runtime 1.3.x.
All apps in runtime 1.3.x feel at least somewhat washed out in DK2. Some more than others. In bright cartoony experiences it is almost undetectable.
I've got these guesses:
DK2 is not officially supported anymore. Duh! Doesn't mean everything should work excellent, except the colours right?
There is a bug in Elite. Weird since the same binary looks awesome in 0.8 over SteamVR and Elite looked good in earlier SDK's and versions.
There is a bug in the latest Nvidia drivers regarding the hardware accelerated gamma shading or it's not adressed if DK2 is detected by Oculus drivers.
The Oculus runtime no longer cares about setting the correct HDMI full range mode for the DK2.
Oculus have changed some gamma curve in a way that destroys the fidelity in the darkest areas. Source: https://forums.oculus.com/community/discussion/comment/350548/#Comment_350548
Oculus have actually went and implemented HDMI limited range from now on for practical reasons (whatever those might be). Source: https://forums.oculus.com/developer/discussion/comment/362953/#Comment_362953
The Nvidia HDMI TV-levels debacle where the card just thinks this is a HDTV and set the color range to HDMI-limited 16-235 and no override is included with the Oculus 1.3.x for the DK2 (or is not working on my card). Source: https://pcmonitors.info/articles/correcting-hdmi-colour-on-nvidia-and-amd-gpus/
Things I have tried:
Running the NV_RGBFullRangeToggle app that sets Registry flags to use full range over HDMI. Source: http://blog.metaclassofnil.com/?p=83
Complete reinstall of Win10 and trying without any other possibly interfering software installed except 1.3 and graphics drivers and the game.
Complete reinstall of Graphics drivers. Source: https://www.reddit.com/r/oculus/comments/4eoayn/heads_up_if_blacks_appear_bright_grey_with_the/
Using a DVI->HDMI adapter. Source: https://www.reddit.com/r/oculus/comments/4eftt0/psa_if_youre_having_washed_out_colorsbad_blacks/
Things people have reported are fixing this (but doesn't work for me):
Clean install of the Nvidia drivers.
Using a DVI->HDMI adapter.
Things I have yet to try:
Some other graphics card.
Trying with the final consumer version (haven't got it yet).
So what the hell is going on here, why are no solutions working for me and how is it supposed to be? I am fully aware the bad blacks I am experiencing might be fixed the second I swap out my DK2 for the CV1 (which I am expecting at beginning of May). I can't really (or won't believe) Oculus has gone and crippled everything below level 16 of black and gone some TV-color range route. Why would they? To be compatible with TV and movie apps? Doesn't make sense to me at least if they want to stay compatible with games in general. Is it to hide the fact the OLED panels are unreliable in the dark areas? Is there essentially a physical filter in the CV1 bringing down the visible range a notch and the runtime artificially making everything brighter to make this work? What will this do to the colourgradients? Are we to expect gradients will never look as good as on a Rgb 24 bit monitor in the Rift now? Oh well just throwing my speculation out there.
Especially the bad gradients with color banding, is for me evidence this is Nvidia hardware chosing HDMI limited range, essentially on the fly converting 0-255 to 16-235 for TV output (since 16 is black for TV and everything below is blacker than black). But if this is the case, why would Oculus let this pass into 1.3.x when it worked in 0.8? It shouldn't be hard to keep DK2 working the same way as before. DK2's are still valid for development and the amount of DK2's in the world is still good PR for Oculus wherever they appear and a way for people finding the CV's too expensive to still buy used and be able to join the revolution, in the long run triggering more sales of the consumer versions.
I have confidence in the very talented people working at Oculus and if they have gone and changed the gamma curve or the way the Rift produces very dark colors I would like to hear the reasoning behind this. But I don't know if this is the case. It's unlogical from where I stand.
In the Oculus developer documentation we find this:
---snip---
The Oculus compositor provides sRGB-correct rendering, which results in more photorealistic visuals, better MSAA, and energy-conserving texture sampling, which are very important for VR applications. As shown above, applications are expected to create sRGB texture swap chains. Proper treatment of sRGB rendering is a complex subject and, although this section provides an overview, extensive information is outside the scope of this document.
There are several steps to ensuring a real-time rendered application achieves sRGB-correct shading and different ways to achieve it. For example, most GPUs provide hardware acceleration to improve gamma-correct shading for sRGB-specific input and output surfaces, while some applications use GPU shader math for more customized control. For the Oculus SDK, when an application passes in sRGB-space texture swap chains, the compositor relies on the GPU's sampler to do the sRGB-to-linear conversion.
All color textures fed into a GPU shader should be marked appropriately with the sRGB-correct format, such as OVR_FORMAT_R8G8B8A8_UNORM_SRGB. This is also recommended for applications that provide static textures as quad-layer textures to the Oculus compositor. Failure to do so will cause the texture to look much brighter than expected.
---snip---
The takeaway for me here, is that the compositor provides sRGB-correct rendering and that the compositor relies on the GPU's sampler to do the sRGB-to-linear conversion (why is this needed, isn't the displays RGB?). So if the developer screws up the texture formats or the GPU is misconfigured the colors will look wrong. Well, I'm no gamedev (only php) so I don't know too much about this.
What are your experiences and how do you feel your bad (or good) black levels are and how are gradients looking with both DK2 and CV1? (Don't forget to tell which one you have).
Please, I want this thread to only be about this problem and finding the cause of it. Please don't tell me to wait for my CV1, that's why I have all the time speculating about this.
Thank you for reading all the way here.
The long version:
Please excuse me if there are threads about this already. I am finding that most are talking about the symptoms and not the cause.
I am a techie, sci-fi fanatic who found my next big interest in this life with Elite Dangerous in Virtual Reality. Because of my intense commitment to this (and Frontiers 10 year plan for this game), I am deeply invested in making this experience the best it can be. I've invested a lot of money in and around my computer for this. Virtual Reality in general also ofcourse but Elite stands on the top.
My latest concern during my wait for the consumer VR headsets is the black levels in Elite Dangerous which was kind of destroyed with Oculus Runtime 1.3.x (in the DK2). The sudden cutoff, or brightness change between the darkest colours and pitch black (oled off) that have appeared, cause a lot of black smearing (many are reporting that the smearing have returned, but they are not immediately realising that this is because of the black level cutoff).
However, I have as of yet only been able to try this with the DK2 and that is "not supported". But I am still worried this will be the case with the CV1 as well, since I read about CV1 owners are experiencing these bad blacks.
The timewarp and other improvements with Oculus 1.3.x has been wonderful and made me very excited but there are these black levels that have been completely crushed. I have attempted to find information on what is causing this.
I am on Win10 with 5820K, Asus Deluxe-X99 MB, 16 GB, SSD, Asus 980Ti Strix OC
So far I got these facts:
With direct mode there is no way for the user to change any settings for the Rift display anymore.
Black levels was deep and satisfying in Runtime 0.5 and 0.6.
Black levels are deep and satisfying in Runtime 0.8 (through SteamVR).
Black levels are crushed with Runtime 1.3.x.
All apps in runtime 1.3.x feel at least somewhat washed out in DK2. Some more than others. In bright cartoony experiences it is almost undetectable.
I've got these guesses:
DK2 is not officially supported anymore. Duh! Doesn't mean everything should work excellent, except the colours right?
There is a bug in Elite. Weird since the same binary looks awesome in 0.8 over SteamVR and Elite looked good in earlier SDK's and versions.
There is a bug in the latest Nvidia drivers regarding the hardware accelerated gamma shading or it's not adressed if DK2 is detected by Oculus drivers.
The Oculus runtime no longer cares about setting the correct HDMI full range mode for the DK2.
Oculus have changed some gamma curve in a way that destroys the fidelity in the darkest areas. Source: https://forums.oculus.com/community/discussion/comment/350548/#Comment_350548
Oculus have actually went and implemented HDMI limited range from now on for practical reasons (whatever those might be). Source: https://forums.oculus.com/developer/discussion/comment/362953/#Comment_362953
The Nvidia HDMI TV-levels debacle where the card just thinks this is a HDTV and set the color range to HDMI-limited 16-235 and no override is included with the Oculus 1.3.x for the DK2 (or is not working on my card). Source: https://pcmonitors.info/articles/correcting-hdmi-colour-on-nvidia-and-amd-gpus/
Things I have tried:
Running the NV_RGBFullRangeToggle app that sets Registry flags to use full range over HDMI. Source: http://blog.metaclassofnil.com/?p=83
Complete reinstall of Win10 and trying without any other possibly interfering software installed except 1.3 and graphics drivers and the game.
Complete reinstall of Graphics drivers. Source: https://www.reddit.com/r/oculus/comments/4eoayn/heads_up_if_blacks_appear_bright_grey_with_the/
Using a DVI->HDMI adapter. Source: https://www.reddit.com/r/oculus/comments/4eftt0/psa_if_youre_having_washed_out_colorsbad_blacks/
Things people have reported are fixing this (but doesn't work for me):
Clean install of the Nvidia drivers.
Using a DVI->HDMI adapter.
Things I have yet to try:
Some other graphics card.
Trying with the final consumer version (haven't got it yet).
So what the hell is going on here, why are no solutions working for me and how is it supposed to be? I am fully aware the bad blacks I am experiencing might be fixed the second I swap out my DK2 for the CV1 (which I am expecting at beginning of May). I can't really (or won't believe) Oculus has gone and crippled everything below level 16 of black and gone some TV-color range route. Why would they? To be compatible with TV and movie apps? Doesn't make sense to me at least if they want to stay compatible with games in general. Is it to hide the fact the OLED panels are unreliable in the dark areas? Is there essentially a physical filter in the CV1 bringing down the visible range a notch and the runtime artificially making everything brighter to make this work? What will this do to the colourgradients? Are we to expect gradients will never look as good as on a Rgb 24 bit monitor in the Rift now? Oh well just throwing my speculation out there.
Especially the bad gradients with color banding, is for me evidence this is Nvidia hardware chosing HDMI limited range, essentially on the fly converting 0-255 to 16-235 for TV output (since 16 is black for TV and everything below is blacker than black). But if this is the case, why would Oculus let this pass into 1.3.x when it worked in 0.8? It shouldn't be hard to keep DK2 working the same way as before. DK2's are still valid for development and the amount of DK2's in the world is still good PR for Oculus wherever they appear and a way for people finding the CV's too expensive to still buy used and be able to join the revolution, in the long run triggering more sales of the consumer versions.
I have confidence in the very talented people working at Oculus and if they have gone and changed the gamma curve or the way the Rift produces very dark colors I would like to hear the reasoning behind this. But I don't know if this is the case. It's unlogical from where I stand.
In the Oculus developer documentation we find this:
---snip---
The Oculus compositor provides sRGB-correct rendering, which results in more photorealistic visuals, better MSAA, and energy-conserving texture sampling, which are very important for VR applications. As shown above, applications are expected to create sRGB texture swap chains. Proper treatment of sRGB rendering is a complex subject and, although this section provides an overview, extensive information is outside the scope of this document.
There are several steps to ensuring a real-time rendered application achieves sRGB-correct shading and different ways to achieve it. For example, most GPUs provide hardware acceleration to improve gamma-correct shading for sRGB-specific input and output surfaces, while some applications use GPU shader math for more customized control. For the Oculus SDK, when an application passes in sRGB-space texture swap chains, the compositor relies on the GPU's sampler to do the sRGB-to-linear conversion.
All color textures fed into a GPU shader should be marked appropriately with the sRGB-correct format, such as OVR_FORMAT_R8G8B8A8_UNORM_SRGB. This is also recommended for applications that provide static textures as quad-layer textures to the Oculus compositor. Failure to do so will cause the texture to look much brighter than expected.
---snip---
The takeaway for me here, is that the compositor provides sRGB-correct rendering and that the compositor relies on the GPU's sampler to do the sRGB-to-linear conversion (why is this needed, isn't the displays RGB?). So if the developer screws up the texture formats or the GPU is misconfigured the colors will look wrong. Well, I'm no gamedev (only php) so I don't know too much about this.
What are your experiences and how do you feel your bad (or good) black levels are and how are gradients looking with both DK2 and CV1? (Don't forget to tell which one you have).
Please, I want this thread to only be about this problem and finding the cause of it. Please don't tell me to wait for my CV1, that's why I have all the time speculating about this.
Thank you for reading all the way here.