From e1efc83fe3de644b231ea9635fa1c71aa9054df2 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 20 Sep 2021 17:57:51 +0100 Subject: [PATCH] Add shader entry tag to common header * We also allow GetPointerType to silently return NULL when no pointer exists, as this will be useful for encoding when we want to check if a pointer type exists. --- renderdoc/driver/shaders/dxil/dxil_bytecode.cpp | 4 +--- renderdoc/driver/shaders/dxil/dxil_common.h | 9 +++++++++ renderdoc/driver/shaders/dxil/dxil_reflect.cpp | 13 ++----------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp b/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp index 3a04c5d24..ee29b2b96 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.cpp @@ -2435,9 +2435,7 @@ const Type *Program::GetPointerType(const Type *type, Type::PointerAddrSpace add } } - RDCERR("Couldn't find pointer type"); - - return type; + return NULL; } Metadata::~Metadata() diff --git a/renderdoc/driver/shaders/dxil/dxil_common.h b/renderdoc/driver/shaders/dxil/dxil_common.h index 62a144bba..a267ad9ed 100644 --- a/renderdoc/driver/shaders/dxil/dxil_common.h +++ b/renderdoc/driver/shaders/dxil/dxil_common.h @@ -81,6 +81,15 @@ enum class ResourceKind SamplerComparison, }; +enum class ShaderEntryTag +{ + ShaderFlags = 0, + Geometry = 1, + Domain = 2, + Hull = 3, + Compute = 4, +}; + }; // namespace DXIL DECLARE_STRINGISE_TYPE(DXIL::ComponentType); diff --git a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp index 8969a220a..e77c82db8 100644 --- a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp @@ -28,15 +28,6 @@ namespace DXIL { -enum class ShaderTag -{ - ShaderFlags = 0, - Geometry = 1, - Domain = 2, - Hull = 3, - Compute = 4, -}; - enum class ResField { ID = 0, @@ -149,7 +140,7 @@ void Program::FetchComputeProperties(DXBC::Reflection *reflection) for(size_t t = 0; t < tags.children.size(); t += 2) { RDCASSERT(tags.children[t]->isConstant); - if(getival(tags.children[t]) == ShaderTag::Compute) + if(getival(tags.children[t]) == ShaderEntryTag::Compute) { Metadata &threadDim = *tags.children[t + 1]; RDCASSERTEQUAL(threadDim.children.size(), 3); @@ -190,7 +181,7 @@ D3D_PRIMITIVE_TOPOLOGY Program::GetOutputTopology() for(size_t t = 0; t < tags.children.size(); t += 2) { RDCASSERT(tags.children[t]->isConstant); - if(getival(tags.children[t]) == ShaderTag::Geometry) + if(getival(tags.children[t]) == ShaderEntryTag::Geometry) { Metadata &geomData = *tags.children[t + 1]; RDCASSERTEQUAL(geomData.children.size(), 5);