diff --git a/common/output_stream.cpp b/common/output_stream.cpp index be89f751..7bc02bcf 100644 --- a/common/output_stream.cpp +++ b/common/output_stream.cpp @@ -2172,6 +2172,15 @@ void SpvReflectToYaml::Write(std::ostream& os) { os << t2 << "- *bv" << itor->second << " # " << SafeString(sm_.push_constant_blocks[i].name) << std::endl; } + // uint32_t spec_constant_count; + os << t1 << "specialization_constant_count: " << sm_.spec_constant_count << ",\n"; + // SpvReflectSpecializationConstant* spec_constants; + os << t1 << "specialization_constants:" << std::endl; + for (uint32_t i = 0; i < sm_.spec_constant_count; ++i) { + os << t3 << "spirv_id: " << sm_.spec_constants[i].spirv_id << std::endl; + os << t3 << "constant_id: " << sm_.spec_constants[i].constant_id << std::endl; + } + if (verbosity_ >= 2) { // struct Internal { os << t1 << "_internal:" << std::endl; diff --git a/spirv_reflect.c b/spirv_reflect.c index bdabf301..867afb6a 100644 --- a/spirv_reflect.c +++ b/spirv_reflect.c @@ -1352,7 +1352,8 @@ static SpvReflectResult ParseNames(SpvReflectPrvParser* p_parser) { return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser) { +static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser, SpvReflectShaderModule* p_module) { + uint32_t spec_constant_count = 0; for (uint32_t i = 0; i < p_parser->node_count; ++i) { SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); @@ -1538,8 +1539,7 @@ static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser) { } break; case SpvDecorationSpecId: { - uint32_t word_offset = p_node->word_offset + member_offset + 3; - CHECKED_READU32(p_parser, word_offset, p_target_decorations->spec_id); + spec_constant_count++; } break; case SpvDecorationHlslCounterBufferGOOGLE: { @@ -1563,6 +1563,27 @@ static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser) { } break; } } + + if (spec_constant_count > 0) { + p_module->spec_constants = (SpvReflectSpecializationConstant*)calloc(spec_constant_count, sizeof(*p_module->spec_constants)); + if (IsNull(p_module->spec_constants)) { + return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; + } + } + for (uint32_t i = 0; i < p_parser->node_count; ++i) { + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); + if (p_node->op == SpvOpDecorate) { + uint32_t decoration = (uint32_t)INVALID_VALUE; + CHECKED_READU32(p_parser, p_node->word_offset + 2, decoration); + if (decoration == SpvDecorationSpecId) { + const uint32_t count = p_module->spec_constant_count; + CHECKED_READU32(p_parser, p_node->word_offset + 1, p_module->spec_constants[count].constant_id); + CHECKED_READU32(p_parser, p_node->word_offset + 3, p_module->spec_constants[count].spirv_id); + p_module->spec_constant_count++; + } + } + } + return SPV_REFLECT_RESULT_SUCCESS; } @@ -3861,7 +3882,7 @@ static SpvReflectResult CreateShaderModule(uint32_t flags, size_t size, const vo SPV_REFLECT_ASSERT(result == SPV_REFLECT_RESULT_SUCCESS); } if (result == SPV_REFLECT_RESULT_SUCCESS) { - result = ParseDecorations(&parser); + result = ParseDecorations(&parser, p_module); SPV_REFLECT_ASSERT(result == SPV_REFLECT_RESULT_SUCCESS); } @@ -4050,6 +4071,7 @@ void spvReflectDestroyShaderModule(SpvReflectShaderModule* p_module) { } SafeFree(p_module->capabilities); SafeFree(p_module->entry_points); + SafeFree(p_module->spec_constants); // Push constants for (size_t i = 0; i < p_module->push_constant_block_count; ++i) { @@ -4455,6 +4477,31 @@ SpvReflectResult spvReflectEnumerateEntryPointPushConstantBlocks(const SpvReflec return SPV_REFLECT_RESULT_SUCCESS; } +SpvReflectResult spvReflectEnumerateSpecializationConstants(const SpvReflectShaderModule* p_module, uint32_t* p_count, + SpvReflectSpecializationConstant** pp_constants) { + if (IsNull(p_module)) { + return SPV_REFLECT_RESULT_ERROR_NULL_POINTER; + } + if (IsNull(p_count)) { + return SPV_REFLECT_RESULT_ERROR_NULL_POINTER; + } + + if (IsNotNull(pp_constants)) { + if (*p_count != p_module->spec_constant_count) { + return SPV_REFLECT_RESULT_ERROR_COUNT_MISMATCH; + } + + for (uint32_t index = 0; index < *p_count; ++index) { + SpvReflectSpecializationConstant* p_constant = (SpvReflectSpecializationConstant*)&p_module->spec_constants[index]; + pp_constants[index] = p_constant; + } + } else { + *p_count = p_module->spec_constant_count; + } + + return SPV_REFLECT_RESULT_SUCCESS; +} + const SpvReflectDescriptorBinding* spvReflectGetDescriptorBinding(const SpvReflectShaderModule* p_module, uint32_t binding_number, uint32_t set_number, SpvReflectResult* p_result) { const SpvReflectDescriptorBinding* p_descriptor = NULL; diff --git a/spirv_reflect.h b/spirv_reflect.h index 77b691d3..76fa967b 100644 --- a/spirv_reflect.h +++ b/spirv_reflect.h @@ -519,6 +519,15 @@ typedef struct SpvReflectCapability { uint32_t word_offset; } SpvReflectCapability; + +/*! @struct SpvReflectSpecId + +*/ +typedef struct SpvReflectSpecializationConstant { + uint32_t spirv_id; + uint32_t constant_id; +} SpvReflectSpecializationConstant; + /*! @struct SpvReflectShaderModule */ @@ -548,6 +557,8 @@ typedef struct SpvReflectShaderModule { SpvReflectInterfaceVariable* interface_variables; // Uses value(s) from first entry point uint32_t push_constant_block_count; // Uses value(s) from first entry point SpvReflectBlockVariable* push_constant_blocks; // Uses value(s) from first entry point + uint32_t spec_constant_count; // Uses value(s) from first entry point + SpvReflectSpecializationConstant* spec_constants; // Uses value(s) from first entry point struct Internal { SpvReflectModuleFlags module_flags; @@ -959,6 +970,25 @@ SpvReflectResult spvReflectEnumerateEntryPointPushConstantBlocks( ); +/*! @fn spvReflectEnumerateSpecializationConstants + @param p_module Pointer to an instance of SpvReflectShaderModule. + @param p_count If pp_blocks is NULL, the module's specialization constant + count will be stored here. If pp_blocks is not NULL, *p_count + must contain the module's specialization constant count. + @param pp_constants If NULL, the module's specialization constant count + will be written to *p_count. If non-NULL, pp_blocks must + point to an array with *p_count entries, where pointers to + the module's specialization constant blocks will be written. + The caller must not free the variables written to this array. + @return If successful, returns SPV_REFLECT_RESULT_SUCCESS. + Otherwise, the error code indicates the cause of the failure. +*/ +SpvReflectResult spvReflectEnumerateSpecializationConstants( + const SpvReflectShaderModule* p_module, + uint32_t* p_count, + SpvReflectSpecializationConstant** pp_constants +); + /*! @fn spvReflectGetDescriptorBinding @param p_module Pointer to an instance of SpvReflectShaderModule. @@ -1549,6 +1579,7 @@ class ShaderModule { SpvReflectResult EnumeratePushConstants(uint32_t* p_count, SpvReflectBlockVariable** pp_blocks) const { return EnumeratePushConstantBlocks(p_count, pp_blocks); } + SpvReflectResult EnumerateSpecializationConstants(uint32_t* p_count, SpvReflectSpecializationConstant** pp_constants) const; const SpvReflectDescriptorBinding* GetDescriptorBinding(uint32_t binding_number, uint32_t set_number, SpvReflectResult* p_result = nullptr) const; const SpvReflectDescriptorBinding* GetEntryPointDescriptorBinding(const char* entry_point, uint32_t binding_number, uint32_t set_number, SpvReflectResult* p_result = nullptr) const; @@ -1996,6 +2027,24 @@ inline SpvReflectResult ShaderModule::EnumeratePushConstantBlocks( return m_result; } +/*! @fn EnumerateSpecializationConstants + @param p_count + @param pp_constants + @return +*/ +inline SpvReflectResult ShaderModule::EnumerateSpecializationConstants( + uint32_t* p_count, + SpvReflectSpecializationConstant** pp_constants +) const +{ + m_result = spvReflectEnumerateSpecializationConstants( + &m_module, + p_count, + pp_constants + ); + return m_result; +} + /*! @fn EnumerateEntryPointPushConstantBlocks @param entry_point diff --git a/tests/16bit/vert_in_out_16.spv.yaml b/tests/16bit/vert_in_out_16.spv.yaml index bf45b643..8f262ab7 100644 --- a/tests/16bit/vert_in_out_16.spv.yaml +++ b/tests/16bit/vert_in_out_16.spv.yaml @@ -352,4 +352,6 @@ module: - *iv11 # "_f" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/access_chains/array_length_from_access_chain.spv.yaml b/tests/access_chains/array_length_from_access_chain.spv.yaml index bcd8ff69..96e05c42 100644 --- a/tests/access_chains/array_length_from_access_chain.spv.yaml +++ b/tests/access_chains/array_length_from_access_chain.spv.yaml @@ -143,4 +143,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/cbuffer_unused/cbuffer_unused_001.spv.yaml b/tests/cbuffer_unused/cbuffer_unused_001.spv.yaml index 6c73f5ca..1402023a 100644 --- a/tests/cbuffer_unused/cbuffer_unused_001.spv.yaml +++ b/tests/cbuffer_unused/cbuffer_unused_001.spv.yaml @@ -3393,4 +3393,6 @@ module: - *iv1 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/entry_exec_mode/comp_local_size.spv.yaml b/tests/entry_exec_mode/comp_local_size.spv.yaml index 763ef251..de82445c 100644 --- a/tests/entry_exec_mode/comp_local_size.spv.yaml +++ b/tests/entry_exec_mode/comp_local_size.spv.yaml @@ -109,4 +109,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/entry_exec_mode/geom_inv_out_vert.spv.yaml b/tests/entry_exec_mode/geom_inv_out_vert.spv.yaml index fec4d3aa..dee63e34 100644 --- a/tests/entry_exec_mode/geom_inv_out_vert.spv.yaml +++ b/tests/entry_exec_mode/geom_inv_out_vert.spv.yaml @@ -390,4 +390,6 @@ module: - *iv9 # "" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/execution_mode/local_size_id.spv.yaml b/tests/execution_mode/local_size_id.spv.yaml index 163e9664..87e5ee5a 100644 --- a/tests/execution_mode/local_size_id.spv.yaml +++ b/tests/execution_mode/local_size_id.spv.yaml @@ -22,4 +22,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/execution_mode/local_size_id_spec.spv.yaml b/tests/execution_mode/local_size_id_spec.spv.yaml index 163e9664..87e5ee5a 100644 --- a/tests/execution_mode/local_size_id_spec.spv.yaml +++ b/tests/execution_mode/local_size_id_spec.spv.yaml @@ -22,4 +22,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_0.spv.yaml b/tests/glsl/buffer_handle_0.spv.yaml index a4c47fce..d6a22aa2 100644 --- a/tests/glsl/buffer_handle_0.spv.yaml +++ b/tests/glsl/buffer_handle_0.spv.yaml @@ -1299,4 +1299,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_1.spv.yaml b/tests/glsl/buffer_handle_1.spv.yaml index 2378087e..fc12708f 100644 --- a/tests/glsl/buffer_handle_1.spv.yaml +++ b/tests/glsl/buffer_handle_1.spv.yaml @@ -688,4 +688,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_2.spv.yaml b/tests/glsl/buffer_handle_2.spv.yaml index ea49f3c9..69d36be7 100644 --- a/tests/glsl/buffer_handle_2.spv.yaml +++ b/tests/glsl/buffer_handle_2.spv.yaml @@ -820,4 +820,6 @@ module: push_constant_count: 1, push_constants: - *bv8 # "pc" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_3.spv.yaml b/tests/glsl/buffer_handle_3.spv.yaml index c6b2a092..4d73f704 100644 --- a/tests/glsl/buffer_handle_3.spv.yaml +++ b/tests/glsl/buffer_handle_3.spv.yaml @@ -427,4 +427,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_4.spv.yaml b/tests/glsl/buffer_handle_4.spv.yaml index 3b5724f0..d476baf8 100644 --- a/tests/glsl/buffer_handle_4.spv.yaml +++ b/tests/glsl/buffer_handle_4.spv.yaml @@ -334,4 +334,6 @@ module: push_constant_count: 1, push_constants: - *bv5 # "params" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_5.spv.yaml b/tests/glsl/buffer_handle_5.spv.yaml index 383ff20c..da5ed98d 100644 --- a/tests/glsl/buffer_handle_5.spv.yaml +++ b/tests/glsl/buffer_handle_5.spv.yaml @@ -229,4 +229,6 @@ module: push_constant_count: 1, push_constants: - *bv3 # "params" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_6.spv.yaml b/tests/glsl/buffer_handle_6.spv.yaml index b0e0137d..5d7c81f3 100644 --- a/tests/glsl/buffer_handle_6.spv.yaml +++ b/tests/glsl/buffer_handle_6.spv.yaml @@ -280,4 +280,6 @@ module: push_constant_count: 1, push_constants: - *bv4 # "g_GlobalsBDAPushConstant_0" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_7.spv.yaml b/tests/glsl/buffer_handle_7.spv.yaml index 9d2034f4..65b918fe 100644 --- a/tests/glsl/buffer_handle_7.spv.yaml +++ b/tests/glsl/buffer_handle_7.spv.yaml @@ -334,4 +334,6 @@ module: push_constant_count: 1, push_constants: - *bv4 # "params" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_handle_8.spv.yaml b/tests/glsl/buffer_handle_8.spv.yaml index 3d8100a4..77603c61 100644 --- a/tests/glsl/buffer_handle_8.spv.yaml +++ b/tests/glsl/buffer_handle_8.spv.yaml @@ -183,4 +183,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/buffer_pointer.spv.yaml b/tests/glsl/buffer_pointer.spv.yaml index 26c3e43a..0f158bec 100644 --- a/tests/glsl/buffer_pointer.spv.yaml +++ b/tests/glsl/buffer_pointer.spv.yaml @@ -278,4 +278,6 @@ module: push_constant_count: 1, push_constants: - *bv4 # "push" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/built_in_format.spv.yaml b/tests/glsl/built_in_format.spv.yaml index 3c899031..d8b5ac76 100644 --- a/tests/glsl/built_in_format.spv.yaml +++ b/tests/glsl/built_in_format.spv.yaml @@ -278,4 +278,6 @@ module: - *iv6 # "texcoord" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/fn_struct_param.spv.yaml b/tests/glsl/fn_struct_param.spv.yaml index e0566878..7b7cd2b9 100644 --- a/tests/glsl/fn_struct_param.spv.yaml +++ b/tests/glsl/fn_struct_param.spv.yaml @@ -179,4 +179,6 @@ module: - *iv0 # "outColor" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/frag_array_input.spv.yaml b/tests/glsl/frag_array_input.spv.yaml index 2163a219..b04da18c 100644 --- a/tests/glsl/frag_array_input.spv.yaml +++ b/tests/glsl/frag_array_input.spv.yaml @@ -755,4 +755,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/frag_barycentric.spv.yaml b/tests/glsl/frag_barycentric.spv.yaml index 3db473a4..fce82b63 100644 --- a/tests/glsl/frag_barycentric.spv.yaml +++ b/tests/glsl/frag_barycentric.spv.yaml @@ -149,4 +149,6 @@ module: - *iv3 # "value" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/input_attachment.spv.yaml b/tests/glsl/input_attachment.spv.yaml index ba226b2a..be6dee7b 100644 --- a/tests/glsl/input_attachment.spv.yaml +++ b/tests/glsl/input_attachment.spv.yaml @@ -177,4 +177,6 @@ module: - *iv0 # "oColor" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/io_vars_vs.spv.yaml b/tests/glsl/io_vars_vs.spv.yaml index 0587425f..fbdb20a3 100644 --- a/tests/glsl/io_vars_vs.spv.yaml +++ b/tests/glsl/io_vars_vs.spv.yaml @@ -350,4 +350,6 @@ module: - *iv8 # "normals" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/matrix_major_order_glsl.spv.yaml b/tests/glsl/matrix_major_order_glsl.spv.yaml index 34a18032..b8726869 100644 --- a/tests/glsl/matrix_major_order_glsl.spv.yaml +++ b/tests/glsl/matrix_major_order_glsl.spv.yaml @@ -1048,4 +1048,6 @@ module: - *iv1 # "my_output" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/non_writable_image.spv.yaml b/tests/glsl/non_writable_image.spv.yaml index 2c94bba7..5663bf12 100644 --- a/tests/glsl/non_writable_image.spv.yaml +++ b/tests/glsl/non_writable_image.spv.yaml @@ -144,4 +144,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/runtime_array_of_array_of_struct.spv.yaml b/tests/glsl/runtime_array_of_array_of_struct.spv.yaml index 40014c4b..329a2282 100644 --- a/tests/glsl/runtime_array_of_array_of_struct.spv.yaml +++ b/tests/glsl/runtime_array_of_array_of_struct.spv.yaml @@ -365,4 +365,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/storage_buffer.spv.yaml b/tests/glsl/storage_buffer.spv.yaml index 915badd5..bab51b9b 100644 --- a/tests/glsl/storage_buffer.spv.yaml +++ b/tests/glsl/storage_buffer.spv.yaml @@ -229,4 +229,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/glsl/texel_buffer.spv.yaml b/tests/glsl/texel_buffer.spv.yaml index 5ba245b5..8590910e 100644 --- a/tests/glsl/texel_buffer.spv.yaml +++ b/tests/glsl/texel_buffer.spv.yaml @@ -345,4 +345,6 @@ module: - *iv5 # "" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/append_consume.spv.yaml b/tests/hlsl/append_consume.spv.yaml index f2246f43..ef2d6e49 100644 --- a/tests/hlsl/append_consume.spv.yaml +++ b/tests/hlsl/append_consume.spv.yaml @@ -453,4 +453,6 @@ module: - *iv1 # "out.var.SV_TARGET" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/array_of_structured_buffer.spv.yaml b/tests/hlsl/array_of_structured_buffer.spv.yaml index 153d939b..fb2d4eed 100644 --- a/tests/hlsl/array_of_structured_buffer.spv.yaml +++ b/tests/hlsl/array_of_structured_buffer.spv.yaml @@ -229,4 +229,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/binding_array.spv.yaml b/tests/hlsl/binding_array.spv.yaml index 5ebf1804..ee01e419 100644 --- a/tests/hlsl/binding_array.spv.yaml +++ b/tests/hlsl/binding_array.spv.yaml @@ -180,4 +180,6 @@ module: - *iv1 # "out.var.SV_TARGET" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/binding_types.spv.yaml b/tests/hlsl/binding_types.spv.yaml index 027027cf..3ec7148f 100644 --- a/tests/hlsl/binding_types.spv.yaml +++ b/tests/hlsl/binding_types.spv.yaml @@ -1905,4 +1905,6 @@ module: - *iv1 # "out.var.SV_TARGET" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/cbuffer.spv.yaml b/tests/hlsl/cbuffer.spv.yaml index 000553a3..e87d8cdc 100644 --- a/tests/hlsl/cbuffer.spv.yaml +++ b/tests/hlsl/cbuffer.spv.yaml @@ -946,4 +946,6 @@ module: - *iv1 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/constantbuffer.spv.yaml b/tests/hlsl/constantbuffer.spv.yaml index 3dfad448..88f5f937 100644 --- a/tests/hlsl/constantbuffer.spv.yaml +++ b/tests/hlsl/constantbuffer.spv.yaml @@ -1111,4 +1111,6 @@ module: - *iv5 # "gl_PerVertexOut" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/constantbuffer_nested_structs.spv.yaml b/tests/hlsl/constantbuffer_nested_structs.spv.yaml index 3ee26c58..337c545d 100644 --- a/tests/hlsl/constantbuffer_nested_structs.spv.yaml +++ b/tests/hlsl/constantbuffer_nested_structs.spv.yaml @@ -6755,4 +6755,6 @@ module: - *iv5 # "gl_PerVertexOut" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/counter_buffers.spv.yaml b/tests/hlsl/counter_buffers.spv.yaml index 34e7f2cd..58084319 100644 --- a/tests/hlsl/counter_buffers.spv.yaml +++ b/tests/hlsl/counter_buffers.spv.yaml @@ -517,4 +517,6 @@ module: - *iv1 # "out.var.SV_TARGET0" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/localsize.spv.yaml b/tests/hlsl/localsize.spv.yaml index ccd1bf0e..67cec531 100644 --- a/tests/hlsl/localsize.spv.yaml +++ b/tests/hlsl/localsize.spv.yaml @@ -22,4 +22,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/matrix_major_order_hlsl.spv.yaml b/tests/hlsl/matrix_major_order_hlsl.spv.yaml index dcd24413..dbe6c6d2 100644 --- a/tests/hlsl/matrix_major_order_hlsl.spv.yaml +++ b/tests/hlsl/matrix_major_order_hlsl.spv.yaml @@ -1048,4 +1048,6 @@ module: - *iv1 # "out.var.SV_TARGET" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/pushconstant.spv.yaml b/tests/hlsl/pushconstant.spv.yaml index 2b860519..84d06a0d 100644 --- a/tests/hlsl/pushconstant.spv.yaml +++ b/tests/hlsl/pushconstant.spv.yaml @@ -193,4 +193,6 @@ module: push_constant_count: 1, push_constants: - *bv3 # "g_PushConstants" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/semantics.spv.yaml b/tests/hlsl/semantics.spv.yaml index 00e7a2d2..2ea32b47 100644 --- a/tests/hlsl/semantics.spv.yaml +++ b/tests/hlsl/semantics.spv.yaml @@ -619,4 +619,6 @@ module: - *iv16 # "out.var.SV_TARGET7" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/hlsl/structuredbuffer.spv.yaml b/tests/hlsl/structuredbuffer.spv.yaml index 0523713a..fc636fee 100644 --- a/tests/hlsl/structuredbuffer.spv.yaml +++ b/tests/hlsl/structuredbuffer.spv.yaml @@ -621,4 +621,6 @@ module: - *iv0 # "out.var.SV_Target" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/interface/geom_input_builtin_array.spv.yaml b/tests/interface/geom_input_builtin_array.spv.yaml index 8a890c80..d40f2c0f 100644 --- a/tests/interface/geom_input_builtin_array.spv.yaml +++ b/tests/interface/geom_input_builtin_array.spv.yaml @@ -205,4 +205,6 @@ module: - *iv4 # "" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/interface/vertex_input_builtin_block.spv.yaml b/tests/interface/vertex_input_builtin_block.spv.yaml index 0adc801e..f6ea7b3d 100644 --- a/tests/interface/vertex_input_builtin_block.spv.yaml +++ b/tests/interface/vertex_input_builtin_block.spv.yaml @@ -242,4 +242,6 @@ module: - *iv5 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/interface/vertex_input_builtin_non_block.spv.yaml b/tests/interface/vertex_input_builtin_non_block.spv.yaml index d63667a1..151dc257 100644 --- a/tests/interface/vertex_input_builtin_non_block.spv.yaml +++ b/tests/interface/vertex_input_builtin_non_block.spv.yaml @@ -187,4 +187,6 @@ module: - *iv4 # "" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/178/vertex_input_struct.spv.yaml b/tests/issues/178/vertex_input_struct.spv.yaml index 8f1de81a..19384831 100644 --- a/tests/issues/178/vertex_input_struct.spv.yaml +++ b/tests/issues/178/vertex_input_struct.spv.yaml @@ -132,4 +132,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/178/vertex_input_struct2.spv.yaml b/tests/issues/178/vertex_input_struct2.spv.yaml index 3988114f..08a25947 100644 --- a/tests/issues/178/vertex_input_struct2.spv.yaml +++ b/tests/issues/178/vertex_input_struct2.spv.yaml @@ -169,4 +169,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/227/null_node.spv.yaml b/tests/issues/227/null_node.spv.yaml index a6c41c61..fa5287cf 100644 --- a/tests/issues/227/null_node.spv.yaml +++ b/tests/issues/227/null_node.spv.yaml @@ -245,4 +245,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/77/hlsl/array_from_ubo.spv.yaml b/tests/issues/77/hlsl/array_from_ubo.spv.yaml index 8162a937..0d6172c3 100644 --- a/tests/issues/77/hlsl/array_from_ubo.spv.yaml +++ b/tests/issues/77/hlsl/array_from_ubo.spv.yaml @@ -253,4 +253,6 @@ module: - *iv3 # "out.var.POSITION" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/77/hlsl/array_from_ubo_with_O0.spv.yaml b/tests/issues/77/hlsl/array_from_ubo_with_O0.spv.yaml index 95f7213a..d67f9685 100644 --- a/tests/issues/77/hlsl/array_from_ubo_with_O0.spv.yaml +++ b/tests/issues/77/hlsl/array_from_ubo_with_O0.spv.yaml @@ -253,4 +253,6 @@ module: - *iv3 # "out.var.POSITION" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/issues/77/hlsl/rocketz.spv.yaml b/tests/issues/77/hlsl/rocketz.spv.yaml index 8162a937..0d6172c3 100644 --- a/tests/issues/77/hlsl/rocketz.spv.yaml +++ b/tests/issues/77/hlsl/rocketz.spv.yaml @@ -253,4 +253,6 @@ module: - *iv3 # "out.var.POSITION" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/mesh_shader_ext/mesh_shader_ext.mesh.hlsl.spv.yaml b/tests/mesh_shader_ext/mesh_shader_ext.mesh.hlsl.spv.yaml index ef9549fd..307767eb 100644 --- a/tests/mesh_shader_ext/mesh_shader_ext.mesh.hlsl.spv.yaml +++ b/tests/mesh_shader_ext/mesh_shader_ext.mesh.hlsl.spv.yaml @@ -240,4 +240,6 @@ module: - *iv6 # "out.var.COLOR0" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/mesh_shader_ext/mesh_shader_ext.task.hlsl.spv.yaml b/tests/mesh_shader_ext/mesh_shader_ext.task.hlsl.spv.yaml index fe876cb8..9a8f3f84 100644 --- a/tests/mesh_shader_ext/mesh_shader_ext.task.hlsl.spv.yaml +++ b/tests/mesh_shader_ext/mesh_shader_ext.task.hlsl.spv.yaml @@ -132,4 +132,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/multi_entrypoint/multi_entrypoint.spv.yaml b/tests/multi_entrypoint/multi_entrypoint.spv.yaml index 1bbea8ed..98ba97af 100644 --- a/tests/multi_entrypoint/multi_entrypoint.spv.yaml +++ b/tests/multi_entrypoint/multi_entrypoint.spv.yaml @@ -457,4 +457,6 @@ module: push_constants: - *bv4 # "push_constant_vert" - *bv6 # "push_constant_frag" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/push_constants/non_zero_block_offset.spv.yaml b/tests/push_constants/non_zero_block_offset.spv.yaml index c9748a08..5d983ae5 100644 --- a/tests/push_constants/non_zero_block_offset.spv.yaml +++ b/tests/push_constants/non_zero_block_offset.spv.yaml @@ -341,4 +341,6 @@ module: push_constant_count: 1, push_constants: - *bv3 # "pc" + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_equal.cs.spv.yaml b/tests/raytrace/rayquery_equal.cs.spv.yaml index 98009fc0..d39d7885 100644 --- a/tests/raytrace/rayquery_equal.cs.spv.yaml +++ b/tests/raytrace/rayquery_equal.cs.spv.yaml @@ -161,4 +161,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_ds.spv.yaml b/tests/raytrace/rayquery_init_ds.spv.yaml index 65452254..c5b621cc 100644 --- a/tests/raytrace/rayquery_init_ds.spv.yaml +++ b/tests/raytrace/rayquery_init_ds.spv.yaml @@ -255,4 +255,6 @@ module: - *iv4 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_gs.spv.yaml b/tests/raytrace/rayquery_init_gs.spv.yaml index f2a01bc5..e3607d18 100644 --- a/tests/raytrace/rayquery_init_gs.spv.yaml +++ b/tests/raytrace/rayquery_init_gs.spv.yaml @@ -111,4 +111,6 @@ module: - *iv0 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_hs.spv.yaml b/tests/raytrace/rayquery_init_hs.spv.yaml index f468627f..1bb02b39 100644 --- a/tests/raytrace/rayquery_init_hs.spv.yaml +++ b/tests/raytrace/rayquery_init_hs.spv.yaml @@ -238,4 +238,6 @@ module: - *iv4 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_ps.spv.yaml b/tests/raytrace/rayquery_init_ps.spv.yaml index 35fb0ac5..800238bc 100644 --- a/tests/raytrace/rayquery_init_ps.spv.yaml +++ b/tests/raytrace/rayquery_init_ps.spv.yaml @@ -111,4 +111,6 @@ module: - *iv0 # "out.var.SV_Target" push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_rahit.spv.yaml b/tests/raytrace/rayquery_init_rahit.spv.yaml index 018ca3d6..c62bd76b 100644 --- a/tests/raytrace/rayquery_init_rahit.spv.yaml +++ b/tests/raytrace/rayquery_init_rahit.spv.yaml @@ -75,4 +75,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_rcall.spv.yaml b/tests/raytrace/rayquery_init_rcall.spv.yaml index f9a5cabb..0093da2f 100644 --- a/tests/raytrace/rayquery_init_rcall.spv.yaml +++ b/tests/raytrace/rayquery_init_rcall.spv.yaml @@ -75,4 +75,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_rchit.spv.yaml b/tests/raytrace/rayquery_init_rchit.spv.yaml index fa71af8c..69471f35 100644 --- a/tests/raytrace/rayquery_init_rchit.spv.yaml +++ b/tests/raytrace/rayquery_init_rchit.spv.yaml @@ -75,4 +75,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_rgen.spv.yaml b/tests/raytrace/rayquery_init_rgen.spv.yaml index 376f4148..cbda2387 100644 --- a/tests/raytrace/rayquery_init_rgen.spv.yaml +++ b/tests/raytrace/rayquery_init_rgen.spv.yaml @@ -75,4 +75,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/rayquery_init_rmiss.spv.yaml b/tests/raytrace/rayquery_init_rmiss.spv.yaml index f9a5cabb..0093da2f 100644 --- a/tests/raytrace/rayquery_init_rmiss.spv.yaml +++ b/tests/raytrace/rayquery_init_rmiss.spv.yaml @@ -75,4 +75,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.acceleration-structure.spv.yaml b/tests/raytrace/raytracing.acceleration-structure.spv.yaml index 230d6784..dd59032d 100644 --- a/tests/raytrace/raytracing.acceleration-structure.spv.yaml +++ b/tests/raytrace/raytracing.acceleration-structure.spv.yaml @@ -22,4 +22,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.khr.closesthit.spv.yaml b/tests/raytrace/raytracing.khr.closesthit.spv.yaml index 792ea252..f81a3a70 100644 --- a/tests/raytrace/raytracing.khr.closesthit.spv.yaml +++ b/tests/raytrace/raytracing.khr.closesthit.spv.yaml @@ -445,4 +445,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.acceleration-structure.spv.yaml b/tests/raytrace/raytracing.nv.acceleration-structure.spv.yaml index 230d6784..dd59032d 100644 --- a/tests/raytrace/raytracing.nv.acceleration-structure.spv.yaml +++ b/tests/raytrace/raytracing.nv.acceleration-structure.spv.yaml @@ -22,4 +22,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.anyhit.spv.yaml b/tests/raytrace/raytracing.nv.anyhit.spv.yaml index ba6a950e..853b9e71 100644 --- a/tests/raytrace/raytracing.nv.anyhit.spv.yaml +++ b/tests/raytrace/raytracing.nv.anyhit.spv.yaml @@ -373,4 +373,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.callable.spv.yaml b/tests/raytrace/raytracing.nv.callable.spv.yaml index 775712a2..618ca0d0 100644 --- a/tests/raytrace/raytracing.nv.callable.spv.yaml +++ b/tests/raytrace/raytracing.nv.callable.spv.yaml @@ -77,4 +77,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.closesthit.spv.yaml b/tests/raytrace/raytracing.nv.closesthit.spv.yaml index d8950b88..b1b9a77f 100644 --- a/tests/raytrace/raytracing.nv.closesthit.spv.yaml +++ b/tests/raytrace/raytracing.nv.closesthit.spv.yaml @@ -426,4 +426,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.enum.spv.yaml b/tests/raytrace/raytracing.nv.enum.spv.yaml index 5dabcb4e..96940bd9 100644 --- a/tests/raytrace/raytracing.nv.enum.spv.yaml +++ b/tests/raytrace/raytracing.nv.enum.spv.yaml @@ -130,4 +130,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.intersection.spv.yaml b/tests/raytrace/raytracing.nv.intersection.spv.yaml index b5d7ac7c..77c7d4d2 100644 --- a/tests/raytrace/raytracing.nv.intersection.spv.yaml +++ b/tests/raytrace/raytracing.nv.intersection.spv.yaml @@ -354,4 +354,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.library.spv.yaml b/tests/raytrace/raytracing.nv.library.spv.yaml index c91940c7..fc5c8dac 100644 --- a/tests/raytrace/raytracing.nv.library.spv.yaml +++ b/tests/raytrace/raytracing.nv.library.spv.yaml @@ -426,4 +426,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.miss.spv.yaml b/tests/raytrace/raytracing.nv.miss.spv.yaml index 18a35954..01083cf5 100644 --- a/tests/raytrace/raytracing.nv.miss.spv.yaml +++ b/tests/raytrace/raytracing.nv.miss.spv.yaml @@ -204,4 +204,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/raytrace/raytracing.nv.raygen.spv.yaml b/tests/raytrace/raytracing.nv.raygen.spv.yaml index 5dabcb4e..96940bd9 100644 --- a/tests/raytrace/raytracing.nv.raygen.spv.yaml +++ b/tests/raytrace/raytracing.nv.raygen.spv.yaml @@ -130,4 +130,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/spec_constants/basic.comp b/tests/spec_constants/basic.comp new file mode 100644 index 00000000..fec4bc52 --- /dev/null +++ b/tests/spec_constants/basic.comp @@ -0,0 +1,13 @@ +#version 450 + +layout(constant_id = 3) const int SIZE = 2; + +layout(set = 0, binding = 0, std430) buffer SSBO { + float val[SIZE]; + float dummy; +} ssbo; + +void main() { + ssbo.val[0] = 0.0; +} + diff --git a/tests/spec_constants/basic.spv b/tests/spec_constants/basic.spv new file mode 100644 index 00000000..7bb12229 Binary files /dev/null and b/tests/spec_constants/basic.spv differ diff --git a/tests/spec_constants/basic.spv.yaml b/tests/spec_constants/basic.spv.yaml new file mode 100644 index 00000000..ded1d80a --- /dev/null +++ b/tests/spec_constants/basic.spv.yaml @@ -0,0 +1,150 @@ +%YAML 1.0 +--- +all_type_descriptions: + - &td0 + id: 9 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [2,], stride: 4 } + member_count: 0 + members: + - &td1 + id: 6 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td2 + id: 10 + op: 30 + type_name: "SSBO" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td0 + - *td1 +all_block_variables: + - &bv0 + name: "val" + offset: 0 + absolute_offset: 0 + size: 8 + padded_size: 8 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [2,], stride: 4 } + member_count: 0 + members: + type_description: *td0 + - &bv1 + name: "dummy" + offset: 8 + absolute_offset: 8 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td1 + - &bv2 + name: "ssbo" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv0 + - *bv1 + type_description: *td2 +all_descriptor_bindings: + - &db0 + spirv_id: 12 + name: "ssbo" + binding: 0 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv2 # "ssbo" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td2 + word_offset: { binding: 83, set: 79 } +all_interface_variables: +module: + generator: 8 # Khronos Glslang Reference Front End + entry_point_name: "main" + entry_point_id: 4 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 1 + descriptor_bindings: + - *db0 # "ssbo" + descriptor_set_count: 1 + descriptor_sets: + - set: 0 + binding_count: 1 + bindings: + - *db0 # "ssbo" + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 1, + specialization_constants: + spirv_id: 3 + constant_id: 8 +... diff --git a/tests/spec_constants/convert.comp b/tests/spec_constants/convert.comp new file mode 100644 index 00000000..ad737005 --- /dev/null +++ b/tests/spec_constants/convert.comp @@ -0,0 +1,34 @@ +#version 450 + +#extension GL_EXT_shader_explicit_arithmetic_types_int64: enable + +layout(local_size_x = 1) in; + +layout(constant_id = 0) const int64_t SONE = 1; +layout(constant_id = 1) const uint64_t UONE = 1; +layout(constant_id = 2) const float F_ONE = 1.0; +layout(constant_id = 3) const double D_ONE = 1.0; + +const uint U_SONE = uint(SONE); +const uint U_UONE = uint(UONE); + +const int S_SONE = int(SONE); +const int S_UONE = int(UONE); + +const float F_ONE2 = float(D_ONE); +const double D_ONE2 = double(F_ONE); + +#define DUMMY_SSBO(name, bind, size) layout(std430, set = 0, binding = bind) buffer SSBO_##name { float val[size]; float dummy; } name + +DUMMY_SSBO(U_Sone, 0, U_SONE); +DUMMY_SSBO(U_Uone, 1, U_UONE); +DUMMY_SSBO(S_Sone, 2, S_SONE); +DUMMY_SSBO(S_Uone, 3, S_UONE); + +void main() +{ + U_Sone.val[0] = F_ONE; + U_Uone.val[0] = F_ONE; + S_Sone.val[0] = F_ONE2; + S_Uone.val[0] = F_ONE2; +} \ No newline at end of file diff --git a/tests/spec_constants/convert.spv b/tests/spec_constants/convert.spv new file mode 100644 index 00000000..948b8a3a Binary files /dev/null and b/tests/spec_constants/convert.spv differ diff --git a/tests/spec_constants/convert.spv.yaml b/tests/spec_constants/convert.spv.yaml new file mode 100644 index 00000000..d004be51 --- /dev/null +++ b/tests/spec_constants/convert.spv.yaml @@ -0,0 +1,510 @@ +%YAML 1.0 +--- +all_type_descriptions: + - &td0 + id: 14 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td1 + id: 6 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td2 + id: 15 + op: 30 + type_name: "SSBO_U_Sone" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td0 + - *td1 + - &td3 + id: 25 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [113,], stride: 4 } + member_count: 0 + members: + - &td4 + id: 6 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td5 + id: 26 + op: 30 + type_name: "SSBO_U_Uone" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td3 + - *td4 + - &td6 + id: 31 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [114,], stride: 4 } + member_count: 0 + members: + - &td7 + id: 6 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td8 + id: 32 + op: 30 + type_name: "SSBO_S_Sone" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td6 + - *td7 + - &td9 + id: 41 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td10 + id: 6 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td11 + id: 42 + op: 30 + type_name: "SSBO_S_Uone" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td9 + - *td10 +all_block_variables: + - &bv0 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td0 + - &bv1 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td1 + - &bv2 + name: "U_Sone" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv0 + - *bv1 + type_description: *td2 + - &bv3 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [113,], stride: 4 } + member_count: 0 + members: + type_description: *td3 + - &bv4 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td4 + - &bv5 + name: "U_Uone" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv3 + - *bv4 + type_description: *td5 + - &bv6 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [114,], stride: 4 } + member_count: 0 + members: + type_description: *td6 + - &bv7 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td7 + - &bv8 + name: "S_Sone" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv6 + - *bv7 + type_description: *td8 + - &bv9 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td9 + - &bv10 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td10 + - &bv11 + name: "S_Uone" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv9 + - *bv10 + type_description: *td11 +all_descriptor_bindings: + - &db0 + spirv_id: 17 + name: "U_Sone" + binding: 0 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv2 # "U_Sone" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td2 + word_offset: { binding: 191, set: 187 } + - &db1 + spirv_id: 28 + name: "U_Uone" + binding: 1 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv5 # "U_Uone" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td5 + word_offset: { binding: 224, set: 220 } + - &db2 + spirv_id: 34 + name: "S_Sone" + binding: 2 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv8 # "S_Sone" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td8 + word_offset: { binding: 249, set: 245 } + - &db3 + spirv_id: 44 + name: "S_Uone" + binding: 3 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv11 # "S_Uone" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td11 + word_offset: { binding: 278, set: 274 } +all_interface_variables: +module: + generator: 8 # Khronos Glslang Reference Front End + entry_point_name: "main" + entry_point_id: 4 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 4 + descriptor_bindings: + - *db0 # "U_Sone" + - *db1 # "U_Uone" + - *db2 # "S_Sone" + - *db3 # "S_Uone" + descriptor_set_count: 1 + descriptor_sets: + - set: 0 + binding_count: 4 + bindings: + - *db0 # "U_Sone" + - *db1 # "U_Uone" + - *db2 # "S_Sone" + - *db3 # "S_Uone" + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 4, + specialization_constants: + spirv_id: 0 + constant_id: 8 + spirv_id: 2 + constant_id: 19 + spirv_id: 1 + constant_id: 23 + spirv_id: 3 + constant_id: 36 +... diff --git a/tests/spec_constants/local_size_id.comp b/tests/spec_constants/local_size_id.comp new file mode 100644 index 00000000..733a21e4 --- /dev/null +++ b/tests/spec_constants/local_size_id.comp @@ -0,0 +1,7 @@ +#version 450 + +// note Z is not and ID +// Vulkan 1.3 is needed for glslang to use LocalSizeId over LocalSize +layout(local_size_x_id = 8, local_size_y_id = 4, local_size_z = 4) in; + +void main() { } diff --git a/tests/spec_constants/local_size_id_10.spv b/tests/spec_constants/local_size_id_10.spv new file mode 100644 index 00000000..cbbe5b0b Binary files /dev/null and b/tests/spec_constants/local_size_id_10.spv differ diff --git a/tests/spec_constants/local_size_id_10.spv.yaml b/tests/spec_constants/local_size_id_10.spv.yaml new file mode 100644 index 00000000..3e309583 --- /dev/null +++ b/tests/spec_constants/local_size_id_10.spv.yaml @@ -0,0 +1,31 @@ +%YAML 1.0 +--- +all_type_descriptions: +all_block_variables: +all_descriptor_bindings: +all_interface_variables: +module: + generator: 8 # Khronos Glslang Reference Front End + entry_point_name: "main" + entry_point_id: 4 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 0 + descriptor_bindings: + descriptor_set_count: 0 + descriptor_sets: + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 2, + specialization_constants: + spirv_id: 8 + constant_id: 7 + spirv_id: 4 + constant_id: 8 +... diff --git a/tests/spec_constants/local_size_id_13.spv b/tests/spec_constants/local_size_id_13.spv new file mode 100644 index 00000000..1a9497b0 Binary files /dev/null and b/tests/spec_constants/local_size_id_13.spv differ diff --git a/tests/spec_constants/local_size_id_13.spv.yaml b/tests/spec_constants/local_size_id_13.spv.yaml new file mode 100644 index 00000000..d176897a --- /dev/null +++ b/tests/spec_constants/local_size_id_13.spv.yaml @@ -0,0 +1,35 @@ +%YAML 1.0 +--- +all_type_descriptions: +all_block_variables: +all_descriptor_bindings: +all_interface_variables: +module: + generator: 8 # Khronos Glslang Reference Front End + entry_point_name: "main" + entry_point_id: 4 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 0 + descriptor_bindings: + descriptor_set_count: 0 + descriptor_sets: + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 4, + specialization_constants: + spirv_id: 8 + constant_id: 7 + spirv_id: 4 + constant_id: 8 + spirv_id: 8 + constant_id: 10 + spirv_id: 4 + constant_id: 11 +... diff --git a/tests/spec_constants/ssbo_array.glsl b/tests/spec_constants/ssbo_array.glsl new file mode 100644 index 00000000..0c0d0b55 --- /dev/null +++ b/tests/spec_constants/ssbo_array.glsl @@ -0,0 +1,12 @@ +#version 450 + +layout(constant_id = 8) const int SIZE_A = 4; +layout(constant_id = 5) const int SIZE_B = 3; +layout(set = 0, binding = 0, std430) buffer SSBO { + float a[SIZE_A]; + float b[SIZE_B]; +} ssbo; + +void main() { + ssbo.a[2] = ssbo.b[1]; +} \ No newline at end of file diff --git a/tests/spec_constants/ssbo_array.spv b/tests/spec_constants/ssbo_array.spv new file mode 100644 index 00000000..50dbfbfd Binary files /dev/null and b/tests/spec_constants/ssbo_array.spv differ diff --git a/tests/spec_constants/ssbo_array.spv.yaml b/tests/spec_constants/ssbo_array.spv.yaml new file mode 100644 index 00000000..ac01cdd3 --- /dev/null +++ b/tests/spec_constants/ssbo_array.spv.yaml @@ -0,0 +1,152 @@ +%YAML 1.0 +--- +all_type_descriptions: + - &td0 + id: 9 + op: 28 + type_name: + struct_member_name: "a" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [4,], stride: 4 } + member_count: 0 + members: + - &td1 + id: 11 + op: 28 + type_name: + struct_member_name: "b" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [3,], stride: 4 } + member_count: 0 + members: + - &td2 + id: 12 + op: 30 + type_name: "SSBO" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000002 # BUFFER_BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td0 + - *td1 +all_block_variables: + - &bv0 + name: "a" + offset: 0 + absolute_offset: 0 + size: 16 + padded_size: 16 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [4,], stride: 4 } + member_count: 0 + members: + type_description: *td0 + - &bv1 + name: "b" + offset: 16 + absolute_offset: 16 + size: 12 + padded_size: 12 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [3,], stride: 4 } + member_count: 0 + members: + type_description: *td1 + - &bv2 + name: "ssbo" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv0 + - *bv1 + type_description: *td2 +all_descriptor_bindings: + - &db0 + spirv_id: 14 + name: "ssbo" + binding: 0 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv2 # "ssbo" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td2 + word_offset: { binding: 94, set: 90 } +all_interface_variables: +module: + generator: 8 # Khronos Glslang Reference Front End + entry_point_name: "main" + entry_point_id: 4 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 1 + descriptor_bindings: + - *db0 # "ssbo" + descriptor_set_count: 1 + descriptor_sets: + - set: 0 + binding_count: 1 + bindings: + - *db0 # "ssbo" + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 2, + specialization_constants: + spirv_id: 8 + constant_id: 8 + spirv_id: 5 + constant_id: 10 +... diff --git a/tests/spec_constants/test_32bit.comp b/tests/spec_constants/test_32bit.comp new file mode 100644 index 00000000..edd29770 --- /dev/null +++ b/tests/spec_constants/test_32bit.comp @@ -0,0 +1,310 @@ +#version 450 +layout(local_size_x_id = 8, local_size_y = 1, local_size_z = 1) in; + +layout(constant_id = 2) const int SONE = 1; +layout(constant_id = 3) const int STWO = 2; +const int _141 = (SONE + STWO); +const uint _144 = (uint(_141) + 0u); +layout(constant_id = 5) const uint UONE = 1u; +const uint _145 = (_144 + UONE); +layout(constant_id = 6) const uint UTWO = 2u; +const uint IADD = (_145 + UTWO); +const uint _147 = (IADD - 5u); +layout(constant_id = 4) const int SNEG_TWO = -2; +const uint _152 = (uint(SNEG_TWO) + 0u); +const uint ISUB = (UTWO - _152); +const uint _154 = (ISUB - 3u); +const uint IMUL = (UTWO * UTWO); +const uint _156 = (IMUL - 3u); +const uint UDIV = (UTWO / UTWO); +layout(constant_id = 7) const int SNEG_THREE = -3; +const int SDIV = (STWO / SNEG_THREE); +const int _160 = (SDIV + 1); +const int SREM = STWO - SNEG_THREE * (STWO / SNEG_THREE); +const int _162 = (SREM - 1); +const int SMOD = (STWO % SNEG_THREE); +const int _165 = (SMOD + 2); +const uint UMOD = (IADD % IMUL); +const uint _168 = (UMOD - 1u); +const uint _170 = (ISUB - 3u); +const uint LSHL = (IADD << _170); +const uint _172 = (LSHL - 11u); +const uint _174 = (ISUB - 3u); +const uint RSHL = (IADD >> _174); +const uint _176 = (RSHL - 2u); +const int _178 = int(IADD + 0u); +const int _179 = (-_178); +const int _180 = (1 - SDIV); +const int RSHA = (_179 >> _180); +const int _182 = (RSHA + 4); +const uint _184 = (ISUB - 3u); +const bool IEQ = (IADD == _184); +const int _186 = IEQ ? 2 : 1; +const uint _188 = (ISUB - 3u); +const bool INEQ = (IADD != _188); +const int _189 = INEQ ? 1 : 2; +const uint _191 = (ISUB - 3u); +const bool ULT = (IADD < _191); +const int _192 = ULT ? 2 : 1; +const uint _194 = (ISUB - 3u); +const bool ULE = (IADD <= _194); +const int _195 = ULE ? 2 : 1; +const uint _197 = (ISUB - 3u); +const bool UGT = (IADD > _197); +const int _198 = UGT ? 1 : 2; +const uint _200 = (ISUB - 3u); +const bool UGE = (IADD >= _200); +const int _201 = UGE ? 1 : 2; +const bool SLT = (SMOD < SREM); +const int _203 = SLT ? 1 : 2; +const bool SLE = (SMOD <= SREM); +const int _205 = SLE ? 1 : 2; +const bool SGT = (SMOD > SREM); +const int _207 = SGT ? 2 : 1; +const bool SGE = (SMOD >= SREM); +const int _209 = SGE ? 2 : 1; +const bool LOR = (IEQ || SLT); +const int _211 = LOR ? 1 : 2; +const bool LAND = (IEQ && SLT); +const int _213 = LAND ? 2 : 1; +const bool LNOT = (!LOR); +const int _215 = LNOT ? 2 : 1; +const uint AND = (IADD & IADD); +const uint _217 = (AND - 5u); +const uint _219 = (ISUB - 3u); +const uint OR = (IADD | _219); +const uint _221 = (OR - 6u); +const uint XOR = (IADD ^ IADD); +const uint _223 = (XOR + 1u); +const uint NOT = (~XOR); +const uint _226 = (NOT - 4294967294u); +const bool LEQ = (LAND == LNOT); +const int _228 = LEQ ? 1 : 2; +const bool LNEQ = (LAND != LNOT); +const int _230 = LNEQ ? 2 : 1; +const uint _232 = (ISUB - 3u); +const uint SEL = IEQ ? IADD : _232; +layout(constant_id = 0) const bool TRUE = true; +layout(constant_id = 1) const bool FALSE = false; + +layout(set = 0, binding = 0, std430) buffer SSBO_IAdd +{ + float val[_147]; + float dummy; +} IAdd; + +layout(set = 0, binding = 1, std430) buffer SSBO_ISub +{ + float val[_154]; + float dummy; +} ISub; + +layout(set = 0, binding = 2, std430) buffer SSBO_IMul +{ + float val[_156]; + float dummy; +} IMul; + +layout(set = 0, binding = 3, std430) buffer SSBO_UDiv +{ + float val[UDIV]; + float dummy; +} UDiv; + +layout(set = 0, binding = 4, std430) buffer SSBO_SDiv +{ + float val[_160]; + float dummy; +} SDiv; + +layout(set = 0, binding = 5, std430) buffer SSBO_SRem +{ + float val[_162]; + float dummy; +} SRem; + +layout(set = 0, binding = 6, std430) buffer SSBO_SMod +{ + float val[_165]; + float dummy; +} SMod; + +layout(set = 0, binding = 7, std430) buffer SSBO_UMod +{ + float val[_168]; + float dummy; +} UMod; + +layout(set = 0, binding = 8, std430) buffer SSBO_LShl +{ + float val[_172]; + float dummy; +} LShl; + +layout(set = 0, binding = 9, std430) buffer SSBO_RShl +{ + float val[_176]; + float dummy; +} RShl; + +layout(set = 0, binding = 10, std430) buffer SSBO_RSha +{ + float val[_182]; + float dummy; +} RSha; + +layout(set = 0, binding = 11, std430) buffer SSBO_IEq +{ + float val[_186]; + float dummy; +} IEq; + +layout(set = 0, binding = 12, std430) buffer SSBO_INeq +{ + float val[_189]; + float dummy; +} INeq; + +layout(set = 0, binding = 13, std430) buffer SSBO_Ult +{ + float val[_192]; + float dummy; +} Ult; + +layout(set = 0, binding = 14, std430) buffer SSBO_Ule +{ + float val[_195]; + float dummy; +} Ule; + +layout(set = 0, binding = 15, std430) buffer SSBO_Ugt +{ + float val[_198]; + float dummy; +} Ugt; + +layout(set = 0, binding = 16, std430) buffer SSBO_Uge +{ + float val[_201]; + float dummy; +} Uge; + +layout(set = 0, binding = 17, std430) buffer SSBO_Slt +{ + float val[_203]; + float dummy; +} Slt; + +layout(set = 0, binding = 18, std430) buffer SSBO_Sle +{ + float val[_205]; + float dummy; +} Sle; + +layout(set = 0, binding = 19, std430) buffer SSBO_Sgt +{ + float val[_207]; + float dummy; +} Sgt; + +layout(set = 0, binding = 20, std430) buffer SSBO_Sge +{ + float val[_209]; + float dummy; +} Sge; + +layout(set = 0, binding = 21, std430) buffer SSBO_Lor +{ + float val[_211]; + float dummy; +} Lor; + +layout(set = 0, binding = 22, std430) buffer SSBO_Land +{ + float val[_213]; + float dummy; +} Land; + +layout(set = 0, binding = 23, std430) buffer SSBO_Lnot +{ + float val[_215]; + float dummy; +} Lnot; + +layout(set = 0, binding = 24, std430) buffer SSBO_And +{ + float val[_217]; + float dummy; +} And; + +layout(set = 0, binding = 25, std430) buffer SSBO_Or +{ + float val[_221]; + float dummy; +} Or; + +layout(set = 0, binding = 26, std430) buffer SSBO_Xor +{ + float val[_223]; + float dummy; +} Xor; + +layout(set = 0, binding = 27, std430) buffer SSBO_Not +{ + float val[_226]; + float dummy; +} Not; + +layout(set = 0, binding = 28, std430) buffer SSBO_Leq +{ + float val[_228]; + float dummy; +} Leq; + +layout(set = 0, binding = 29, std430) buffer SSBO_Lneq +{ + float val[_230]; + float dummy; +} Lneq; + +layout(set = 0, binding = 30, std430) buffer SSBO_Sel +{ + float val[SEL]; + float dummy; +} Sel; + +void main() +{ + IAdd.val[0] = 0.0; + ISub.val[0] = 0.0; + IMul.val[0] = 0.0; + UDiv.val[0] = 0.0; + SDiv.val[0] = 0.0; + SRem.val[0] = 0.0; + SMod.val[0] = 0.0; + UMod.val[0] = 0.0; + LShl.val[0] = 0.0; + RShl.val[0] = 0.0; + RSha.val[0] = 0.0; + IEq.val[0] = 0.0; + INeq.val[0] = 0.0; + Ult.val[0] = 0.0; + Ule.val[0] = 0.0; + Ugt.val[0] = 0.0; + Uge.val[0] = 0.0; + Slt.val[0] = 0.0; + Sle.val[0] = 0.0; + Sgt.val[0] = 0.0; + Sge.val[0] = 0.0; + Lor.val[0] = 0.0; + Land.val[0] = 0.0; + Lnot.val[0] = 0.0; + And.val[0] = 0.0; + Or.val[0] = 0.0; + Xor.val[0] = 0.0; + Not.val[0] = 0.0; + Leq.val[0] = 0.0; + Lneq.val[0] = 0.0; + Sel.val[0] = 0.0; +} + diff --git a/tests/spec_constants/test_32bit.spv b/tests/spec_constants/test_32bit.spv new file mode 100644 index 00000000..7a8f6023 Binary files /dev/null and b/tests/spec_constants/test_32bit.spv differ diff --git a/tests/spec_constants/test_32bit.spv.yaml b/tests/spec_constants/test_32bit.spv.yaml new file mode 100644 index 00000000..85b5b799 --- /dev/null +++ b/tests/spec_constants/test_32bit.spv.yaml @@ -0,0 +1,3706 @@ +%YAML 1.0 +--- +all_type_descriptions: + - &td0 + id: 104 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td1 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td2 + id: 39 + op: 30 + type_name: "SSBO_IAdd" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td0 + - *td1 + - &td3 + id: 105 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td4 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td5 + id: 42 + op: 30 + type_name: "SSBO_ISub" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td3 + - *td4 + - &td6 + id: 106 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td7 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td8 + id: 44 + op: 30 + type_name: "SSBO_IMul" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td6 + - *td7 + - &td9 + id: 107 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [134,], stride: 4 } + member_count: 0 + members: + - &td10 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td11 + id: 46 + op: 30 + type_name: "SSBO_UDiv" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td9 + - *td10 + - &td12 + id: 108 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td13 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td14 + id: 49 + op: 30 + type_name: "SSBO_SDiv" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td12 + - *td13 + - &td15 + id: 109 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td16 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td17 + id: 51 + op: 30 + type_name: "SSBO_SRem" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td15 + - *td16 + - &td18 + id: 110 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td19 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td20 + id: 53 + op: 30 + type_name: "SSBO_SMod" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td18 + - *td19 + - &td21 + id: 111 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td22 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td23 + id: 55 + op: 30 + type_name: "SSBO_UMod" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td21 + - *td22 + - &td24 + id: 112 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td25 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td26 + id: 57 + op: 30 + type_name: "SSBO_LShl" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td24 + - *td25 + - &td27 + id: 113 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td28 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td29 + id: 59 + op: 30 + type_name: "SSBO_RShl" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td27 + - *td28 + - &td30 + id: 114 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td31 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td32 + id: 61 + op: 30 + type_name: "SSBO_RSha" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td30 + - *td31 + - &td33 + id: 115 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td34 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td35 + id: 63 + op: 30 + type_name: "SSBO_IEq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td33 + - *td34 + - &td36 + id: 116 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td37 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td38 + id: 65 + op: 30 + type_name: "SSBO_INeq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td36 + - *td37 + - &td39 + id: 117 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td40 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td41 + id: 67 + op: 30 + type_name: "SSBO_Ult" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td39 + - *td40 + - &td42 + id: 118 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td43 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td44 + id: 69 + op: 30 + type_name: "SSBO_Ule" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td42 + - *td43 + - &td45 + id: 119 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td46 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td47 + id: 71 + op: 30 + type_name: "SSBO_Ugt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td45 + - *td46 + - &td48 + id: 120 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td49 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td50 + id: 73 + op: 30 + type_name: "SSBO_Uge" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td48 + - *td49 + - &td51 + id: 121 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td52 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td53 + id: 75 + op: 30 + type_name: "SSBO_Slt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td51 + - *td52 + - &td54 + id: 122 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td55 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td56 + id: 77 + op: 30 + type_name: "SSBO_Sle" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td54 + - *td55 + - &td57 + id: 123 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td58 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td59 + id: 79 + op: 30 + type_name: "SSBO_Sgt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td57 + - *td58 + - &td60 + id: 124 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td61 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td62 + id: 81 + op: 30 + type_name: "SSBO_Sge" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td60 + - *td61 + - &td63 + id: 125 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td64 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td65 + id: 83 + op: 30 + type_name: "SSBO_Lor" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td63 + - *td64 + - &td66 + id: 126 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td67 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td68 + id: 85 + op: 30 + type_name: "SSBO_Land" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td66 + - *td67 + - &td69 + id: 127 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td70 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td71 + id: 87 + op: 30 + type_name: "SSBO_Lnot" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td69 + - *td70 + - &td72 + id: 128 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td73 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td74 + id: 89 + op: 30 + type_name: "SSBO_And" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td72 + - *td73 + - &td75 + id: 129 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td76 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td77 + id: 91 + op: 30 + type_name: "SSBO_Or" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td75 + - *td76 + - &td78 + id: 130 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td79 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td80 + id: 93 + op: 30 + type_name: "SSBO_Xor" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td78 + - *td79 + - &td81 + id: 131 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td82 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td83 + id: 95 + op: 30 + type_name: "SSBO_Not" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td81 + - *td82 + - &td84 + id: 132 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td85 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td86 + id: 97 + op: 30 + type_name: "SSBO_Leq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td84 + - *td85 + - &td87 + id: 133 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td88 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td89 + id: 99 + op: 30 + type_name: "SSBO_Lneq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td87 + - *td88 + - &td90 + id: 134 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td91 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td92 + id: 101 + op: 30 + type_name: "SSBO_Sel" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td90 + - *td91 +all_block_variables: + - &bv0 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td0 + - &bv1 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td1 + - &bv2 + name: "IAdd" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv0 + - *bv1 + type_description: *td2 + - &bv3 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td3 + - &bv4 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td4 + - &bv5 + name: "ISub" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv3 + - *bv4 + type_description: *td5 + - &bv6 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td6 + - &bv7 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td7 + - &bv8 + name: "IMul" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv6 + - *bv7 + type_description: *td8 + - &bv9 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [134,], stride: 4 } + member_count: 0 + members: + type_description: *td9 + - &bv10 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td10 + - &bv11 + name: "UDiv" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv9 + - *bv10 + type_description: *td11 + - &bv12 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td12 + - &bv13 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td13 + - &bv14 + name: "SDiv" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv12 + - *bv13 + type_description: *td14 + - &bv15 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td15 + - &bv16 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td16 + - &bv17 + name: "SRem" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv15 + - *bv16 + type_description: *td17 + - &bv18 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td18 + - &bv19 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td19 + - &bv20 + name: "SMod" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv18 + - *bv19 + type_description: *td20 + - &bv21 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td21 + - &bv22 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td22 + - &bv23 + name: "UMod" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv21 + - *bv22 + type_description: *td23 + - &bv24 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td24 + - &bv25 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td25 + - &bv26 + name: "LShl" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv24 + - *bv25 + type_description: *td26 + - &bv27 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td27 + - &bv28 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td28 + - &bv29 + name: "RShl" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv27 + - *bv28 + type_description: *td29 + - &bv30 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td30 + - &bv31 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td31 + - &bv32 + name: "RSha" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv30 + - *bv31 + type_description: *td32 + - &bv33 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td33 + - &bv34 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td34 + - &bv35 + name: "IEq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv33 + - *bv34 + type_description: *td35 + - &bv36 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td36 + - &bv37 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td37 + - &bv38 + name: "INeq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv36 + - *bv37 + type_description: *td38 + - &bv39 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td39 + - &bv40 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td40 + - &bv41 + name: "Ult" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv39 + - *bv40 + type_description: *td41 + - &bv42 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td42 + - &bv43 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td43 + - &bv44 + name: "Ule" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv42 + - *bv43 + type_description: *td44 + - &bv45 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td45 + - &bv46 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td46 + - &bv47 + name: "Ugt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv45 + - *bv46 + type_description: *td47 + - &bv48 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td48 + - &bv49 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td49 + - &bv50 + name: "Uge" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv48 + - *bv49 + type_description: *td50 + - &bv51 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td51 + - &bv52 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td52 + - &bv53 + name: "Slt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv51 + - *bv52 + type_description: *td53 + - &bv54 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td54 + - &bv55 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td55 + - &bv56 + name: "Sle" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv54 + - *bv55 + type_description: *td56 + - &bv57 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td57 + - &bv58 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td58 + - &bv59 + name: "Sgt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv57 + - *bv58 + type_description: *td59 + - &bv60 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td60 + - &bv61 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td61 + - &bv62 + name: "Sge" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv60 + - *bv61 + type_description: *td62 + - &bv63 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td63 + - &bv64 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td64 + - &bv65 + name: "Lor" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv63 + - *bv64 + type_description: *td65 + - &bv66 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td66 + - &bv67 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td67 + - &bv68 + name: "Land" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv66 + - *bv67 + type_description: *td68 + - &bv69 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td69 + - &bv70 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td70 + - &bv71 + name: "Lnot" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv69 + - *bv70 + type_description: *td71 + - &bv72 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td72 + - &bv73 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td73 + - &bv74 + name: "And" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv72 + - *bv73 + type_description: *td74 + - &bv75 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td75 + - &bv76 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td76 + - &bv77 + name: "Or" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv75 + - *bv76 + type_description: *td77 + - &bv78 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td78 + - &bv79 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td79 + - &bv80 + name: "Xor" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv78 + - *bv79 + type_description: *td80 + - &bv81 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td81 + - &bv82 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td82 + - &bv83 + name: "Not" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv81 + - *bv82 + type_description: *td83 + - &bv84 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td84 + - &bv85 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td85 + - &bv86 + name: "Leq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv84 + - *bv85 + type_description: *td86 + - &bv87 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td87 + - &bv88 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td88 + - &bv89 + name: "Lneq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv87 + - *bv88 + type_description: *td89 + - &bv90 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td90 + - &bv91 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td91 + - &bv92 + name: "Sel" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv90 + - *bv91 + type_description: *td92 +all_descriptor_bindings: + - &db0 + spirv_id: 3 + name: "IAdd" + binding: 0 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv2 # "IAdd" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td2 + word_offset: { binding: 806, set: 802 } + - &db1 + spirv_id: 4 + name: "ISub" + binding: 1 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv5 # "ISub" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td5 + word_offset: { binding: 835, set: 831 } + - &db2 + spirv_id: 5 + name: "IMul" + binding: 2 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv8 # "IMul" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td8 + word_offset: { binding: 860, set: 856 } + - &db3 + spirv_id: 6 + name: "UDiv" + binding: 3 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv11 # "UDiv" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td11 + word_offset: { binding: 885, set: 881 } + - &db4 + spirv_id: 7 + name: "SDiv" + binding: 4 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv14 # "SDiv" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td14 + word_offset: { binding: 914, set: 910 } + - &db5 + spirv_id: 8 + name: "SRem" + binding: 5 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv17 # "SRem" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td17 + word_offset: { binding: 939, set: 935 } + - &db6 + spirv_id: 9 + name: "SMod" + binding: 6 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv20 # "SMod" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td20 + word_offset: { binding: 964, set: 960 } + - &db7 + spirv_id: 10 + name: "UMod" + binding: 7 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv23 # "UMod" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td23 + word_offset: { binding: 989, set: 985 } + - &db8 + spirv_id: 11 + name: "LShl" + binding: 8 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv26 # "LShl" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td26 + word_offset: { binding: 1014, set: 1010 } + - &db9 + spirv_id: 12 + name: "RShl" + binding: 9 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv29 # "RShl" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td29 + word_offset: { binding: 1039, set: 1035 } + - &db10 + spirv_id: 13 + name: "RSha" + binding: 10 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv32 # "RSha" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td32 + word_offset: { binding: 1064, set: 1060 } + - &db11 + spirv_id: 14 + name: "IEq" + binding: 11 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv35 # "IEq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td35 + word_offset: { binding: 1089, set: 1085 } + - &db12 + spirv_id: 15 + name: "INeq" + binding: 12 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv38 # "INeq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td38 + word_offset: { binding: 1114, set: 1110 } + - &db13 + spirv_id: 16 + name: "Ult" + binding: 13 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv41 # "Ult" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td41 + word_offset: { binding: 1139, set: 1135 } + - &db14 + spirv_id: 17 + name: "Ule" + binding: 14 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv44 # "Ule" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td44 + word_offset: { binding: 1164, set: 1160 } + - &db15 + spirv_id: 18 + name: "Ugt" + binding: 15 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv47 # "Ugt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td47 + word_offset: { binding: 1189, set: 1185 } + - &db16 + spirv_id: 19 + name: "Uge" + binding: 16 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv50 # "Uge" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td50 + word_offset: { binding: 1214, set: 1210 } + - &db17 + spirv_id: 20 + name: "Slt" + binding: 17 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv53 # "Slt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td53 + word_offset: { binding: 1239, set: 1235 } + - &db18 + spirv_id: 21 + name: "Sle" + binding: 18 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv56 # "Sle" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td56 + word_offset: { binding: 1264, set: 1260 } + - &db19 + spirv_id: 22 + name: "Sgt" + binding: 19 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv59 # "Sgt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td59 + word_offset: { binding: 1289, set: 1285 } + - &db20 + spirv_id: 23 + name: "Sge" + binding: 20 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv62 # "Sge" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td62 + word_offset: { binding: 1314, set: 1310 } + - &db21 + spirv_id: 24 + name: "Lor" + binding: 21 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv65 # "Lor" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td65 + word_offset: { binding: 1339, set: 1335 } + - &db22 + spirv_id: 25 + name: "Land" + binding: 22 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv68 # "Land" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td68 + word_offset: { binding: 1364, set: 1360 } + - &db23 + spirv_id: 26 + name: "Lnot" + binding: 23 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv71 # "Lnot" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td71 + word_offset: { binding: 1389, set: 1385 } + - &db24 + spirv_id: 27 + name: "And" + binding: 24 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv74 # "And" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td74 + word_offset: { binding: 1414, set: 1410 } + - &db25 + spirv_id: 28 + name: "Or" + binding: 25 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv77 # "Or" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td77 + word_offset: { binding: 1439, set: 1435 } + - &db26 + spirv_id: 29 + name: "Xor" + binding: 26 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv80 # "Xor" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td80 + word_offset: { binding: 1464, set: 1460 } + - &db27 + spirv_id: 30 + name: "Not" + binding: 27 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv83 # "Not" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td83 + word_offset: { binding: 1489, set: 1485 } + - &db28 + spirv_id: 31 + name: "Leq" + binding: 28 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv86 # "Leq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td86 + word_offset: { binding: 1514, set: 1510 } + - &db29 + spirv_id: 32 + name: "Lneq" + binding: 29 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv89 # "Lneq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td89 + word_offset: { binding: 1539, set: 1535 } + - &db30 + spirv_id: 33 + name: "Sel" + binding: 30 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv92 # "Sel" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td92 + word_offset: { binding: 1564, set: 1560 } +all_interface_variables: +module: + generator: 7 # Khronos SPIR-V Tools Assembler + entry_point_name: "main" + entry_point_id: 2 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 31 + descriptor_bindings: + - *db0 # "IAdd" + - *db1 # "ISub" + - *db2 # "IMul" + - *db3 # "UDiv" + - *db4 # "SDiv" + - *db5 # "SRem" + - *db6 # "SMod" + - *db7 # "UMod" + - *db8 # "LShl" + - *db9 # "RShl" + - *db10 # "RSha" + - *db11 # "IEq" + - *db12 # "INeq" + - *db13 # "Ult" + - *db14 # "Ule" + - *db15 # "Ugt" + - *db16 # "Uge" + - *db17 # "Slt" + - *db18 # "Sle" + - *db19 # "Sgt" + - *db20 # "Sge" + - *db21 # "Lor" + - *db22 # "Land" + - *db23 # "Lnot" + - *db24 # "And" + - *db25 # "Or" + - *db26 # "Xor" + - *db27 # "Not" + - *db28 # "Leq" + - *db29 # "Lneq" + - *db30 # "Sel" + descriptor_set_count: 1 + descriptor_sets: + - set: 0 + binding_count: 31 + bindings: + - *db0 # "IAdd" + - *db1 # "ISub" + - *db2 # "IMul" + - *db3 # "UDiv" + - *db4 # "SDiv" + - *db5 # "SRem" + - *db6 # "SMod" + - *db7 # "UMod" + - *db8 # "LShl" + - *db9 # "RShl" + - *db10 # "RSha" + - *db11 # "IEq" + - *db12 # "INeq" + - *db13 # "Ult" + - *db14 # "Ule" + - *db15 # "Ugt" + - *db16 # "Uge" + - *db17 # "Slt" + - *db18 # "Sle" + - *db19 # "Sgt" + - *db20 # "Sge" + - *db21 # "Lor" + - *db22 # "Land" + - *db23 # "Lnot" + - *db24 # "And" + - *db25 # "Or" + - *db26 # "Xor" + - *db27 # "Not" + - *db28 # "Leq" + - *db29 # "Lneq" + - *db30 # "Sel" + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 9, + specialization_constants: + spirv_id: 2 + constant_id: 34 + spirv_id: 3 + constant_id: 35 + spirv_id: 5 + constant_id: 36 + spirv_id: 6 + constant_id: 37 + spirv_id: 4 + constant_id: 40 + spirv_id: 7 + constant_id: 47 + spirv_id: 8 + constant_id: 135 + spirv_id: 0 + constant_id: 102 + spirv_id: 1 + constant_id: 103 +... diff --git a/tests/spec_constants/test_64bit.spv b/tests/spec_constants/test_64bit.spv new file mode 100644 index 00000000..e739b65f Binary files /dev/null and b/tests/spec_constants/test_64bit.spv differ diff --git a/tests/spec_constants/test_64bit.spv.yaml b/tests/spec_constants/test_64bit.spv.yaml new file mode 100644 index 00000000..737ab772 --- /dev/null +++ b/tests/spec_constants/test_64bit.spv.yaml @@ -0,0 +1,3706 @@ +%YAML 1.0 +--- +all_type_descriptions: + - &td0 + id: 104 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td1 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td2 + id: 39 + op: 30 + type_name: "SSBO_IAdd" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td0 + - *td1 + - &td3 + id: 105 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td4 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td5 + id: 42 + op: 30 + type_name: "SSBO_ISub" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td3 + - *td4 + - &td6 + id: 106 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td7 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td8 + id: 44 + op: 30 + type_name: "SSBO_IMul" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td6 + - *td7 + - &td9 + id: 107 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [134,], stride: 4 } + member_count: 0 + members: + - &td10 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td11 + id: 46 + op: 30 + type_name: "SSBO_UDiv" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td9 + - *td10 + - &td12 + id: 108 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td13 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td14 + id: 49 + op: 30 + type_name: "SSBO_SDiv" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td12 + - *td13 + - &td15 + id: 109 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td16 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td17 + id: 51 + op: 30 + type_name: "SSBO_SRem" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td15 + - *td16 + - &td18 + id: 110 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td19 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td20 + id: 53 + op: 30 + type_name: "SSBO_SMod" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td18 + - *td19 + - &td21 + id: 111 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td22 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td23 + id: 55 + op: 30 + type_name: "SSBO_UMod" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td21 + - *td22 + - &td24 + id: 112 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td25 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td26 + id: 57 + op: 30 + type_name: "SSBO_LShl" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td24 + - *td25 + - &td27 + id: 113 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td28 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td29 + id: 59 + op: 30 + type_name: "SSBO_RShl" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td27 + - *td28 + - &td30 + id: 114 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td31 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td32 + id: 61 + op: 30 + type_name: "SSBO_RSha" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td30 + - *td31 + - &td33 + id: 115 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td34 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td35 + id: 63 + op: 30 + type_name: "SSBO_IEq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td33 + - *td34 + - &td36 + id: 116 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td37 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td38 + id: 65 + op: 30 + type_name: "SSBO_INeq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td36 + - *td37 + - &td39 + id: 117 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td40 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td41 + id: 67 + op: 30 + type_name: "SSBO_Ult" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td39 + - *td40 + - &td42 + id: 118 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td43 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td44 + id: 69 + op: 30 + type_name: "SSBO_Ule" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td42 + - *td43 + - &td45 + id: 119 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td46 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td47 + id: 71 + op: 30 + type_name: "SSBO_Ugt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td45 + - *td46 + - &td48 + id: 120 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td49 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td50 + id: 73 + op: 30 + type_name: "SSBO_Uge" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td48 + - *td49 + - &td51 + id: 121 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td52 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td53 + id: 75 + op: 30 + type_name: "SSBO_Slt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td51 + - *td52 + - &td54 + id: 122 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td55 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td56 + id: 77 + op: 30 + type_name: "SSBO_Sle" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td54 + - *td55 + - &td57 + id: 123 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td58 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td59 + id: 79 + op: 30 + type_name: "SSBO_Sgt" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td57 + - *td58 + - &td60 + id: 124 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td61 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td62 + id: 81 + op: 30 + type_name: "SSBO_Sge" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td60 + - *td61 + - &td63 + id: 125 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td64 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td65 + id: 83 + op: 30 + type_name: "SSBO_Lor" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td63 + - *td64 + - &td66 + id: 126 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td67 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td68 + id: 85 + op: 30 + type_name: "SSBO_Land" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td66 + - *td67 + - &td69 + id: 127 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td70 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td71 + id: 87 + op: 30 + type_name: "SSBO_Lnot" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td69 + - *td70 + - &td72 + id: 128 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td73 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td74 + id: 89 + op: 30 + type_name: "SSBO_And" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td72 + - *td73 + - &td75 + id: 129 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td76 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td77 + id: 91 + op: 30 + type_name: "SSBO_Or" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td75 + - *td76 + - &td78 + id: 130 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + - &td79 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td80 + id: 93 + op: 30 + type_name: "SSBO_Xor" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td78 + - *td79 + - &td81 + id: 131 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + - &td82 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td83 + id: 95 + op: 30 + type_name: "SSBO_Not" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td81 + - *td82 + - &td84 + id: 132 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td85 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td86 + id: 97 + op: 30 + type_name: "SSBO_Leq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td84 + - *td85 + - &td87 + id: 133 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td88 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td89 + id: 99 + op: 30 + type_name: "SSBO_Lneq" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td87 + - *td88 + - &td90 + id: 134 + op: 28 + type_name: + struct_member_name: "val" + storage_class: 0 # UniformConstant + type_flags: 0x20000008 # ARRAY FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + - &td91 + id: 139 + op: 22 + type_name: + struct_member_name: "dummy" + storage_class: 0 # UniformConstant + type_flags: 0x00000008 # FLOAT + decoration_flags: 0x00000000 # NONE + traits: + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + - &td92 + id: 101 + op: 30 + type_name: "SSBO_Sel" + struct_member_name: + storage_class: -1 # NOT APPLICABLE + type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + decoration_flags: 0x00000001 # BLOCK + traits: + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *td90 + - *td91 +all_block_variables: + - &bv0 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td0 + - &bv1 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td1 + - &bv2 + name: "IAdd" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv0 + - *bv1 + type_description: *td2 + - &bv3 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td3 + - &bv4 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td4 + - &bv5 + name: "ISub" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv3 + - *bv4 + type_description: *td5 + - &bv6 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td6 + - &bv7 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td7 + - &bv8 + name: "IMul" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv6 + - *bv7 + type_description: *td8 + - &bv9 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [134,], stride: 4 } + member_count: 0 + members: + type_description: *td9 + - &bv10 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td10 + - &bv11 + name: "UDiv" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv9 + - *bv10 + type_description: *td11 + - &bv12 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td12 + - &bv13 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td13 + - &bv14 + name: "SDiv" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv12 + - *bv13 + type_description: *td14 + - &bv15 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td15 + - &bv16 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td16 + - &bv17 + name: "SRem" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv15 + - *bv16 + type_description: *td17 + - &bv18 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td18 + - &bv19 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td19 + - &bv20 + name: "SMod" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv18 + - *bv19 + type_description: *td20 + - &bv21 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td21 + - &bv22 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td22 + - &bv23 + name: "UMod" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv21 + - *bv22 + type_description: *td23 + - &bv24 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td24 + - &bv25 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td25 + - &bv26 + name: "LShl" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv24 + - *bv25 + type_description: *td26 + - &bv27 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td27 + - &bv28 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td28 + - &bv29 + name: "RShl" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv27 + - *bv28 + type_description: *td29 + - &bv30 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td30 + - &bv31 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td31 + - &bv32 + name: "RSha" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv30 + - *bv31 + type_description: *td32 + - &bv33 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td33 + - &bv34 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td34 + - &bv35 + name: "IEq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv33 + - *bv34 + type_description: *td35 + - &bv36 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td36 + - &bv37 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td37 + - &bv38 + name: "INeq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv36 + - *bv37 + type_description: *td38 + - &bv39 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td39 + - &bv40 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td40 + - &bv41 + name: "Ult" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv39 + - *bv40 + type_description: *td41 + - &bv42 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td42 + - &bv43 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td43 + - &bv44 + name: "Ule" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv42 + - *bv43 + type_description: *td44 + - &bv45 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td45 + - &bv46 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td46 + - &bv47 + name: "Ugt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv45 + - *bv46 + type_description: *td47 + - &bv48 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td48 + - &bv49 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td49 + - &bv50 + name: "Uge" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv48 + - *bv49 + type_description: *td50 + - &bv51 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td51 + - &bv52 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td52 + - &bv53 + name: "Slt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv51 + - *bv52 + type_description: *td53 + - &bv54 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td54 + - &bv55 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td55 + - &bv56 + name: "Sle" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv54 + - *bv55 + type_description: *td56 + - &bv57 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td57 + - &bv58 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td58 + - &bv59 + name: "Sgt" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv57 + - *bv58 + type_description: *td59 + - &bv60 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td60 + - &bv61 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td61 + - &bv62 + name: "Sge" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv60 + - *bv61 + type_description: *td62 + - &bv63 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td63 + - &bv64 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td64 + - &bv65 + name: "Lor" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv63 + - *bv64 + type_description: *td65 + - &bv66 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td66 + - &bv67 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td67 + - &bv68 + name: "Land" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv66 + - *bv67 + type_description: *td68 + - &bv69 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td69 + - &bv70 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td70 + - &bv71 + name: "Lnot" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv69 + - *bv70 + type_description: *td71 + - &bv72 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td72 + - &bv73 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td73 + - &bv74 + name: "And" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv72 + - *bv73 + type_description: *td74 + - &bv75 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td75 + - &bv76 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td76 + - &bv77 + name: "Or" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv75 + - *bv76 + type_description: *td77 + - &bv78 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [128,], stride: 4 } + member_count: 0 + members: + type_description: *td78 + - &bv79 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td79 + - &bv80 + name: "Xor" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv78 + - *bv79 + type_description: *td80 + - &bv81 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [130,], stride: 4 } + member_count: 0 + members: + type_description: *td81 + - &bv82 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td82 + - &bv83 + name: "Not" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv81 + - *bv82 + type_description: *td83 + - &bv84 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td84 + - &bv85 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td85 + - &bv86 + name: "Leq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv84 + - *bv85 + type_description: *td86 + - &bv87 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td87 + - &bv88 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td88 + - &bv89 + name: "Lneq" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv87 + - *bv88 + type_description: *td89 + - &bv90 + name: "val" + offset: 0 + absolute_offset: 0 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 1, dims: [169,], stride: 4 } + member_count: 0 + members: + type_description: *td90 + - &bv91 + name: "dummy" + offset: 4 + absolute_offset: 4 + size: 4 + padded_size: 4 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 32, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 0 + members: + type_description: *td91 + - &bv92 + name: "Sel" + offset: 0 + absolute_offset: 0 + size: 0 + padded_size: 0 + decorations: 0x00000000 # NONE + numeric: + scalar: { width: 0, signedness: 0 } + vector: { component_count: 0 } + matrix: { column_count: 0, row_count: 0, stride: 0 } + array: { dims_count: 0, dims: [], stride: 0 } + member_count: 2 + members: + - *bv90 + - *bv91 + type_description: *td92 +all_descriptor_bindings: + - &db0 + spirv_id: 3 + name: "IAdd" + binding: 0 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv2 # "IAdd" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td2 + word_offset: { binding: 808, set: 804 } + - &db1 + spirv_id: 4 + name: "ISub" + binding: 1 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv5 # "ISub" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td5 + word_offset: { binding: 837, set: 833 } + - &db2 + spirv_id: 5 + name: "IMul" + binding: 2 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv8 # "IMul" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td8 + word_offset: { binding: 862, set: 858 } + - &db3 + spirv_id: 6 + name: "UDiv" + binding: 3 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv11 # "UDiv" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td11 + word_offset: { binding: 887, set: 883 } + - &db4 + spirv_id: 7 + name: "SDiv" + binding: 4 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv14 # "SDiv" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td14 + word_offset: { binding: 916, set: 912 } + - &db5 + spirv_id: 8 + name: "SRem" + binding: 5 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv17 # "SRem" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td17 + word_offset: { binding: 941, set: 937 } + - &db6 + spirv_id: 9 + name: "SMod" + binding: 6 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv20 # "SMod" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td20 + word_offset: { binding: 966, set: 962 } + - &db7 + spirv_id: 10 + name: "UMod" + binding: 7 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv23 # "UMod" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td23 + word_offset: { binding: 991, set: 987 } + - &db8 + spirv_id: 11 + name: "LShl" + binding: 8 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv26 # "LShl" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td26 + word_offset: { binding: 1016, set: 1012 } + - &db9 + spirv_id: 12 + name: "RShl" + binding: 9 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv29 # "RShl" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td29 + word_offset: { binding: 1041, set: 1037 } + - &db10 + spirv_id: 13 + name: "RSha" + binding: 10 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv32 # "RSha" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td32 + word_offset: { binding: 1066, set: 1062 } + - &db11 + spirv_id: 14 + name: "IEq" + binding: 11 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv35 # "IEq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td35 + word_offset: { binding: 1091, set: 1087 } + - &db12 + spirv_id: 15 + name: "INeq" + binding: 12 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv38 # "INeq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td38 + word_offset: { binding: 1116, set: 1112 } + - &db13 + spirv_id: 16 + name: "Ult" + binding: 13 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv41 # "Ult" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td41 + word_offset: { binding: 1141, set: 1137 } + - &db14 + spirv_id: 17 + name: "Ule" + binding: 14 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv44 # "Ule" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td44 + word_offset: { binding: 1166, set: 1162 } + - &db15 + spirv_id: 18 + name: "Ugt" + binding: 15 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv47 # "Ugt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td47 + word_offset: { binding: 1191, set: 1187 } + - &db16 + spirv_id: 19 + name: "Uge" + binding: 16 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv50 # "Uge" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td50 + word_offset: { binding: 1216, set: 1212 } + - &db17 + spirv_id: 20 + name: "Slt" + binding: 17 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv53 # "Slt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td53 + word_offset: { binding: 1241, set: 1237 } + - &db18 + spirv_id: 21 + name: "Sle" + binding: 18 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv56 # "Sle" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td56 + word_offset: { binding: 1266, set: 1262 } + - &db19 + spirv_id: 22 + name: "Sgt" + binding: 19 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv59 # "Sgt" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td59 + word_offset: { binding: 1291, set: 1287 } + - &db20 + spirv_id: 23 + name: "Sge" + binding: 20 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv62 # "Sge" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td62 + word_offset: { binding: 1316, set: 1312 } + - &db21 + spirv_id: 24 + name: "Lor" + binding: 21 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv65 # "Lor" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td65 + word_offset: { binding: 1341, set: 1337 } + - &db22 + spirv_id: 25 + name: "Land" + binding: 22 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv68 # "Land" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td68 + word_offset: { binding: 1366, set: 1362 } + - &db23 + spirv_id: 26 + name: "Lnot" + binding: 23 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv71 # "Lnot" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td71 + word_offset: { binding: 1391, set: 1387 } + - &db24 + spirv_id: 27 + name: "And" + binding: 24 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv74 # "And" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td74 + word_offset: { binding: 1416, set: 1412 } + - &db25 + spirv_id: 28 + name: "Or" + binding: 25 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv77 # "Or" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td77 + word_offset: { binding: 1441, set: 1437 } + - &db26 + spirv_id: 29 + name: "Xor" + binding: 26 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv80 # "Xor" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td80 + word_offset: { binding: 1466, set: 1462 } + - &db27 + spirv_id: 30 + name: "Not" + binding: 27 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv83 # "Not" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td83 + word_offset: { binding: 1491, set: 1487 } + - &db28 + spirv_id: 31 + name: "Leq" + binding: 28 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv86 # "Leq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td86 + word_offset: { binding: 1516, set: 1512 } + - &db29 + spirv_id: 32 + name: "Lneq" + binding: 29 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv89 # "Lneq" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td89 + word_offset: { binding: 1541, set: 1537 } + - &db30 + spirv_id: 33 + name: "Sel" + binding: 30 + input_attachment_index: 0 + set: 0 + descriptor_type: 7 # VK_DESCRIPTOR_TYPE_STORAGE_BUFFER + resource_type: 8 # UAV + image: { dim: 0, depth: 0, arrayed: 0, ms: 0, sampled: 0, image_format: 0 } # dim=1D image_format=Unknown + block: *bv92 # "Sel" + array: { dims_count: 0, dims: [] } + accessed: 1 + uav_counter_id: 4294967295 + uav_counter_binding: + type_description: *td92 + word_offset: { binding: 1566, set: 1562 } +all_interface_variables: +module: + generator: 7 # Khronos SPIR-V Tools Assembler + entry_point_name: "main" + entry_point_id: 2 + source_language: 2 # GLSL + source_language_version: 450 + spirv_execution_model: 5 # GLCompute + shader_stage: 0x00000020 # CS + descriptor_binding_count: 31 + descriptor_bindings: + - *db0 # "IAdd" + - *db1 # "ISub" + - *db2 # "IMul" + - *db3 # "UDiv" + - *db4 # "SDiv" + - *db5 # "SRem" + - *db6 # "SMod" + - *db7 # "UMod" + - *db8 # "LShl" + - *db9 # "RShl" + - *db10 # "RSha" + - *db11 # "IEq" + - *db12 # "INeq" + - *db13 # "Ult" + - *db14 # "Ule" + - *db15 # "Ugt" + - *db16 # "Uge" + - *db17 # "Slt" + - *db18 # "Sle" + - *db19 # "Sgt" + - *db20 # "Sge" + - *db21 # "Lor" + - *db22 # "Land" + - *db23 # "Lnot" + - *db24 # "And" + - *db25 # "Or" + - *db26 # "Xor" + - *db27 # "Not" + - *db28 # "Leq" + - *db29 # "Lneq" + - *db30 # "Sel" + descriptor_set_count: 1 + descriptor_sets: + - set: 0 + binding_count: 31 + bindings: + - *db0 # "IAdd" + - *db1 # "ISub" + - *db2 # "IMul" + - *db3 # "UDiv" + - *db4 # "SDiv" + - *db5 # "SRem" + - *db6 # "SMod" + - *db7 # "UMod" + - *db8 # "LShl" + - *db9 # "RShl" + - *db10 # "RSha" + - *db11 # "IEq" + - *db12 # "INeq" + - *db13 # "Ult" + - *db14 # "Ule" + - *db15 # "Ugt" + - *db16 # "Uge" + - *db17 # "Slt" + - *db18 # "Sle" + - *db19 # "Sgt" + - *db20 # "Sge" + - *db21 # "Lor" + - *db22 # "Land" + - *db23 # "Lnot" + - *db24 # "And" + - *db25 # "Or" + - *db26 # "Xor" + - *db27 # "Not" + - *db28 # "Leq" + - *db29 # "Lneq" + - *db30 # "Sel" + input_variable_count: 0, + input_variables: + output_variable_count: 0, + output_variables: + push_constant_count: 0, + push_constants: + specialization_constant_count: 9, + specialization_constants: + spirv_id: 2 + constant_id: 34 + spirv_id: 3 + constant_id: 35 + spirv_id: 5 + constant_id: 36 + spirv_id: 6 + constant_id: 37 + spirv_id: 4 + constant_id: 40 + spirv_id: 7 + constant_id: 47 + spirv_id: 8 + constant_id: 135 + spirv_id: 0 + constant_id: 102 + spirv_id: 1 + constant_id: 103 +... diff --git a/tests/spirv15/VertexShader.spv.yaml b/tests/spirv15/VertexShader.spv.yaml index fea8185c..4c8b7ad4 100644 --- a/tests/spirv15/VertexShader.spv.yaml +++ b/tests/spirv15/VertexShader.spv.yaml @@ -185,4 +185,6 @@ module: - *iv3 # push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ... diff --git a/tests/variable_access/copy_memory.spv.yaml b/tests/variable_access/copy_memory.spv.yaml index 89e7d93c..999cc71b 100644 --- a/tests/variable_access/copy_memory.spv.yaml +++ b/tests/variable_access/copy_memory.spv.yaml @@ -158,4 +158,6 @@ module: output_variables: push_constant_count: 0, push_constants: + specialization_constant_count: 0, + specialization_constants: ...