From 0b5e8369d382ca5289ca41781a8d018fdd8f8781 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 19 Oct 2021 18:12:30 +0100 Subject: [PATCH] Add some literal returns for D3D12 swizzle enums --- renderdoc/driver/d3d12/d3d12_serialise.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/renderdoc/driver/d3d12/d3d12_serialise.cpp b/renderdoc/driver/d3d12/d3d12_serialise.cpp index c6eaa700b..528eec2dd 100644 --- a/renderdoc/driver/d3d12/d3d12_serialise.cpp +++ b/renderdoc/driver/d3d12/d3d12_serialise.cpp @@ -58,6 +58,22 @@ rdcstr DoStringise(const D3D12ComponentMapping &el) { RDCCOMPILE_ASSERT(sizeof(D3D12ComponentMapping) == sizeof(uint32_t), "Enum isn't uint sized"); + // handle some common ones as literals to avoid allocations + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)) + return "RGBA"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 4)) + return "RGB0"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 5)) + return "RGB1"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 4, 4, 4)) + return "R000"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 4, 4, 5)) + return "R001"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 5, 5, 5)) + return "R111"_lit; + if(el == D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(3, 2, 1, 3)) + return "BGRA"_lit; + rdcstr ret; // value should always be <= 5, see D3D12_SHADER_COMPONENT_MAPPING