summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js')
-rw-r--r--testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js4223
1 files changed, 4223 insertions, 0 deletions
diff --git a/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js b/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js
new file mode 100644
index 0000000000..7632956de5
--- /dev/null
+++ b/testing/web-platform/mozilla/tests/webgpu/webgpu/listing.js
@@ -0,0 +1,4223 @@
+// AUTO-GENERATED - DO NOT EDIT. See src/common/tools/gen_listings.ts.
+
+export const listing = [
+ {
+ "file": [],
+ "readme": "WebGPU conformance test suite."
+ },
+ {
+ "file": [
+ "api"
+ ],
+ "readme": "Tests for full coverage of the Javascript API surface of WebGPU."
+ },
+ {
+ "file": [
+ "api",
+ "operation"
+ ],
+ "readme": "Tests that check the result of performing valid WebGPU operations, taking advantage of\nparameterization to exercise interactions between features."
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "adapter",
+ "requestAdapter"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "adapter",
+ "requestAdapterInfo"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "adapter",
+ "requestDevice"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "async_ordering"
+ ],
+ "readme": "Test ordering of async resolutions between promises returned by the following calls (and possibly\nbetween multiple of the same call), where there are constraints on the ordering.\nSpec issue: https://github.com/gpuweb/gpuweb/issues/962\n\nTODO: plan and implement\n- createReadyPipeline() (not sure if this actually has any ordering constraints)\n- cmdbuf.executionTime\n- device.popErrorScope()\n- device.lost\n- queue.onSubmittedWorkDone()\n- buffer.mapAsync()\n- shadermodule.getCompilationInfo()"
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers"
+ ],
+ "readme": "GPUBuffer tests."
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers",
+ "map"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers",
+ "map_ArrayBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers",
+ "map_detach"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers",
+ "map_oom"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "buffers",
+ "threading"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "basic"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "clearBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "copyBufferToBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "copyTextureToTexture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "image_copy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "programmable",
+ "state_tracking"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "queries"
+ ],
+ "readme": "TODO: test the behavior of creating/using/resolving queries.\n- timestamp\n- nested (e.g. timestamp inside occlusion query), if any such cases are valid. Try\n writing to the same query set (at same or different indices), if valid. Check results make sense.\n- start a query (all types) with no draw calls"
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "queries",
+ "occlusionQuery"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "render",
+ "dynamic_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "command_buffer",
+ "render",
+ "state_tracking"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "compute",
+ "basic"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "compute_pipeline",
+ "entry_point_name"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "compute_pipeline",
+ "overrides"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "device",
+ "lost"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "labels"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "memory_allocation"
+ ],
+ "readme": "Try to stress memory allocators in the implementation and driver.\n\nTODO: plan and implement\n- Tests which (pseudo-randomly?) allocate a bunch of memory and then assert things about the memory\n (it's not aliased, it's valid to read and write in various ways, accesses read/write the correct data)\n - Possibly also with OOB accesses/robust buffer access?\n- Tests which are targeted against particular known implementation details"
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "memory_sync",
+ "buffer",
+ "multiple_buffers"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "memory_sync",
+ "buffer",
+ "single_buffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "memory_sync",
+ "texture",
+ "same_subresource"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "onSubmittedWorkDone"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "pipeline",
+ "default_layout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "queue",
+ "writeBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "reflection"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pass"
+ ],
+ "readme": "Render pass stuff other than commands (which are in command_buffer/)."
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pass",
+ "clear_value"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pass",
+ "resolve"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pass",
+ "storeOp"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pass",
+ "storeop2"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "culling_tests"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "overrides"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "pipeline_output_targets"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "primitive_topology"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "sample_mask"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "render_pipeline",
+ "vertex_only_render_pipeline"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "basic"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "color_target_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "depth"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "depth_bias"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "depth_clip_clamp"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "draw"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "indirect_draw"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "robust_access_index"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "rendering",
+ "stencil"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "resource_init",
+ "buffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "resource_init",
+ "texture_zero"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "sampling",
+ "anisotropy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "sampling",
+ "filter_mode"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "sampling",
+ "lod_clamp"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "shader_module",
+ "compilation_info"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "texture_view",
+ "format_reinterpretation"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "texture_view",
+ "read"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "texture_view",
+ "write"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "threading"
+ ],
+ "readme": "Tests for behavior with multiple threads (main thread + workers).\n\nTODO: plan and implement\n- 'postMessage'\n Try postMessage'ing an object of every type (to same or different thread)\n - {main -> main, main -> worker, worker -> main, worker1 -> worker1, worker1 -> worker2}\n - through {global postMessage, MessageChannel}\n - {in, not in} transferrable object list, when valid\n- 'concurrency'\n Short tight loop doing many of an action from two threads at the same time\n - e.g. {create {buffer, texture, shader, pipeline}}"
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "uncapturederror"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "vertex_state",
+ "correctness"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "operation",
+ "vertex_state",
+ "index_format"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "regression"
+ ],
+ "readme": "One-off tests that reproduce API bugs found in implementations to prevent the bugs from\nappearing again."
+ },
+ {
+ "file": [
+ "api",
+ "validation"
+ ],
+ "readme": "Positive and negative tests for all the validation rules of the API."
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "buffer",
+ "create"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "buffer",
+ "destroy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "buffer",
+ "mapping"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "buffer",
+ "threading"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "features"
+ ],
+ "readme": "Test every method or option that shouldn't be allowed without a feature enabled.\nIf the feature is not enabled, any use of an enum value added by a feature must be an\n*exception*, per <https://github.com/gpuweb/gpuweb/blob/main/design/ErrorConventions.md>.\n\n- x= that feature {enabled, disabled}\n\nGenerally one file for each feature name, but some may be grouped (e.g. one file for all optional\nquery types, one file for all optional texture formats).\n\nTODO: implement"
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "features",
+ "query_types"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "features",
+ "texture_formats"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits"
+ ],
+ "readme": "Test everything that shouldn't be valid without a higher-than-specified limit.\n\n- x= that limit {default, max supported (if different), lower than default (TODO: if allowed)}\n\nOne file for each limit name.\n\nTODO: implement\nTODO: Also test that \"alignment\" limits require a power of 2."
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxBindGroups"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxBindingsPerBindGroup"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxBufferSize"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxColorAttachmentBytesPerSample"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxColorAttachments"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeInvocationsPerWorkgroup"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeWorkgroupSizeX"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeWorkgroupSizeY"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeWorkgroupSizeZ"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeWorkgroupStorageSize"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxComputeWorkgroupsPerDimension"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxDynamicStorageBuffersPerPipelineLayout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxDynamicUniformBuffersPerPipelineLayout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxInterStageShaderComponents"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxInterStageShaderVariables"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxSampledTexturesPerShaderStage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxSamplersPerShaderStage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxStorageBufferBindingSize"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxStorageBuffersPerShaderStage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxStorageTexturesPerShaderStage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxTextureArrayLayers"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxTextureDimension1D"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxTextureDimension2D"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxTextureDimension3D"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxUniformBufferBindingSize"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxUniformBuffersPerShaderStage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxVertexAttributes"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxVertexBufferArrayStride"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "maxVertexBuffers"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "minStorageBufferOffsetAlignment"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "capability_checks",
+ "limits",
+ "minUniformBufferOffsetAlignment"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "compute_pipeline"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createBindGroup"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createBindGroupLayout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createPipelineLayout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createSampler"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createTexture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "createView"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "debugMarker"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "beginComputePass"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "beginRenderPass"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "clearBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "compute_pass"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "copyBufferToBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "copyTextureToTexture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "debug"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "index_access"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "draw"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "dynamic_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "indirect_draw"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "setIndexBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "setPipeline"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "setVertexBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render",
+ "state_tracking"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "render_pass"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "setBindGroup"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "createRenderBundleEncoder"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "encoder_open_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "encoder_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "programmable",
+ "pipeline_bind_group_compat"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "queries",
+ "begin_end"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "queries",
+ "general"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "queries",
+ "resolveQuerySet"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "encoding",
+ "render_bundle"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "error_scope"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "getBindGroupLayout"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "gpu_external_texture_expiration"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "image_copy"
+ ],
+ "readme": "writeTexture + copyBufferToTexture + copyTextureToBuffer validation tests.\n\nTest coverage:\n* resource usages:\n - texture_usage_must_be_valid: for GPUTextureUsage::COPY_SRC, GPUTextureUsage::COPY_DST flags.\n - buffer_usage_must_be_valid: for GPUBufferUsage::COPY_SRC, GPUBufferUsage::COPY_DST flags.\n\n* textureCopyView:\n - texture_must_be_valid: for valid, destroyed, error textures.\n - sample_count_must_be_1: for sample count 1 and 4.\n - mip_level_must_be_in_range: for various combinations of mipLevel and mipLevelCount.\n - format: for all formats with full and non-full copies on width, height, and depth.\n - texel_block_alignment_on_origin: for all formats and coordinates.\n\n* bufferCopyView:\n - buffer_must_be_valid: for valid, destroyed, error buffers.\n - bytes_per_row_alignment: for bytesPerRow to be 256-byte aligned or not, and bytesPerRow is required or not.\n\n* linear texture data:\n - bound_on_rows_per_image: for various combinations of copyDepth (1, >1), copyHeight, rowsPerImage.\n - offset_plus_required_bytes_in_copy_overflow\n - required_bytes_in_copy: testing minimal data size and data size too small for various combinations of bytesPerRow, rowsPerImage, copyExtent and offset. for the copy method, bytesPerRow is computed as bytesInACompleteRow aligned to be a multiple of 256 + bytesPerRowPadding * 256.\n - texel_block_alignment_on_rows_per_image: for all formats.\n - offset_alignment: for all formats.\n - bound_on_offset: for various combinations of offset and dataSize.\n\n* texture copy range:\n - 1d_texture: copyExtent.height isn't 1, copyExtent.depthOrArrayLayers isn't 1.\n - texel_block_alignment_on_size: for all formats and coordinates.\n - texture_range_conditons: for all coordinate and various combinations of origin, copyExtent, textureSize and mipLevel.\n\nTODO: more test coverage for 1D and 3D textures."
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "image_copy",
+ "buffer_related"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "image_copy",
+ "buffer_texture_copies"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "image_copy",
+ "layout_related"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "image_copy",
+ "texture_related"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "layout_shader_compat"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "query_set",
+ "create"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "query_set",
+ "destroy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue"
+ ],
+ "readme": "Tests for validation that occurs inside queued operations\n(submit, writeBuffer, writeTexture, copyExternalImageToTexture).\n\nBufferMapStatesToTest = {\n mapped -> unmapped,\n mapped at creation -> unmapped,\n mapping pending -> unmapped,\n pending -> mapped (await map),\n unmapped -> pending (noawait map),\n created mapped-at-creation,\n}\n\nNote writeTexture is tested in image_copy."
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "buffer_mapped"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "copyToTexture",
+ "CopyExternalImageToTexture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "destroyed",
+ "buffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "destroyed",
+ "query_set"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "destroyed",
+ "texture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "submit"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "writeBuffer"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "queue",
+ "writeTexture"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pass"
+ ],
+ "readme": "Render pass stuff other than commands (which are in encoding/cmds/)."
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pass",
+ "attachment_compatibility"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pass",
+ "render_pass_descriptor"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pass",
+ "resolve"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "depth_stencil_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "fragment_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "inter_stage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "misc"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "multisample_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "overrides"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "primitive_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "shader_module"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "render_pipeline",
+ "vertex_state"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "buffer"
+ ],
+ "readme": "TODO: look at texture,*"
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "buffer",
+ "in_pass_encoder"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "buffer",
+ "in_pass_misc"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "texture",
+ "in_pass_encoder"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "texture",
+ "in_render_common"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "resource_usages",
+ "texture",
+ "in_render_misc"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "shader_module",
+ "entry_point"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "shader_module",
+ "overrides"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "state",
+ "device_lost"
+ ],
+ "readme": "Tests of behavior while the device is lost.\n\n- x= every method in the API.\n\nTODO: implement"
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "state",
+ "device_lost",
+ "destroy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "texture",
+ "bgra8unorm_storage"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "texture",
+ "destroy"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "texture",
+ "float32_filterable"
+ ]
+ },
+ {
+ "file": [
+ "api",
+ "validation",
+ "texture",
+ "rg11b10ufloat_renderable"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "encoding",
+ "cmds",
+ "copyTextureToBuffer"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "encoding",
+ "programmable",
+ "pipeline_bind_group_compat"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "render_pipeline",
+ "fragment_state"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "render_pipeline",
+ "shader_module"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "render_pipeline",
+ "vertex_state"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "texture",
+ "createTexture"
+ ]
+ },
+ {
+ "file": [
+ "compat",
+ "api",
+ "validation",
+ "texture",
+ "cubeArray"
+ ]
+ },
+ {
+ "file": [
+ "examples"
+ ]
+ },
+ {
+ "file": [
+ "idl"
+ ],
+ "readme": "Tests to check that the WebGPU IDL is correctly implemented, for examples that objects exposed\nexactly the correct members, and that methods throw when passed incomplete dictionaries.\n\nSee https://github.com/gpuweb/cts/issues/332\n\nTODO: exposed.html.ts: Test all WebGPU interfaces instead of just some of them.\nTODO: Check prototype chains. (Add a helper in IDLTest for this.)"
+ },
+ {
+ "file": [
+ "idl",
+ "constants",
+ "flags"
+ ]
+ },
+ {
+ "file": [
+ "shader"
+ ],
+ "readme": "Tests for full coverage of the shaders that can be passed to WebGPU."
+ },
+ {
+ "file": [
+ "shader",
+ "execution"
+ ],
+ "readme": "Tests that check the result of valid shader execution."
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_comparison"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_division"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_matrix_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_matrix_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_remainder"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "af_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "bitwise"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "bitwise_shift"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "bool_logical"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_comparison"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_division"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_matrix_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_matrix_matrix_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_matrix_scalar_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_matrix_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_matrix_vector_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_remainder"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f16_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_comparison"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_division"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_matrix_addition"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_matrix_matrix_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_matrix_scalar_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_matrix_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_matrix_vector_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_multiplication"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_remainder"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "f32_subtraction"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "i32_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "i32_comparison"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "u32_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "binary",
+ "u32_comparison"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "abs"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "acos"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "acosh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "all"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "any"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "arrayLength"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "asin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "asinh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atan"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atan2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atanh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicAdd"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicAnd"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicCompareExchangeWeak"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicExchange"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicLoad"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicMax"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicMin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicOr"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicStore"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicSub"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "atomics",
+ "atomicXor"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "bitcast"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "ceil"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "clamp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "cos"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "cosh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "countLeadingZeros"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "countOneBits"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "countTrailingZeros"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "cross"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "degrees"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "determinant"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "distance"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dot"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdx"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdxCoarse"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdxFine"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdy"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdyCoarse"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "dpdyFine"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "exp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "exp2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "extractBits"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "faceForward"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "firstLeadingBit"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "firstTrailingBit"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "floor"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "fma"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "fract"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "frexp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "fwidth"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "fwidthCoarse"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "fwidthFine"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "insertBits"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "inversesqrt"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "ldexp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "length"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "log"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "log2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "max"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "min"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "mix"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "modf"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "normalize"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pack2x16float"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pack2x16snorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pack2x16unorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pack4x8snorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pack4x8unorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "pow"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "quantizeToF16"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "radians"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "reflect"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "refract"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "reverseBits"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "round"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "saturate"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "select"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "sign"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "sin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "sinh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "smoothstep"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "sqrt"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "step"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "storageBarrier"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "tan"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "tanh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureDimension"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureGather"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureGatherCompare"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureLoad"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureNumLayers"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureNumLevels"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureNumSamples"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSample"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSampleBias"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSampleCompare"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSampleCompareLevel"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSampleGrad"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureSampleLevel"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "textureStore"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "transpose"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "trunc"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "unpack2x16float"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "unpack2x16snorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "unpack2x16unorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "unpack4x8snorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "unpack4x8unorm"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "call",
+ "builtin",
+ "workgroupBarrier"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "af_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "af_assignment"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "bool_conversion"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "bool_logical"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "f16_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "f16_conversion"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "f32_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "f32_conversion"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "i32_arithmetic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "i32_complement"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "i32_conversion"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "u32_complement"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "expression",
+ "unary",
+ "u32_conversion"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "float_parse"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "call"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "complex"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "eval_order"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "for"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "if"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "loop"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "phony"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "return"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "switch"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "flow_control",
+ "while"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "memory_model",
+ "adjacent"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "memory_model",
+ "atomicity"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "memory_model",
+ "barrier"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "memory_model",
+ "coherence"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "memory_model",
+ "weak"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "padding"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "robust_access"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "robust_access_vertex"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "shader_io",
+ "compute_builtins"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "shader_io",
+ "shared_structs"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "shadow"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "statement",
+ "increment_decrement"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "execution",
+ "zero_init"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "regression"
+ ],
+ "readme": "One-off tests that reproduce shader bugs found in implementations to prevent the bugs from\nappearing again."
+ },
+ {
+ "file": [
+ "shader",
+ "validation"
+ ],
+ "readme": "Positive and negative tests for all the validation rules of the shading language."
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "const_assert",
+ "const_assert"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "decl",
+ "const"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "decl",
+ "override"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "decl",
+ "ptr_spelling"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "decl",
+ "var_access_mode"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "access",
+ "vector"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "binary",
+ "bitwise_shift"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "abs"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "acos"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "acosh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "asin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "asinh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "atan"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "atan2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "atanh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "atomics"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "bitcast"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "ceil"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "clamp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "cos"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "cosh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "degrees"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "exp"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "exp2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "inverseSqrt"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "length"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "log"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "log2"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "modf"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "radians"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "round"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "saturate"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "sign"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "sin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "sinh"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "sqrt"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "expression",
+ "call",
+ "builtin",
+ "tan"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "functions",
+ "alias_analysis"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "functions",
+ "restrictions"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "align"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "attribute"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "binary_ops"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "blankspace"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "break"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "builtin"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "comments"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "const"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "const_assert"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "diagnostic"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "discard"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "enable"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "identifiers"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "literal"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "must_use"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "pipeline_stage"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "semicolon"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "source"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "unary_ops"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "parse",
+ "var_and_let"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "binding"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "builtins"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "entry_point"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "group"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "group_and_binding"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "id"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "interpolate"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "invariant"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "locations"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "size"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "shader_io",
+ "workgroup_size"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "types",
+ "alias"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "types",
+ "struct"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "types",
+ "vector"
+ ]
+ },
+ {
+ "file": [
+ "shader",
+ "validation",
+ "uniformity",
+ "uniformity"
+ ]
+ },
+ {
+ "file": [
+ "util",
+ "texture",
+ "texel_data"
+ ]
+ },
+ {
+ "file": [
+ "util",
+ "texture",
+ "texture_ok"
+ ]
+ },
+ {
+ "file": [
+ "web_platform"
+ ],
+ "readme": "Tests for Web platform-specific interactions like GPUCanvasContext and canvas, WebXR,\nImageBitmaps, and video APIs.\n\nTODO(#922): Also hopefully tests for user-initiated readbacks from WebGPU canvases\n(printing, save image as, etc.)"
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas"
+ ],
+ "readme": "Tests for WebGPU <canvas> and OffscreenCanvas presentation."
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas",
+ "configure"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas",
+ "context_creation"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas",
+ "getCurrentTexture"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas",
+ "getPreferredCanvasFormat"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "canvas",
+ "readbackFromWebGPUCanvas"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture",
+ "ImageBitmap"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture",
+ "ImageData"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture"
+ ],
+ "readme": "Tests for copyToTexture from all possible sources (video, canvas, ImageBitmap, ...)"
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture",
+ "canvas"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture",
+ "image"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "copyToTexture",
+ "video"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "external_texture"
+ ],
+ "readme": "Tests for external textures."
+ },
+ {
+ "file": [
+ "web_platform",
+ "external_texture",
+ "video"
+ ]
+ },
+ {
+ "file": [
+ "web_platform",
+ "reftests"
+ ],
+ "readme": "Reference tests (reftests) for WebGPU canvas presentation.\n\nThese render some contents to a canvas using WebGPU, and WPT compares the rendering result with\nthe \"reference\" versions (in `ref/`) which render with 2D canvas.\n\nThis tests things like:\n- The canvas has the correct orientation.\n- The canvas renders with the correct transfer function.\n- The canvas blends and interpolates in the correct color encoding.\n\nTODO(#918): Test all possible color spaces (once we have more than 1)\nTODO(#921): Why is there sometimes a difference of 1 (e.g. 3f vs 40) in canvas_size_different_with_back_buffer_size?\nAnd why does chromium's image_diff show diffs on other pixels that don't seem to have diffs?\nTODO(#1093): Test rgba16float values which are out of gamut of the canvas but under SDR luminance.\nTODO(#1093): Test rgba16float values which are above SDR luminance.\nTODO(#1116): Test canvas scaling.\nTODO: Test transferControlToOffscreen, used from {the same,another} thread"
+ },
+ {
+ "file": [
+ "web_platform",
+ "worker",
+ "worker"
+ ]
+ }
+];