From 83bfdc976a3284489cff702bf0e42437740275e5 Mon Sep 17 00:00:00 2001 From: greg-lunarg Date: Wed, 16 Jan 2019 08:01:40 -0700 Subject: [PATCH] Instrumentation: Add ArrayStride decoration to debug output buffer array (#2290) --- source/opt/instrument_pass.cpp | 2 ++ test/opt/inst_bindless_check_test.cpp | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/source/opt/instrument_pass.cpp b/source/opt/instrument_pass.cpp index 7f56a1e0d..8ba8ce504 100644 --- a/source/opt/instrument_pass.cpp +++ b/source/opt/instrument_pass.cpp @@ -309,6 +309,8 @@ uint32_t InstrumentPass::GetOutputBufferId() { analysis::RuntimeArray uint_rarr_ty(reg_uint_ty); analysis::Type* reg_uint_rarr_ty = type_mgr->GetRegisteredType(&uint_rarr_ty); + uint32_t uint_arr_ty_id = type_mgr->GetTypeInstruction(reg_uint_rarr_ty); + deco_mgr->AddDecorationVal(uint_arr_ty_id, SpvDecorationArrayStride, 4u); analysis::Struct obuf_ty({reg_uint_ty, reg_uint_rarr_ty}); analysis::Type* reg_obuf_ty = type_mgr->GetRegisteredType(&obuf_ty); uint32_t obufTyId = type_mgr->GetTypeInstruction(reg_obuf_ty); diff --git a/test/opt/inst_bindless_check_test.cpp b/test/opt/inst_bindless_check_test.cpp index 1a1a19478..ddafb3dc2 100644 --- a/test/opt/inst_bindless_check_test.cpp +++ b/test/opt/inst_bindless_check_test.cpp @@ -92,7 +92,8 @@ OpDecorate %_entryPointOutput_vColor Location 0 )"; const std::string new_annots = - R"(OpDecorate %_struct_55 Block + R"(OpDecorate %_runtimearr_uint ArrayStride 4 +OpDecorate %_struct_55 Block OpMemberDecorate %_struct_55 0 Offset 0 OpMemberDecorate %_struct_55 1 Offset 4 OpDecorate %57 DescriptorSet 7 @@ -441,6 +442,7 @@ OpDecorate %PerViewConstantBuffer_t Block OpDecorate %g_sAniso DescriptorSet 0 OpDecorate %i_vTextureCoords Location 0 OpDecorate %_entryPointOutput_vColor Location 0 +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_63 Block OpMemberDecorate %_struct_63 0 Offset 0 OpMemberDecorate %_struct_63 1 Offset 4 @@ -735,6 +737,7 @@ OpDecorate %_entryPointOutput_vColor Location 0 OpDecorate %10 DescriptorSet 7 OpDecorate %10 Binding 0 OpDecorate %gl_FragCoord BuiltIn FragCoord +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_34 Block OpMemberDecorate %_struct_34 0 Offset 0 OpMemberDecorate %_struct_34 1 Offset 4 @@ -968,6 +971,7 @@ OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0 OpDecorate %PerViewConstantBuffer_t Block OpDecorate %i_vTextureCoords Location 0 OpDecorate %_entryPointOutput_vColor Location 0 +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_51 Block OpMemberDecorate %_struct_51 0 Offset 0 OpMemberDecorate %_struct_51 1 Offset 4 @@ -1193,6 +1197,7 @@ OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0 OpDecorate %PerViewConstantBuffer_t Block OpDecorate %i_vTextureCoords Location 0 OpDecorate %_entryPointOutput_vColor Location 0 +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_49 Block OpMemberDecorate %_struct_49 0 Offset 0 OpMemberDecorate %_struct_49 1 Offset 4 @@ -1418,6 +1423,7 @@ OpMemberDecorate %PerViewConstantBuffer_t 0 Offset 0 OpDecorate %PerViewConstantBuffer_t Block OpDecorate %i_vTextureCoords Location 0 OpDecorate %_entryPointOutput_vColor Location 0 +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_48 Block OpMemberDecorate %_struct_48 0 Offset 0 OpMemberDecorate %_struct_48 1 Offset 4 @@ -1672,6 +1678,7 @@ OpDecorate %foo Block OpDecorate %__0 DescriptorSet 0 OpDecorate %__0 Binding 5 OpDecorate %coords2D Location 0 +OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %_struct_61 Block OpMemberDecorate %_struct_61 0 Offset 0 OpMemberDecorate %_struct_61 1 Offset 4