From a7ac9d7923d82472b3e02aadeb2bc7b908f96a14 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 19 Feb 2021 17:47:06 +0000 Subject: [PATCH] Fix DXIL reflection if array type is listed as having 0 elements --- renderdoc/driver/shaders/dxil/dxil_reflect.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp index 79590e902..5e45df099 100644 --- a/renderdoc/driver/shaders/dxil/dxil_reflect.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_reflect.cpp @@ -415,9 +415,9 @@ static DXBC::CBufferVariableType MakeCBufferVariableType(const TypeInfo &typeInf else if(t->type == Type::Array) { ret = MakeCBufferVariableType(typeInfo, t->inner); - ret.descriptor.elements *= t->elemCount; + ret.descriptor.elements *= RDCMAX(1U, t->elemCount); // assume normal D3D array packing with each element on float4 boundary - ret.descriptor.bytesize += (t->elemCount - 1) * AlignUp16(ret.descriptor.bytesize); + ret.descriptor.bytesize += (ret.descriptor.elements - 1) * AlignUp16(ret.descriptor.bytesize); return ret; } else if(t->type == Type::Struct)