Comments (3)
Confirmed.
I tracked it down to the CapCheck function at https://github.com/KhronosGroup/SPIRV-Tools/blob/master/source/validate_instruction.cpp#L87
For operands that are IDs, it should not be checking the ID value itself, but rather the underlying constant if it can find one. Note that we should have a one-sided error, i.e. if we can't determine the value then let it pass. (This might occur if there's a complex expression the code doesn't know how to evaluate.
Looking at the operand types in libspirv.h, this kind of problem would only affect SPV_OPERAND_TYPE_MEMORY_SEMANTICS_ID (as in this reported but), or SPV_OEPRAND_TYPE_SCOPE_ID, but none of those values have required capabilities.
Sending to @umar456
from spirv-tools.
I have a stopgap PR that I'll post shortly.
from spirv-tools.
Workaround has been merged. I filed #252 for the "proper" (completist) fix.
from spirv-tools.
Related Issues (20)
- Fails to compile with GCC 13.2 (SPV_OPERAND_TYPE_OPTIONAL_RAW_ACCESS_CHAIN_OPERANDS not declated) HOT 1
- [spirv-opt] Inlining pass generates OpVariable of PhysicalStorageBuffer pointer type without AliasedPointer decoration. HOT 2
- spirv-val: VUID-FragCoord-FragCoord-04212 interaction with PerVertexKHR HOT 7
- Compile-related issue: SPIRV-Headers not found HOT 1
- new release https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/vulkan-sdk-1.3.280.0/SPIRV-Tools-1.3.280.0.tar.gz HOT 1
- [ spirv-opt ] Infinite recursion/crash with shader HOT 6
- SPIRV code fails validation after optimization HOT 3
- Wrong validation error when using RTA in SPV1.4? HOT 2
- Request: allow SpirvToolsEliminateDeadInputComponents() to strip non-trailing members from blocks HOT 2
- SpirvToolsEliminateDeadInputComponents() doesn't seem to be trimming array size down HOT 1
- spirv-val false positive error HOT 6
- Compilation error in validate_atomics.cpp HOT 2
- Using opt C API makes no change to shader HOT 1
- v2024.1 flatpak build fails: validation_state.cpp error: ‘BlockMatchSamplerQCOM’ is not a member of ‘spv::Decoration’ HOT 2
- How to add a new OpName with DescriptorSet and Binding HOT 2
- spirv-opt fma folding causes large performance degradation on Adreno HOT 6
- how to remove the OpVariable inst??
- Implicit LOD functions can be supported when compute shader derivatives are supported HOT 6
- How to compile on arm platform HOT 3
- Disallows TypeManager::GetId on non unique types
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spirv-tools.