Update: Multiple confirmations that the 23.7.1 drivers have resolved VR rendering and performance issues. Leaving orbit/gravity lines as the remaining problem point (see below).
Update: @MrVaad has posted a 3DMigoto shader patch to address the aliased orbit/gravity lines here.
Update: Most of these workarounds should no longer be required. Crashes were addressed with the 22.10.3 and later drivers, while the atmospheric compositing shader issue that once required 3DMigoto to workaround was fixed by FDev in U14.
Make sure you can see file extensions in your file manager (e.g. File Explorer)!
Update: A partial fix has been implemented in the 22.10.3 drivers. The game will now load, generate terrain, and allow access to planet surfaces without having to disable double precision floats. However, the teal overlay present during certain on-foot conditions is still present and can still be fixed via 3DMigoto (or DXVK).
Starting with their May 2022 preview driver and continuing with the optional 22.5.2 through 22.10.2 drivers, AMD has included D3D11 optimizations that have caused a variety of compatibility issues with Odyssey, as roughly acknowledge by Frontier here. If you have any RX 6000 series AMD graphics adapter, or any other RDNA2/Navi2x part, running on Windows with post 22.5.1, you have probably encountered some of these symptoms and this thread may interest you.
As far as the community and I have been able to infer from our testing, these issues are due to how the new driver branch handles double precision (FP64) floats used in terrain generation, plus one of the game's shaders that, if left enabled, leaves a transparent bluish overlay on the screen during most on-foot scenes. Below, I will detail three workarounds to these problems, including the pros, cons, and implementations of each.
Disclaimer: Aside from reverting to older drivers, none of these workarounds are sanctioned by Frontier. If they don't work for you, or cause issues, don't complain to them, and don't burden support or the issue tracker with crash/bug reports resulting from their use.
Note: Different workarounds feature different files, some of which have the same names. Do not mix them.
Note #2: With regard to EDHM compatibility for workaround #2, reference Blavald's comments in post #7 and mine in post #23.
Note #3, regarding Steam overlay: There appears to be an unresolved issue with the last official 3Dmigoto binaries and the Steam overlay that may or may not result in issues with Workaround #2. If you encounter issues, either disable the Steam overlay when playing Odyssey, or use another workaround. See post #34.
Updates of note will be mentioned in post #2 and edited in here.
Workaround #1 -- Abstain from newer drivers.
Workaround #2 -- Address the specific D3D11 issues.
Workaround #3 -- Bypass the D3D11 driver entirely by using a Vulkan translation layer!
ACKNOWLEDGEMENTS
Feel free to comment with observations or corrections.
Update: @MrVaad has posted a 3DMigoto shader patch to address the aliased orbit/gravity lines here.
Update: Most of these workarounds should no longer be required. Crashes were addressed with the 22.10.3 and later drivers, while the atmospheric compositing shader issue that once required 3DMigoto to workaround was fixed by FDev in U14.
Make sure you can see file extensions in your file manager (e.g. File Explorer)!
Update: A partial fix has been implemented in the 22.10.3 drivers. The game will now load, generate terrain, and allow access to planet surfaces without having to disable double precision floats. However, the teal overlay present during certain on-foot conditions is still present and can still be fixed via 3DMigoto (or DXVK).
Starting with their May 2022 preview driver and continuing with the optional 22.5.2 through 22.10.2 drivers, AMD has included D3D11 optimizations that have caused a variety of compatibility issues with Odyssey, as roughly acknowledge by Frontier here. If you have any RX 6000 series AMD graphics adapter, or any other RDNA2/Navi2x part, running on Windows with post 22.5.1, you have probably encountered some of these symptoms and this thread may interest you.
As far as the community and I have been able to infer from our testing, these issues are due to how the new driver branch handles double precision (FP64) floats used in terrain generation, plus one of the game's shaders that, if left enabled, leaves a transparent bluish overlay on the screen during most on-foot scenes. Below, I will detail three workarounds to these problems, including the pros, cons, and implementations of each.
Disclaimer: Aside from reverting to older drivers, none of these workarounds are sanctioned by Frontier. If they don't work for you, or cause issues, don't complain to them, and don't burden support or the issue tracker with crash/bug reports resulting from their use.
Note: Different workarounds feature different files, some of which have the same names. Do not mix them.
Note #2: With regard to EDHM compatibility for workaround #2, reference Blavald's comments in post #7 and mine in post #23.
Note #3, regarding Steam overlay: There appears to be an unresolved issue with the last official 3Dmigoto binaries and the Steam overlay that may or may not result in issues with Workaround #2. If you encounter issues, either disable the Steam overlay when playing Odyssey, or use another workaround. See post #34.
Updates of note will be mentioned in post #2 and edited in here.
Workaround #1 -- Abstain from newer drivers.
Simply remaining on AMD's currently "recommended" 22.5.1 driver will clearly bypass the issues associated with newer driver releases.
Pros:
Cons:
Procedure:
Pros:
- No need for any of the more complex workarounds.
- Avoidance of new issues potentially introduced in other titles.
Cons:
- Losing out on the benefits of the newer driver branch, which include potentially significant D3D11 (including in Odyssey itself, with workaround #2) and OGL performance uplifts; support for newer games; and fixes to other bugs, as detailed in the respective release notes for each driver.
- The possibility that Windows Update decides that a newer, incompatible version is better and updates against your will.
Procedure:
- Either don't update your drivers, or remove any newer drivers (you may need to disconnect from the internet momentarily to prevent Windows Update from automatically reinstalling an undesirable driver version), and reinstall 22.5.1.
- Optionally disable Windows Update driver updates, globally, or the specific driver in question. There are multiple ways to do this (examples), but for the sake of brevity, I'll not detail them in this post.
Workaround #2 -- Address the specific D3D11 issues.
It is possible to disable FP64 in the game's AppConfig.xml and bypass the incompatible shader with 3Dmigoto, which will allow, as far as I have been able to observe, full functionality with the newest 22.8.2 driver release.
Update: As of 22.10.3 the AppConfig.xml change is no longer required. 3DMigoto is still recommended to correct the bugged shader.
Pros:
Cons:
Procedure:
Update: As of 22.10.3 the AppConfig.xml change is no longer required. 3DMigoto is still recommended to correct the bugged shader.
Pros:
- You get all of the aforementioned benefits of the newest driver releases, including a meaningful increase to performance (~10% in my testing) in GPU limited areas of Odyssey itself.
- Should preserve VR (within Odyssey's limits) and borderless window functionality. Edit: Those having issues with VR should completely clear their caches and check the procedure in post #16.
Cons:
- You have to be able to read instructions, navigate the Windows file system, and edit a plaintext file.
- Patching the game or validating the game files will remove this workaround.
- There is no guarantee that future game updates will retain the same hash for the offending shader, in which case you'll have to use 3Dmigoto's hunting feature to identify the new hash yourself, or wait for someone else to find and document it.
- Conflict with 3Dmigoto and the Steam overlay can cause issues.
Procedure:
- Download the newest version of 3Dmigoto (currently v1.3.16) from here: https://github.com/bo3b/3Dmigoto/releases/
- Extract the d3d11.dll and d3dcompiler_46.dll files from "3Dmigoto-1.3.16.zip\x64\" to wherever you have Odyssey installed (the actual product directory with Odyssey's EliteDangerous64.exe inside it).
- Download the d3dx.ini.txt file I have attached to this post, remove the ".txt" part of the extension, and place the file in the game product directory noted above. I've disabled the relevant shader hash, and set 3Dmigoto to release mode (hunting disabled, for performance) in this file.
- In the same directory there is a file called AppConfig.xml. Open this in your favorite text editor (notepad will work) find the attribute "PermitNativeDoubles="true"" and change the "true" to "false", then save the file.
- Optionally clear the Windows and driver shader cache and delete GPUWorkTable.xml.
- Start the game.
Workaround #3 -- Bypass the D3D11 driver entirely by using a Vulkan translation layer!
DXVK will also resolve the issues with newer drivers, at the cost of some configuration and additional overhead. Touching actual game files is not required.
Pros:
Cons:
Procedure:
Pros:
- Potentially better performance in some CPU limited areas due to Vulkan having threaded command buffers.
- Some textures can actually look sharper due to a negative LOD bias that I've used to eliminate a crash on certain LOD transitions.
- Possibly less likely to be broken by game updates.
Cons:
- Also have to be able to read instructions, navigate the Windows file system, and optionally edit a plaintext file.
- Lower performance in GPU limited areas than D3D11 in the newest drivers, and about a wash with 22.5.1 and prior drivers.
- Required texture LOD bias adds a small amount of extra texture shimmering.
- Slightly increased GPU load in my tests (~7% higher power consumption in a given GPU limited scene), probably from overhead.
- Takes some game time/play to flesh out the DXVK cache, during which some stuttering will be evident. However, this only needs to happen once, unless you update the game, the drivers, DXVK itself, or delete the cache file.
- Breaks VR.
- Borderless window always on top.
- Modestly higher latency floor than native D3D11 (Radeon Anti-Lag doesn't seem to work either); rarely an issue.
Procedure:
- Download the newest version of DXVK (currently 1.10.3) from here: https://github.com/doitsujin/dxvk/releases (this is going to be a .tar.gz file, so you need an archival program that can handle this, I recommend 7-Zip, but many others will work).
- Extract d3d11.dll and dxgi.dll from "dxvk-1.10.3.tar.gz\dxvk-1.10.3.tar\dxvk-1.10.3\x64\" to wherever you have Odyssey installed (the actual product directory with Odyssey's EliteDangerous64.exe inside it).
- Download the dxvk.conf.txt file I have attached to this post, remove the ".txt" part of the extension, and place the file in the game product directory noted above.
- Optionally edit dxvk.conf and remove the "d3d11.samplerAnisotropy = 16" line, but only if you have a lower end card or were otherwise not using anisotropic filtering in your preferred game settings.
- Optionally clear the Windows and driver shader cache and delete GPUWorkTable.xml.
- Start the game.
ACKNOWLEDGEMENTS
- kakra@github for the elaboration on the emulateUMA function in DXVK.
- @Balvald for identifying the precise shader hash, enabling a more complete D3D11 workaround, and other testing.
- @t-lo for pointing out a compatability issue with 3Dmigoto and the Steam overlay.
- A bunch of other forum punks for confirming my observations and testing my fixes, many of which can be found in my earlier thread here.
- Some people I probably unwittingly ripped-off ideas from in my synthesis of information.
Feel free to comment with observations or corrections.
Attachments
Last edited: