Reply 20 of 167, by Dege
I have a new WIP:
- Thanks to Firtasik, we were able to localize the code in the D3D11 backend that broke the texture upload on AMD. Unfortunately I found no other solution for this than blacklisting AMD Vega architectures (device ID's: 0x15DD and 0x15D8) and add a code path that are similar to the one in 2.54, less optimal than the current, but at least does not consume as many resources as 2.54.
If other architectures turn out to be affected then plz report it and I'll add them into the blacklist. I added an option to suppress it to see if a new driver release fixed the issue (I wish....) - I improved the existing rendering quality (DX default rendering format). Through a new option, various SDR/HDR color spaces can be selected for the image (swapchain) output. It's experimental because 'WCG SDR' and 'HDR' needs a display device with the proper capabilities so I couldn't really test it all. I don't know how it works on such devices and I also don't know if the OS Advanced Color mode itself applies the tone mapping to the output or not, and if it's completely unusable in the current state.
The internal DX rendering precision (or quality) is adjusted to the selected color space by default. For ARGB2101010 color spaces 16 bit precision is used by default so the lowered alpha bits should not be a problem. And anyway, you can override the internal quality through option DirectXExt\Default3DRenderFormat. Though it may only be useful if you specify a high internal quality for a low quality color space to shift the precision loss to the image presentation phase.
Color spaces:- ARGB:8888: legacy 32 bit output
- ARGB:2101010: 32 bit output with extended precision
- ARGB:2101010 WCG: The same as the previous but according to MS it's targeted for "specially provisioned SDR displays" and the OS Advanced Color mode handles it (Win11)
- ARGB:16161616: true HDR output with float16 precision per component. I guess it's not handled by the OS auto HDR because on the one hand it's supported by Win10 and on the other hand Win11 auto HDR is for upscaling SDR outputs.
So it may require a tone mapping from dgVoodoo side
=========================
WIP92:
=========================
- The root of the AMD D3D11 solid color texture issue is found, workarounding it by
blacklisting Vega architecture (with ID 0x15DD and 0x15D8) and running on a less
optimal but working code path
Thanks Firtasik for the help! - A new option DirectExt\SuppressAMDBlacklist to suppress it to see if a new driver
release is solved it - Optimalization and bugfixes in the 2D shader code generator
- Adding support for SDR/HDR colorspaces (experimental)
- Option GeneralExt\ColorSpace to choose between SDR/HDR outputs
(Precision of the internal DX rendering is adjusted to the colorspace by default) - Option DirectXExt\Default3DRenderFormat is modified to only control the internal
rendering quality - you can override the default associated with the current colorspace
- Option GeneralExt\ColorSpace to choose between SDR/HDR outputs
- Implementing a flip-chain incompatibility with MS DDraw (Seven Kingdoms II HD)
- A lot of internal changes
http://dege.fw.hu/temp/dgVoodooWIP92.zip
http://dege.fw.hu/temp/dgVoodooWIP92_dbg.zip
Update:
=========================
WIP92.1:
=========================
- Fixing a bug that breaks D3D8/9 rendering with certain pixel formats
http://dege.fw.hu/temp/dgVoodooWIP92_1.zip
http://dege.fw.hu/temp/dgVoodooWIP92_1_dbg.zip