buffer_view CTS#4652
Conversation
|
Results for build job (at fbf596a): +webgpu:api,validation,dispatch:shader_required_buffer_size:* - 23 cases, 92 subcases (~4/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:array_length:* - 78 cases, 832 subcases (~11/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:array_length,functions:* - 78 cases, 1560 subcases (~20/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:read_layout:* - 35 cases, 604 subcases (~17/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:write_layout:* - 35 cases, 604 subcases (~17/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:read:* - 4 cases, 744 subcases (~186/case)
+webgpu:shader,execution,expression,call,builtin,bufferArrayView:write:* - 4 cases, 1224 subcases (~306/case)
+webgpu:shader,execution,expression,call,builtin,bufferLength:sized_buffer:* - 5 cases, 120 subcases (~24/case)
+webgpu:shader,execution,expression,call,builtin,bufferLength:unsized_buffer:* - 5 cases, 80 subcases (~16/case)
+webgpu:shader,execution,expression,call,builtin,bufferLength:max_size_buffer:* - 6 cases, 6 subcases (~1/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:array_length:* - 78 cases, 832 subcases (~11/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:array_length,functions:* - 78 cases, 2056 subcases (~26/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:read_layout:* - 35 cases, 604 subcases (~17/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:write_layout:* - 35 cases, 604 subcases (~17/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:read:* - 4 cases, 856 subcases (~214/case)
+webgpu:shader,execution,expression,call,builtin,bufferView:write:* - 4 cases, 1224 subcases (~306/case)
-webgpu:shader,validation,decl,let:type:* - 21 cases, 21 subcases (~1/case)
-webgpu:shader,validation,decl,let:initializer:* - 10 cases, 10 subcases (~1/case)
[snip - full report in action logs]
-TOTAL: 283187 cases, 2326095 subcases
+TOTAL: 284538 cases, 2342792 subcases |
| binding_type: 'read-only-storage', | ||
| requires: ['buffer_view'], | ||
| }, | ||
| }; |
There was a problem hiding this comment.
This needs test cases for:
- offset is an override expression
- with initializer
- with pipeline-time-supplied initializer value
- size parameter is an override expression.
- if so, then use that size.
- otherwise use MinTypeSize. (See my question / comment at https://github.com/gpuweb/gpuweb/pull/6291/changes#r3469837734 )
There was a problem hiding this comment.
uh, I think my request is nonsense because the size param has to be a const-expression. (!)
There was a problem hiding this comment.
Alan reminded me that the case here is using an override expression for the function arguments; not for the declarations of the buffers
There was a problem hiding this comment.
Updated the spec after to discussion to only use minTypeSize. So updated the tests to reflect that. So offset and/or size are not considered now.
dneto0
left a comment
There was a problem hiding this comment.
Finished reviewing. This is a very impressive suite. Thanks for creating it!
I also suggest adding additional validation test cases for arrayLength, i.e. in src/webgpu/shader/validation/expression/call/arrayLength. Sized and unsized buffer types should be tested.
| binding_type: 'read-only-storage', | ||
| requires: ['buffer_view'], | ||
| }, | ||
| }; |
There was a problem hiding this comment.
Alan reminded me that the case here is using an override expression for the function arguments; not for the declarations of the buffers
| matches: ['ptrWorkgroupOverrideExpr'], | ||
| needsUnrestrictedPointerParameters: true, | ||
| }, | ||
|
|
There was a problem hiding this comment.
this is a glorious set of tests. I love how explicit these are.
| fn main() { | ||
| let val = ${testcase.f16 ? 'f16' : testcase.f32 ? 'f32' : 'u32'}(in); | ||
| let ptr = ${call_expr}; | ||
| (*${t.params.assign === 'call' ? call_expr : 'ptr'})${testcase.access} = val; |
There was a problem hiding this comment.
Really great to see both 'let' and 'call' variations here!
| } | ||
| `; | ||
|
|
||
| runReadWriteTest(false, t, wgsl, ele_ty, ty, t.params.aspace, t.params.offset, bufferSize); |
There was a problem hiding this comment.
Very impressed and happy with the creation and use of readWriteTest to clarify so much of the mechanics!
* Validation of buffer type and related builtin functions
* Tests for * bufferLength * bufferView * bufferArrayView
buffer_view validation and execution CTS tests.
Issue: #
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.