-
Notifications
You must be signed in to change notification settings - Fork 100
wgsl: Add validation tests for vector access of abstract types #3708
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
| yxwxy: { wgsl: 'const r = V.yxwxy;', ok: false }, | ||
| rgbar: { wgsl: 'const r = V.rgbar;', ok: false }, | ||
|
|
||
| // error: inValid index Value |
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.
übernit:
| // error: inValid index Value | |
| // error: invalid index Value |
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.
Done
| literal_5: { wgsl: 'const r = V[5];', ok: false }, | ||
| literal_minus_1: { wgsl: 'const r = V[-1];', ok: false }, | ||
|
|
||
| // error: inValid index type |
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.
| // error: inValid index type | |
| // error: invalid index type |
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.
Done
| ok: (width: number) => width > 3, | ||
| }, | ||
|
|
||
| // single element conVenience name accesses |
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.
| // single element conVenience name accesses | |
| // single element convenience name accesses |
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.
Done
| .desc('Tests validation of vector indexed and swizzles') | ||
| const kAbstractCases = { | ||
| // indexing with literal | ||
| literal_0: { wgsl: 'const r = V[0];', ok: true }, |
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.
Maybe as a followup, but it would be good to check the expression type (same thing for the concrete tests), by using an explicit type for r (const r : T = V[0];).
Unlike the concrete tests, the abstract tests would need to consider that abstract-int can convert to abstract-float, but the reverse is not true.
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.
I think I might be missing something about how abstracts in WGSL work.
I thought you couldn't explicitly type abstract int and float in WGSL, i.e. there is no way to write const r: AbstractFloat, it can only be inferred from the assignment.
And they are always constant (or override) experessions, so I cannot do something like let r = 0; r = V[0]; to check that V[0] is an AbstractInt, because though the initializer literal is a AI, it will be converted on the assignement to r to be an i32, due to the use of let.
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.
You're right that you can't explicitly write an abstract numeric, and I see why what I wrote is confusing.
T would be a concrete type - i32, u32, f32 etc. I was trying to point out that abstract-int could be used for any of these, but abstract-float would only work for f32.
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.
Maybe it would be better done as a second statement:
const C : T = r;That would mean you still test that r gets the inferred abstract type.
You also wouldn't need to change all these individual cases, just add another statement underneath the templated case one.
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.
I understand now. I have filed #3709 and will implement in a follow up CL.
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.
Thinking about this, is adding a const C : T = r; statement what we want?
This wouldn't be testing the direct conversion of the swizzle of an abstract type to a concrete type (swizzle(vec<AI>) -> vec<i32>), but the conversion of vectors after the swizzle (swizzle(vec<AI>) -> vec<AI> -> vec<u32>).
I think we should already have coverage of converting an abstract vector down to a concrete one elsewhere.
For swizzle/access testingI think what we want is tests like const r : vec2<u32> = vec2(0, 0).yz;, which explictly test that a swizzle can be directly stored into a convertible type.
Does that sound correct?
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.
Currently we have nothing testing that the inferred type of r is as expected. The second assignment to a concrete type would validate that the inferred type is as expected.
c41bbb8 to
006b214
Compare
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377 UltraBlame original commit: cc8e4c0d527650c82b7c8d07a4484856ea046c10
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377 UltraBlame original commit: cc8e4c0d527650c82b7c8d07a4484856ea046c10
This (non-exhaustively) adds or implements the following test paths: - `webgpu:api,validation,render_pipeline,depth_stencil_state:depth_bias:*`, introduced by [gpuweb/cts#3863](gpuweb/cts#3863). Tracked with [bug 1911312](https://bugzilla.mozilla.org/show_bug.cgi?id=1911312). - `webgpu:shader,execution,expression,access,array,index:matrix:*`, introduced by [gpuweb/cts#3738](gpuweb/cts#3738). - `webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_i32_min:*`, introduced by [gpuweb/cts#3728](gpuweb/cts#3728). - `webgpu:shader,execution,expression,call,builtin,fwidth{,Coarse,Fine}:f32:*`, implemented by [gpuweb/cts#3686](gpuweb/cts#3686). - `webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*`, implemented by [gpuweb/cts#3853](gpuweb/cts#3853). - `webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*`, implemented by [gpuweb/cts#3855](gpuweb/cts#3855). - `webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*`, implemented by [gpuweb/cts#3856](gpuweb/cts#3856). - `webgpu:shader,execution,expression,call,builtin,textureLoad:*`, with: - `{arrayed,sampled_1d,sampled_3d}` implemented by [gpuweb/cts#3852](gpuweb/cts#3852) - `sampled_2d` implemented by [gpuweb/cts#3861](gpuweb/cts#3861). - `webgpu:shader,execution,expression,call,builtin,textureSample:*`, apparently changed by [gpuweb/cts#3877](gpuweb/cts#3877). - `webgpu:shader,execution,expression,call,builtin,textureStore:*` had the following tests added: - By [gpuweb/cts#3781](gpuweb/cts#3781): - `out_of_bounds` - `out_of_bounds_array` - By [gpuweb/cts#3841](gpuweb/cts#3841): - `bgra8unorm_swizzle` - `texel_formats` It's unclear why these are failing, but I suspect part 2.7. - `webgpu:shader,execution,expression,constructor,zero_value:vector_prefix:*`, introduced by [gpuweb/cts#3734](gpuweb/cts#3734). - `webgpu:shader,validation,decl,var:address_space_access_mode:*`, introduced by [`gpuweb/cts`#3695](gpuweb/cts#3695). - `webgpu:shader,validation,decl,var:shader_stage:*`, introduced by [gpuweb/cts#3736](gpuweb/cts#3736). - `webgpu:shader,validation,expression,access,vector:*` was modified in [gpuweb/cts#3708](gpuweb/cts#3708): - renamed `…:vector:*` to `concrete` - added `abstract` - `webgpu:shader,validation,expression,binary,*`: - `…,bitwise_shift:*`: - `…:partial_eval_errors:*`, introduced by [`gpuweb/cts`#3796](gpuweb/cts#3796) - `…:{shift_left_concrete,shift_right_concrete}:*` had new cases introduced in [gpuweb/cts#3726](gpuweb/cts#3726). - `…:{shift_left_abstract,shift_right_abstract}:*`, introduced by [`gpuweb/cts`#3833](gpuweb/cts#3833). - `…,{add_sub_mul:*,and_or_xor:*,bitwise_shift:scalar_vector:*,div_rem:scalar_vector:*}` modified by [`gpuweb/cts`#3648](gpuweb/cts#3648). - `webgpu:shader,validation,expression,call,builtin,*`: - `…,dot:*`, introduced in [gpuweb/cts#3579](gpuweb/cts#3579). - `…,fma:*`, introduced by [`gpuweb/cts`#3577](gpuweb/cts#3577). - `…,ldexp:*`: - `…:{args,must_use,values}:*` introduced by [gpuweb/cts#3615](gpuweb/cts#3615). - `…:partial_values:*` introduced by [gpuweb/cts#3798](gpuweb/cts#3798). - `…,mix:*`, introduced by TODO. - `…,modf:*`, introduced by TODO. - `…,pow:*`, introduced by TODO. - `…,refract:*`, introduced by TODO. - `…,saturate:*`, introduced by TODO. - `…,texture{Dimensions,Num{Layers,Levels,Samples}}:*`, introduced by [gpuweb/cts#3689](gpuweb/cts#3689). - `webgpu:shader,validation,functions,alias_analysis:swizzles:*`, introduced by [gpuweb/cts#3869](gpuweb/cts#3869). - `webgpu:shader,validation,shader_io,align:parsing:duplicate`, introduced by [gpuweb/cts#3692](gpuweb/cts#3692). - `webgpu:shader,validation,statement,{for,loop,return}:*` cases introduced by [gpuweb/cts#3645](gpuweb/cts#3645) and moved around by [gpuweb/cts#3742](gpuweb/cts#3742). - `webgpu:shader,validation,types,pointer:{access_mode,address_space,type}:*`, introduced by [`gpuweb/cts`#3649](gpuweb/cts#3649). This list is incomplete, because I _really_ needed to make this tractable. Sorry! I upkept the above for my own sanity, and think it's interesting for record-keeping, but not necessary useful for a reviewer. Differential Revision: https://phabricator.services.mozilla.com/D219377
Requirements for PR author:
.unimplemented()./** documented */and new helper files are found inhelper_index.txt.Requirements for reviewer sign-off:
When landing this PR, be sure to make any necessary issue status updates.