KhronosGroup / KhronosGroup/SPIRV-Reflect

Assert/crash on `spirv_reflect.c, line 635`

Open
#348 1 comment 0 reactions 1 assignee Claimed by @spencer-lunarg View on GitHub
Dominant language
C
Stars
871
Forks
188
Avg merge
19m
Merged PRs (30d)
1

Description

Given the following shader disassembled with `spirv-dis` (the the binary cannot be simply attached here) causes an assert here:

```
static SpvReflectBlockVariable* GetRefBlkVar(SpvReflectPrvParser* p_parser, SpvReflectPrvAccessChain* p_access_chain) {
uint32_t base_id = p_access_chain->base_id;
SpvReflectPrvNode* base_node = FindNode(p_parser, base_id);
assert(base_node->op == SpvOpLoad);
UNCHECKED_READU32(p_parser, base_node->word_offset + 3, base_id);
SpvReflectPrvAccessChain* base_ac = FindAccessChain(p_parser, base_id);
assert(base_ac != 0);
SpvReflectBlockVariable* base_var = base_ac->block_var;
assert(base_var != 0);
return base_var;
}
```

on `assert(base_var != 0);`

The same happens when using `spirv-reflect.exe` from the Vulkan SDK `1.4.350.0`.

[shader.txt](https://github.com/user-attachments/files/30064880/shader.txt)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.