-
Notifications
You must be signed in to change notification settings - Fork 335
Add and name Features for all Compat Mode limitations. #5018
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Previews, as seen when this build job started (8b739d4): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly bikeshedding.
Fewer restrictions than I realized that relate to specific texture formats. Though it is possible that some of these capabilities could be format dependent (depth formats in particular)
proposals/compatibility-mode.md
Outdated
|
||
**Justification**: GLSL ES 3.1 (section 4.4.7, "Format Layout Qualifiers") does not permit any two-component (RG) texture formats in a format layout qualifier. | ||
|
||
Feature: `storage-texture-rg`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible that we would need to be able to expose these separately, some hardware might have rg32float
but not rg32uint
/rg32sint
or vice versa. Not sure how likely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Noted.
If we did that, though, it'd be tempting to split up depth-texture-load
and depth-texture-sample
into the explicit depth formats. But that's a lot of features.
Do we need to add features for things that we know won't change (for example the proposed: I guess it's probably ok in the end and it might work better from the spec's point of view as we won't need special handling for compat, only talk about if feature X exists then Y. I wish we had a non-normative doc that can give devs a rough idea of how available features are (and maybe even common ranges for limits). |
I haven't checked, but D3D11 might be able to support these features, even if OpenGL ES can't.
It's a good point. The concern in the meeting was that folks might start using the Features we'd agreed upon (e.g., float32-renderable) in Compat code, and if Core-only browsers didn't add support to recognize them now, such content would break until a new version of the Core-only browser shipped. By naming them all now, we give ourselves the chance to ship the features in Compat in future without breaking Core-only browsers.
|
b1f6ee9
to
5deafd7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall, waiting for next update to ✅
In addition to D3D11, there could also be Vulkan 1.0 devices that support Compat without supporting Core.
I also don't love that, and am still a bit concerned that we need to commit to the granularity on a relatively short deadline. I'll put in a plug again for being able to defer these decisions if we use |
We could prefer to be overly granular for now and remove features later before the compat specification reaches CR. There is little harm for example in saying we reserve |
Naming these now will allow Core-only browsers to safely support all Compatibility mode extensions. A non-exhaustive effort was made to explore OpenGL extension support for these features.
5deafd7
to
8b739d4
Compare
I worry that this is yet another wart that is going to be difficult to unship. Also, I'm wondering how this scales to future featureLevels. E.g., for featureLevel |
@SenorBlanco @kainino0x I suppose it is really necessary we know all the feature and limit names right now? We do have |
We would not unship
I think the analogous situation is we've already shipped
I don't think this adds anything. Technically that pattern works for the situation where safari ships core before chrome ships compat, but (as someone other than me pointed out) there's also the situation where chrome has already shipped compat and wants to add some new more-fine-grained compat feature. This won't work during the transition period where both old and new instances of chrome are running in the wild. Anyway, I don't think there's any need for this. If we're relying on sites to get it right anyway, they should just check
|
Sure. If we're ok with relying on Compat applications to do feature detection via |
GPU Web WG 2025-01-22 Atlantic-time
|
GPU Web WG 2025-01-29 Atlantic-time
|
this can be closed yes? |
Naming these now will allow Core-only browsers to safely support all Compatibility mode extensions.
A non-exhaustive effort was made to explore OpenGL extension support for these features.
EDIT: cc #4987