KhronosGroup / KhronosGroup/SPIRV-Tools

spirv-dis: Don't break on unrecognized capability

Open
#4,071 2 comments 0 reactions 0 assignees View on GitHub
component:as/dis
Dominant language
C++
Stars
1.4k
Forks
709
Avg merge
1d 22h
Merged PRs (30d)
28

Description

dpcpp is generating modules with its own caps. spirv-dis reacts like this:
```
OpCapability Addresses
OpCapability Linkage
OpCapability Kernel
OpCapability Int64
OpCapability GenericPointer
OpCapability Int8
error: 7: Invalid capability operand: 5629
```

Can the tool just print the numeric operand of the OpCapability and continue? The instructions are length prefixed so there's no reason to break. Ditto with spirv-val.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how spirv-dis handles an unrecognized OpCapability operand, then inspect the corresponding spirv-val path. Use the shown numeric capability case to verify that both tools print the operand and continue parsing the length-prefixed instruction instead of stopping.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.