From b8f647c1e668e0833555b4e0428a4c6d931f48cd Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 30 Oct 2020 12:03:02 +0000 Subject: [PATCH] Default to float over unorm for FP16 typeless formats * Given no other information FP16 is much more common than UNORM16. We don't know which type to use but float is a better choice. --- renderdoc/driver/dxgi/dxgi_common.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/renderdoc/driver/dxgi/dxgi_common.cpp b/renderdoc/driver/dxgi/dxgi_common.cpp index 3a9ba497d..2d14e4a98 100644 --- a/renderdoc/driver/dxgi/dxgi_common.cpp +++ b/renderdoc/driver/dxgi/dxgi_common.cpp @@ -1144,7 +1144,9 @@ DXGI_FORMAT GetTypedFormat(DXGI_FORMAT f, CompType typeCast) return DXGI_FORMAT_R16_FLOAT; if(typeCast == CompType::Depth) return DXGI_FORMAT_D16_UNORM; - return DXGI_FORMAT_R16_UNORM; + if(typeCast == CompType::UNorm) + return DXGI_FORMAT_R16_UNORM; + return DXGI_FORMAT_R16_FLOAT; } case DXGI_FORMAT_R16G16_TYPELESS: @@ -1157,7 +1159,9 @@ DXGI_FORMAT GetTypedFormat(DXGI_FORMAT f, CompType typeCast) return DXGI_FORMAT_R16G16_SNORM; if(typeCast == CompType::Float) return DXGI_FORMAT_R16G16_FLOAT; - return DXGI_FORMAT_R16G16_UNORM; + if(typeCast == CompType::UNorm) + return DXGI_FORMAT_R16G16_UNORM; + return DXGI_FORMAT_R16G16_FLOAT; } case DXGI_FORMAT_R16G16B16A16_TYPELESS: @@ -1170,7 +1174,9 @@ DXGI_FORMAT GetTypedFormat(DXGI_FORMAT f, CompType typeCast) return DXGI_FORMAT_R16G16B16A16_SNORM; if(typeCast == CompType::Float) return DXGI_FORMAT_R16G16B16A16_FLOAT; - return DXGI_FORMAT_R16G16B16A16_UNORM; + if(typeCast == CompType::UNorm) + return DXGI_FORMAT_R16G16B16A16_UNORM; + return DXGI_FORMAT_R16G16B16A16_FLOAT; } case DXGI_FORMAT_R32_TYPELESS: