From e7d05668dbc9a8276acd87454d0b128d4f10ce49 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 11 Dec 2024 11:58:59 +0000 Subject: [PATCH] DXIL Debugger convert int 16-bit component types to 32-bit RETURN_TYPE The resource sampling is done using 32-bit integer's and converted to 16-bit on the CPU --- renderdoc/driver/shaders/dxil/dxil_debug.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_debug.cpp b/renderdoc/driver/shaders/dxil/dxil_debug.cpp index 5d9d7b717..56f179834 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debug.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_debug.cpp @@ -539,20 +539,20 @@ static DXBC::ResourceRetType ConvertComponentTypeToResourceRetType(const Compone { switch(compType) { + // Treat 16-bit integer as 32-bit and do the conversion after resource access + case ComponentType::I16: case ComponentType::I32: return DXBC::ResourceRetType::RETURN_TYPE_SINT; + case ComponentType::U16: case ComponentType::U32: return DXBC::ResourceRetType::RETURN_TYPE_UINT; case ComponentType::F32: return DXBC::ResourceRetType::RETURN_TYPE_FLOAT; case ComponentType::F64: return DXBC::ResourceRetType::RETURN_TYPE_DOUBLE; case ComponentType::SNormF32: return DXBC ::ResourceRetType::RETURN_TYPE_SNORM; - case ComponentType::UNormF32: - return DXBC::ResourceRetType::RETURN_TYPE_UNORM; - // Treat half as float and do the conversion after resource access + case ComponentType::UNormF32: return DXBC::ResourceRetType::RETURN_TYPE_UNORM; + // Treat 16-bit float as 32-bit and do the conversion after resource access case ComponentType::SNormF16: case ComponentType::UNormF16: case ComponentType::F16: return DXBC::ResourceRetType::RETURN_TYPE_FLOAT; case ComponentType::I1: - case ComponentType::I16: - case ComponentType::U16: case ComponentType::I64: case ComponentType::U64: case ComponentType::SNormF64: