Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/doitsujin/dxvk.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Ashton <joshua@froggi.es>2023-10-29 03:57:13 +0300
committerPhilip Rebohle <25567304+doitsujin@users.noreply.github.com>2023-10-29 12:09:34 +0300
commit22c2abb9b7dff7d062fd1ce3fba4468acce4df0b (patch)
treec5b2e7c336a65dd8b0faf7a63d2284bf79cb8a3b
parentf45911a28f6e6184f82487e983b4a6af6923e61c (diff)
[dxgi] Treat R16G16B16A16_FLOAT as 32bpp for display
HDR in Control (a patch released by a developer post-launch, not actually in the game sadly) tries to set a video mode with DXGI_FORMAT_R16G16B16A16_FLOAT. This seemingly works on Windows, and based on FindClosestMode etc documentaton, this seems required to work for any format that scanout it supported for. It's really not like the bpp is meaningful on Windows with the distinction of 8bit and 10bit not working in GDI modes at all. Nor does it end up actually setting anything on Linux/Deck where modesets are emulated. So, treat DXGI_FORMAT_R16G16B16A16_FLOAT as 32bpp so the FindClosestMatchingMode and EnterFullscreenMode calls succeed.
-rw-r--r--src/dxgi/dxgi_monitor.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dxgi/dxgi_monitor.cpp b/src/dxgi/dxgi_monitor.cpp
index b0622b3b..842fb3fc 100644
--- a/src/dxgi/dxgi_monitor.cpp
+++ b/src/dxgi/dxgi_monitor.cpp
@@ -107,7 +107,11 @@ namespace dxvk {
return 32;
case DXGI_FORMAT_R16G16B16A16_FLOAT:
- return 64;
+ // Floating point output doesn't really make sense.
+ // This seemingly works on Windows, and based on FindClosestMode etc documentaton,
+ // this seems required to work for any format that scanout it supported for.
+ // Treat as 10-bit -> 32.
+ return 32;
default:
Logger::warn(str::format(