diff options
author | Hai Nguyen <chaoticbob@me.com> | 2021-08-11 16:23:03 -0400 |
---|---|---|
committer | Hai Nguyen <chaoticbob@me.com> | 2021-08-11 16:23:03 -0400 |
commit | 272e050728de8d4a4ce9e7101c1244e6ff56e5b0 (patch) | |
tree | 5903ed73b4429989efe0df1b7a479f54e1078f2c | |
parent | 9e6a4b51ae6ce109bec5297f027ebb6788d5b240 (diff) | |
download | SPIRV-Reflect-272e050728de8d4a4ce9e7101c1244e6ff56e5b0.tar.gz |
Added SpvReflectPrv prefix to address issue #122
- Added SpvReflectPrv prefix to all internal struct types to stop and
prevent collisions with common type names such as String, Node, Parser
etc.
- Did some light refactoring on layout function parameters.
- Updated golden YAML for tests.
26 files changed, 337 insertions, 300 deletions
diff --git a/spirv_reflect.c b/spirv_reflect.c index 82fc6fa..1c94a2e 100644 --- a/spirv_reflect.c +++ b/spirv_reflect.c @@ -76,150 +76,154 @@ enum { // clang-format on // clang-format off -typedef struct ArrayTraits { - uint32_t element_type_id; - uint32_t length_id; -} ArrayTraits; +typedef struct SpvReflectPrvArrayTraits { + uint32_t element_type_id; + uint32_t length_id; +} SpvReflectPrvArrayTraits; // clang-format on // clang-format off -typedef struct ImageTraits { - uint32_t sampled_type_id; - SpvDim dim; - uint32_t depth; - uint32_t arrayed; - uint32_t ms; - uint32_t sampled; - SpvImageFormat image_format; -} ImageTraits; +typedef struct SpvReflectPrvImageTraits { + uint32_t sampled_type_id; + SpvDim dim; + uint32_t depth; + uint32_t arrayed; + uint32_t ms; + uint32_t sampled; + SpvImageFormat image_format; +} SpvReflectPrvImageTraits; // clang-format on // clang-format off -typedef struct NumberDecoration { - uint32_t word_offset; - uint32_t value; -} NumberDecoration; +typedef struct SpvReflectPrvNumberDecoration { + uint32_t word_offset; + uint32_t value; +} SpvReflectPrvNumberDecoration; // clang-format on // clang-format off -typedef struct StringDecoration { - uint32_t word_offset; - const char* value; -} StringDecoration; +typedef struct SpvReflectPrvStringDecoration { + uint32_t word_offset; + const char* value; +} SpvReflectPrvStringDecoration; // clang-format on // clang-format off -typedef struct Decorations { - bool is_block; - bool is_buffer_block; - bool is_row_major; - bool is_column_major; - bool is_built_in; - bool is_noperspective; - bool is_flat; - bool is_non_writable; - NumberDecoration set; - NumberDecoration binding; - NumberDecoration input_attachment_index; - NumberDecoration location; - NumberDecoration offset; - NumberDecoration uav_counter_buffer; - StringDecoration semantic; - uint32_t array_stride; - uint32_t matrix_stride; - SpvBuiltIn built_in; -} Decorations; +typedef struct SpvReflectPrvDecorations { + bool is_block; + bool is_buffer_block; + bool is_row_major; + bool is_column_major; + bool is_built_in; + bool is_noperspective; + bool is_flat; + bool is_non_writable; + SpvReflectPrvNumberDecoration set; + SpvReflectPrvNumberDecoration binding; + SpvReflectPrvNumberDecoration input_attachment_index; + SpvReflectPrvNumberDecoration location; + SpvReflectPrvNumberDecoration offset; + SpvReflectPrvNumberDecoration uav_counter_buffer; + SpvReflectPrvStringDecoration semantic; + uint32_t array_stride; + uint32_t matrix_stride; + SpvBuiltIn built_in; +} SpvReflectPrvDecorations; // clang-format on // clang-format off -typedef struct Node { - uint32_t result_id; - SpvOp op; - uint32_t result_type_id; - uint32_t type_id; - SpvStorageClass storage_class; - uint32_t word_offset; - uint32_t word_count; - bool is_type; - - ArrayTraits array_traits; - ImageTraits image_traits; - uint32_t image_type_id; - - const char* name; - Decorations decorations; - uint32_t member_count; - const char** member_names; - Decorations* member_decorations; -} Node; +typedef struct SpvReflectPrvNode { + uint32_t result_id; + SpvOp op; + uint32_t result_type_id; + uint32_t type_id; + SpvStorageClass storage_class; + uint32_t word_offset; + uint32_t word_count; + bool is_type; + + SpvReflectPrvArrayTraits array_traits; + SpvReflectPrvImageTraits image_traits; + uint32_t image_type_id; + + const char* name; + SpvReflectPrvDecorations decorations; + uint32_t member_count; + const char** member_names; + SpvReflectPrvDecorations* member_decorations; +} SpvReflectPrvNode; // clang-format on // clang-format off -typedef struct String { - uint32_t result_id; - const char* string; -} String; +typedef struct SpvReflectPrvString { + uint32_t result_id; + const char* string; +} SpvReflectPrvString; // clang-format on // clang-format off -typedef struct Function { - uint32_t id; - uint32_t callee_count; - uint32_t* callees; - struct Function** callee_ptrs; - uint32_t accessed_ptr_count; - uint32_t* accessed_ptrs; -} Function; +typedef struct SpvReflectPrvFunction { + uint32_t id; + uint32_t callee_count; + uint32_t* callees; + struct SpvReflectPrvFunction** callee_ptrs; + uint32_t accessed_ptr_count; + uint32_t* accessed_ptrs; +} SpvReflectPrvFunction; // clang-format on // clang-format off -typedef struct AccessChain { - uint32_t result_id; - uint32_t result_type_id; +typedef struct SpvReflectPrvAccessChain { + uint32_t result_id; + uint32_t result_type_id; // // Pointing to the base of a composite object. // Generally the id of descriptor block variable - uint32_t base_id; + uint32_t base_id; // // From spec: // The first index in Indexes will select the // top-level member/element/component/element // of the base composite - uint32_t index_count; - uint32_t* indexes; -} AccessChain; + uint32_t index_count; + uint32_t* indexes; +} SpvReflectPrvAccessChain; // clang-format on // clang-format off -typedef struct Parser { - size_t spirv_word_count; - uint32_t* spirv_code; - uint32_t string_count; - String* strings; - SpvSourceLanguage source_language; - uint32_t source_language_version; - uint32_t source_file_id; - const char* source_embedded; - size_t node_count; - Node* nodes; - uint32_t entry_point_count; - uint32_t function_count; - Function* functions; - uint32_t access_chain_count; - AccessChain* access_chains; - - uint32_t type_count; - uint32_t descriptor_count; - uint32_t push_constant_count; -} Parser; +typedef struct SpvReflectPrvParser { + size_t spirv_word_count; + uint32_t* spirv_code; + uint32_t string_count; + SpvReflectPrvString* strings; + SpvSourceLanguage source_language; + uint32_t source_language_version; + uint32_t source_file_id; + const char* source_embedded; + size_t node_count; + SpvReflectPrvNode* nodes; + uint32_t entry_point_count; + uint32_t function_count; + SpvReflectPrvFunction* functions; + uint32_t access_chain_count; + SpvReflectPrvAccessChain* access_chains; + + uint32_t type_count; + uint32_t descriptor_count; + uint32_t push_constant_count; +} SpvReflectPrvParser; // clang-format on -static uint32_t Max(uint32_t a, uint32_t b) +static uint32_t Max( + uint32_t a, + uint32_t b) { return a > b ? a : b; } -static uint32_t RoundUp(uint32_t value, uint32_t multiple) +static uint32_t RoundUp( + uint32_t value, + uint32_t multiple) { assert(multiple && ((multiple & (multiple - 1)) == 0)); return (value + multiple - 1) & ~(multiple - 1); @@ -239,7 +243,9 @@ static uint32_t RoundUp(uint32_t value, uint32_t multiple) } \ } -static int SortCompareUint32(const void* a, const void* b) +static int SortCompareUint32( + const void* a, + const void* b) { const uint32_t* p_a = (const uint32_t*)a; const uint32_t* p_b = (const uint32_t*)b; @@ -269,7 +275,10 @@ static size_t DedupSortedUint32(uint32_t* arr, size_t size) return dedup_idx+1; } -static bool SearchSortedUint32(const uint32_t* arr, size_t size, uint32_t target) +static bool SearchSortedUint32( + const uint32_t* arr, + size_t size, + uint32_t target) { size_t lo = 0; size_t hi = size; @@ -338,7 +347,9 @@ static SpvReflectResult IntersectSortedUint32( } -static bool InRange(const Parser* p_parser, uint32_t index) +static bool InRange( + const SpvReflectPrvParser* p_parser, + uint32_t index) { bool in_range = false; if (IsNotNull(p_parser)) { @@ -347,7 +358,10 @@ static bool InRange(const Parser* p_parser, uint32_t index) return in_range; } -static SpvReflectResult ReadU32(Parser* p_parser, uint32_t word_offset, uint32_t* p_value) +static SpvReflectResult ReadU32( + SpvReflectPrvParser* p_parser, + uint32_t word_offset, + uint32_t* p_value) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -396,12 +410,12 @@ static SpvReflectResult ReadU32(Parser* p_parser, uint32_t word_offset, uint32_t } static SpvReflectResult ReadStr( - Parser* p_parser, - uint32_t word_offset, - uint32_t word_index, - uint32_t word_count, - uint32_t* p_buf_size, - char* p_buf + SpvReflectPrvParser* p_parser, + uint32_t word_offset, + uint32_t word_index, + uint32_t word_count, + uint32_t* p_buf_size, + char* p_buf ) { uint32_t limit = (word_offset + word_count); @@ -442,7 +456,7 @@ static SpvReflectResult ReadStr( return result; } -static SpvReflectDecorationFlags ApplyDecorations(const Decorations* p_decoration_fields) +static SpvReflectDecorationFlags ApplyDecorations(const SpvReflectPrvDecorations* p_decoration_fields) { SpvReflectDecorationFlags decorations = SPV_REFLECT_DECORATION_NONE; if (p_decoration_fields->is_block) { @@ -482,11 +496,13 @@ static void ApplyArrayTraits(const SpvReflectTypeDescription* p_type, SpvReflect memcpy(p_array_traits, &p_type->traits.array, sizeof(p_type->traits.array)); } -static Node* FindNode(Parser* p_parser, uint32_t result_id) +static SpvReflectPrvNode* FindNode( + SpvReflectPrvParser* p_parser, + uint32_t result_id) { - Node* p_node = NULL; + SpvReflectPrvNode* p_node = NULL; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_elem = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_elem = &(p_parser->nodes[i]); if (p_elem->result_id == result_id) { p_node = p_elem; break; @@ -508,7 +524,10 @@ static SpvReflectTypeDescription* FindType(SpvReflectShaderModule* p_module, uin return p_type; } -static SpvReflectResult CreateParser(size_t size, void* p_code, Parser* p_parser) +static SpvReflectResult CreateParser( + size_t size, + void* p_code, + SpvReflectPrvParser* p_parser) { if (p_code == NULL) { return SPV_REFLECT_RESULT_ERROR_NULL_POINTER; @@ -531,12 +550,12 @@ static SpvReflectResult CreateParser(size_t size, void* p_code, Parser* p_parser return SPV_REFLECT_RESULT_SUCCESS; } -static void DestroyParser(Parser* p_parser) +static void DestroyParser(SpvReflectPrvParser* p_parser) { if (!IsNull(p_parser->nodes)) { // Free nodes for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (IsNotNull(p_node->member_names)) { SafeFree(p_node->member_names); } @@ -566,7 +585,7 @@ static void DestroyParser(Parser* p_parser) } } -static SpvReflectResult ParseNodes(Parser* p_parser) +static SpvReflectResult ParseNodes(SpvReflectPrvParser* p_parser) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -596,7 +615,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) // Allocate nodes p_parser->node_count = node_count; - p_parser->nodes = (Node*)calloc(p_parser->node_count, sizeof(*(p_parser->nodes))); + p_parser->nodes = (SpvReflectPrvNode*)calloc(p_parser->node_count, sizeof(*(p_parser->nodes))); if (IsNull(p_parser->nodes)) { return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } @@ -620,7 +639,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) // Allocate access chain if (p_parser->access_chain_count > 0) { - p_parser->access_chains = (AccessChain*)calloc(p_parser->access_chain_count, sizeof(*(p_parser->access_chains))); + p_parser->access_chains = (SpvReflectPrvAccessChain*)calloc(p_parser->access_chain_count, sizeof(*(p_parser->access_chains))); if (IsNull(p_parser->access_chains)) { return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } @@ -635,7 +654,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) SpvOp op = (SpvOp)(word & 0xFFFF); uint32_t node_word_count = (word >> 16) & 0xFFFF; - Node* p_node = &(p_parser->nodes[node_index]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[node_index]); p_node->op = op; p_node->word_offset = spirv_word_index; p_node->word_count = node_word_count; @@ -829,7 +848,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) case SpvOpAccessChain: { - AccessChain* p_access_chain = &(p_parser->access_chains[access_chain_index]); + SpvReflectPrvAccessChain* p_access_chain = &(p_parser->access_chains[access_chain_index]); CHECKED_READU32(p_parser, p_node->word_offset + 1, p_access_chain->result_type_id); CHECKED_READU32(p_parser, p_node->word_offset + 2, p_access_chain->result_id); CHECKED_READU32(p_parser, p_node->word_offset + 3, p_access_chain->base_id); @@ -849,7 +868,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) uint32_t index_id = 0; CHECKED_READU32(p_parser, p_node->word_offset + SPIRV_ACCESS_CHAIN_INDEX_OFFSET + index_index, index_id); // Find OpConstant node that contains index value - Node* p_index_value_node = FindNode(p_parser, index_id); + SpvReflectPrvNode* p_index_value_node = FindNode(p_parser, index_id); if ((p_index_value_node != NULL) && (p_index_value_node->op == SpvOpConstant)) { // Read index value uint32_t index_value = UINT32_MAX; @@ -878,7 +897,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) case SpvOpLabel: { if (function_node != (uint32_t)INVALID_VALUE) { - Node* p_func_node = &(p_parser->nodes[function_node]); + SpvReflectPrvNode* p_func_node = &(p_parser->nodes[function_node]); CHECKED_READU32(p_parser, p_func_node->word_offset + 2, p_func_node->result_id); ++(p_parser->function_count); } @@ -902,7 +921,7 @@ static SpvReflectResult ParseNodes(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseStrings(Parser* p_parser) +static SpvReflectResult ParseStrings(SpvReflectPrvParser* p_parser) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -915,11 +934,11 @@ static SpvReflectResult ParseStrings(Parser* p_parser) if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && IsNotNull(p_parser->nodes)) { // Allocate string storage - p_parser->strings = (String*)calloc(p_parser->string_count, sizeof(*(p_parser->strings))); + p_parser->strings = (SpvReflectPrvString*)calloc(p_parser->string_count, sizeof(*(p_parser->strings))); uint32_t string_index = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->op != SpvOpString) { continue; } @@ -931,7 +950,7 @@ static SpvReflectResult ParseStrings(Parser* p_parser) } // Result id - String* p_string = &(p_parser->strings[string_index]); + SpvReflectPrvString* p_string = &(p_parser->strings[string_index]); CHECKED_READU32(p_parser, p_node->word_offset + 1, p_string->result_id); // String @@ -946,7 +965,7 @@ static SpvReflectResult ParseStrings(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseSource(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseSource(SpvReflectPrvParser* p_parser, SpvReflectShaderModule* p_module) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -955,7 +974,7 @@ static SpvReflectResult ParseSource(Parser* p_parser, SpvReflectShaderModule* p_ // Source file if (IsNotNull(p_parser->strings)) { for (uint32_t i = 0; i < p_parser->string_count; ++i) { - String* p_string = &(p_parser->strings[i]); + SpvReflectPrvString* p_string = &(p_parser->strings[i]); if (p_string->result_id == p_parser->source_file_id) { p_module->source_file = p_string->string; break; @@ -986,7 +1005,11 @@ static SpvReflectResult ParseSource(Parser* p_parser, SpvReflectShaderModule* p_ return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseFunction(Parser* p_parser, Node* p_func_node, Function* p_func, size_t first_label_index) +static SpvReflectResult ParseFunction( + SpvReflectPrvParser* p_parser, + SpvReflectPrvNode* p_func_node, + SpvReflectPrvFunction* p_func, + size_t first_label_index) { p_func->id = p_func_node->result_id; @@ -994,7 +1017,7 @@ static SpvReflectResult ParseFunction(Parser* p_parser, Node* p_func_node, Funct p_func->accessed_ptr_count = 0; for (size_t i = first_label_index; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->op == SpvOpFunctionEnd) { break; } @@ -1044,7 +1067,7 @@ static SpvReflectResult ParseFunction(Parser* p_parser, Node* p_func_node, Funct p_func->callee_count = 0; p_func->accessed_ptr_count = 0; for (size_t i = first_label_index; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->op == SpvOpFunctionEnd) { break; } @@ -1107,14 +1130,16 @@ static SpvReflectResult ParseFunction(Parser* p_parser, Node* p_func_node, Funct return SPV_REFLECT_RESULT_SUCCESS; } -static int SortCompareFunctions(const void* a, const void* b) +static int SortCompareFunctions( + const void* a, + const void* b) { - const Function* af = (const Function*)a; - const Function* bf = (const Function*)b; + const SpvReflectPrvFunction* af = (const SpvReflectPrvFunction*)a; + const SpvReflectPrvFunction* bf = (const SpvReflectPrvFunction*)b; return (int)af->id - (int)bf->id; } -static SpvReflectResult ParseFunctions(Parser* p_parser) +static SpvReflectResult ParseFunctions(SpvReflectPrvParser* p_parser) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -1125,15 +1150,15 @@ static SpvReflectResult ParseFunctions(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } - p_parser->functions = (Function*)calloc(p_parser->function_count, - sizeof(*(p_parser->functions))); + p_parser->functions = (SpvReflectPrvFunction*)calloc(p_parser->function_count, + sizeof(*(p_parser->functions))); if (IsNull(p_parser->functions)) { return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } size_t function_index = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->op != SpvOpFunction) { continue; } @@ -1155,7 +1180,7 @@ static SpvReflectResult ParseFunctions(Parser* p_parser) continue; } - Function* p_function = &(p_parser->functions[function_index]); + SpvReflectPrvFunction* p_function = &(p_parser->functions[function_index]); SpvReflectResult result = ParseFunction(p_parser, p_node, p_function, i); if (result != SPV_REFLECT_RESULT_SUCCESS) { @@ -1171,12 +1196,12 @@ static SpvReflectResult ParseFunctions(Parser* p_parser) // Once they're sorted, link the functions with pointers to improve graph // traversal efficiency for (size_t i = 0; i < p_parser->function_count; ++i) { - Function* p_func = &(p_parser->functions[i]); + SpvReflectPrvFunction* p_func = &(p_parser->functions[i]); if (p_func->callee_count == 0) { continue; } - p_func->callee_ptrs = (Function**)calloc(p_func->callee_count, - sizeof(*(p_func->callee_ptrs))); + p_func->callee_ptrs = (SpvReflectPrvFunction**)calloc(p_func->callee_count, + sizeof(*(p_func->callee_ptrs))); for (size_t j = 0, k = 0; j < p_func->callee_count; ++j) { while (p_parser->functions[k].id != p_func->callees[j]) { ++k; @@ -1193,7 +1218,7 @@ static SpvReflectResult ParseFunctions(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseMemberCounts(Parser* p_parser) +static SpvReflectResult ParseMemberCounts(SpvReflectPrvParser* p_parser) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -1201,7 +1226,7 @@ static SpvReflectResult ParseMemberCounts(Parser* p_parser) if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && IsNotNull(p_parser->nodes)) { for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpMemberName) && (p_node->op != SpvOpMemberDecorate)) { continue; } @@ -1210,7 +1235,7 @@ static SpvReflectResult ParseMemberCounts(Parser* p_parser) uint32_t member_index = (uint32_t)INVALID_VALUE; CHECKED_READU32(p_parser, p_node->word_offset + 1, target_id); CHECKED_READU32(p_parser, p_node->word_offset + 2, member_index); - Node* p_target_node = FindNode(p_parser, target_id); + SpvReflectPrvNode* p_target_node = FindNode(p_parser, target_id); // Not all nodes get parsed, so FindNode returning NULL is expected. if (IsNull(p_target_node)) { continue; @@ -1224,7 +1249,7 @@ static SpvReflectResult ParseMemberCounts(Parser* p_parser) } for (uint32_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->member_count == 0) { continue; } @@ -1234,7 +1259,7 @@ static SpvReflectResult ParseMemberCounts(Parser* p_parser) return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } - p_node->member_decorations = (Decorations*)calloc(p_node->member_count, sizeof(*(p_node->member_decorations))); + p_node->member_decorations = (SpvReflectPrvDecorations*)calloc(p_node->member_count, sizeof(*(p_node->member_decorations))); if (IsNull(p_node->member_decorations)) { return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } @@ -1243,7 +1268,7 @@ static SpvReflectResult ParseMemberCounts(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseNames(Parser* p_parser) +static SpvReflectResult ParseNames(SpvReflectPrvParser* p_parser) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->spirv_code)); @@ -1251,14 +1276,14 @@ static SpvReflectResult ParseNames(Parser* p_parser) if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && IsNotNull(p_parser->nodes)) { for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpName) && (p_node->op != SpvOpMemberName)) { continue; } uint32_t target_id = 0; CHECKED_READU32(p_parser, p_node->word_offset + 1, target_id); - Node* p_target_node = FindNode(p_parser, target_id); + SpvReflectPrvNode* p_target_node = FindNode(p_parser, target_id); // Not all nodes get parsed, so FindNode returning NULL is expected. if (IsNull(p_target_node)) { continue; @@ -1277,10 +1302,10 @@ static SpvReflectResult ParseNames(Parser* p_parser) return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseDecorations(Parser* p_parser) +static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser) { for (uint32_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (((uint32_t)p_node->op != (uint32_t)SpvOpDecorate) && ((uint32_t)p_node->op != (uint32_t)SpvOpMemberDecorate) && @@ -1337,12 +1362,12 @@ static SpvReflectResult ParseDecorations(Parser* p_parser) // Find target target node uint32_t target_id = 0; CHECKED_READU32(p_parser, p_node->word_offset + 1, target_id); - Node* p_target_node = FindNode(p_parser, target_id); + SpvReflectPrvNode* p_target_node = FindNode(p_parser, target_id); if (IsNull(p_target_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } // Get decorations - Decorations* p_target_decorations = &(p_target_node->decorations); + SpvReflectPrvDecorations* p_target_decorations = &(p_target_node->decorations); // Update pointer if this is a member member decoration if (p_node->op == SpvOpMemberDecorate) { uint32_t member_index = (uint32_t)INVALID_VALUE; @@ -1485,11 +1510,11 @@ static SpvReflectResult EnumerateAllUniforms( } static SpvReflectResult ParseType( - Parser* p_parser, - Node* p_node, - Decorations* p_struct_member_decorations, - SpvReflectShaderModule* p_module, - SpvReflectTypeDescription* p_type + SpvReflectPrvParser* p_parser, + SpvReflectPrvNode* p_node, + SpvReflectPrvDecorations* p_struct_member_decorations, + SpvReflectShaderModule* p_module, + SpvReflectTypeDescription* p_type ) { SpvReflectResult result = SPV_REFLECT_RESULT_SUCCESS; @@ -1552,7 +1577,7 @@ static SpvReflectResult ParseType( IF_READU32(result, p_parser, p_node->word_offset + 2, component_type_id); IF_READU32(result, p_parser, p_node->word_offset + 3, p_type->traits.numeric.vector.component_count); // Parse component type - Node* p_next_node = FindNode(p_parser, component_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, component_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1568,7 +1593,7 @@ static SpvReflectResult ParseType( uint32_t column_type_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + 2, column_type_id); IF_READU32(result, p_parser, p_node->word_offset + 3, p_type->traits.numeric.matrix.column_count); - Node* p_next_node = FindNode(p_parser, column_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, column_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1589,7 +1614,7 @@ static SpvReflectResult ParseType( p_type->type_flags |= SPV_REFLECT_TYPE_FLAG_EXTERNAL_IMAGE; uint32_t sampled_type_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + 2, sampled_type_id); - Node* p_next_node = FindNode(p_parser, sampled_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, sampled_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1614,7 +1639,7 @@ static SpvReflectResult ParseType( p_type->type_flags |= SPV_REFLECT_TYPE_FLAG_EXTERNAL_SAMPLED_IMAGE; uint32_t image_type_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + 2, image_type_id); - Node* p_next_node = FindNode(p_parser, image_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, image_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1636,7 +1661,7 @@ static SpvReflectResult ParseType( // OpMemberDecorate, even if the array is apart of a struct. p_type->traits.array.stride = p_node->decorations.array_stride; // Get length for current dimension - Node* p_length_node = FindNode(p_parser, length_id); + SpvReflectPrvNode* p_length_node = FindNode(p_parser, length_id); if (IsNotNull(p_length_node)) { if (p_length_node->op == SpvOpSpecConstant || p_length_node->op == SpvOpSpecConstantOp) { @@ -1655,7 +1680,7 @@ static SpvReflectResult ParseType( } } // Parse next dimension or element type - Node* p_next_node = FindNode(p_parser, element_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, element_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1673,7 +1698,7 @@ static SpvReflectResult ParseType( uint32_t element_type_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + 2, element_type_id); // Parse next dimension or element type - Node* p_next_node = FindNode(p_parser, element_type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, element_type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1693,7 +1718,7 @@ static SpvReflectResult ParseType( uint32_t member_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + word_index, member_id); // Find member node - Node* p_member_node = FindNode(p_parser, member_id); + SpvReflectPrvNode* p_member_node = FindNode(p_parser, member_id); if (IsNull(p_member_node)) { result = SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; SPV_REFLECT_ASSERT(false); @@ -1701,7 +1726,7 @@ static SpvReflectResult ParseType( } // Member decorations - Decorations* p_member_decorations = &p_node->member_decorations[member_index]; + SpvReflectPrvDecorations* p_member_decorations = &p_node->member_decorations[member_index]; assert(member_index < p_type->member_count); // Parse member type @@ -1726,7 +1751,7 @@ static SpvReflectResult ParseType( uint32_t type_id = (uint32_t)INVALID_VALUE; IF_READU32(result, p_parser, p_node->word_offset + 3, type_id); // Parse type - Node* p_next_node = FindNode(p_parser, type_id); + SpvReflectPrvNode* p_next_node = FindNode(p_parser, type_id); if (IsNotNull(p_next_node)) { result = ParseType(p_parser, p_next_node, NULL, p_module, p_type); } @@ -1755,7 +1780,9 @@ static SpvReflectResult ParseType( return result; } -static SpvReflectResult ParseTypes(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseTypes( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { if (p_parser->type_count == 0) { return SPV_REFLECT_RESULT_SUCCESS; @@ -1778,7 +1805,7 @@ static SpvReflectResult ParseTypes(Parser* p_parser, SpvReflectShaderModule* p_m size_t type_index = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (! p_node->is_type) { continue; } @@ -1807,11 +1834,13 @@ static int SortCompareDescriptorBinding(const void* a, const void* b) return value; } -static SpvReflectResult ParseDescriptorBindings(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseDescriptorBindings( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { p_module->descriptor_binding_count = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpVariable) || ((p_node->storage_class != SpvStorageClassUniform) && (p_node->storage_class != SpvStorageClassStorageBuffer) && @@ -1847,7 +1876,7 @@ static SpvReflectResult ParseDescriptorBindings(Parser* p_parser, SpvReflectShad size_t descriptor_index = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpVariable) || ((p_node->storage_class != SpvStorageClassUniform) && (p_node->storage_class != SpvStorageClassStorageBuffer) && @@ -1869,7 +1898,7 @@ static SpvReflectResult ParseDescriptorBindings(Parser* p_parser, SpvReflectShad if (p_type->op == SpvOpTypePointer) { pointer_storage_class = p_type->storage_class; // Find the type's node - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2097,7 +2126,7 @@ static SpvReflectResult ParseUAVCounterBindings(SpvReflectShaderModule* p_module } static SpvReflectResult ParseDescriptorBlockVariable( - Parser* p_parser, + SpvReflectPrvParser* p_parser, SpvReflectShaderModule* p_module, SpvReflectTypeDescription* p_type, SpvReflectBlockVariable* p_var @@ -2112,7 +2141,7 @@ static SpvReflectResult ParseDescriptorBlockVariable( return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED; } - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2176,12 +2205,12 @@ static SpvReflectResult ParseDescriptorBlockVariable( } static SpvReflectResult ParseDescriptorBlockVariableSizes( - Parser* p_parser, - SpvReflectShaderModule* p_module, - bool is_parent_root, - bool is_parent_aos, - bool is_parent_rta, - SpvReflectBlockVariable* p_var + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module, + bool is_parent_root, + bool is_parent_aos, + bool is_parent_rta, + SpvReflectBlockVariable* p_var ) { if (p_var->member_count == 0) { @@ -2332,12 +2361,12 @@ static void MarkSelfAndAllMemberVarsAsUsed(SpvReflectBlockVariable* p_var) } static SpvReflectResult ParseDescriptorBlockVariableUsage( - Parser* p_parser, - SpvReflectShaderModule* p_module, - AccessChain* p_access_chain, - uint32_t index_index, - SpvOp override_op_type, - SpvReflectBlockVariable* p_var + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module, + SpvReflectPrvAccessChain* p_access_chain, + uint32_t index_index, + SpvOp override_op_type, + SpvReflectBlockVariable* p_var ) { (void)p_parser; @@ -2362,7 +2391,7 @@ static SpvReflectResult ParseDescriptorBlockVariableUsage( SpvReflectTypeDescription* p_type = p_var->type_description; while ((p_type->op == SpvOpTypeArray) && (index_index < p_access_chain->index_count)) { // Find the array element type id - Node* p_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_node = FindNode(p_parser, p_type->id); if (p_node == NULL) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2461,7 +2490,9 @@ static SpvReflectResult ParseDescriptorBlockVariableUsage( return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseDescriptorBlocks(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseDescriptorBlocks( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { if (p_module->descriptor_binding_count == 0) { return SPV_REFLECT_RESULT_SUCCESS; @@ -2485,7 +2516,7 @@ static SpvReflectResult ParseDescriptorBlocks(Parser* p_parser, SpvReflectShader } for (uint32_t access_chain_index = 0; access_chain_index < p_parser->access_chain_count; ++access_chain_index) { - AccessChain* p_access_chain = &(p_parser->access_chains[access_chain_index]); + SpvReflectPrvAccessChain* p_access_chain = &(p_parser->access_chains[access_chain_index]); // Skip any access chains that aren't touching this descriptor block if (p_descriptor->spirv_id != p_access_chain->base_id) { continue; @@ -2601,15 +2632,15 @@ static SpvReflectResult ParseFormat( } static SpvReflectResult ParseInterfaceVariable( - Parser* p_parser, - const Decorations* p_type_node_decorations, - SpvReflectShaderModule* p_module, - SpvReflectTypeDescription* p_type, - SpvReflectInterfaceVariable* p_var, - bool* p_has_built_in + SpvReflectPrvParser* p_parser, + const SpvReflectPrvDecorations* p_type_node_decorations, + SpvReflectShaderModule* p_module, + SpvReflectTypeDescription* p_type, + SpvReflectInterfaceVariable* p_var, + bool* p_has_built_in ) { - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2622,7 +2653,7 @@ static SpvReflectResult ParseInterfaceVariable( } for (uint32_t member_index = 0; member_index < p_type_node->member_count; ++member_index) { - Decorations* p_member_decorations = &p_type_node->member_decorations[member_index]; + SpvReflectPrvDecorations* p_member_decorations = &p_type_node->member_decorations[member_index]; SpvReflectTypeDescription* p_member_type = &p_type->members[member_index]; SpvReflectInterfaceVariable* p_member_var = &p_var->members[member_index]; SpvReflectResult result = ParseInterfaceVariable(p_parser, p_member_decorations, p_module, p_member_type, p_member_var, p_has_built_in); @@ -2658,7 +2689,7 @@ static SpvReflectResult ParseInterfaceVariable( } static SpvReflectResult ParseInterfaceVariables( - Parser* p_parser, + SpvReflectPrvParser* p_parser, SpvReflectShaderModule* p_module, SpvReflectEntryPoint* p_entry, uint32_t interface_variable_count, @@ -2674,7 +2705,7 @@ static SpvReflectResult ParseInterfaceVariables( p_entry->output_variable_count = 0; for (size_t i = 0; i < interface_variable_count; ++i) { uint32_t var_result_id = *(p_interface_variable_ids + i); - Node* p_node = FindNode(p_parser, var_result_id); + SpvReflectPrvNode* p_node = FindNode(p_parser, var_result_id); if (IsNull(p_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2712,7 +2743,7 @@ static SpvReflectResult ParseInterfaceVariables( size_t output_index = 0; for (size_t i = 0; i < interface_variable_count; ++i) { uint32_t var_result_id = *(p_interface_variable_ids + i); - Node* p_node = FindNode(p_parser, var_result_id); + SpvReflectPrvNode* p_node = FindNode(p_parser, var_result_id); if (IsNull(p_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2724,7 +2755,7 @@ static SpvReflectResult ParseInterfaceVariables( // If the type is a pointer, resolve it if (p_type->op == SpvOpTypePointer) { // Find the type's node - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2735,7 +2766,7 @@ static SpvReflectResult ParseInterfaceVariables( } } - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -2816,11 +2847,11 @@ static SpvReflectResult EnumerateAllPushConstants( } static SpvReflectResult TraverseCallGraph( - Parser* p_parser, - Function* p_func, - size_t* p_func_count, - uint32_t* p_func_ids, - uint32_t depth + SpvReflectPrvParser* p_parser, + SpvReflectPrvFunction* p_func, + size_t* p_func_count, + uint32_t* p_func_ids, + uint32_t depth ) { if (depth > p_parser->function_count) { @@ -2845,7 +2876,7 @@ static SpvReflectResult TraverseCallGraph( } static SpvReflectResult ParseStaticallyUsedResources( - Parser* p_parser, + SpvReflectPrvParser* p_parser, SpvReflectShaderModule* p_module, SpvReflectEntryPoint* p_entry, size_t uniform_count, @@ -2855,7 +2886,7 @@ static SpvReflectResult ParseStaticallyUsedResources( ) { // Find function with the right id - Function* p_func = NULL; + SpvReflectPrvFunction* p_func = NULL; for (size_t i = 0; i < p_parser->function_count; ++i) { if (p_parser->functions[i].id == p_entry->id) { p_func = &(p_parser->functions[i]); @@ -2989,7 +3020,9 @@ static SpvReflectResult ParseStaticallyUsedResources( return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseEntryPoints(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseEntryPoints( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { if (p_parser->entry_point_count == 0) { return SPV_REFLECT_RESULT_SUCCESS; @@ -3018,7 +3051,7 @@ static SpvReflectResult ParseEntryPoints(Parser* p_parser, SpvReflectShaderModul size_t entry_point_index = 0; for (size_t i = 0; entry_point_index < p_parser->entry_point_count && i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if (p_node->op != SpvOpEntryPoint) { continue; } @@ -3103,7 +3136,9 @@ static SpvReflectResult ParseEntryPoints(Parser* p_parser, SpvReflectShaderModul return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParseExecutionModes(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParseExecutionModes( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { assert(IsNotNull(p_parser)); assert(IsNotNull(p_parser->nodes)); @@ -3111,7 +3146,7 @@ static SpvReflectResult ParseExecutionModes(Parser* p_parser, SpvReflectShaderMo if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && IsNotNull(p_parser->nodes)) { for (size_t node_idx = 0; node_idx < p_parser->node_count; ++node_idx) { - Node* p_node = &(p_parser->nodes[node_idx]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[node_idx]); if (p_node->op != SpvOpExecutionMode) { continue; } @@ -3201,10 +3236,12 @@ static SpvReflectResult ParseExecutionModes(Parser* p_parser, SpvReflectShaderMo return SPV_REFLECT_RESULT_SUCCESS; } -static SpvReflectResult ParsePushConstantBlocks(Parser* p_parser, SpvReflectShaderModule* p_module) +static SpvReflectResult ParsePushConstantBlocks( + SpvReflectPrvParser* p_parser, + SpvReflectShaderModule* p_module) { for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpVariable) || (p_node->storage_class != SpvStorageClassPushConstant)) { continue; } @@ -3223,7 +3260,7 @@ static SpvReflectResult ParsePushConstantBlocks(Parser* p_parser, SpvReflectShad uint32_t push_constant_index = 0; for (size_t i = 0; i < p_parser->node_count; ++i) { - Node* p_node = &(p_parser->nodes[i]); + SpvReflectPrvNode* p_node = &(p_parser->nodes[i]); if ((p_node->op != SpvOpVariable) || (p_node->storage_class != SpvStorageClassPushConstant)) { continue; } @@ -3235,7 +3272,7 @@ static SpvReflectResult ParsePushConstantBlocks(Parser* p_parser, SpvReflectShad // If the type is a pointer, resolve it if (p_type->op == SpvOpTypePointer) { // Find the type's node - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -3246,7 +3283,7 @@ static SpvReflectResult ParsePushConstantBlocks(Parser* p_parser, SpvReflectShad } } - Node* p_type_node = FindNode(p_parser, p_type->id); + SpvReflectPrvNode* p_type_node = FindNode(p_parser, p_type->id); if (IsNull(p_type_node)) { return SPV_REFLECT_RESULT_ERROR_SPIRV_INVALID_ID_REFERENCE; } @@ -3499,7 +3536,7 @@ SpvReflectResult spvReflectCreateShaderModule( } memcpy(p_module->_internal->spirv_code, p_code, size); - Parser parser = { 0 }; + SpvReflectPrvParser parser = { 0 }; SpvReflectResult result = CreateParser(p_module->_internal->spirv_size, p_module->_internal->spirv_code, &parser); diff --git a/tests/glsl/input_attachment.spv.yaml b/tests/glsl/input_attachment.spv.yaml index 8df9628..1194069 100644 --- a/tests/glsl/input_attachment.spv.yaml +++ b/tests/glsl/input_attachment.spv.yaml @@ -7,11 +7,11 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 6, depth: 0, arrayed: 0, ms: 0, sampled: 2, image_format: 0 } # dim=SubpassData image_format=Unknown
diff --git a/tests/glsl/texel_buffer.spv.yaml b/tests/glsl/texel_buffer.spv.yaml index bf13000..63db59d 100644 --- a/tests/glsl/texel_buffer.spv.yaml +++ b/tests/glsl/texel_buffer.spv.yaml @@ -7,11 +7,11 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00050000 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE
+ type_flags: 0x00050004 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE INT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 1 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 5, depth: 0, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=Buffer image_format=Unknown
@@ -24,11 +24,11 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00050000 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE
+ type_flags: 0x00050008 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 5, depth: 0, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=Buffer image_format=Unknown
diff --git a/tests/hlsl/append_consume.spv.yaml b/tests/hlsl/append_consume.spv.yaml index 4f6bba8..9c848c2 100644 --- a/tests/hlsl/append_consume.spv.yaml +++ b/tests/hlsl/append_consume.spv.yaml @@ -24,7 +24,7 @@ all_type_descriptions: type_name: "Data"
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
+ type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -129,7 +129,7 @@ all_type_descriptions: type_name: "Data"
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
+ type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK
decoration_flags: 0x00000000 # NONE
traits:
numeric:
diff --git a/tests/hlsl/array_of_structured_buffer.spv.yaml b/tests/hlsl/array_of_structured_buffer.spv.yaml index 745d855..4e90a2d 100644 --- a/tests/hlsl/array_of_structured_buffer.spv.yaml +++ b/tests/hlsl/array_of_structured_buffer.spv.yaml @@ -7,7 +7,7 @@ all_type_descriptions: type_name: struct_member_name: storage_class: 0 # UniformConstant - type_flags: 0x00000108 # VECTOR FLOAT + type_flags: 0x20000108 # ARRAY VECTOR FLOAT decoration_flags: 0x00000000 # NONE traits: numeric: @@ -42,7 +42,7 @@ all_type_descriptions: type_name: struct_member_name: storage_class: 0 # UniformConstant - type_flags: 0x00000108 # VECTOR FLOAT + type_flags: 0x20000108 # ARRAY VECTOR FLOAT decoration_flags: 0x00000000 # NONE traits: numeric: diff --git a/tests/hlsl/binding_array.spv.yaml b/tests/hlsl/binding_array.spv.yaml index 13ba57d..7b1ed00 100644 --- a/tests/hlsl/binding_array.spv.yaml +++ b/tests/hlsl/binding_array.spv.yaml @@ -24,11 +24,11 @@ all_type_descriptions: type_name: "type.2d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x20010000 # ARRAY EXTERNAL_IMAGE
+ type_flags: 0x20010008 # ARRAY EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
diff --git a/tests/hlsl/binding_types.spv.yaml b/tests/hlsl/binding_types.spv.yaml index 5afa961..86d399a 100644 --- a/tests/hlsl/binding_types.spv.yaml +++ b/tests/hlsl/binding_types.spv.yaml @@ -77,11 +77,11 @@ all_type_descriptions: type_name: "type.1d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=1D image_format=Unknown
@@ -94,11 +94,11 @@ all_type_descriptions: type_name: "type.2d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
@@ -111,11 +111,11 @@ all_type_descriptions: type_name: "type.3d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 2, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=3D image_format=Unknown
@@ -128,11 +128,11 @@ all_type_descriptions: type_name: "type.1d.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 2, arrayed: 1, ms: 0, sampled: 1, image_format: 0 } # dim=1D image_format=Unknown
@@ -145,11 +145,11 @@ all_type_descriptions: type_name: "type.2d.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 1, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
@@ -162,11 +162,11 @@ all_type_descriptions: type_name: "type.1d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 2, arrayed: 0, ms: 0, sampled: 2, image_format: 1 } # dim=1D image_format=Rgba32f
@@ -179,11 +179,11 @@ all_type_descriptions: type_name: "type.2d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 2, image_format: 1 } # dim=2D image_format=Rgba32f
@@ -196,11 +196,11 @@ all_type_descriptions: type_name: "type.3d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 2, depth: 2, arrayed: 0, ms: 0, sampled: 2, image_format: 1 } # dim=3D image_format=Rgba32f
@@ -213,11 +213,11 @@ all_type_descriptions: type_name: "type.1d.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 0, depth: 2, arrayed: 1, ms: 0, sampled: 2, image_format: 1 } # dim=1D image_format=Rgba32f
@@ -230,11 +230,11 @@ all_type_descriptions: type_name: "type.2d.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 1, ms: 0, sampled: 2, image_format: 1 } # dim=2D image_format=Rgba32f
@@ -247,11 +247,11 @@ all_type_descriptions: type_name: "type.2d.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 0, ms: 1, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
@@ -264,11 +264,11 @@ all_type_descriptions: type_name: "type.2d.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 1, depth: 2, arrayed: 1, ms: 1, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown
@@ -281,11 +281,11 @@ all_type_descriptions: type_name: "type.cube.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 3, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=Cube image_format=Unknown
@@ -298,11 +298,11 @@ all_type_descriptions: type_name: "type.cube.image.array"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 3, depth: 2, arrayed: 1, ms: 0, sampled: 1, image_format: 0 } # dim=Cube image_format=Unknown
@@ -385,11 +385,11 @@ all_type_descriptions: type_name: "type.buffer.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 5, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 1 } # dim=Buffer image_format=Rgba32f
@@ -402,11 +402,11 @@ all_type_descriptions: type_name: "type.buffer.image"
struct_member_name:
storage_class: -1 # NOT APPLICABLE
- type_flags: 0x00010000 # EXTERNAL_IMAGE
+ type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
- scalar: { width: 0, signedness: 0 }
+ scalar: { width: 32, signedness: 0 }
vector: { component_count: 0 }
matrix: { column_count: 0, row_count: 0, stride: 0 }
image: { dim: 5, depth: 2, arrayed: 0, ms: 0, sampled: 2, image_format: 1 } # dim=Buffer image_format=Rgba32f
@@ -419,7 +419,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000008 # FLOAT
+ type_flags: 0x20000008 # ARRAY FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -454,7 +454,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000008 # FLOAT
+ type_flags: 0x20000008 # ARRAY FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -524,7 +524,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000008 # FLOAT
+ type_flags: 0x20000008 # ARRAY FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -559,7 +559,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000008 # FLOAT
+ type_flags: 0x20000008 # ARRAY FLOAT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -594,7 +594,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000004 # INT
+ type_flags: 0x20000004 # ARRAY INT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -629,7 +629,7 @@ all_type_descriptions: type_name:
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x00000004 # INT
+ type_flags: 0x20000004 # ARRAY INT
decoration_flags: 0x00000000 # NONE
traits:
numeric:
diff --git a/tests/hlsl/counter_buffers.spv.yaml b/tests/hlsl/counter_buffers.spv.yaml index 3f563a4..31672f7 100644 --- a/tests/hlsl/counter_buffers.spv.yaml +++ b/tests/hlsl/counter_buffers.spv.yaml @@ -76,7 +76,7 @@ all_type_descriptions: type_name: "Data"
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
+ type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK
decoration_flags: 0x00000000 # NONE
traits:
numeric:
@@ -181,7 +181,7 @@ all_type_descriptions: type_name: "Data"
struct_member_name:
storage_class: 0 # UniformConstant
- type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK
+ type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK
decoration_flags: 0x00000000 # NONE
traits:
numeric:
diff --git a/tests/hlsl/structuredbuffer.spv.yaml b/tests/hlsl/structuredbuffer.spv.yaml index 240781b..307cda4 100644 --- a/tests/hlsl/structuredbuffer.spv.yaml +++ b/tests/hlsl/structuredbuffer.spv.yaml @@ -253,7 +253,7 @@ all_type_descriptions: type_name: "Data" struct_member_name: storage_class: 0 # UniformConstant - type_flags: 0x10080000 # STRUCT EXTERNAL_BLOCK + type_flags: 0x30080000 # ARRAY STRUCT EXTERNAL_BLOCK decoration_flags: 0x00000000 # NONE traits: numeric: diff --git a/tests/multi_entrypoint/multi_entrypoint.spv.yaml b/tests/multi_entrypoint/multi_entrypoint.spv.yaml index 49b8d21..4f83b71 100644 --- a/tests/multi_entrypoint/multi_entrypoint.spv.yaml +++ b/tests/multi_entrypoint/multi_entrypoint.spv.yaml @@ -7,11 +7,11 @@ all_type_descriptions: type_name: struct_member_name: storage_class: -1 # NOT APPLICABLE - type_flags: 0x00050000 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE + type_flags: 0x00050008 # EXTERNAL_SAMPLED_IMAGE EXTERNAL_IMAGE FLOAT decoration_flags: 0x00000000 # NONE traits: numeric: - scalar: { width: 0, signedness: 0 } + scalar: { width: 32, signedness: 0 } vector: { component_count: 0 } matrix: { column_count: 0, row_count: 0, stride: 0 } image: { dim: 1, depth: 0, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown diff --git a/tests/raytrace/rayquery_equal.cs.spv.yaml b/tests/raytrace/rayquery_equal.cs.spv.yaml index a0884e6..98009fc 100644 --- a/tests/raytrace/rayquery_equal.cs.spv.yaml +++ b/tests/raytrace/rayquery_equal.cs.spv.yaml @@ -24,11 +24,11 @@ all_type_descriptions: type_name: "type.2d.image" struct_member_name: storage_class: -1 # NOT APPLICABLE - type_flags: 0x00010000 # EXTERNAL_IMAGE + type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT decoration_flags: 0x00000000 # NONE traits: numeric: - scalar: { width: 0, signedness: 0 } + scalar: { width: 32, signedness: 0 } vector: { component_count: 0 } matrix: { column_count: 0, row_count: 0, stride: 0 } image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 2, image_format: 1 } # dim=2D image_format=Rgba32f diff --git a/tests/raytrace/rayquery_init_rahit.spv.yaml b/tests/raytrace/rayquery_init_rahit.spv.yaml index 7d392e9..018ca3d 100644 --- a/tests/raytrace/rayquery_init_rahit.spv.yaml +++ b/tests/raytrace/rayquery_init_rahit.spv.yaml @@ -58,7 +58,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5315 # ??? + spirv_execution_model: 5315 # AnyHitKHR shader_stage: 0x00000200 # ANY_HIT descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/rayquery_init_rcall.spv.yaml b/tests/raytrace/rayquery_init_rcall.spv.yaml index 59cb416..f9a5cab 100644 --- a/tests/raytrace/rayquery_init_rcall.spv.yaml +++ b/tests/raytrace/rayquery_init_rcall.spv.yaml @@ -58,7 +58,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5317 # ??? + spirv_execution_model: 5317 # MissKHR shader_stage: 0x00000800 # MISS descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/rayquery_init_rchit.spv.yaml b/tests/raytrace/rayquery_init_rchit.spv.yaml index e30ba5f..fa71af8 100644 --- a/tests/raytrace/rayquery_init_rchit.spv.yaml +++ b/tests/raytrace/rayquery_init_rchit.spv.yaml @@ -58,7 +58,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5316 # ??? + spirv_execution_model: 5316 # ClosestHitKHR shader_stage: 0x00000400 # CLOSEST_HIT descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/rayquery_init_rgen.spv.yaml b/tests/raytrace/rayquery_init_rgen.spv.yaml index 58d2f67..376f414 100644 --- a/tests/raytrace/rayquery_init_rgen.spv.yaml +++ b/tests/raytrace/rayquery_init_rgen.spv.yaml @@ -58,7 +58,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5313 # ??? + spirv_execution_model: 5313 # RayGenerationKHR shader_stage: 0x00000100 # RAYGEN descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/rayquery_init_rmiss.spv.yaml b/tests/raytrace/rayquery_init_rmiss.spv.yaml index 59cb416..f9a5cab 100644 --- a/tests/raytrace/rayquery_init_rmiss.spv.yaml +++ b/tests/raytrace/rayquery_init_rmiss.spv.yaml @@ -58,7 +58,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5317 # ??? + spirv_execution_model: 5317 # MissKHR shader_stage: 0x00000800 # MISS descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/raytracing.khr.closesthit.spv.yaml b/tests/raytrace/raytracing.khr.closesthit.spv.yaml index dfeb179..792ea25 100644 --- a/tests/raytrace/raytracing.khr.closesthit.spv.yaml +++ b/tests/raytrace/raytracing.khr.closesthit.spv.yaml @@ -413,7 +413,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5316 # ??? + spirv_execution_model: 5316 # ClosestHitKHR shader_stage: 0x00000400 # CLOSEST_HIT descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.anyhit.spv.yaml b/tests/raytrace/raytracing.nv.anyhit.spv.yaml index 0a3e85d..ba6a950 100644 --- a/tests/raytrace/raytracing.nv.anyhit.spv.yaml +++ b/tests/raytrace/raytracing.nv.anyhit.spv.yaml @@ -347,7 +347,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5315 # ??? + spirv_execution_model: 5315 # AnyHitKHR shader_stage: 0x00000200 # ANY_HIT descriptor_binding_count: 0 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.callable.spv.yaml b/tests/raytrace/raytracing.nv.callable.spv.yaml index 363bee2..775712a 100644 --- a/tests/raytrace/raytracing.nv.callable.spv.yaml +++ b/tests/raytrace/raytracing.nv.callable.spv.yaml @@ -63,7 +63,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5318 # ??? + spirv_execution_model: 5318 # CallableKHR shader_stage: 0x00002000 # CALLABLE descriptor_binding_count: 0 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.closesthit.spv.yaml b/tests/raytrace/raytracing.nv.closesthit.spv.yaml index 8f4d83b..d8950b8 100644 --- a/tests/raytrace/raytracing.nv.closesthit.spv.yaml +++ b/tests/raytrace/raytracing.nv.closesthit.spv.yaml @@ -395,7 +395,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5316 # ??? + spirv_execution_model: 5316 # ClosestHitKHR shader_stage: 0x00000400 # CLOSEST_HIT descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.enum.spv.yaml b/tests/raytrace/raytracing.nv.enum.spv.yaml index 51b943a..5dabcb4 100644 --- a/tests/raytrace/raytracing.nv.enum.spv.yaml +++ b/tests/raytrace/raytracing.nv.enum.spv.yaml @@ -111,7 +111,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5313 # ??? + spirv_execution_model: 5313 # RayGenerationKHR shader_stage: 0x00000100 # RAYGEN descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.intersection.spv.yaml b/tests/raytrace/raytracing.nv.intersection.spv.yaml index 7cfa2aa..b5d7ac7 100644 --- a/tests/raytrace/raytracing.nv.intersection.spv.yaml +++ b/tests/raytrace/raytracing.nv.intersection.spv.yaml @@ -329,7 +329,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5314 # ??? + spirv_execution_model: 5314 # IntersectionKHR shader_stage: 0x00001000 # INTERSECTION descriptor_binding_count: 0 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.library.spv.yaml b/tests/raytrace/raytracing.nv.library.spv.yaml index 311f2ec..c91940c 100644 --- a/tests/raytrace/raytracing.nv.library.spv.yaml +++ b/tests/raytrace/raytracing.nv.library.spv.yaml @@ -395,7 +395,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5313 # ??? + spirv_execution_model: 5313 # RayGenerationKHR shader_stage: 0x00000100 # RAYGEN descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.miss.spv.yaml b/tests/raytrace/raytracing.nv.miss.spv.yaml index 7157294..18a3595 100644 --- a/tests/raytrace/raytracing.nv.miss.spv.yaml +++ b/tests/raytrace/raytracing.nv.miss.spv.yaml @@ -186,7 +186,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5317 # ??? + spirv_execution_model: 5317 # MissKHR shader_stage: 0x00000800 # MISS descriptor_binding_count: 0 descriptor_bindings: diff --git a/tests/raytrace/raytracing.nv.raygen.spv.yaml b/tests/raytrace/raytracing.nv.raygen.spv.yaml index 51b943a..5dabcb4 100644 --- a/tests/raytrace/raytracing.nv.raygen.spv.yaml +++ b/tests/raytrace/raytracing.nv.raygen.spv.yaml @@ -111,7 +111,7 @@ module: entry_point_id: 1 source_language: 5 # HLSL source_language_version: 630 - spirv_execution_model: 5313 # ??? + spirv_execution_model: 5313 # RayGenerationKHR shader_stage: 0x00000100 # RAYGEN descriptor_binding_count: 1 descriptor_bindings: diff --git a/tests/spirv15/VertexShader.spv.yaml b/tests/spirv15/VertexShader.spv.yaml index da91ec2..fea8185 100644 --- a/tests/spirv15/VertexShader.spv.yaml +++ b/tests/spirv15/VertexShader.spv.yaml @@ -7,11 +7,11 @@ all_type_descriptions: type_name: "type.2d.image" struct_member_name: storage_class: -1 # NOT APPLICABLE - type_flags: 0x00010000 # EXTERNAL_IMAGE + type_flags: 0x00010008 # EXTERNAL_IMAGE FLOAT decoration_flags: 0x00000000 # NONE traits: numeric: - scalar: { width: 0, signedness: 0 } + scalar: { width: 32, signedness: 0 } vector: { component_count: 0 } matrix: { column_count: 0, row_count: 0, stride: 0 } image: { dim: 1, depth: 2, arrayed: 0, ms: 0, sampled: 1, image_format: 0 } # dim=2D image_format=Unknown |