Skip to content

De-register Compat enum namespace#584

Open
kainino0x wants to merge 1 commit intowebgpu-native:mainfrom
kainino0x:compat2
Open

De-register Compat enum namespace#584
kainino0x wants to merge 1 commit intowebgpu-native:mainfrom
kainino0x:compat2

Conversation

@kainino0x
Copy link
Collaborator

There are only two compat extensions (CompatibilityModeLimits and textureBindingViewDimension). Only one of them
(textureBindingViewDimension) is input-only and can possibly take advantage of this mechanism.

So instead of having a special carveout for all Compat extensions, we just need one carveout for the SType for textureBindingViewDimension.

As far as I know, no one has implemented this special carveout (most or all current implementations want to support Compat), but to be safe just say the 0x0002 block is never to be used for anything.

Fixed #547
CC #470

There are only two compat extensions (CompatibilityModeLimits and
textureBindingViewDimension). Only one of them
(textureBindingViewDimension) is input-only and can possibly take
advantage of this mechanism.

So instead of having a special carveout for all Compat extensions, we
just need one carveout for the SType for textureBindingViewDimension.

As far as I know, no one has implemented this special carveout (most or
all current implementations want to support Compat), but to be safe we
just say the 0x0002 block is never to be used for anything.
| Standard | (none) | `0x0000_????` | Extensions standardized in webgpu.h
| Compatibility Mode | *TBD* | `0x0002_????` | **Special:** implementations that don't support Compatibility Mode must ignore any chained structs with @ref WGPUSType values in this block, instead of erroring. This block must only be used for Compat additions that can be ignored without affecting the semantics of a non-erroring program.
| *(Reserved)* | - | `0x0001_????` | Reserved for future use
| *(Not used)* | - | `0x0002_????` | Do not use this block (historical)
Copy link
Collaborator

@Kangz Kangz Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could just mark it as reserved since noone used it before?

@cwfitzgerald cwfitzgerald self-assigned this Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

How do Compat extension structs work on output?

4 participants