From 386dd5891603aa25d70c87b26096faaeb4cead92 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 6 Sep 2016 18:27:56 +0200 Subject: [PATCH] Don't try and fill cbuffer values that are invalid types (struct/object) --- renderdoc/driver/d3d11/d3d11_analyse.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/renderdoc/driver/d3d11/d3d11_analyse.cpp b/renderdoc/driver/d3d11/d3d11_analyse.cpp index ffec4addf..6552e277a 100644 --- a/renderdoc/driver/d3d11/d3d11_analyse.cpp +++ b/renderdoc/driver/d3d11/d3d11_analyse.cpp @@ -146,6 +146,16 @@ void D3D11DebugManager::FillCBufferVariables(const string &prefix, size_t &offse continue; } + if(invars[v].type.descriptor.varClass == CLASS_OBJECT || + invars[v].type.descriptor.varClass == CLASS_STRUCT || + invars[v].type.descriptor.varClass == CLASS_INTERFACE_CLASS || + invars[v].type.descriptor.varClass == CLASS_INTERFACE_POINTER) + { + RDCWARN("Unexpected variable '%s' of class '%u' in cbuffer, skipping.", + invars[v].name.c_str(), invars[v].type.descriptor.type); + continue; + } + size_t elemByteSize = 4; VarType type = eVar_Float; switch(invars[v].type.descriptor.type)