Skip to content

Fix norm16 formats to be unfilterable-float and not float#4594

Merged
Kangz merged 2 commits intogpuweb:mainfrom
Kangz:norm16-unfilterable
Feb 17, 2026
Merged

Fix norm16 formats to be unfilterable-float and not float#4594
Kangz merged 2 commits intogpuweb:mainfrom
Kangz:norm16-unfilterable

Conversation

@Kangz
Copy link
Collaborator

@Kangz Kangz commented Feb 16, 2026

Passes locally after fixes in Dawn with dawn.node.

Issue: #4593 but doesn't fix it totally as there were missing validation tests as well.


Requirements for PR author:

  • All missing test coverage is tracked with "TODO" or .unimplemented().
  • New helpers are /** documented */ and new helper files are found in helper_index.txt.
  • Test behaves as expected in a WebGPU implementation. (If not passing, explain above.)
  • Test have be tested with compatibility mode validation enabled and behave as expected. (If not passing, explain above.)

Requirements for reviewer sign-off:

  • Tests are properly located.
  • Test descriptions are accurate and complete.
  • Tests provide complete coverage (including validation control cases). Missing coverage MUST be covered by TODOs.
  • Tests avoid over-parameterization (see case count report).

When landing this PR, be sure to make any necessary issue status updates.

@Kangz Kangz requested a review from greggman February 16, 2026 17:15
@github-actions
Copy link

github-actions bot commented Feb 16, 2026

Results for build job (at d14632e):

-webgpu:shader,execution,expression,call,builtin,textureGather:sampled_2d_coords:* - 9342 cases, 37368 subcases (~4/case)
-webgpu:shader,execution,expression,call,builtin,textureGather:sampled_3d_coords:* - 1557 cases, 9342 subcases (~6/case)
-webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_2d_coords:* - 9342 cases, 149472 subcases (~16/case)
-webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_3d_coords:* - 1557 cases, 18684 subcases (~12/case)
+webgpu:shader,execution,expression,call,builtin,textureGather:sampled_2d_coords:* - 9018 cases, 36072 subcases (~4/case)
+webgpu:shader,execution,expression,call,builtin,textureGather:sampled_3d_coords:* - 1503 cases, 9018 subcases (~6/case)
+webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_2d_coords:* - 9018 cases, 144288 subcases (~16/case)
+webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_3d_coords:* - 1503 cases, 18036 subcases (~12/case)
-webgpu:shader,execution,expression,call,builtin,textureSample:sampled_2d_coords:* - 2754 cases, 5508 subcases (~2/case)
-webgpu:shader,execution,expression,call,builtin,textureSample:sampled_2d_coords,lodClamp:* - 153 cases, 1530 subcases (~10/case)
-webgpu:shader,execution,expression,call,builtin,textureSample:sampled_3d_coords:* - 12393 cases, 28917 subcases (~2/case)
+webgpu:shader,execution,expression,call,builtin,textureSample:sampled_2d_coords:* - 2646 cases, 5292 subcases (~2/case)
+webgpu:shader,execution,expression,call,builtin,textureSample:sampled_2d_coords,lodClamp:* - 147 cases, 1470 subcases (~10/case)
+webgpu:shader,execution,expression,call,builtin,textureSample:sampled_3d_coords:* - 11907 cases, 27783 subcases (~2/case)
-webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_2d_coords:* - 2754 cases, 22032 subcases (~8/case)
-webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_3d_coords:* - 459 cases, 2754 subcases (~6/case)
+webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_2d_coords:* - 2646 cases, 21168 subcases (~8/case)
+webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_3d_coords:* - 441 cases, 2646 subcases (~6/case)
 [snip - full report in action logs]
-TOTAL: 286015 cases, 2345083 subcases
+TOTAL: 280573 cases, 2321497 subcases

@Kangz Kangz force-pushed the norm16-unfilterable branch from d9d7f66 to caff7ef Compare February 17, 2026 17:56
Copy link
Contributor

@greggman greggman left a comment

Choose a reason for hiding this comment

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

This is fine as it adds the correct checks for filterable but it resolvable isn't handled. See isTextureFormatResolable.

Do you want me to clean that up in another PR or you want to do it in this one or...?

@Kangz
Copy link
Collaborator Author

Kangz commented Feb 17, 2026

Thanks, I forgot about resolvability, I'll fix my Dawn CL, but it doesn't make more tests fail: it seems resolvability is already specified correctly in format_info.js but that we don't test resolvability of the norm16 formats in the CTS?

Edit: I got confused, the Dawn CL was already ok.

@Kangz Kangz merged commit 3865788 into gpuweb:main Feb 17, 2026
1 check passed
@Kangz Kangz deleted the norm16-unfilterable branch February 17, 2026 18:26
@Kangz
Copy link
Collaborator Author

Kangz commented Feb 17, 2026

@toji FYI this will cause additional of suppressions in the next CTS roll, but they will be resolved by https://dawn-review.git.corp.google.com/c/dawn/+/291135

@greggman
Copy link
Contributor

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.

2 participants

Comments