From e378bea56d9e87e00dd62048a97d993fa92e52a3 Mon Sep 17 00:00:00 2001 From: sagudev <16504129+sagudev@users.noreply.github.com> Date: Wed, 24 May 2023 17:32:04 +0200 Subject: [PATCH] Update webgpu cts --- tests/wpt/webgpu/meta/MANIFEST.json | 9212 ++++++++++++++++- tests/wpt/webgpu/tests/checkout_commit.txt | 1 + .../webgpu/common/framework/data_cache.js | 89 + .../tests/webgpu/common/framework/fixture.js | 260 +- .../common/framework/gpu/device_pool.js | 155 - .../common/framework/gpu/implementation.js | 19 - .../common/framework/logging/log_message.js | 48 - .../webgpu/common/framework/logging/logger.js | 35 - .../framework/logging/test_case_recorder.js | 139 - .../webgpu/common/framework/params_builder.js | 287 +- .../framework/query/json_param_value.js | 19 - .../webgpu/common/framework/query/query.js | 127 - .../framework/query/stringify_params.js | 27 - .../webgpu/common/framework/resources.js | 111 + .../webgpu/common/framework/test_config.js | 10 + .../webgpu/common/framework/test_group.js | 161 +- .../common/framework/util/async_mutex.js | 38 - .../webgpu/common/framework/util/timeout.js | 3 - .../webgpu/common/framework/util/util.js | 72 - .../tests/webgpu/common/framework/version.js | 3 - .../{framework => internal}/file_loader.js | 26 +- .../common/internal/logging/log_message.js | 42 + .../webgpu/common/internal/logging/logger.js | 27 + .../{framework => internal}/logging/result.js | 2 +- .../internal/logging/test_case_recorder.js | 158 + .../{framework => internal}/params_utils.js | 38 +- .../{framework => internal}/query/compare.js | 4 +- .../query/encode_selectively.js | 0 .../common/internal/query/json_param_value.js | 103 + .../query/parseQuery.js | 10 +- .../webgpu/common/internal/query/query.js | 237 + .../query/separators.js | 0 .../common/internal/query/stringify_params.js | 46 + .../query/validQueryPart.js | 0 .../{framework/util => internal}/stack.js | 12 +- .../webgpu/common/internal/test_group.js | 471 + .../test_suite_listing.js | 2 +- .../common/{framework => internal}/tree.js | 299 +- .../tests/webgpu/common/internal/util.js | 11 + .../tests/webgpu/common/internal/version.js | 3 + .../webgpu/common/runtime/helper/options.js | 17 +- .../runtime/helper/test_worker-worker.js | 24 +- .../common/runtime/helper/test_worker.js | 35 +- .../webgpu/tests/webgpu/common/runtime/wpt.js | 91 +- .../{framework => }/util/collect_garbage.js | 14 +- .../webgpu/tests/webgpu/common/util/colors.js | 63 + .../tests/webgpu/common/util/data_tables.js | 29 + .../tests/webgpu/common/util/navigator_gpu.js | 79 + .../tests/webgpu/common/util/preprocessor.js | 142 + .../tests/webgpu/common/util/timeout.js | 7 + .../webgpu/tests/webgpu/common/util/types.js | 13 + .../webgpu/tests/webgpu/common/util/util.js | 309 + .../webgpu/common/util/wpt_reftest_wait.js | 24 + tests/wpt/webgpu/tests/webgpu/cts.html | 63 - tests/wpt/webgpu/tests/webgpu/cts.https.html | 1691 +++ .../external/petamoriken/float16/float16.d.js | 3 + .../external/petamoriken/float16/float16.js | 1160 +++ .../webgpu/tests/webgpu/resources/README.md | 15 + .../four-colors-h264-bt601-rotate-180.mp4 | Bin 0 -> 16261 bytes .../four-colors-h264-bt601-rotate-270.mp4 | Bin 0 -> 16261 bytes .../four-colors-h264-bt601-rotate-90.mp4 | Bin 0 -> 16261 bytes .../resources/four-colors-h264-bt601.mp4 | Bin 0 -> 16261 bytes .../resources/four-colors-theora-bt601.ogv | Bin 0 -> 44488 bytes .../resources/four-colors-vp8-bt601.webm | Bin 0 -> 17910 bytes .../resources/four-colors-vp9-bt601.webm | Bin 0 -> 13116 bytes .../resources/four-colors-vp9-bt709.webm | Bin 0 -> 12584 bytes .../tests/webgpu/resources/four-colors.png | Bin 0 -> 840 bytes .../webgpu/tests/webgpu/resources/webgpu.png | Bin 0 -> 33475 bytes .../operation/adapter/requestAdapter.spec.js | 122 + .../adapter/requestAdapterInfo.spec.js | 55 + .../operation/adapter/requestDevice.spec.js | 361 + .../webgpu/api/operation/buffers/map.spec.js | 454 +- .../operation/buffers/map_ArrayBuffer.spec.js | 90 + .../api/operation/buffers/map_detach.spec.js | 117 +- .../api/operation/buffers/map_oom.spec.js | 110 +- .../api/operation/buffers/mapping_test.js | 4 +- .../api/operation/buffers/threading.spec.js | 30 + .../operation/command_buffer/basic.spec.js | 93 +- .../command_buffer/clearBuffer.spec.js | 55 + .../operation/command_buffer/copies.spec.js | 124 - .../command_buffer/copyBufferToBuffer.spec.js | 110 + .../copyTextureToTexture.spec.js | 1597 +++ .../command_buffer/image_copy.spec.js | 1914 ++++ .../programmable/programmable_state_test.js | 144 + .../programmable/state_tracking.spec.js | 319 + .../queries/occlusionQuery.spec.js | 985 ++ .../command_buffer/render/basic.spec.js | 46 - .../render/dynamic_state.spec.js | 20 + .../render/state_tracking.spec.js | 631 ++ .../api/operation/compute/basic.spec.js | 166 + .../compute_pipeline/entry_point_name.spec.js | 13 + .../compute_pipeline/overrides.spec.js | 505 + .../copyBetweenLinearDataAndTexture.spec.js | 1026 -- .../webgpu/api/operation/device/lost.spec.js | 93 + .../webgpu/api/operation/fences.spec.js | 145 - .../webgpu/api/operation/labels.spec.js | 280 + .../memory_sync/buffer/buffer_sync_test.js | 871 ++ .../buffer/multiple_buffers.spec.js | 354 + .../memory_sync/buffer/single_buffer.spec.js | 257 + .../memory_sync/operation_context_helper.js | 317 + .../texture/same_subresource.spec.js | 709 ++ .../memory_sync/texture/texture_sync_test.js | 110 + .../api/operation/onSubmittedWorkDone.spec.js | 57 + .../operation/pipeline/default_layout.spec.js | 28 + .../api/operation/queue/writeBuffer.spec.js | 233 + .../webgpu/api/operation/reflection.spec.js | 138 + .../operation/render_pass/clear_value.spec.js | 193 + .../api/operation/render_pass/resolve.spec.js | 184 + .../api/operation/render_pass/storeOp.spec.js | 220 +- .../operation/render_pass/storeop2.spec.js | 84 + .../render_pipeline/culling_tests.spec.js | 355 + .../render_pipeline/overrides.spec.js | 424 + .../pipeline_output_targets.spec.js | 446 + .../primitive_topology.spec.js | 474 + .../render_pipeline/sample_mask.spec.js | 798 ++ .../vertex_only_render_pipeline.spec.js | 30 + .../api/operation/rendering/basic.spec.js | 357 + .../rendering/color_target_state.spec.js | 811 ++ .../api/operation/rendering/depth.spec.js | 542 + .../operation/rendering/depth_bias.spec.js | 308 + .../rendering/depth_clip_clamp.spec.js | 524 + .../api/operation/rendering/draw.spec.js | 740 ++ .../operation/rendering/indirect_draw.spec.js | 249 + .../rendering/robust_access_index.spec.js | 9 + .../api/operation/rendering/stencil.spec.js | 575 + .../operation/resource_init/buffer.spec.js | 886 ++ .../resource_init/check_texture/by_copy.js | 56 + .../resource_init/check_texture/by_ds_test.js | 184 + .../check_texture/by_sampling.js | 152 + .../copied_texture_clear.spec.js | 75 - .../resource_init/texture_zero.spec.js | 613 ++ .../resource_init/texture_zero_init_test.js | 563 - .../api/operation/sampling/anisotropy.spec.js | 331 + .../operation/sampling/filter_mode.spec.js | 15 + .../api/operation/sampling/lod_clamp.spec.js | 13 + .../shader_module/compilation_info.spec.js | 265 + .../format_reinterpretation.spec.js | 349 + .../api/operation/texture_view/read.spec.js | 57 + .../api/operation/texture_view/write.spec.js | 55 + .../api/operation/uncapturederror.spec.js | 35 + .../vertex_state/correctness.spec.js | 1067 ++ .../vertex_state/index_format.spec.js | 573 + .../api/validation/buffer/create.spec.js | 122 + .../api/validation/buffer/destroy.spec.js | 102 + .../api/validation/buffer/mapping.spec.js | 1130 ++ .../api/validation/buffer/threading.spec.js | 15 + .../features/query_types.spec.js | 77 + .../features/texture_formats.spec.js | 440 + .../capability_checks/limits/limit_utils.js | 988 ++ .../limits/maxBindGroups.spec.js | 88 + .../limits/maxBindingsPerBindGroup.spec.js | 77 + .../limits/maxBufferSize.spec.js | 29 + .../maxColorAttachmentBytesPerSample.spec.js | 235 + .../limits/maxColorAttachments.spec.js | 114 + .../maxComputeInvocationsPerWorkgroup.spec.js | 137 + .../limits/maxComputeWorkgroupSizeX.spec.js | 13 + .../limits/maxComputeWorkgroupSizeY.spec.js | 13 + .../limits/maxComputeWorkgroupSizeZ.spec.js | 13 + .../maxComputeWorkgroupStorageSize.spec.js | 174 + .../maxComputeWorkgroupsPerDimension.spec.js | 72 + ...micStorageBuffersPerPipelineLayout.spec.js | 39 + ...micUniformBuffersPerPipelineLayout.spec.js | 42 + .../maxInterStageShaderComponents.spec.js | 143 + .../maxInterStageShaderVariables.spec.js | 45 + .../maxSampledTexturesPerShaderStage.spec.js | 137 + .../limits/maxSamplersPerShaderStage.spec.js | 138 + .../maxStorageBufferBindingSize.spec.js | 144 + .../maxStorageBuffersPerShaderStage.spec.js | 166 + .../maxStorageTexturesPerShaderStage.spec.js | 148 + .../limits/maxTextureArrayLayers.spec.js | 28 + .../limits/maxTextureDimension1D.spec.js | 35 + .../limits/maxTextureDimension2D.spec.js | 134 + .../limits/maxTextureDimension3D.spec.js | 40 + .../maxUniformBufferBindingSize.spec.js | 96 + .../maxUniformBuffersPerShaderStage.spec.js | 137 + .../limits/maxVertexAttributes.spec.js | 44 + .../limits/maxVertexBufferArrayStride.spec.js | 106 + .../limits/maxVertexBuffers.spec.js | 88 + .../minStorageBufferOffsetAlignment.spec.js | 175 + .../minUniformBufferOffsetAlignment.spec.js | 179 + .../api/validation/compute_pipeline.spec.js | 689 ++ .../copyBetweenLinearDataAndTexture.js | 179 - ...enLinearDataAndTexture_dataRelated.spec.js | 299 - ...inearDataAndTexture_textureRelated.spec.js | 307 - .../api/validation/createBindGroup.spec.js | 1113 +- .../validation/createBindGroupLayout.spec.js | 520 +- .../validation/createPipelineLayout.spec.js | 130 +- .../api/validation/createSampler.spec.js | 56 + .../api/validation/createTexture.spec.js | 952 +- .../webgpu/api/validation/createView.spec.js | 562 +- .../webgpu/api/validation/debugMarker.spec.js | 99 + .../encoding/beginComputePass.spec.js | 148 + .../encoding/beginRenderPass.spec.js | 217 + .../encoding/cmds/clearBuffer.spec.js | 242 + .../encoding/cmds/compute_pass.spec.js | 251 + .../cmds}/copyBufferToBuffer.spec.js | 197 +- .../cmds/copyTextureToTexture.spec.js | 872 ++ .../validation/encoding/cmds/debug.spec.js | 67 + .../encoding/cmds/index_access.spec.js | 163 + .../encoding/cmds/render/draw.spec.js | 827 ++ .../cmds/render/dynamic_state.spec.js | 296 + .../cmds/render/indirect_draw.spec.js | 203 + .../validation/encoding/cmds/render/render.js | 30 + .../cmds/render/setIndexBuffer.spec.js | 123 + .../encoding/cmds/render/setPipeline.spec.js | 63 + .../cmds/render/setVertexBuffer.spec.js | 142 + .../cmds/render/state_tracking.spec.js | 185 + .../encoding/cmds/render_pass.spec.js | 15 + .../encoding/cmds/setBindGroup.spec.js | 436 + .../createRenderBundleEncoder.spec.js | 228 + .../encoding/encoder_open_state.spec.js | 572 + .../validation/encoding/encoder_state.spec.js | 251 + .../pipeline_bind_group_compat.spec.js | 757 ++ .../encoding/queries/begin_end.spec.js | 163 + .../api/validation/encoding/queries/common.js | 30 + .../encoding/queries/general.spec.js | 158 + .../queries/pipeline_statistics.spec.js | 15 + .../encoding/queries/resolveQuerySet.spec.js | 183 + .../validation/encoding/render_bundle.spec.js | 259 + .../webgpu/api/validation/error_scope.spec.js | 349 +- .../webgpu/api/validation/fences.spec.js | 87 - .../api/validation/getBindGroupLayout.spec.js | 202 + .../gpu_external_texture_expiration.spec.js | 318 + .../image_copy/buffer_related.spec.js | 232 + .../image_copy/buffer_texture_copies.spec.js | 440 + .../api/validation/image_copy/image_copy.js | 216 + .../image_copy/layout_related.spec.js | 480 + .../image_copy/texture_related.spec.js | 540 + .../validation/layout_shader_compat.spec.js | 15 + .../api/validation/query_set/create.spec.js | 35 + .../api/validation/query_set/destroy.spec.js | 34 + .../validation/queue/buffer_mapped.spec.js | 266 + .../CopyExternalImageToTexture.spec.js | 798 ++ .../validation/queue/destroyed/buffer.spec.js | 297 + .../queue/destroyed/query_set.spec.js | 64 + .../queue/destroyed/texture.spec.js | 299 + .../api/validation/queue/submit.spec.js | 48 + .../api/validation/queue/writeBuffer.spec.js | 189 + .../api/validation/queue/writeTexture.spec.js | 111 + .../api/validation/queue_submit.spec.js | 43 - .../attachment_compatibility.spec.js | 634 ++ .../render_pass_descriptor.spec.js | 1048 ++ .../validation/render_pass/resolve.spec.js | 124 +- .../validation/render_pass/storeOp.spec.js | 76 - .../validation/render_pass_descriptor.spec.js | 568 - .../api/validation/render_pipeline/common.js | 62 + .../depth_stencil_state.spec.js | 223 + .../render_pipeline/fragment_state.spec.js | 388 + .../render_pipeline/inter_stage.spec.js | 320 + .../validation/render_pipeline/misc.spec.js | 94 + .../render_pipeline/multisample_state.spec.js | 84 + .../render_pipeline/overrides.spec.js | 536 + .../render_pipeline/primitive_state.spec.js | 43 + .../render_pipeline/shader_module.spec.js | 113 + .../render_pipeline/vertex_state.spec.js | 639 ++ .../buffer/in_pass_encoder.spec.js | 897 ++ .../buffer/in_pass_misc.spec.js | 404 + .../texture/in_pass_encoder.spec.js | 1349 +++ .../texture/in_render_common.spec.js | 574 + .../texture/in_render_misc.spec.js | 403 + .../textureUsageInRender.spec.js | 582 -- .../api/validation/setBindGroup.spec.js | 193 - .../api/validation/setBlendColor.spec.js | 49 - .../api/validation/setScissorRect.spec.js | 54 - .../validation/setStencilReference.spec.js | 43 - .../webgpu/api/validation/setViewport.spec.js | 73 - .../shader_module/entry_point.spec.js | 118 + .../shader_module/overrides.spec.js | 97 + .../state/device_lost/destroy.spec.js | 1022 ++ .../texture/bgra8unorm_storage.spec.js | 204 + .../api/validation/texture/destroy.spec.js | 137 + .../texture/float32_filterable.spec.js | 60 + .../texture/rg11b10ufloat_renderable.spec.js | 150 + .../webgpu/api/validation/validation_test.js | 418 +- .../tests/webgpu/webgpu/capability_info.js | 1322 +-- .../webgpu/tests/webgpu/webgpu/constants.js | 62 + .../tests/webgpu/webgpu/examples.spec.js | 240 +- .../webgpu/tests/webgpu/webgpu/format_info.js | 1474 +++ .../webgpu/tests/webgpu/webgpu/gpu_test.js | 1049 +- .../webgpu/webgpu/idl/constants/flags.spec.js | 19 +- .../tests/webgpu/webgpu/idl/exposed.html.js | 52 + .../tests/webgpu/webgpu/idl/exposed.http.html | 13 + .../webgpu/webgpu/idl/exposed.https.html | 13 + .../tests/webgpu/webgpu/idl/idl_test.js | 16 +- .../wpt/webgpu/tests/webgpu/webgpu/listing.js | 3336 +++++- .../execution/expression/binary/binary.js | 14 + .../expression/binary/bitwise.spec.js | 307 + .../expression/binary/bitwise_shift.spec.js | 354 + .../expression/binary/bool_logical.spec.js | 176 + .../expression/binary/f16_comparison.spec.js | 271 + .../expression/binary/f32_addition.spec.js | 256 + .../expression/binary/f32_comparison.spec.js | 253 + .../expression/binary/f32_division.spec.js | 248 + .../binary/f32_matrix_addition.spec.js | 219 + .../f32_matrix_matrix_multiplication.spec.js | 524 + .../f32_matrix_scalar_multiplication.spec.js | 397 + .../binary/f32_matrix_subtraction.spec.js | 219 + .../f32_matrix_vector_multiplication.spec.js | 411 + .../binary/f32_multiplication.spec.js | 248 + .../expression/binary/f32_remainder.spec.js | 248 + .../expression/binary/f32_subtraction.spec.js | 248 + .../expression/binary/i32_arithmetic.spec.js | 693 ++ .../expression/binary/i32_comparison.spec.js | 110 + .../expression/binary/u32_arithmetic.spec.js | 680 ++ .../expression/binary/u32_comparison.spec.js | 110 + .../expression/call/builtin/abs.spec.js | 156 + .../expression/call/builtin/acos.spec.js | 56 + .../expression/call/builtin/acosh.spec.js | 60 + .../expression/call/builtin/all.spec.js | 93 + .../expression/call/builtin/any.spec.js | 93 + .../call/builtin/arrayLength.spec.js | 244 + .../expression/call/builtin/asin.spec.js | 56 + .../expression/call/builtin/asinh.spec.js | 51 + .../expression/call/builtin/atan.spec.js | 71 + .../expression/call/builtin/atan2.spec.js | 67 + .../expression/call/builtin/atanh.spec.js | 63 + .../call/builtin/atomics/atomicAdd.spec.js | 103 + .../call/builtin/atomics/atomicAnd.spec.js | 137 + .../atomics/atomicCompareExchangeWeak.spec.js | 38 + .../builtin/atomics/atomicExchange.spec.js | 22 + .../call/builtin/atomics/atomicLoad.spec.js | 23 + .../call/builtin/atomics/atomicMax.spec.js | 102 + .../call/builtin/atomics/atomicMin.spec.js | 101 + .../call/builtin/atomics/atomicOr.spec.js | 132 + .../call/builtin/atomics/atomicStore.spec.js | 22 + .../call/builtin/atomics/atomicSub.spec.js | 103 + .../call/builtin/atomics/atomicXor.spec.js | 137 + .../call/builtin/atomics/harness.js | 174 + .../expression/call/builtin/bitcast.spec.js | 454 + .../expression/call/builtin/builtin.js | 6 + .../expression/call/builtin/ceil.spec.js | 68 + .../expression/call/builtin/clamp.spec.js | 160 + .../expression/call/builtin/cos.spec.js | 64 + .../expression/call/builtin/cosh.spec.js | 51 + .../call/builtin/countLeadingZeros.spec.js | 247 + .../call/builtin/countOneBits.spec.js | 246 + .../call/builtin/countTrailingZeros.spec.js | 247 + .../expression/call/builtin/cross.spec.js | 67 + .../expression/call/builtin/degrees.spec.js | 55 + .../call/builtin/determinant.spec.js | 143 + .../expression/call/builtin/distance.spec.js | 167 + .../expression/call/builtin/dot.spec.js | 160 + .../expression/call/builtin/dpdx.spec.js | 22 + .../call/builtin/dpdxCoarse.spec.js | 21 + .../expression/call/builtin/dpdxFine.spec.js | 20 + .../expression/call/builtin/dpdy.spec.js | 21 + .../call/builtin/dpdyCoarse.spec.js | 21 + .../expression/call/builtin/dpdyFine.spec.js | 20 + .../expression/call/builtin/exp.spec.js | 63 + .../expression/call/builtin/exp2.spec.js | 63 + .../call/builtin/extractBits.spec.js | 338 + .../call/builtin/faceForward.spec.js | 205 + .../call/builtin/firstLeadingBit.spec.js | 344 + .../call/builtin/firstTrailingBit.spec.js | 247 + .../expression/call/builtin/floor.spec.js | 67 + .../expression/call/builtin/fma.spec.js | 63 + .../expression/call/builtin/fract.spec.js | 69 + .../expression/call/builtin/frexp.spec.js | 374 + .../expression/call/builtin/fwidth.spec.js | 20 + .../call/builtin/fwidthCoarse.spec.js | 20 + .../call/builtin/fwidthFine.spec.js | 20 + .../call/builtin/insertBits.spec.js | 387 + .../call/builtin/inversesqrt.spec.js | 59 + .../expression/call/builtin/ldexp.spec.js | 87 + .../expression/call/builtin/length.spec.js | 118 + .../expression/call/builtin/log.spec.js | 66 + .../expression/call/builtin/log2.spec.js | 66 + .../expression/call/builtin/max.spec.js | 109 + .../expression/call/builtin/min.spec.js | 108 + .../expression/call/builtin/mix.spec.js | 88 + .../expression/call/builtin/modf.spec.js | 359 + .../expression/call/builtin/normalize.spec.js | 113 + .../call/builtin/pack2x16float.spec.js | 89 + .../call/builtin/pack2x16snorm.spec.js | 53 + .../call/builtin/pack2x16unorm.spec.js | 53 + .../call/builtin/pack4x8snorm.spec.js | 57 + .../call/builtin/pack4x8unorm.spec.js | 57 + .../expression/call/builtin/pow.spec.js | 61 + .../call/builtin/quantizeToF16.spec.js | 71 + .../expression/call/builtin/radians.spec.js | 53 + .../expression/call/builtin/reflect.spec.js | 141 + .../expression/call/builtin/refract.spec.js | 200 + .../call/builtin/reverseBits.spec.js | 811 ++ .../expression/call/builtin/round.spec.js | 51 + .../expression/call/builtin/saturate.spec.js | 57 + .../expression/call/builtin/select.spec.js | 227 + .../expression/call/builtin/sign.spec.js | 68 + .../expression/call/builtin/sin.spec.js | 63 + .../expression/call/builtin/sinh.spec.js | 51 + .../call/builtin/smoothstep.spec.js | 65 + .../expression/call/builtin/sqrt.spec.js | 51 + .../expression/call/builtin/step.spec.js | 80 + .../call/builtin/storageBarrier.spec.js | 39 + .../expression/call/builtin/tan.spec.js | 57 + .../expression/call/builtin/tanh.spec.js | 48 + .../call/builtin/textureDimension.spec.js | 161 + .../call/builtin/textureGather.spec.js | 275 + .../call/builtin/textureGatherCompare.spec.js | 135 + .../call/builtin/textureLoad.spec.js | 183 + .../call/builtin/textureNumLayers.spec.js | 99 + .../call/builtin/textureNumLevels.spec.js | 66 + .../call/builtin/textureNumSamples.spec.js | 38 + .../call/builtin/textureSample.spec.js | 278 + .../call/builtin/textureSampleBias.spec.js | 176 + .../call/builtin/textureSampleCompare.spec.js | 150 + .../builtin/textureSampleCompareLevel.spec.js | 154 + .../call/builtin/textureSampleGrad.spec.js | 139 + .../call/builtin/textureSampleLevel.spec.js | 295 + .../call/builtin/textureStore.spec.js | 123 + .../expression/call/builtin/transpose.spec.js | 190 + .../expression/call/builtin/trunc.spec.js | 49 + .../call/builtin/unpack2x16float.spec.js | 49 + .../call/builtin/unpack2x16snorm.spec.js | 49 + .../call/builtin/unpack2x16unorm.spec.js | 49 + .../call/builtin/unpack4x8snorm.spec.js | 49 + .../call/builtin/unpack4x8unorm.spec.js | 49 + .../expression/call/builtin/utils.js | 46 + .../call/builtin/workgroupBarrier.spec.js | 39 + .../shader/execution/expression/case_cache.js | 163 + .../shader/execution/expression/expression.js | 977 ++ .../unary/abstract_float_assignment.spec.js | 59 + .../expression/unary/bool_conversion.spec.js | 142 + .../expression/unary/bool_logical.spec.js | 32 + .../expression/unary/f32_arithmetic.spec.js | 40 + .../expression/unary/f32_conversion.spec.js | 288 + .../expression/unary/i32_arithmetic.spec.js | 36 + .../expression/unary/i32_complement.spec.js | 36 + .../expression/unary/i32_conversion.spec.js | 151 + .../expression/unary/u32_complement.spec.js | 36 + .../expression/unary/u32_conversion.spec.js | 159 + .../execution/expression/unary/unary.js | 10 + .../shader/execution/float_parse.spec.js | 133 + .../execution/flow_control/call.spec.js | 84 + .../execution/flow_control/complex.spec.js | 43 + .../execution/flow_control/eval_order.spec.js | 1008 ++ .../shader/execution/flow_control/for.spec.js | 272 + .../shader/execution/flow_control/harness.js | 231 + .../shader/execution/flow_control/if.spec.js | 103 + .../execution/flow_control/loop.spec.js | 126 + .../execution/flow_control/phony.spec.js | 136 + .../execution/flow_control/return.spec.js | 57 + .../execution/flow_control/switch.spec.js | 157 + .../execution/flow_control/while.spec.js | 141 + .../execution/memory_model/atomicity.spec.js | 103 + .../execution/memory_model/barrier.spec.js | 220 + .../execution/memory_model/coherence.spec.js | 528 + .../memory_model/memory_model_setup.js | 962 ++ .../execution/memory_model/weak.spec.js | 447 + .../webgpu/shader/execution/padding.spec.js | 497 + .../shader/execution/robust_access.spec.js | 472 + .../execution/robust_access_vertex.spec.js | 550 + .../shader_io/compute_builtins.spec.js | 294 + .../shader_io/shared_structs.spec.js | 335 + .../webgpu/shader/execution/shadow.spec.js | 408 + .../statement/increment_decrement.spec.js | 377 + .../webgpu/shader/execution/zero_init.spec.js | 509 + .../tests/webgpu/webgpu/shader/types.js | 193 + .../const_assert/const_assert.spec.js | 72 + .../expression/binary/bitwise_shift.spec.js | 167 + .../expression/call/builtin/atomics.spec.js | 71 + .../shader/validation/parse/align.spec.js | 342 + .../shader/validation/parse/attribute.spec.js | 88 + .../validation/parse/binary_ops.spec.js | 90 + .../validation/parse/blankspace.spec.js | 66 + .../shader/validation/parse/break.spec.js | 85 + .../shader/validation/parse/builtin.spec.js | 145 + .../shader/validation/parse/comments.spec.js | 76 + .../shader/validation/parse/const.spec.js | 58 + .../validation/parse/const_assert.spec.js | 39 + .../shader/validation/parse/discard.spec.js | 66 + .../shader/validation/parse/enable.spec.js | 71 + .../validation/parse/identifiers.spec.js | 288 + .../shader/validation/parse/literal.spec.js | 298 + .../validation/parse/pipeline_stage.spec.js | 156 + .../shader/validation/parse/semicolon.spec.js | 270 + .../shader/validation/parse/source.spec.js | 30 + .../shader/validation/parse/unary_ops.spec.js | 49 + .../validation/parse/var_and_let.spec.js | 73 + .../resource_interface/bindings.spec.js | 114 + .../validation/resource_interface/util.js | 88 + .../validation/shader_io/builtins.spec.js | 277 + .../validation/shader_io/entry_point.spec.js | 138 + .../validation/shader_io/interpolate.spec.js | 145 + .../validation/shader_io/invariant.spec.js | 84 + .../validation/shader_io/locations.spec.js | 260 + .../shader/validation/shader_io/util.js | 68 + .../validation/shader_validation_test.js | 77 + .../validation/uniformity/uniformity.spec.js | 359 + .../tests/webgpu/webgpu/shader/values.js | 94 + .../webgpu/tests/webgpu/webgpu/util/buffer.js | 20 + .../webgpu/webgpu/util/check_contents.js | 173 + .../webgpu/util/color_space_conversion.js | 241 + .../webgpu/util/command_buffer_maker.js | 61 + .../tests/webgpu/webgpu/util/compare.js | 410 + .../tests/webgpu/webgpu/util/constants.js | 740 ++ .../tests/webgpu/webgpu/util/conversion.js | 1261 ++- .../webgpu/webgpu/util/copy_to_texture.js | 173 + .../webgpu/webgpu/util/create_elements.js | 56 + .../tests/webgpu/webgpu/util/device_pool.js | 371 + .../webgpu/webgpu/util/floating_point.js | 4164 ++++++++ .../webgpu/tests/webgpu/webgpu/util/math.js | 1867 +++- .../webgpu/tests/webgpu/webgpu/util/memory.js | 26 + .../webgpu/webgpu/util/pretty_diff_tables.js | 49 + .../webgpu/tests/webgpu/webgpu/util/shader.js | 194 + .../tests/webgpu/webgpu/util/texture.js | 74 + .../tests/webgpu/webgpu/util/texture/base.js | 199 + .../webgpu/util/texture/data_generation.js | 84 + .../webgpu/webgpu/util/texture/layout.js | 246 +- .../webgpu/webgpu/util/texture/subresource.js | 40 +- .../webgpu/webgpu/util/texture/texelData.js | 359 - .../webgpu/webgpu/util/texture/texel_data.js | 852 ++ .../webgpu/util/texture/texel_data.spec.js | 314 + .../webgpu/webgpu/util/texture/texel_view.js | 122 + .../webgpu/webgpu/util/texture/texture_ok.js | 311 + .../webgpu/util/texture/texture_ok.spec.js | 162 + .../webgpu/tests/webgpu/webgpu/util/unions.js | 42 + .../canvas/context_creation.spec.js | 24 - .../copyImageBitmapToTexture.spec.js | 374 - .../web-platform/reftests/canvas_clear.html | 10 - .../web-platform/reftests/canvas_clear.js | 29 - .../web-platform/reftests/canvas_complex.js | 80 - .../reftests/canvas_complex_bgra8unorm.html | 18 - .../web-platform/reftests/gpu_ref_test.js | 20 - .../reftests/ref/canvas_clear-ref.html | 12 - .../reftests/ref/canvas_complex-ref.html | 17 - .../web_platform/canvas/configure.spec.js | 424 + .../canvas/context_creation.spec.js | 48 + .../canvas/getCurrentTexture.spec.js | 384 + .../canvas/getPreferredCanvasFormat.spec.js | 20 + .../canvas/readbackFromWebGPUCanvas.spec.js | 472 + .../copyToTexture/ImageBitmap.spec.js | 558 + .../web_platform/copyToTexture/canvas.spec.js | 746 ++ .../web_platform/copyToTexture/video.spec.js | 97 + .../external_texture/video.spec.js | 478 + .../reftests/canvas_clear.html.js | 35 + .../reftests/canvas_clear.https.html | 12 + .../reftests/canvas_colorspace.html.js | 136 + .../canvas_colorspace_bgra8unorm.https.html | 22 + .../canvas_colorspace_rgba16float.https.html | 23 + .../canvas_colorspace_rgba8unorm.https.html | 22 + .../reftests/canvas_complex.html.js | 768 ++ .../canvas_complex_bgra8unorm_copy.https.html | 24 + .../canvas_complex_bgra8unorm_draw.https.html | 24 + ...canvas_complex_rgba16float_copy.https.html | 24 + ...canvas_complex_rgba16float_draw.https.html | 24 + ...anvas_complex_rgba16float_store.https.html | 24 + .../canvas_complex_rgba8unorm_copy.https.html | 24 + .../canvas_complex_rgba8unorm_draw.https.html | 24 + ...canvas_complex_rgba8unorm_store.https.html | 24 + .../reftests/canvas_composite_alpha.html.js | 175 + ...te_alpha_bgra8unorm_opaque_copy.https.html | 21 + ...te_alpha_bgra8unorm_opaque_draw.https.html | 21 + ...a_bgra8unorm_premultiplied_copy.https.html | 22 + ...a_bgra8unorm_premultiplied_draw.https.html | 22 + ...e_alpha_rgba16float_opaque_copy.https.html | 21 + ...e_alpha_rgba16float_opaque_draw.https.html | 21 + ..._rgba16float_premultiplied_copy.https.html | 22 + ..._rgba16float_premultiplied_draw.https.html | 22 + ...te_alpha_rgba8unorm_opaque_copy.https.html | 21 + ...te_alpha_rgba8unorm_opaque_draw.https.html | 21 + ...a_rgba8unorm_premultiplied_copy.https.html | 22 + ...a_rgba8unorm_premultiplied_draw.https.html | 22 + .../reftests/canvas_image_rendering.html.js | 80 + .../canvas_image_rendering.https.html | 15 + .../reftests/create-pattern-data-url.js | 20 + .../web_platform/reftests/gpu_ref_test.js | 23 + .../reftests/ref/canvas_clear-ref.html | 22 + .../reftests/ref/canvas_colorspace-ref.html | 17 + .../ref/canvas_colorspace-ref.html.js | 55 + .../reftests/ref/canvas_complex-ref.html | 26 + .../canvas_composite_alpha_opaque-ref.html | 26 + ...vas_composite_alpha_premultiplied-ref.html | 26 + .../ref/canvas_image_rendering-ref.html | 25 + .../reftests/ref/resize_observer-ref.html | 90 + .../reftests/resize_observer.html.js | 147 + .../reftests/resize_observer.https.html | 24 + .../tests/webgpu/webgpu/web_platform/util.js | 285 + .../webgpu/web_platform/worker/worker.js | 86 + .../webgpu/web_platform/worker/worker.spec.js | 36 + .../web_platform/worker/worker_launcher.js | 16 + 580 files changed, 127367 insertions(+), 9404 deletions(-) create mode 100644 tests/wpt/webgpu/tests/checkout_commit.txt create mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/data_cache.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/gpu/device_pool.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/gpu/implementation.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/logging/log_message.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/logging/logger.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/logging/test_case_recorder.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/query/json_param_value.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/query/query.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/query/stringify_params.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/resources.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/test_config.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/util/async_mutex.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/util/timeout.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/util/util.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/common/framework/version.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/file_loader.js (51%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/logging/log_message.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/logging/logger.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/logging/result.js (82%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/logging/test_case_recorder.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/params_utils.js (52%) rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/query/compare.js (96%) rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/query/encode_selectively.js (100%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/query/json_param_value.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/query/parseQuery.js (94%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/query/query.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/query/separators.js (100%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/query/stringify_params.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/query/validQueryPart.js (100%) rename tests/wpt/webgpu/tests/webgpu/common/{framework/util => internal}/stack.js (93%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/test_group.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/test_suite_listing.js (82%) rename tests/wpt/webgpu/tests/webgpu/common/{framework => internal}/tree.js (52%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/util.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/internal/version.js rename tests/wpt/webgpu/tests/webgpu/common/{framework => }/util/collect_garbage.js (73%) create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/colors.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/data_tables.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/navigator_gpu.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/preprocessor.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/timeout.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/types.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/util.js create mode 100644 tests/wpt/webgpu/tests/webgpu/common/util/wpt_reftest_wait.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/cts.html create mode 100644 tests/wpt/webgpu/tests/webgpu/cts.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/external/petamoriken/float16/float16.d.js create mode 100644 tests/wpt/webgpu/tests/webgpu/external/petamoriken/float16/float16.js create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/README.md create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-h264-bt601-rotate-180.mp4 create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-h264-bt601-rotate-270.mp4 create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-h264-bt601-rotate-90.mp4 create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-h264-bt601.mp4 create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-theora-bt601.ogv create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-vp8-bt601.webm create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-vp9-bt601.webm create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors-vp9-bt709.webm create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/four-colors.png create mode 100644 tests/wpt/webgpu/tests/webgpu/resources/webgpu.png create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/adapter/requestAdapter.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/adapter/requestAdapterInfo.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/adapter/requestDevice.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/buffers/threading.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/copies.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/image_copy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/programmable/programmable_state_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/queries/occlusionQuery.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/render/basic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/compute/basic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/compute_pipeline/overrides.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/copyBetweenLinearDataAndTexture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/device/lost.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/fences.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/labels.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/buffer/buffer_sync_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/buffer/multiple_buffers.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/buffer/single_buffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/operation_context_helper.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/memory_sync/texture/texture_sync_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/pipeline/default_layout.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/queue/writeBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/reflection.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pass/clear_value.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pass/resolve.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pass/storeop2.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/overrides.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/basic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/color_target_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/depth.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/depth_bias.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/draw.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/indirect_draw.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/robust_access_index.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/rendering/stencil.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/buffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_copy.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_ds_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_sampling.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/copied_texture_clear.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/texture_zero.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/resource_init/texture_zero_init_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/sampling/anisotropy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/sampling/filter_mode.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/sampling/lod_clamp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/shader_module/compilation_info.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/texture_view/format_reinterpretation.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/texture_view/read.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/texture_view/write.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/uncapturederror.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/vertex_state/correctness.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/operation/vertex_state/index_format.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/buffer/create.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/buffer/destroy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/buffer/mapping.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/buffer/threading.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/limit_utils.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxBindGroups.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxBindingsPerBindGroup.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxBufferSize.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxColorAttachmentBytesPerSample.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxColorAttachments.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeInvocationsPerWorkgroup.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeWorkgroupSizeX.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeWorkgroupSizeY.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeWorkgroupSizeZ.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeWorkgroupStorageSize.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxComputeWorkgroupsPerDimension.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxDynamicStorageBuffersPerPipelineLayout.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxDynamicUniformBuffersPerPipelineLayout.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxInterStageShaderComponents.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxInterStageShaderVariables.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxSampledTexturesPerShaderStage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxSamplersPerShaderStage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxStorageBufferBindingSize.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxStorageBuffersPerShaderStage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxStorageTexturesPerShaderStage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxTextureArrayLayers.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxTextureDimension1D.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxTextureDimension2D.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxTextureDimension3D.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxUniformBufferBindingSize.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxUniformBuffersPerShaderStage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxVertexAttributes.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxVertexBufferArrayStride.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/maxVertexBuffers.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/minStorageBufferOffsetAlignment.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/capability_checks/limits/minUniformBufferOffsetAlignment.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/compute_pipeline.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/copy_between_linear_data_and_texture/copyBetweenLinearDataAndTexture.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/copy_between_linear_data_and_texture/copyBetweenLinearDataAndTexture_dataRelated.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/copy_between_linear_data_and_texture/copyBetweenLinearDataAndTexture_textureRelated.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/createSampler.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/debugMarker.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/beginComputePass.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass.spec.js rename tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/{ => encoding/cmds}/copyBufferToBuffer.spec.js (63%) create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/debug.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/render.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/encoder_open_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/encoder_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/queries/common.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/queries/general.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/encoding/render_bundle.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/fences.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/getBindGroupLayout.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/gpu_external_texture_expiration.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/image_copy/buffer_related.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/image_copy/buffer_texture_copies.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/image_copy/image_copy.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/image_copy/layout_related.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/image_copy/texture_related.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/layout_shader_compat.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/query_set/create.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/query_set/destroy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/buffer_mapped.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/destroyed/texture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/submit.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/writeBuffer.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue/writeTexture.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/queue_submit.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pass/attachment_compatibility.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pass/render_pass_descriptor.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pass/storeOp.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pass_descriptor.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/common.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/depth_stencil_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/fragment_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/inter_stage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/misc.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/multisample_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/overrides.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/primitive_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/shader_module.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/render_pipeline/vertex_state.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/buffer/in_pass_encoder.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/buffer/in_pass_misc.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/resource_usages/textureUsageInRender.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/setBindGroup.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/setBlendColor.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/setScissorRect.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/setStencilReference.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/setViewport.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/shader_module/entry_point.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/shader_module/overrides.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/state/device_lost/destroy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/texture/bgra8unorm_storage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/texture/destroy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/texture/float32_filterable.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/api/validation/texture/rg11b10ufloat_renderable.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/constants.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/format_info.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/idl/exposed.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/idl/exposed.http.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/idl/exposed.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/binary.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise_shift.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/bool_logical.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f16_comparison.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_addition.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_comparison.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_division.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_matrix_addition.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_matrix_matrix_multiplication.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_matrix_scalar_multiplication.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_matrix_subtraction.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_matrix_vector_multiplication.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_multiplication.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_remainder.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/f32_subtraction.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/i32_arithmetic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/i32_comparison.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/u32_arithmetic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/binary/u32_comparison.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/acos.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/acosh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/arrayLength.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/asin.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/asinh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atanh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicAdd.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicAnd.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicCompareExchangeWeak.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicExchange.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicLoad.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicMax.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicMin.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicOr.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicStore.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicSub.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/atomicXor.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atomics/harness.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/bitcast.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/builtin.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cosh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cross.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/degrees.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/determinant.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/distance.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dot.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdx.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdxCoarse.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdxFine.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdy.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdyCoarse.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/dpdyFine.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/exp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/exp2.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/faceForward.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fma.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/frexp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fwidth.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fwidthCoarse.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fwidthFine.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/length.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/mix.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/modf.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/normalize.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pack2x16float.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pack2x16snorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pack2x16unorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pack4x8snorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pack4x8unorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/pow.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/quantizeToF16.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/radians.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reflect.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/refract.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/round.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/saturate.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sign.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sinh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/smoothstep.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sqrt.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/step.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/storageBarrier.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/tan.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/tanh.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureDimension.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureGather.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureGatherCompare.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureLoad.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureNumLayers.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureNumLevels.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureNumSamples.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSample.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSampleBias.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSampleCompare.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSampleCompareLevel.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSampleGrad.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureSampleLevel.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/textureStore.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/transpose.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/trunc.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/unpack2x16float.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/unpack2x16snorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/unpack2x16unorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/unpack4x8snorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/unpack4x8unorm.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/utils.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/call/builtin/workgroupBarrier.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/case_cache.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/expression.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/abstract_float_assignment.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/bool_conversion.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/bool_logical.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/f32_conversion.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/i32_arithmetic.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/i32_complement.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/i32_conversion.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/u32_complement.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/u32_conversion.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/expression/unary/unary.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/float_parse.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/call.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/complex.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/eval_order.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/for.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/harness.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/if.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/loop.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/phony.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/return.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/switch.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/flow_control/while.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/memory_model/atomicity.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/memory_model/barrier.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/memory_model/coherence.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/memory_model/memory_model_setup.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/memory_model/weak.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/padding.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/robust_access.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/robust_access_vertex.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/shadow.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/statement/increment_decrement.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/execution/zero_init.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/types.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/const_assert/const_assert.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/expression/binary/bitwise_shift.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/expression/call/builtin/atomics.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/align.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/attribute.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/binary_ops.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/blankspace.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/break.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/builtin.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/comments.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/const.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/const_assert.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/discard.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/enable.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/identifiers.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/literal.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/pipeline_stage.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/semicolon.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/source.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/unary_ops.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/parse/var_and_let.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/resource_interface/bindings.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/resource_interface/util.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/builtins.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/entry_point.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/interpolate.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/invariant.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/locations.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_io/util.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/shader_validation_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/validation/uniformity/uniformity.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/shader/values.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/buffer.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/check_contents.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/color_space_conversion.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/command_buffer_maker.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/compare.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/constants.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/copy_to_texture.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/create_elements.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/device_pool.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/floating_point.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/memory.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/pretty_diff_tables.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/shader.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/base.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/data_generation.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texelData.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texel_data.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texel_data.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texel_view.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texture_ok.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/texture/texture_ok.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/util/unions.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/canvas/context_creation.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/copyImageBitmapToTexture.spec.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/canvas_clear.html delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/canvas_clear.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/canvas_complex.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/canvas_complex_bgra8unorm.html delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/gpu_ref_test.js delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/ref/canvas_clear-ref.html delete mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web-platform/reftests/ref/canvas_complex-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/canvas/configure.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/canvas/context_creation.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/canvas/getPreferredCanvasFormat.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/copyToTexture/canvas.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/copyToTexture/video.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/external_texture/video.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_clear.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_clear.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_colorspace.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_colorspace_bgra8unorm.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_colorspace_rgba16float.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_colorspace_rgba8unorm.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_bgra8unorm_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_bgra8unorm_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba16float_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba16float_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba16float_store.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba8unorm_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba8unorm_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_complex_rgba8unorm_store.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_image_rendering.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/canvas_image_rendering.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/create-pattern-data-url.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/gpu_ref_test.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_clear-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_colorspace-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_colorspace-ref.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/canvas_image_rendering-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/ref/resize_observer-ref.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/resize_observer.html.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/reftests/resize_observer.https.html create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/util.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/worker/worker.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/worker/worker.spec.js create mode 100644 tests/wpt/webgpu/tests/webgpu/webgpu/web_platform/worker/worker_launcher.js diff --git a/tests/wpt/webgpu/meta/MANIFEST.json b/tests/wpt/webgpu/meta/MANIFEST.json index fce2c9e2efa..590b9025069 100644 --- a/tests/wpt/webgpu/meta/MANIFEST.json +++ b/tests/wpt/webgpu/meta/MANIFEST.json @@ -3,28 +3,452 @@ "reftest": { "webgpu": { "webgpu": { - "web-platform": { + "web_platform": { "reftests": { - "canvas_clear.html": [ - "86a3da939dbe94efbeec04e5d366a40736ca4560", + "canvas_clear.https.html": [ + "3639d3ca82f6faef06d45e63e880d38f35bb25a0", [ null, [ [ - "/_webgpu/webgpu/webgpu/web-platform/reftests/ref/canvas_clear-ref.html", + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_clear-ref.html", "==" ] ], {} ] ], - "canvas_complex_bgra8unorm.html": [ - "1310543648e4fd640b0deb227000731af7b88b00", + "canvas_colorspace_bgra8unorm.https.html": [ + "c910c97b1dda05eb9c7c8aa06419b5ed2a7e233c", [ null, [ [ - "/_webgpu/webgpu/webgpu/web-platform/reftests/ref/canvas_complex-ref.html", + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_colorspace-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_colorspace_rgba16float.https.html": [ + "7f57858e491eb7fc3e52cadbc05b19565064f1e1", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_colorspace-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 1, + 1 + ], + [ + 8192, + 8192 + ] + ] + ] + ] + } + ] + ], + "canvas_colorspace_rgba8unorm.https.html": [ + "e57e04ef5c8e7eee0a2862b50c887984e9d4a6d4", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_colorspace-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_bgra8unorm_copy.https.html": [ + "d378bdfcf55616b090d4dd2030f6b35cf57bd366", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_bgra8unorm_draw.https.html": [ + "99049e6e326448b4fb9cfa63ce2e44ace243dab8", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba16float_copy.https.html": [ + "400afa121be452010982ba304d08086b37f60547", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba16float_draw.https.html": [ + "a647fc2956b2bdcbc5140cd5d372a322375395a7", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba16float_store.https.html": [ + "b812129b0b6766dc1ed482bc29bf1ee4ea38709d", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba8unorm_copy.https.html": [ + "d2570a3bdf37c770dddd963145e59a2d8ff7aa94", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba8unorm_draw.https.html": [ + "647a8292591861fa5cb269c33d4c5da4df7bdbd7", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_complex_rgba8unorm_store.https.html": [ + "b82745658eef5fec9f0b56b6c2dbbf6ad4c9c340", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_complex-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_bgra8unorm_opaque_copy.https.html": [ + "60e8417c1608bb9537f2fc2a9a98a06c3fde17d5", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_bgra8unorm_opaque_draw.https.html": [ + "c0280a2a992d27cf9f0c5e4f8bc576880230bcbd", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html": [ + "70920dc0e6d161949498c05aadfa62b07b5c549f", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html": [ + "d12751fac211060cf19b20d08f7a68142415b401", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_composite_alpha_rgba16float_opaque_copy.https.html": [ + "4471f08480e128d980b3b59b306a1cacc4ff36f9", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_rgba16float_opaque_draw.https.html": [ + "11f0e73ec23fbe327a4a57ba8f7df7d2bcc17d5b", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_rgba16float_premultiplied_copy.https.html": [ + "ed722013c15495c0f1aafc62aa585313985124b3", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_composite_alpha_rgba16float_premultiplied_draw.https.html": [ + "8a028b168e1c066aa4bb017cd399ad7431eb400e", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_composite_alpha_rgba8unorm_opaque_copy.https.html": [ + "7147631d1990ba31e85f5d9bd81325fedceebfa0", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_rgba8unorm_opaque_draw.https.html": [ + "ec2bb05ed304c2b3bea5cc5f1b35fdb1f7bf0157", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html": [ + "fa938aba41f39cffe03b13c662f3feb850a63b16", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html": [ + "b62e71054c2b1c274febc19d56935d812d2d15e2", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 400 + ] + ] + ] + ] + } + ] + ], + "canvas_image_rendering.https.html": [ + "f51145645be45edae1636cbd5f8dea69bfb8879c", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/canvas_image_rendering-ref.html", + "==" + ] + ], + {} + ] + ], + "resize_observer.https.html": [ + "2845cc29ebcdbfc9531cc6485655a272781d77c6", + [ + null, + [ + [ + "/_webgpu/webgpu/webgpu/web_platform/reftests/ref/resize_observer-ref.html", "==" ] ], @@ -45,56 +469,68 @@ "ef0dbfee60ce3e787131ca40e5be64952e578e03", [] ], + "checkout_commit.txt": [ + "5db12b3c0c240f6567fa294f3fa56dfd75b6e891", + [] + ], "webgpu": { "common": { "framework": { - "file_loader.js": [ - "b6f3d50859515c47f8a9bdf2f2a9c6158fe104e0", + "data_cache.js": [ + "e426ffbbc91953a3ffcb4f96ab3bca9454a5e0fe", [] ], "fixture.js": [ - "fcff2a6bb9fac5fd35d4129f611e3ccb0a4864e3", + "1e5f129e6a4c57a38082f9959279d2552d669361", + [] + ], + "params_builder.js": [ + "787911f9649c34e84827fb5fc4cd3fe399d95ba0", + [] + ], + "resources.js": [ + "72eabeda4e46abac4e27068695ab407fb2b06fae", + [] + ], + "test_config.js": [ + "de016471cd2051c8f8348d822e7e2ef41fe431e6", + [] + ], + "test_group.js": [ + "2d1d3c1c07ae7d5815ec2b7db00a0bb4e0eea3e3", + [] + ] + }, + "internal": { + "file_loader.js": [ + "6a74dddf789063b2131d40189a6b0debc747afec", [] ], - "gpu": { - "device_pool.js": [ - "f72b6b734c671ff0316fadfec49e0a93bd16fd10", - [] - ], - "implementation.js": [ - "ab118a45444d120e521fbbd3e79d326b0a43beff", - [] - ] - }, "logging": { "log_message.js": [ - "8c1007fa822ddfc2a894540ad9ed041db298b972", + "3e5fb1c99d8669a1cd1658675e43334df4993c08", [] ], "logger.js": [ - "c4e65c746f04e3dfcb8ef2ed4053bef10250f958", + "77b78f0d7588374a2f5d0a13d7894ce4c6d74167", [] ], "result.js": [ - "d387dc3e340863c31f6f92d15083544021f7e4c7", + "9b2db0e1926f9bcf858cf953612b04cba1966f11", [] ], "test_case_recorder.js": [ - "37acb53143c22e9859eb94e1d059916b52274941", + "3d60563cfb2b8a6d5d0c3b484b249823b273f581", [] ] }, - "params_builder.js": [ - "f585e3a2184fd821e9a4ce4266c1d277b4c5965d", - [] - ], "params_utils.js": [ - "d4ffd25372d2d3e975c683ca8a17c2c82d5c8687", + "85bb6dbe806101c9630d5efb34c43596f28afbb0", [] ], "query": { "compare.js": [ - "782088752f9cf68d4b7528cd42c72bc084380be3", + "7e86f6c0f3b22ffbc3512af1ad507b650a68e59c", [] ], "encode_selectively.js": [ @@ -102,15 +538,15 @@ [] ], "json_param_value.js": [ - "921b3ddce6aacde8e3b05d4133dc07ffb90842f8", + "ddc0994e5707c844e3bef1e85ca2f3926a03e979", [] ], "parseQuery.js": [ - "8bfd88bc9b66a41e08b3283b13b65bb3da0c10fe", + "b9f5ac2034a529ff1dd2f0900ed19e646617a8d5", [] ], "query.js": [ - "0a9742055eb29f987958c1cc4d66a1cf4910f74b", + "b7db9fe4a59d01cf13e90ecefaf6c4be40e13d99", [] ], "separators.js": [ @@ -118,7 +554,7 @@ [] ], "stringify_params.js": [ - "b9c9cde7067b8cfc2fe2ad59d9d3c7fde3d38733", + "b62bc9169368c03b28f3cde6ab351beba38cfe8c", [] ], "validQueryPart.js": [ @@ -126,311 +562,2133 @@ [] ] }, + "stack.js": [ + "98636bd401414c8ad6bb64413c4c84d1f30272fa", + [] + ], "test_group.js": [ - "4515bca19b70a701b2c32f2894b61b330d8e95ba", + "d9c632a47ff47dd2b54209f6854e8a0908212ac8", [] ], "test_suite_listing.js": [ - "d387dc3e340863c31f6f92d15083544021f7e4c7", + "9b2db0e1926f9bcf858cf953612b04cba1966f11", [] ], "tree.js": [ - "87ff0d227e169c75255e0738af90946716f20134", + "9c2bf8cb114208df0fa9c7ebc6e64b392baec4bd", + [] + ], + "util.js": [ + "66979fbc30829c106a9682b8ce4dbbc27fff6dc5", [] ], - "util": { - "async_mutex.js": [ - "da461048fc495b118def36bff846e02be4268346", - [] - ], - "collect_garbage.js": [ - "d18982a2758e46634995ce7ac692918a0620a800", - [] - ], - "stack.js": [ - "00d08642d1534ea678f101c6d1627c5265df76bc", - [] - ], - "timeout.js": [ - "db1e5cfa1ae71e8c7fded6655b388441f4f851da", - [] - ], - "util.js": [ - "e7479046bee2e30f1116c1ab9f7d1e19ea6d82b4", - [] - ] - }, "version.js": [ - "74eef63b8a1fa6042d1d8352b25eaf95d4b25985", + "2d205096c7caabd861a59a3ccd8c6b82fffe6044", [] ] }, "runtime": { "helper": { "options.js": [ - "e70671a56319af57068da4c201c4868822da4564", + "946c0bdc11945b4e36315821af5375289f1d9156", [] ], "test_worker-worker.js": [ - "2402c6c3ab7b978e1e093cc20be9c8cef75b9ca8", + "5b490252fdf58deb9e22560164ad247cc5273345", [] ], "test_worker.js": [ - "f844920b50dc80340430cf0f42e54369d557a6ca", + "c56339ab97e84f726593c1b8c7dbb4d8b7ba383d", [] ] }, "wpt.js": [ - "5749159538dc7c08dd98f6b966054e2695d77437", + "90294223c098baef73e68c63f1cc5f9700276ffb", + [] + ] + }, + "util": { + "collect_garbage.js": [ + "2696caf79e08b2c9613e7349c2ed4a5dc022e375", + [] + ], + "colors.js": [ + "f77ba765562bd8241aa5dce5b4a7fa49a3857107", + [] + ], + "data_tables.js": [ + "c5d21d400174bb34259dac1ed4b526ff2f59fcb3", + [] + ], + "navigator_gpu.js": [ + "c37c2bc36a9a4c57a89e98e3fead17a937e1140a", + [] + ], + "preprocessor.js": [ + "455406de0682bcddce8ac8fd43dd2230dd5a7e89", + [] + ], + "timeout.js": [ + "77605fc8dedd02c28cbf7206bc7a68362786a05e", + [] + ], + "types.js": [ + "e4aaa93ec9eee6d2c0cc51f47abf541e2a1ff37f", + [] + ], + "util.js": [ + "86e14af06e000a6abd772fe0d2c019dab275c8ef", + [] + ], + "wpt_reftest_wait.js": [ + "b41b3cadf9792effb7db6e983ebc912d8dd6d038", [] ] } }, + "external": { + "petamoriken": { + "float16": { + "float16.d.js": [ + "9b2db0e1926f9bcf858cf953612b04cba1966f11", + [] + ], + "float16.js": [ + "58f75c873a6bf1bca38e2e6591fe77691d567f19", + [] + ] + } + } + }, + "resources": { + "README.md": [ + "824f82b998f2bd7d650b18428f8dd24d715e9e92", + [] + ], + "four-colors-h264-bt601-rotate-180.mp4": [ + "1f0e9094a5287a1b59de74269f99b844c0a25578", + [] + ], + "four-colors-h264-bt601-rotate-270.mp4": [ + "e0480ceff2f81e094e8a6c002db31d2242cbf918", + [] + ], + "four-colors-h264-bt601-rotate-90.mp4": [ + "9a6261056e91dcfc66d4f15d5b6888df90ae8a3a", + [] + ], + "four-colors-h264-bt601.mp4": [ + "81a5ade4354cfb328af4127a5579e87900d2965e", + [] + ], + "four-colors-theora-bt601.ogv": [ + "79ed41163c3bcec6e117c9935143bd51fdb55fa1", + [] + ], + "four-colors-vp8-bt601.webm": [ + "20a2178596e9890d445aa5177475623501d00827", + [] + ], + "four-colors-vp9-bt601.webm": [ + "a4044a920981a37eb307235359c96972504f2853", + [] + ], + "four-colors-vp9-bt709.webm": [ + "189e422035c7769e74bdbd46c546bc4876d0b0d9", + [] + ], + "four-colors.png": [ + "c26c3d48654edf48a8577d4406c29a6e7d4a85f2", + [] + ], + "webgpu.png": [ + "eec0d6eb90f9862cd8a9c9b9abdcdc336d1aa6f7", + [] + ] + }, "webgpu": { "api": { "operation": { + "adapter": { + "requestAdapter.spec.js": [ + "df1ad4dd0fda4c0b61a7a29939b72aa987e4a2e8", + [] + ], + "requestAdapterInfo.spec.js": [ + "c00a68176260d8b3e961552f82a22883263cce38", + [] + ], + "requestDevice.spec.js": [ + "3472603c8de281988668d07a755f3c8e18ec608f", + [] + ] + }, "buffers": { "map.spec.js": [ - "f751b721d5f87013334e9e240ca517c6447a84f5", + "48ad500e784ae81e54b6a8ab0585c615723f874c", + [] + ], + "map_ArrayBuffer.spec.js": [ + "d006e4048621be7a0c328717b1bec7853d77bd87", [] ], "map_detach.spec.js": [ - "aca8dc46e5797b9c31ee682e7ce04d12a2644b79", + "57d395f7b36a0a9c4f896433f73e8c9cf8220f9e", [] ], "map_oom.spec.js": [ - "205f1147ed2b4304e21f8713126e69227ae48d3b", + "86fd574199fae3a76776191a372d9977a0ba6545", [] ], "mapping_test.js": [ - "45ce419a69d4accb2ac1b36f82a2065ce16a900e", + "7a69968a9f962bc20df3bbfe580d53aa0bc0f72f", + [] + ], + "threading.spec.js": [ + "d30e5813b36fa9b735e8bc2dced8317d9a628172", [] ] }, "command_buffer": { "basic.spec.js": [ - "7f4dd29b24ff8280b7aaede344b42bb5edca4d19", + "55d6ac553550931d71461d1a9c67353a313249bc", [] ], - "copies.spec.js": [ - "a6ecc3c9c2973b1f46704f77d255d9f185cabc31", + "clearBuffer.spec.js": [ + "b721cdcc2bc14554d6e98b018019f64f2a9b4440", [] ], + "copyBufferToBuffer.spec.js": [ + "a08050784bc21b273a4d76c16d65bd5ed1e62360", + [] + ], + "copyTextureToTexture.spec.js": [ + "1b42190334f2cc1ce783828857379c7e33e8d53a", + [] + ], + "image_copy.spec.js": [ + "bb5eda5d90c5df6c6c2b78f2121c8ff414c78c71", + [] + ], + "programmable": { + "programmable_state_test.js": [ + "e263adf8ea6b2367855e4c5a56463de4e50be1d7", + [] + ], + "state_tracking.spec.js": [ + "04280d540833a604fc92645ae8262e669f284081", + [] + ] + }, + "queries": { + "occlusionQuery.spec.js": [ + "c142beabc71b17d12ab2343804038f7c0d7cdf37", + [] + ] + }, "render": { - "basic.spec.js": [ - "d3913ef5752b277c62e4f451923231c6d55ff947", + "dynamic_state.spec.js": [ + "69c91e371d4e7ed5efc4281591bac1b60283f755", + [] + ], + "state_tracking.spec.js": [ + "d50c4f794b4b7d2be6db3cce1b33c673fe115c9d", [] ] } }, - "copyBetweenLinearDataAndTexture.spec.js": [ - "d2b89189e2c65d50f4f6f0c20f32a7f6512c5b35", + "compute": { + "basic.spec.js": [ + "a8859e6845d6dd4d68c3bd0eca5fbb3c28f0dc7f", + [] + ] + }, + "compute_pipeline": { + "entry_point_name.spec.js": [ + "ddd6b8850df4612a68612afd2255296200f9ef20", + [] + ], + "overrides.spec.js": [ + "a323b97eff56e53ce0e31de32c955f20ffd40cce", + [] + ] + }, + "device": { + "lost.spec.js": [ + "2b5d7a2d1751dab95d24e5c9b9fdc2c5822960bf", + [] + ] + }, + "labels.spec.js": [ + "ddd2ab0e15583647ae7ba9d2d0393dbc0b648c26", [] ], - "fences.spec.js": [ - "98f913008b8af33e1dc866f5714388d4ec9e050d", + "memory_sync": { + "buffer": { + "buffer_sync_test.js": [ + "e6196c7f609b39b04c7a18003b482155992e2cff", + [] + ], + "multiple_buffers.spec.js": [ + "49cbba0b7c09303ee23989919fdd5193525685f1", + [] + ], + "single_buffer.spec.js": [ + "fede1375e83589dc5a50d22ed4a7aae584763b54", + [] + ] + }, + "operation_context_helper.js": [ + "222d06fac926165724e0ca1b583c040d0fa012d2", + [] + ], + "texture": { + "same_subresource.spec.js": [ + "0dcd7f90af40131199193186c235921dd910941b", + [] + ], + "texture_sync_test.js": [ + "35b868eaa469c53cf3f659a3aebf0200fe4d001e", + [] + ] + } + }, + "onSubmittedWorkDone.spec.js": [ + "6f549c73adeb38b1553242484f42c228b22e943a", + [] + ], + "pipeline": { + "default_layout.spec.js": [ + "7d441d2c9dee5a9121bb6dc19812b9542f659309", + [] + ] + }, + "queue": { + "writeBuffer.spec.js": [ + "4e59843c95ed5d5e583d524fb968339ea06670fe", + [] + ] + }, + "reflection.spec.js": [ + "f2e53d68f7342e394a0c70ba9e75afbc34a44e15", [] ], "render_pass": { + "clear_value.spec.js": [ + "7f8749d7edb3bbe8b3a0492e0dd4abdc3b7bec76", + [] + ], + "resolve.spec.js": [ + "c9984c65fe0f9265a3c38c3c8353ee0cbcfa01aa", + [] + ], "storeOp.spec.js": [ - "83ae8657c1c822b6cfc8f511089de88dfd2d8fdc", + "f50a0a05902c931e3d5a014ac9578c9ee8f75995", + [] + ], + "storeop2.spec.js": [ + "61bb1ea5548e71d455b4260818b18246b0b30494", + [] + ] + }, + "render_pipeline": { + "culling_tests.spec.js": [ + "f03ad7e86f45c74c9e5f778f0105def23b6481f4", + [] + ], + "overrides.spec.js": [ + "dcc76eb8d06a87d0c6150cba39017793bee6effe", + [] + ], + "pipeline_output_targets.spec.js": [ + "e28bcdb72008d7bc4b432c27f703b76768c2628f", + [] + ], + "primitive_topology.spec.js": [ + "bf188dd5f477f275badc72f67a9aab9937daff7f", + [] + ], + "sample_mask.spec.js": [ + "7ceffee00ee752b53dad3b7aa44bdf094db8edcd", + [] + ], + "vertex_only_render_pipeline.spec.js": [ + "eb6e3611969230a203143b7cf9c54706415a2ec1", + [] + ] + }, + "rendering": { + "basic.spec.js": [ + "a850903b9e1f5864fa5e5b6740161ab2a2f7bf03", + [] + ], + "color_target_state.spec.js": [ + "4c648d1c1e9739af25cc3ed26c144b8621884018", + [] + ], + "depth.spec.js": [ + "53e28bf32b9264da5eb4a03af04559c2361dd762", + [] + ], + "depth_bias.spec.js": [ + "e1e8f5d285e09f320c83c36b15c5cd4ee46d452e", + [] + ], + "depth_clip_clamp.spec.js": [ + "f9ecfdcedc5cfc2f3d54cd2aea26abcbf15cd1ad", + [] + ], + "draw.spec.js": [ + "e565f78fd8e568ca66b075865bf980c1f0cb6324", + [] + ], + "indirect_draw.spec.js": [ + "15d227809a8028bd95e803c7559dbe5d72f8a70c", + [] + ], + "robust_access_index.spec.js": [ + "6b052b895d4f9fa1b26bb06dd6543b069964181c", + [] + ], + "stencil.spec.js": [ + "fd4adf84329c661cf7c2a228c4155d1cb40a5614", [] ] }, "resource_init": { - "copied_texture_clear.spec.js": [ - "28fb5b368e317ef68ba6a3ec854729c3ca8cfb0e", + "buffer.spec.js": [ + "0008f0dafea639f8b7d0e1d2e4145dd83db7177a", [] ], - "texture_zero_init_test.js": [ - "381d7dcb0a8e9574834629223308c7ef0e375b4b", + "check_texture": { + "by_copy.js": [ + "0f363d25a9b119135c8bd0b1971ce95ed211e30a", + [] + ], + "by_ds_test.js": [ + "84d63563ec1b922c4de6bcaaa49e95bd5bb5a13d", + [] + ], + "by_sampling.js": [ + "476b689315f7b3ea0bf24e8398f4e0c70833df18", + [] + ] + }, + "texture_zero.spec.js": [ + "33a0d49d31dd8bca4263bb77cdacf1da5c7942cd", + [] + ] + }, + "sampling": { + "anisotropy.spec.js": [ + "43fb17a51eedcac4c6c7ecf19c0929dc6081e611", + [] + ], + "filter_mode.spec.js": [ + "e67e308f1819a2b4b1ba80312ee841957ab15ec3", + [] + ], + "lod_clamp.spec.js": [ + "b05896a34d9b62f9d36403ed14a4aa47adcf62cf", + [] + ] + }, + "shader_module": { + "compilation_info.spec.js": [ + "26a314fbc795341f19551f2a58941140791fad27", + [] + ] + }, + "texture_view": { + "format_reinterpretation.spec.js": [ + "69c4dd68e3c0e45faf2e1f2c0370db7266ecb84e", + [] + ], + "read.spec.js": [ + "96884efec510782ab67b131bb389721296dfa2a8", + [] + ], + "write.spec.js": [ + "3a47c0360ebeb94379db9313d08d3dad003c2069", + [] + ] + }, + "uncapturederror.spec.js": [ + "acd39ae972f2d1c0fa08e842c406d7490ba5c555", + [] + ], + "vertex_state": { + "correctness.spec.js": [ + "0d6ffc853efacfd55afcec787250f4fa327ac7cc", + [] + ], + "index_format.spec.js": [ + "5e06d0705dd1dc2cc5553aa0de4f3b10f96b0082", [] ] } }, "validation": { - "copyBufferToBuffer.spec.js": [ - "5fd4877383a47b1e3ca27af8e0843781dbf5a443", - [] - ], - "copy_between_linear_data_and_texture": { - "copyBetweenLinearDataAndTexture.js": [ - "0db6e68d4af6e395ba07157fd4b1ed0c567fd182", + "buffer": { + "create.spec.js": [ + "c8a39346edf52cba008407921fa9d44c7c7bfdf4", [] ], - "copyBetweenLinearDataAndTexture_dataRelated.spec.js": [ - "be1395b664276f13a728a60acee835d96753e6e1", + "destroy.spec.js": [ + "13572c50959fe07dccd1c9b6a2d2d4c2af181a6b", [] ], - "copyBetweenLinearDataAndTexture_textureRelated.spec.js": [ - "bef71943fae2bc6f0dcaa4ae53b744190ccdc00c", + "mapping.spec.js": [ + "85e8210708387f8c2dd43205efd90c457a998051", + [] + ], + "threading.spec.js": [ + "46256ab73d4f82f7bb095adcb628bb65b0d87076", [] ] }, + "capability_checks": { + "features": { + "query_types.spec.js": [ + "de90d0bb1b8c7668c6ff34d7cbf1adccc937ad60", + [] + ], + "texture_formats.spec.js": [ + "b281643a12cf0b04e91438332278a3e3f5d8a614", + [] + ] + }, + "limits": { + "limit_utils.js": [ + "56c58f43d79518db73d5d722cf240fab80140c58", + [] + ], + "maxBindGroups.spec.js": [ + "bd13235b8b7e223f4e73e6abc31a887200679941", + [] + ], + "maxBindingsPerBindGroup.spec.js": [ + "ebc2e8c07d9ae6f44a32826fdc49e87424a2e2b4", + [] + ], + "maxBufferSize.spec.js": [ + "2f232776fcce874ef3483854c7bf7c0f9968ec85", + [] + ], + "maxColorAttachmentBytesPerSample.spec.js": [ + "5d93d1b969e0c7c9c12e7c7e66d7d34c8bdd3497", + [] + ], + "maxColorAttachments.spec.js": [ + "38520d8394496346b1c8a8ee751b26beea4f861d", + [] + ], + "maxComputeInvocationsPerWorkgroup.spec.js": [ + "68f19bd17eccfa98f59e7c213a45d78e680a4457", + [] + ], + "maxComputeWorkgroupSizeX.spec.js": [ + "877e0cd7c5098e176b67d70039ef26ece11b475c", + [] + ], + "maxComputeWorkgroupSizeY.spec.js": [ + "b4dbd592dedbccf2870c44fb12e40a0bda585d73", + [] + ], + "maxComputeWorkgroupSizeZ.spec.js": [ + "b77ffb9d316c5202d247fc16e81ed8c1b3a8d26b", + [] + ], + "maxComputeWorkgroupStorageSize.spec.js": [ + "c4f2a3c6c38333fcd4a6aa0110cbb32243963087", + [] + ], + "maxComputeWorkgroupsPerDimension.spec.js": [ + "f988ac77ee3aa835c1dad983d6ba29dc97113d76", + [] + ], + "maxDynamicStorageBuffersPerPipelineLayout.spec.js": [ + "4b2eb04ae29c494d1ca5421ed1bd4792741e0f55", + [] + ], + "maxDynamicUniformBuffersPerPipelineLayout.spec.js": [ + "81d7350ab537dc8bfc5ef60a595a3ab55127d824", + [] + ], + "maxInterStageShaderComponents.spec.js": [ + "a8c3bb219d67bcdf8cc82edf264b1ea2b184ce1d", + [] + ], + "maxInterStageShaderVariables.spec.js": [ + "ccba23d513b2800c0e3e78a101dc4fe998336ae4", + [] + ], + "maxSampledTexturesPerShaderStage.spec.js": [ + "24c19427989dcfe31454eea038defc345ad28522", + [] + ], + "maxSamplersPerShaderStage.spec.js": [ + "cc53aff55ab01a09e114ffced96d08a8fb7540a6", + [] + ], + "maxStorageBufferBindingSize.spec.js": [ + "836b54827a61d818a5414eee4bc24cebf063f673", + [] + ], + "maxStorageBuffersPerShaderStage.spec.js": [ + "866b920f83ab2b96707ab06295d6e0969fb64d36", + [] + ], + "maxStorageTexturesPerShaderStage.spec.js": [ + "c3bef558630a7777e9e4264835c2ab93ada8cab7", + [] + ], + "maxTextureArrayLayers.spec.js": [ + "4ec58b166005c2aaa0b00c6a737283946a85d1e1", + [] + ], + "maxTextureDimension1D.spec.js": [ + "a7f6ab02713f7a0bbc4e1f1ae087ee574fb01ecb", + [] + ], + "maxTextureDimension2D.spec.js": [ + "69313ca15dffaf3cfb9fc1368090fc9e0aed5159", + [] + ], + "maxTextureDimension3D.spec.js": [ + "fa3f13ddf3a8686f8948b5fd0bac73107420efd5", + [] + ], + "maxUniformBufferBindingSize.spec.js": [ + "af7634f04cfd0bc738215cab47ab2cfac9ea651b", + [] + ], + "maxUniformBuffersPerShaderStage.spec.js": [ + "a676a05ad60143d7e37a416175ecc4500c93fc00", + [] + ], + "maxVertexAttributes.spec.js": [ + "79a44956c15d3527a09098ac418951a11888540e", + [] + ], + "maxVertexBufferArrayStride.spec.js": [ + "a4688ac1acf1f9a34bec47aa3fb482908eaf30d5", + [] + ], + "maxVertexBuffers.spec.js": [ + "306f2c0523ad773ab5207939304f2f13904edc63", + [] + ], + "minStorageBufferOffsetAlignment.spec.js": [ + "cb5b9380848c1184e0bebe48e570d0a72dadb54e", + [] + ], + "minUniformBufferOffsetAlignment.spec.js": [ + "c5003d5c1a0a84c037bb55e1b3bfc95ffe9a1321", + [] + ] + } + }, + "compute_pipeline.spec.js": [ + "30f4abc06363f9554d61b06c5f867562cd9ce6f0", + [] + ], "createBindGroup.spec.js": [ - "fa585038e39ff6208787ee89bc177bdb13cdc385", + "0a6f32322ead65fa335ae6380aa361f9ac7450de", [] ], "createBindGroupLayout.spec.js": [ - "43fd923687b68d9214305b04ea1573e044245928", + "1693e7646a4c2bbaebd83920481217371a41bf82", [] ], "createPipelineLayout.spec.js": [ - "689ddaec883cd639f6cf94ab4d3005a4c4512db5", + "4e08be8513ac9ee5ee45f2f10e69b62c01a74b8a", + [] + ], + "createSampler.spec.js": [ + "e49ca260fffadbf3381ac67522a6e331230d72da", [] ], "createTexture.spec.js": [ - "ceff54e136ff321bf22a8647790c3263404f6afc", + "baf9a655d76c2ea1d584199aa75d79eef4323626", [] ], "createView.spec.js": [ - "d5b16563c13d9429bb1da58b9c5dd18279904f3d", + "696aef1339ab908c4adc92ce8ccc3718e2c624b4", [] ], - "error_scope.spec.js": [ - "64575540e8bde1545565389108067bf4b078cae9", + "debugMarker.spec.js": [ + "f6e247b66b901e0cf330b2647a09c97c3a9910f0", [] ], - "fences.spec.js": [ - "b50ebae572d9af8f4edd3f82c051877b6068374e", - [] - ], - "queue_submit.spec.js": [ - "4e77076e35089cbdd9ae1ffe04c8f13fd6663f1d", - [] - ], - "render_pass": { - "resolve.spec.js": [ - "78965d9155e999ee19c3e97315502b11676ea838", + "encoding": { + "beginComputePass.spec.js": [ + "662b130bda6dbf53b61f3f289145331383732322", [] ], - "storeOp.spec.js": [ - "e63540a9ca8afdc536200ebcfc8e955674b7a018", + "beginRenderPass.spec.js": [ + "9f0bd59e6b887ba54caa8d5e0ef2da7834a2ff28", + [] + ], + "cmds": { + "clearBuffer.spec.js": [ + "c788d2a0de945cd805a944c210d31611728c177f", + [] + ], + "compute_pass.spec.js": [ + "042c306786763a2102f57b045dacfc11a3fd7833", + [] + ], + "copyBufferToBuffer.spec.js": [ + "cdd011638744e3248bafc5582ad5eafe5d7948f5", + [] + ], + "copyTextureToTexture.spec.js": [ + "845c871a216c8959f566c7c2d86268611e2758ef", + [] + ], + "debug.spec.js": [ + "f923b68d8dfb90586baf2411e08eb06ed502b624", + [] + ], + "index_access.spec.js": [ + "1aa7ff1c12d4a1e529a82d8b2b33ef697011eb7e", + [] + ], + "render": { + "draw.spec.js": [ + "2b8542b7c7215939ebfd93192eba732aa9083926", + [] + ], + "dynamic_state.spec.js": [ + "690c3313a3e8c944a688cc96069d241c1d59fb32", + [] + ], + "indirect_draw.spec.js": [ + "2e65bb9555f1516041e4b70bb9e0e1f27f716482", + [] + ], + "render.js": [ + "ce8cae256e8ee7311eb3cf681aaeb60209953e4b", + [] + ], + "setIndexBuffer.spec.js": [ + "4bcef96241600efaf3a583937c8c3e8d1abf2679", + [] + ], + "setPipeline.spec.js": [ + "1604195b14f6fd8058fd0623cd18d06815e529d5", + [] + ], + "setVertexBuffer.spec.js": [ + "3c3055d53016becfbfdb44507d6113ddc1af2ced", + [] + ], + "state_tracking.spec.js": [ + "f560a5693f18c01742f17eba01e71ed55c9895da", + [] + ] + }, + "render_pass.spec.js": [ + "52e2a75514133c51270a66b54d5ff5fb4e261551", + [] + ], + "setBindGroup.spec.js": [ + "ebf36911298e9d41e5763ba7f053649c9fed1f67", + [] + ] + }, + "createRenderBundleEncoder.spec.js": [ + "1c9c9ad1d4b8284a1c56bcd63507acdf2037a6a0", + [] + ], + "encoder_open_state.spec.js": [ + "71741b63c9664b5d5309efc3b751e524f5b36d71", + [] + ], + "encoder_state.spec.js": [ + "fe0333ac21b68e27b359edfe51cbef797858fcf4", + [] + ], + "programmable": { + "pipeline_bind_group_compat.spec.js": [ + "80528d666e473bd3cae7b7c76fa2e58423c00614", + [] + ] + }, + "queries": { + "begin_end.spec.js": [ + "040b2790a18980930b00e87f24b1fdec75602237", + [] + ], + "common.js": [ + "4284b2a318d8c5504758740a43d980cbf52e6523", + [] + ], + "general.spec.js": [ + "bb5722d4f06d652905f0634631a246954b914764", + [] + ], + "pipeline_statistics.spec.js": [ + "394c2beb0b405bcb4ed655d9f635c56fe4db6e49", + [] + ], + "resolveQuerySet.spec.js": [ + "54b1b0e11249b2ca64f855545cee7423b55c071c", + [] + ] + }, + "render_bundle.spec.js": [ + "45b75ae45a831941a68a678197ea170e3b503503", [] ] }, - "render_pass_descriptor.spec.js": [ - "6b2b8c54b784620b65d213b9cddf4b803fbeba3a", + "error_scope.spec.js": [ + "8f9278d92e36e1ab54fad2776b15ebda79594fd0", [] ], + "getBindGroupLayout.spec.js": [ + "96b5675b176142584369c8c19c746b64c31f55ed", + [] + ], + "gpu_external_texture_expiration.spec.js": [ + "a9dbd9018c272cebab73c83ce912531a42e5c1fb", + [] + ], + "image_copy": { + "buffer_related.spec.js": [ + "23e98336bfd3d529198cbbfa8c5537d479635399", + [] + ], + "buffer_texture_copies.spec.js": [ + "be77f994a094c1da96c4b656ce57c08e2afbbcfb", + [] + ], + "image_copy.js": [ + "b1c3bd753770ccb2c1f4ddc71909bf74a5783e29", + [] + ], + "layout_related.spec.js": [ + "6ec70eb1523a6b4dcf997f60c2d960bdcb61af9d", + [] + ], + "texture_related.spec.js": [ + "d2d1b64eea2e978b5021b8e322c063c39b15a763", + [] + ] + }, + "layout_shader_compat.spec.js": [ + "376d30f3ff3ef6e632379e3d6a6c3c1ffde78964", + [] + ], + "query_set": { + "create.spec.js": [ + "762f1880040e8005bd80fe40ec9c45840ba781d3", + [] + ], + "destroy.spec.js": [ + "197d36e7227f4f173a5ddb1a23a26933f0532b35", + [] + ] + }, + "queue": { + "buffer_mapped.spec.js": [ + "b7a1b8284b57a02323e03e0dbb54bba8e90c9572", + [] + ], + "copyToTexture": { + "CopyExternalImageToTexture.spec.js": [ + "b1531c0950d6b593ce004680c8dd2024dc3052d3", + [] + ] + }, + "destroyed": { + "buffer.spec.js": [ + "51da169c7a50069e9eef21a431d09bbd674470b8", + [] + ], + "query_set.spec.js": [ + "a7dc93613d8f7091fe1964492c82beb7bbb690c6", + [] + ], + "texture.spec.js": [ + "75bce17211be814fc6aa648d9854b40b07bc8a0e", + [] + ] + }, + "submit.spec.js": [ + "09d36ea983ee104224bd7a0446b6cc9cfd43818b", + [] + ], + "writeBuffer.spec.js": [ + "92e4de6d0c0ed1eb43f26e839b6109a5f8b81835", + [] + ], + "writeTexture.spec.js": [ + "6882a32b0cd0b8b74aff0a81448d3978f76ce17a", + [] + ] + }, + "render_pass": { + "attachment_compatibility.spec.js": [ + "d12fbfb463477bc69422d75fc67bcdbbac44fbd2", + [] + ], + "render_pass_descriptor.spec.js": [ + "81501a388abf51e1759d9626d61531ffce3bbef5", + [] + ], + "resolve.spec.js": [ + "7f160ec0a737d0d432b554b607b7a85ce6e9c049", + [] + ] + }, + "render_pipeline": { + "common.js": [ + "0cffe7a60df58becaa62f319ce171b172a16200d", + [] + ], + "depth_stencil_state.spec.js": [ + "bfb1a1696c35c40203fadde796eb44459ba0b496", + [] + ], + "fragment_state.spec.js": [ + "ade2ebecee728425b3d013431105a68869b2fd2d", + [] + ], + "inter_stage.spec.js": [ + "c081657f82e0b647039fac7dc1a65840d0d89637", + [] + ], + "misc.spec.js": [ + "4868df06ccf2b19dfa77bdddfcae5894db6112e5", + [] + ], + "multisample_state.spec.js": [ + "cdf20468315d28526dbf3f84518037938cba8c81", + [] + ], + "overrides.spec.js": [ + "bc3d494845874b2aec9d26fa68e95809b542e555", + [] + ], + "primitive_state.spec.js": [ + "16cc827fd2c18bf34587d61d07db0b94cc542584", + [] + ], + "shader_module.spec.js": [ + "d3b7c220930197c505c92b5e85b83c556c3f64d4", + [] + ], + "vertex_state.spec.js": [ + "fe735f042f8addcc11148ddfd8a3c5b3c23b7af8", + [] + ] + }, "resource_usages": { - "textureUsageInRender.spec.js": [ - "b036245663df8d684067eff7c79861253205dbca", + "buffer": { + "in_pass_encoder.spec.js": [ + "dc65905d94bbf035de389efa00de3effd4e1a84b", + [] + ], + "in_pass_misc.spec.js": [ + "aab27f354e967d7098f85f5a5c63a8bf12e556e4", + [] + ] + }, + "texture": { + "in_pass_encoder.spec.js": [ + "6c6588259f1d07b93630ae9e4c9fb1a160e0de81", + [] + ], + "in_render_common.spec.js": [ + "f8f27fe78b944b351819d5eb0a9f0872ef564b1f", + [] + ], + "in_render_misc.spec.js": [ + "83d427982bdcd0efe10a1be2e66e4ebaacf64c98", + [] + ] + } + }, + "shader_module": { + "entry_point.spec.js": [ + "6daa94f6bf6afcf383d790ba0a61ef39b0daa48c", + [] + ], + "overrides.spec.js": [ + "718c966bd106d1b6738bcf5e10d27c82d15934a9", + [] + ] + }, + "state": { + "device_lost": { + "destroy.spec.js": [ + "0029128d03ad0e3a73f5ab05d86503db416e6195", + [] + ] + } + }, + "texture": { + "bgra8unorm_storage.spec.js": [ + "7dcb15fb23a8a7dcd2e0e7f621ef9dc95f9ff308", + [] + ], + "destroy.spec.js": [ + "056b3529385ab2315fa77f7a4fdb2d7942ad2ba5", + [] + ], + "float32_filterable.spec.js": [ + "1cf5f0a95ea041e48b139dff22e4d4b7d9d1af69", + [] + ], + "rg11b10ufloat_renderable.spec.js": [ + "174a2b1acbf37d465560719e31a9bf4022fd9139", [] ] }, - "setBindGroup.spec.js": [ - "fca85a83b0e5cf94d7950139c021ca6954e0e2ad", - [] - ], - "setBlendColor.spec.js": [ - "8a302fffd9807b5bf8ae1b6540f9af1b7c4425b8", - [] - ], - "setScissorRect.spec.js": [ - "c049e92e70e3ad9a5f71f88a863e5a86cc74fc4e", - [] - ], - "setStencilReference.spec.js": [ - "f79a24044952c705004d254c81c31fd60967c54e", - [] - ], - "setViewport.spec.js": [ - "e2ef691b821825b9fa3c9fa5072dc734ec34d236", - [] - ], "validation_test.js": [ - "c6cd14779bbb7b95e37bdb93d3f5be33902be6c2", + "b7cbdf040639c27ba61495507136daf599cfcaf8", [] ] } }, "capability_info.js": [ - "10a8c5aa4b62c05830eabb33734d866939258ade", + "681128f34eb8936ea846ff9e611154e56fe41b47", + [] + ], + "constants.js": [ + "ff512c3f6bcf43b2d095c7d0066e175fe41a70e5", [] ], "examples.spec.js": [ - "32825367009ab0c4427821a013e913480ba38863", + "ef61d3a40d08679543f12f0bda0f11b8cb089867", + [] + ], + "format_info.js": [ + "5aebecddba99376dccdd86ccb0bd6b4dac17cad1", [] ], "gpu_test.js": [ - "21cb10f1429e495b2f32b1d51a09b8584f63707d", + "b9d5c28d762cd056588c27adfe37e757b0b086b5", [] ], "idl": { "constants": { "flags.spec.js": [ - "51b80aa8aa23cb987079f6dd228bb0bb68816624", + "3002c49b231e53310cac415879d9902c97d8da79", [] ] }, + "exposed.html.js": [ + "7ac9f2ef50b0a0f937c6bb45db1843dea85394fb", + [] + ], "idl_test.js": [ - "3943563d2ac2c779e6cfb0ab033b92bca24e5749", + "ae6de5376ee52b90bcbbd6c9455ba02e5c33efc2", [] ] }, "listing.js": [ - "cbb23b30ec894c103a957f944b18be1e019ed571", + "4cb0337621f7b751e454137454472275fcedb86a", [] ], - "util": { - "conversion.js": [ - "bdba99cf7619ec4d66a5890f5566f68bbc6ed82d", - [] - ], - "math.js": [ - "4761467b586691662834dd0fbf3e86643a5eb823", - [] - ], - "texture": { - "layout.js": [ - "927798985fc772a4c9e9ea7a62335ab693b43991", + "shader": { + "execution": { + "expression": { + "binary": { + "binary.js": [ + "0ed7318f8bae46011db2ec295bea308a58381ef3", + [] + ], + "bitwise.spec.js": [ + "f982cc05df4aac150b665619debaff6cc8647e8b", + [] + ], + "bitwise_shift.spec.js": [ + "be96969d79d6c1a0b3cbfeb27f4cea7c29f72a03", + [] + ], + "bool_logical.spec.js": [ + "4dc5ebe3cc375ed2c399acf05129f984a958ab3f", + [] + ], + "f16_comparison.spec.js": [ + "e1a8d983ece19ceb5345b9ade9cbfa8325e6378b", + [] + ], + "f32_addition.spec.js": [ + "a8ade0fabc708873094dc6ea2eecc9756d4200a8", + [] + ], + "f32_comparison.spec.js": [ + "17f83c7f5b65efb58f1c26d9faba296493abf262", + [] + ], + "f32_division.spec.js": [ + "7beb7132d741551fbbc2491e23bd3efa0e9803b5", + [] + ], + "f32_matrix_addition.spec.js": [ + "f1062c40fd9a0937cbaf3db868f67bd37fa696ba", + [] + ], + "f32_matrix_matrix_multiplication.spec.js": [ + "67c2d6f9f97c99690473eb3ec562b470c8cc20e1", + [] + ], + "f32_matrix_scalar_multiplication.spec.js": [ + "64d2d4af6eb068151cf1acde945bbaccf1c31dd5", + [] + ], + "f32_matrix_subtraction.spec.js": [ + "992a0b80dba0af0f712cd20c99a4341475fbd3db", + [] + ], + "f32_matrix_vector_multiplication.spec.js": [ + "50eab8e6f673b7fb451e5f1930a3acc19d6029e5", + [] + ], + "f32_multiplication.spec.js": [ + "5ad732f498a77520a269b4f174d3580141e51c86", + [] + ], + "f32_remainder.spec.js": [ + "eb55aed951c659bc97c4160e1f2da4c6ce73e10a", + [] + ], + "f32_subtraction.spec.js": [ + "3b0142e9394b828937d22eac59d95c1917a0d9f9", + [] + ], + "i32_arithmetic.spec.js": [ + "2c92f729d430b5f0fda92f9cae5c5720771bb5ca", + [] + ], + "i32_comparison.spec.js": [ + "d02a96b073057cbd56292eb1c9c6ddea91b4326c", + [] + ], + "u32_arithmetic.spec.js": [ + "16a7fd3d39034b3de7bedc64d796f61dd2873b2a", + [] + ], + "u32_comparison.spec.js": [ + "47a67b18e94674f5acc95e76d9e0de39c5cb8ed9", + [] + ] + }, + "call": { + "builtin": { + "abs.spec.js": [ + "915a2c16156f757cf5f58c5df9ea35c0c1966653", + [] + ], + "acos.spec.js": [ + "a438fb2e179611366baf146b016d2a266d16e51e", + [] + ], + "acosh.spec.js": [ + "d52b8a7a6dc25b721a7ccc1ed2220ab1a91e02fa", + [] + ], + "all.spec.js": [ + "cb8b32953fff1ab75347997d63d23a9fc6204200", + [] + ], + "any.spec.js": [ + "9f5b4524f1197dbacb26e210d33a551533fbf829", + [] + ], + "arrayLength.spec.js": [ + "09ff436dc531ee1d9ff00f2335f9409878a17646", + [] + ], + "asin.spec.js": [ + "02e2383b62927a5c2241cc76ba2e10dd2ead2808", + [] + ], + "asinh.spec.js": [ + "9dfb7dbfeb620da01f791eb697550babd0c4d21a", + [] + ], + "atan.spec.js": [ + "b2a4f3f8d9f17d8338bc30ff184b30fa75021ed4", + [] + ], + "atan2.spec.js": [ + "735767f9d90a6d57cb16ac03757a8eb18bd04052", + [] + ], + "atanh.spec.js": [ + "975717088ace6b0d89c5aea1fc80ed754891f6ab", + [] + ], + "atomics": { + "atomicAdd.spec.js": [ + "612c95df929d0fe8899205e0b332f44396818c36", + [] + ], + "atomicAnd.spec.js": [ + "35ee38c139d759f8041ae011a864282c5050e218", + [] + ], + "atomicCompareExchangeWeak.spec.js": [ + "747b14b8329a3e8a0572b428408f9dc5ea0957b8", + [] + ], + "atomicExchange.spec.js": [ + "c1c347848976d2f9602714d52d6e673b066d0dc4", + [] + ], + "atomicLoad.spec.js": [ + "d2268ad057f31faba4347354fa510f01dd13297e", + [] + ], + "atomicMax.spec.js": [ + "952001610bf25a918cf4a6319c90920dfc407d19", + [] + ], + "atomicMin.spec.js": [ + "cc5928f31b3d35d3b99e52630ad52c9e8f96526c", + [] + ], + "atomicOr.spec.js": [ + "f42e61ba9ea4be78edbe4655a374333da2d4db95", + [] + ], + "atomicStore.spec.js": [ + "e0edaf81b8911ebbe8a164446a96317b86ee78d3", + [] + ], + "atomicSub.spec.js": [ + "ed55959e8e6915e27617bedfc1964f72d0a22f23", + [] + ], + "atomicXor.spec.js": [ + "f82efdd6d3113a85fee9fb9f8273609fe1d04133", + [] + ], + "harness.js": [ + "3704be75b7ee62c005bef96d1caee888c19de7de", + [] + ] + }, + "bitcast.spec.js": [ + "313a9f42a07b245cc40f1b04ec12bb161c2459dc", + [] + ], + "builtin.js": [ + "b591217cfadf36dd26b28b1b560fc35613824cfb", + [] + ], + "ceil.spec.js": [ + "0182a94962aca24b90d0af35305d17115d904cb5", + [] + ], + "clamp.spec.js": [ + "a6c142754585a3f8835b7c6bedc7b6fcc72cd3cd", + [] + ], + "cos.spec.js": [ + "902b6f64729b37276adc09b6c8858ebb87c2a2d5", + [] + ], + "cosh.spec.js": [ + "a95e3aa5df371f7bbaea05db543129fdecc7eafe", + [] + ], + "countLeadingZeros.spec.js": [ + "51a7a5ee1ee57fc9775ac8714746df311a0bfad9", + [] + ], + "countOneBits.spec.js": [ + "b6a82da5e5f7b12ea98c4f1d2cdc53dedff193ec", + [] + ], + "countTrailingZeros.spec.js": [ + "e0a0421702d0fef9f92a48a577cd88adecc4f10b", + [] + ], + "cross.spec.js": [ + "1cbc17b9e4b9819c604934ddc5c0d9feb16cf13e", + [] + ], + "degrees.spec.js": [ + "4867282d29da870d3dd5b3784e8fe7e9093a0f61", + [] + ], + "determinant.spec.js": [ + "277d197c9981180ee2a045dcd4782a8784d71d65", + [] + ], + "distance.spec.js": [ + "154a52c2764183f1eb18ab94f9168dc809dd3df1", + [] + ], + "dot.spec.js": [ + "b219b87e6c1c21ee26891ae4a489a537b1e57255", + [] + ], + "dpdx.spec.js": [ + "c4d5413b70159eaeb931f7c1e755a6e9442ad500", + [] + ], + "dpdxCoarse.spec.js": [ + "8b37d1982bdbfa51558325d5fb658166cb79f72f", + [] + ], + "dpdxFine.spec.js": [ + "57c1f49b4771e8737f151e34acc1ca41438dce53", + [] + ], + "dpdy.spec.js": [ + "9e9debdf5829aa2d6884559fc3b3503ea777eac5", + [] + ], + "dpdyCoarse.spec.js": [ + "f477a883305e5a6dbdb79199cdadf27e7260d77c", + [] + ], + "dpdyFine.spec.js": [ + "dc986daeec85ed37c34f77382984842f188c7a91", + [] + ], + "exp.spec.js": [ + "597876a5618db89c59380895354e60041189119c", + [] + ], + "exp2.spec.js": [ + "bcc999b2253259bcede4d9e751145a42e413d99f", + [] + ], + "extractBits.spec.js": [ + "cc6b466092f5255add594932f69d4f1fcf20c7cb", + [] + ], + "faceForward.spec.js": [ + "12247cf8830f249f74d5de8455033304cf23df9f", + [] + ], + "firstLeadingBit.spec.js": [ + "f556dba7883d32de82b0f9c372acc23c700b32e1", + [] + ], + "firstTrailingBit.spec.js": [ + "29c46690b6abe77cd4addc4e7c23d053eb4c1137", + [] + ], + "floor.spec.js": [ + "0d5c30230e1d3fa80276bd51b7487ef6bb31013a", + [] + ], + "fma.spec.js": [ + "735dd2fa29b4678070377735b3ab31c13a110da0", + [] + ], + "fract.spec.js": [ + "c8393c50f7d7d31cd84765a71abfd3905dba480b", + [] + ], + "frexp.spec.js": [ + "68a570612f6f5fb602b1b763d71fa999a4c6cce5", + [] + ], + "fwidth.spec.js": [ + "ee33a68ab497d706eca3f8b7a3977cde18025b05", + [] + ], + "fwidthCoarse.spec.js": [ + "d5df428ebcf7d70ae32769fd2ab8ff4111717c78", + [] + ], + "fwidthFine.spec.js": [ + "0bd0ad33d33b023762fd971254b344518fece77d", + [] + ], + "insertBits.spec.js": [ + "262aaa199aaa9f469926fb2967b9876b3cad577e", + [] + ], + "inversesqrt.spec.js": [ + "f2944c6792365c20f57954cad5a2b080e9819bfd", + [] + ], + "ldexp.spec.js": [ + "a33205c2a7c9f6933626be35054aecd4a846e695", + [] + ], + "length.spec.js": [ + "3a2dedbb5dccd5442a980cb5c2a70b0ce2fee85a", + [] + ], + "log.spec.js": [ + "bf75c9b8481bf26c38b65c379c54eea907865901", + [] + ], + "log2.spec.js": [ + "ca77d645896bd146aac6731fb963b0d9b4edb599", + [] + ], + "max.spec.js": [ + "ea513fab036a9806a15fa1e3d2d262a68d6a43de", + [] + ], + "min.spec.js": [ + "4ffbdf5c9d8dc85b468bed4ddf5d91211ba116ff", + [] + ], + "mix.spec.js": [ + "dba656fc558f967f24285ce9a96945b6c4167673", + [] + ], + "modf.spec.js": [ + "972283ee44aec84a60a7d5c6dafbd5121e1ba19a", + [] + ], + "normalize.spec.js": [ + "5cb5b9170cf22d5ebc6125c57810f0b3de966a0c", + [] + ], + "pack2x16float.spec.js": [ + "591a78eed2406ce14d6355decf083d8b72963d3e", + [] + ], + "pack2x16snorm.spec.js": [ + "7f6b72bb0271e0b9146ae493cc8bf0295cd37c0d", + [] + ], + "pack2x16unorm.spec.js": [ + "5819c25618b33616361046fdebd9ed7568dbb170", + [] + ], + "pack4x8snorm.spec.js": [ + "f2696b8d6fe57a58ed3ac2d246dfd9b0b207b3fb", + [] + ], + "pack4x8unorm.spec.js": [ + "c12cf779445d313baf7a3e8e2684f98b76258761", + [] + ], + "pow.spec.js": [ + "dfb92674467ad8830f0a6f53240e891812318b6d", + [] + ], + "quantizeToF16.spec.js": [ + "bad11d7fd656c6c2f6e773ba1d384fef9190b6f0", + [] + ], + "radians.spec.js": [ + "fa888795c1d299574e729afec36183851dfd0edd", + [] + ], + "reflect.spec.js": [ + "2fe30f7ca2ae8e3bb9c5e84e8b6c051bb48f1924", + [] + ], + "refract.spec.js": [ + "03f1708da3e19ab652189ecb664853080885b432", + [] + ], + "reverseBits.spec.js": [ + "41f72419dfd10e7caf8329ac52fb1fc84b703b30", + [] + ], + "round.spec.js": [ + "10d30b414ce90ddf83139d0d61708e208bcbf385", + [] + ], + "saturate.spec.js": [ + "a75b61b690624e5a7050009e8f5adc016552e76b", + [] + ], + "select.spec.js": [ + "9f86a28526b358947984512193f91206bec59c7a", + [] + ], + "sign.spec.js": [ + "3f30f351639f82400ac4e5e2e48914f7f0432582", + [] + ], + "sin.spec.js": [ + "04ba6a9e142c15f900c3228c45079c73385cbf5c", + [] + ], + "sinh.spec.js": [ + "7936ec3be8fd1410a5e8cb070597489627fb0123", + [] + ], + "smoothstep.spec.js": [ + "f338b15dacda70e7b257acd78a1cdcebf425f72a", + [] + ], + "sqrt.spec.js": [ + "15cc85adf1f2021aa6cf4d498fe002b73b3a98e3", + [] + ], + "step.spec.js": [ + "cb122b40439fda0f1a1e4085e046facc976158db", + [] + ], + "storageBarrier.spec.js": [ + "ac7519ea92124194178d00a1fe95d27e2ba02279", + [] + ], + "tan.spec.js": [ + "e68877bfe8772cb11a5547015e3e333a18eb054f", + [] + ], + "tanh.spec.js": [ + "7a57db1c4069fcffd41da4b7fd2fc55e4af7692b", + [] + ], + "textureDimension.spec.js": [ + "9a5ef4d829d8c349ab5224b0ef214acee03deb97", + [] + ], + "textureGather.spec.js": [ + "1ecd1283d1d7c7052b03f06c46963dd4b20a4c04", + [] + ], + "textureGatherCompare.spec.js": [ + "ddb24c472e50a8ef1b82c5e84ee6651033e2de7e", + [] + ], + "textureLoad.spec.js": [ + "c11d20554b581932ef787c548db0bdcf53f43ddc", + [] + ], + "textureNumLayers.spec.js": [ + "5b0372289da957ca7cdb07dfc8347a22536be758", + [] + ], + "textureNumLevels.spec.js": [ + "ae59dd99bbeb1225150f968c9678a127429b03a1", + [] + ], + "textureNumSamples.spec.js": [ + "620d1a7e9dc0f5313da9f330deef2d60837fe6dd", + [] + ], + "textureSample.spec.js": [ + "6d39c22531d141bccf7ae6a6480dec2e22dfd72b", + [] + ], + "textureSampleBias.spec.js": [ + "f74b3a0ba0d1e39fa4c12360a5a3f81b78ac64c7", + [] + ], + "textureSampleCompare.spec.js": [ + "c0a4c2b68aab7e205ebb836659daa756ce783c37", + [] + ], + "textureSampleCompareLevel.spec.js": [ + "24e7453b6dab9538830bfc9fccfcbaafcd65a3fe", + [] + ], + "textureSampleGrad.spec.js": [ + "bb77a66a2722751e41c15ef61f5ff716322820c7", + [] + ], + "textureSampleLevel.spec.js": [ + "5d3b8ca78cf280b9b68cebf5ccab3bdc74c05f17", + [] + ], + "textureStore.spec.js": [ + "cd555f429bd0382dfdb4ce6da28c8d9b9193709e", + [] + ], + "transpose.spec.js": [ + "222eb917adaa4c667a98b071193b9b41ae8fd5eb", + [] + ], + "trunc.spec.js": [ + "51d42f38bb5eeffee886399843e4f3a9145313b7", + [] + ], + "unpack2x16float.spec.js": [ + "21cf6729ee37c99f9c7802a10da7ddaa887a9d72", + [] + ], + "unpack2x16snorm.spec.js": [ + "6675690f82434cf1760e01100da0f9900c6fc253", + [] + ], + "unpack2x16unorm.spec.js": [ + "9b115299ebdfc72ca80145a2624e494414451355", + [] + ], + "unpack4x8snorm.spec.js": [ + "430316d14f930665ced45fdb51a375e6aa4a380c", + [] + ], + "unpack4x8unorm.spec.js": [ + "ce465152145409a3c29211687aa5f680dfd7a861", + [] + ], + "utils.js": [ + "cdc7d1a985079d9c170842127b3409d81c461975", + [] + ], + "workgroupBarrier.spec.js": [ + "7bc3ecf3a4b7042aad924e01ce3b739833f3438b", + [] + ] + } + }, + "case_cache.js": [ + "c19bb3df278b2608c08746fe167f48f1d87be6d2", + [] + ], + "expression.js": [ + "07ebe7a04351bb02891e046e2240169475cacfba", + [] + ], + "unary": { + "abstract_float_assignment.spec.js": [ + "6ef9c01ee1cfcb5c993262fa3e6042ada042b4e6", + [] + ], + "bool_conversion.spec.js": [ + "d4fc0914650d3ec54eafbc06deba180bec8cbbfe", + [] + ], + "bool_logical.spec.js": [ + "fb281d04b5020961eeab0365d961ec6f3b6b2f5d", + [] + ], + "f32_arithmetic.spec.js": [ + "bbd8c8afc966079a1be7b6f791aa65a75bd0f7d9", + [] + ], + "f32_conversion.spec.js": [ + "2e8849154470eb76a139a5d3cce784541d2a9cbd", + [] + ], + "i32_arithmetic.spec.js": [ + "d2afcec3acd291f8f338446971a4493eae86b390", + [] + ], + "i32_complement.spec.js": [ + "25b0bbce6ccdc24db55a31461ea336d28ed11037", + [] + ], + "i32_conversion.spec.js": [ + "0b44e5a83fe42268e4dd486e7087725092999c4e", + [] + ], + "u32_complement.spec.js": [ + "ce189d434d0a5429e2dfc40d17ff9b17dc811aa8", + [] + ], + "u32_conversion.spec.js": [ + "6d1f3c297ffe1931121c18072488c91931681232", + [] + ], + "unary.js": [ + "4e91cf8634a52c447ac6feb21f967731838c55c7", + [] + ] + } + }, + "float_parse.spec.js": [ + "19e0476ba1f521aa5b8ae202311f63862db98e29", [] ], - "subresource.js": [ - "889fab16e61f6b811d7475a4b5eb7c56353a8a91", + "flow_control": { + "call.spec.js": [ + "d7c7f5ed0767495119cfb9b430f192407d86359f", + [] + ], + "complex.spec.js": [ + "a5c2f9f981938c97416e41a2313f5548df0b1468", + [] + ], + "eval_order.spec.js": [ + "5c4aed2ae8a76910908a8dd9e2bb7143141632e6", + [] + ], + "for.spec.js": [ + "0af28aa8e41297c49913c0d47cf234cbd35a9e7d", + [] + ], + "harness.js": [ + "2d8996cc2d2e40156102ad66b665a4e0811e91d9", + [] + ], + "if.spec.js": [ + "54507da07da1d1d2f32602be62fe853cb8f8aead", + [] + ], + "loop.spec.js": [ + "3897c6977b88995d29351ff7229011f3357f199b", + [] + ], + "phony.spec.js": [ + "1f2628cb0445a4b07c07de208e02bef3af82a26e", + [] + ], + "return.spec.js": [ + "a6089f1c13ea00161ddcc3d9988727ea124c2c49", + [] + ], + "switch.spec.js": [ + "4f34141d33b9ffe9d5c5b7ff13ef55e9f6401386", + [] + ], + "while.spec.js": [ + "c424309572175f863eaa487c7b94757d82cbff08", + [] + ] + }, + "memory_model": { + "atomicity.spec.js": [ + "0286cf42d5234b6b978dc9484e275d4670609662", + [] + ], + "barrier.spec.js": [ + "dbf90149e3ea73b9c0e5d2d3e5e63326f31b757c", + [] + ], + "coherence.spec.js": [ + "00dca4f9c7f52f4c75216792a5918185a18c8571", + [] + ], + "memory_model_setup.js": [ + "d0daa9a8f3b99989a89e177f3a070a7f25e0de2e", + [] + ], + "weak.spec.js": [ + "a9f7e60ce1a7f818fb1137ff85312e70cc84107a", + [] + ] + }, + "padding.spec.js": [ + "40bc330bf4efa51c963701e13619ab8f88a7a181", [] ], - "texelData.js": [ - "eadaa09633022e6c82355b07a4798c802c56a8e8", + "robust_access.spec.js": [ + "f7d8de63b9d22a4e2af6dc39fd3d31dab50d7e13", [] - ] - } - }, - "web-platform": { - "canvas": { - "context_creation.spec.js": [ - "26dc5d8ab6787c628c820f42e43e33603e4cebff", + ], + "robust_access_vertex.spec.js": [ + "527c69819a990691f0c0f7b752726c5090517cfc", + [] + ], + "shader_io": { + "compute_builtins.spec.js": [ + "01700647a19a9e94cdc880b45403888cf6986dbd", + [] + ], + "shared_structs.spec.js": [ + "88bff95442fe59ff6b2ccac4eb55bd4f07b7653f", + [] + ] + }, + "shadow.spec.js": [ + "47ea93cffc416763b867584d6c4657368a0e39ac", + [] + ], + "statement": { + "increment_decrement.spec.js": [ + "899d488c24c2016ee337871aa88535e6a880e105", + [] + ] + }, + "zero_init.spec.js": [ + "1ce576132826c165e9f5c5636f441b711c59ed7f", [] ] }, - "copyImageBitmapToTexture.spec.js": [ - "9df5ff94419baa92ff27f8b39cdc0ee99439dc06", + "types.js": [ + "ef27fe656564aefb305d8a72ab98cbfadada24d2", [] ], - "reftests": { - "canvas_clear.js": [ - "a9149f039424546a9822d090b979fef921fe79c1", + "validation": { + "const_assert": { + "const_assert.spec.js": [ + "735f26f72df4e0667ea16bf8120c758294e8eb5d", + [] + ] + }, + "expression": { + "binary": { + "bitwise_shift.spec.js": [ + "5c29a1858cd2bf007b7c9a0411f80eba6bfd5d08", + [] + ] + }, + "call": { + "builtin": { + "atomics.spec.js": [ + "fb3bf6bd4043b7e046ca640509ddbc9dbd347a26", + [] + ] + } + } + }, + "parse": { + "align.spec.js": [ + "9fd1987a756d811ef066c550596ad87617eebfc1", + [] + ], + "attribute.spec.js": [ + "618fb719f7c753199ef3fe524b54eb6c41e3ade5", + [] + ], + "binary_ops.spec.js": [ + "8f5bc12b0078b53c9ae91f00f2aa84a03246d3fb", + [] + ], + "blankspace.spec.js": [ + "bdee7324021968b0f0745e33f221624c4e971591", + [] + ], + "break.spec.js": [ + "bc615dde45cea7d33a9ad50585f4e6728313e0f8", + [] + ], + "builtin.spec.js": [ + "083e1614fbf0d0bdc7e0e8e45b0339fc9d7ffd92", + [] + ], + "comments.spec.js": [ + "748e70bb2af87dd1864da625071d914b9b9c4b52", + [] + ], + "const.spec.js": [ + "894ab80eb63d78994bb45464864262f7d11f2aa2", + [] + ], + "const_assert.spec.js": [ + "f57412e34e017ac34d36343260e493b1fd5d4dea", + [] + ], + "discard.spec.js": [ + "c2694bda16de47afd6bfc2e9242e2574e7d062d2", + [] + ], + "enable.spec.js": [ + "6a94805e90072ad0fbefadb77f95d739c3e6bc00", + [] + ], + "identifiers.spec.js": [ + "92b19619f31c80b6e96cb363bf413fdc9de0841a", + [] + ], + "literal.spec.js": [ + "a1ca97984e8dca26ce71e54953496cf82c10e668", + [] + ], + "pipeline_stage.spec.js": [ + "167d7f875e0753f9642a204e5f3f4b87cffb8f4d", + [] + ], + "semicolon.spec.js": [ + "619cb25587c33a1662ff5ffe1b5d0d7e1b64a201", + [] + ], + "source.spec.js": [ + "b4cfe94b24747d19245a7ad18d909c9d3713feb9", + [] + ], + "unary_ops.spec.js": [ + "83322ccf16792cd8d70be64a522a7a1612cfc891", + [] + ], + "var_and_let.spec.js": [ + "974af4d02a1aa16a5b0220a598cfdae15cc075a6", + [] + ] + }, + "resource_interface": { + "bindings.spec.js": [ + "546a0b0ce81af69a6edf19d1da6ef2c9288c57ed", + [] + ], + "util.js": [ + "6c16a1ff04794bd2b480e3613f1f67bd633d6767", + [] + ] + }, + "shader_io": { + "builtins.spec.js": [ + "13bdbd7fb76cfe0415294fbdef12969e361bc70d", + [] + ], + "entry_point.spec.js": [ + "982e4e3dc90133a1d6fea6138f5c62482cf1c09f", + [] + ], + "interpolate.spec.js": [ + "28088f9dcf54b122eec81881b0bb2aa4af3422e2", + [] + ], + "invariant.spec.js": [ + "1729502082ecc49ca7cc9c10b384225102eb4766", + [] + ], + "locations.spec.js": [ + "5e7a43a4e2a5e618ef670224a1ffdff1930c0ba8", + [] + ], + "util.js": [ + "3092eb8182561f612de060aeb4cf8895cd852fa4", + [] + ] + }, + "shader_validation_test.js": [ + "4014f4f16fbae370e7d35038b332cecf4e2df911", [] ], - "canvas_complex.js": [ - "f2271d0debafde3681e6a4865ccd5c91817c94f9", + "uniformity": { + "uniformity.spec.js": [ + "1c9742918c1daa3ae96b5de8c771d470f03ad52a", + [] + ] + } + }, + "values.js": [ + "9ca24c64b99eafcbc9ea9a05e6f49ce063968a49", + [] + ] + }, + "util": { + "buffer.js": [ + "1da50c26993aa486d9a152b62e4907d3e712ba9c", + [] + ], + "check_contents.js": [ + "f45054677d8c518cb2a8b9ce3276872a1bbd6074", + [] + ], + "color_space_conversion.js": [ + "4f456fb7c530c2c8a2354fbd4740dcfec81b5766", + [] + ], + "command_buffer_maker.js": [ + "b3e0463fb2fee9b03ba60d5036558402dff44087", + [] + ], + "compare.js": [ + "c4435042980398b7ea2dfb707b35ace6664d683f", + [] + ], + "constants.js": [ + "99575c5c85c42448d220921c1d2d8ac16f4c5f01", + [] + ], + "conversion.js": [ + "024807ca0c060f5721e0b3246f280cb71920e75d", + [] + ], + "copy_to_texture.js": [ + "e58df6b7cdabc27c1540a7b51154be0c15ec03ca", + [] + ], + "create_elements.js": [ + "b255f85ceb4f4a58d1ae89d52da3958a8f48d6f2", + [] + ], + "device_pool.js": [ + "46ca625388d9037f16085edea60dad4e01745883", + [] + ], + "floating_point.js": [ + "9bafdfb995b3a400f5e842d776b048e41ccc2152", + [] + ], + "math.js": [ + "de04fa06764ca0b9942141440e55b5671565fcaa", + [] + ], + "memory.js": [ + "6fcc2385deb813b766841112c38f195be9d1379a", + [] + ], + "pretty_diff_tables.js": [ + "41d519f6b3666b0ad36cc4b1fbb213deb0052383", + [] + ], + "shader.js": [ + "2763d30a390aa5c36f6fff58262d1b677a34fb72", + [] + ], + "texture": { + "base.js": [ + "e5425c57dc31ea28509cee9d6d34e2a7bff7410a", + [] + ], + "data_generation.js": [ + "b92dbd2bbdd8ac19f79db7efdfb5c94b4c30c9b5", + [] + ], + "layout.js": [ + "17d9ba90b216cb3c8b320ca3fc468ebb51fb1cd1", + [] + ], + "subresource.js": [ + "db9f637d44832721c99252b686b9d728c0b9c664", + [] + ], + "texel_data.js": [ + "e98fb72c1485d5ef3ab6470584da4cbc9c565d5d", + [] + ], + "texel_data.spec.js": [ + "c4d20599d1e9bff7d3da1e652122ea722960671b", + [] + ], + "texel_view.js": [ + "d075f2547526838a7edfaa86d1383da689bf32d6", + [] + ], + "texture_ok.js": [ + "0803046ddb4b3283e3fac913129107106f134fee", + [] + ], + "texture_ok.spec.js": [ + "00ef1663f9461d4df0442433279c1d226aa0b9c0", + [] + ] + }, + "texture.js": [ + "53d78839f21e022f1e1aaa0bde34f35f5a34dd7a", + [] + ], + "unions.js": [ + "8dd7e23ad58a69aec29db953d12c94fcc2e94767", + [] + ] + }, + "web_platform": { + "canvas": { + "configure.spec.js": [ + "d01afc2d7b60bb9643c0e4a4b0ee86a530789982", + [] + ], + "context_creation.spec.js": [ + "eb4cb7df8e06df0a70eb0b72bf6ff253ddc38834", + [] + ], + "getCurrentTexture.spec.js": [ + "b256be3275d1a56ce0592315bf42a220c92cae1a", + [] + ], + "getPreferredCanvasFormat.spec.js": [ + "f358fe7188f7563b3921a3a3c1caf6b3b18fb7b2", + [] + ], + "readbackFromWebGPUCanvas.spec.js": [ + "353f217440ffe8a42aa43eed20647f330860f3db", + [] + ] + }, + "copyToTexture": { + "ImageBitmap.spec.js": [ + "cbd40eeb81e86dc5733099f1f5c5d451cc08a537", + [] + ], + "canvas.spec.js": [ + "4eaa614e8fd56c2c21c1fb1d11a01405dfa3f478", + [] + ], + "video.spec.js": [ + "32a0b77e9938b9c9e8bddca4ccde812d76e19609", + [] + ] + }, + "external_texture": { + "video.spec.js": [ + "53f395d1ad80eb2e8940b769f1da5dc24bf7767a", + [] + ] + }, + "reftests": { + "canvas_clear.html.js": [ + "f9bb584c36216d1877e97dde768d0c1b7d1cd9d0", + [] + ], + "canvas_colorspace.html.js": [ + "f4ef05b12981f323be98e3335adc70f20e632d86", + [] + ], + "canvas_complex.html.js": [ + "2ecafe12e06fe13f6f7392a23a1c589596f44655", + [] + ], + "canvas_composite_alpha.html.js": [ + "93d323f1ec1920a2bbe86482ce8b2f1dbe1c59f1", + [] + ], + "canvas_image_rendering.html.js": [ + "a7c488e8b2d9534348575d6cac96efb8ccfc4e53", + [] + ], + "create-pattern-data-url.js": [ + "e6e9019851f3f8c7152e8fbe2426af89268ca1df", [] ], "gpu_ref_test.js": [ - "a45002835df48518eacb8d7887791ee200c3e3c1", + "56ac1f2a3315500120230bf285f8e49e2a34f2c9", [] ], "ref": { "canvas_clear-ref.html": [ - "2e0781186273ac49d6c70b5e5a9c68103aa5f173", + "e37b78c3a6f5f77facce20c1806fd264be3303f2", + [] + ], + "canvas_colorspace-ref.html": [ + "a6da9f6748a4f8d7fd75d78c1ad1b55159b2db7b", + [] + ], + "canvas_colorspace-ref.html.js": [ + "77e7610b75206aad699de877bbb89641663f1583", [] ], "canvas_complex-ref.html": [ - "3d5b3b3376d23cfdcda57f0c53fc3192e8a77bb6", + "b1d46c108aeb9d2fa80e88ab60049dc885c08367", + [] + ], + "canvas_composite_alpha_opaque-ref.html": [ + "94b94865147041b623508556363ab3bf85b645af", + [] + ], + "canvas_composite_alpha_premultiplied-ref.html": [ + "635625ecc784f1df061e9d97e21ee65db0ebfd5b", + [] + ], + "canvas_image_rendering-ref.html": [ + "f9eca704e8702ea17f22ce0bcd8e65677b93b12f", + [] + ], + "resize_observer-ref.html": [ + "5259a25c2741729c13c52f24ce4adf5593cc2fc0", [] ] - } + }, + "resize_observer.html.js": [ + "0b4d35bdecdbc8601b84c2edcbba3faba978e6fd", + [] + ] + }, + "util.js": [ + "25e524f9a73e78c93adf19090bbeb79bf0233365", + [] + ], + "worker": { + "worker.js": [ + "22392afc7b5d2f3c7a8919b7acbe75dda1b33814", + [] + ], + "worker.spec.js": [ + "497441485216b9137d484f0d261a9adfca94e0f7", + [] + ], + "worker_launcher.js": [ + "f3e83528ad0935e8051a0cc024b5ff9864367fd1", + [] + ] } } } @@ -438,117 +2696,6655 @@ }, "testharness": { "webgpu": { - "cts.html": [ - "c5bc2536ab14b1174b7c01f35c85cfc6e62f5418", + "cts.https.html": [ + "183d95783f8b4bfd8848039f219ebef0ffca950e", [ - "webgpu/cts.html?q=webgpu:api,operation,buffers,map_detach:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestAdapter:requestAdapter:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,operation,buffers,map_oom:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestAdapter:requestAdapter_no_parameters:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,operation,command_buffer,basic:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestAdapterInfo:adapter_info:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,operation,command_buffer,copies:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestAdapterInfo:adapter_info_with_hints:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,operation,command_buffer,render,basic:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:default:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,operation,fences:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:features,known:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,copyBufferToBuffer:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:features,unknown:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,copy_between_linear_data_and_texture,copyBetweenLinearDataAndTexture_dataRelated:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:invalid:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,copy_between_linear_data_and_texture,copyBetweenLinearDataAndTexture_textureRelated:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:limit,better_than_supported:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,createBindGroup:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:limit,worse_than_default:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,createPipelineLayout:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:limits,supported:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,error_scope:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:limits,unknown:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,fences:*", + "webgpu/cts.https.html?q=webgpu:api,operation,adapter,requestDevice:stale:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,queue_submit:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mapAsync,mapState:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,render_pass,resolve:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mapAsync,read,typedArrayAccess:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,render_pass,storeOp:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mapAsync,read:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,render_pass_descriptor:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mapAsync,write,unchanged_ranges_preserved:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,resource_usages,textureUsageInRender:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mapAsync,write:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,setBindGroup:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mappedAtCreation,mapState:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,setBlendColor:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:mappedAtCreation:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,setScissorRect:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map:remapped_for_write:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,setStencilReference:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map_ArrayBuffer:postMessage:*", {} ], [ - "webgpu/cts.html?q=webgpu:api,validation,setViewport:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map_detach:while_mapped:*", {} ], [ - "webgpu/cts.html?q=webgpu:examples:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,map_oom:mappedAtCreation:*", {} ], [ - "webgpu/cts.html?q=webgpu:idl,constants,flags:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,threading:destroyed:*", {} ], [ - "webgpu/cts.html?q=webgpu:web-platform,canvas,context_creation:*", + "webgpu/cts.https.html?q=webgpu:api,operation,buffers,threading:serialize:*", {} ], [ - "webgpu/cts.html?q=webgpu:web-platform,copyImageBitmapToTexture:*", + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,basic:b2t2b:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,basic:b2t2t2b:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,basic:empty:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,clearBuffer:clear:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyBufferToBuffer:copy_order:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyBufferToBuffer:single:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyBufferToBuffer:state_transitions:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,compressed,array:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,compressed,non_array:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,array:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:color_textures,non_compressed,non_array:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:copy_depth_stencil:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:copy_multisampled_color:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:copy_multisampled_depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,copyTextureToTexture:zero_sized:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:mip_levels:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:offsets_and_sizes_copy_depth_stencil:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:origins_and_extents:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:rowsPerImage_and_bytesPerRow_depth_stencil:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,image_copy:undefined_params:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:bind_group_before_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:bind_group_indices:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:bind_group_multiple_sets:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:bind_group_order:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:compatible_pipelines:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,programmable,state_tracking:one_bind_group_multiple_slots:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,alpha_to_coverage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,empty:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,initial:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,multi_resolve:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,sample_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,scissor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,queries,occlusionQuery:occlusion_query,stencil:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,render,state_tracking:change_pipeline_before_and_after_vertex_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,render,state_tracking:set_index_buffer_before_non_indexed_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,render,state_tracking:set_index_buffer_without_changing_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,render,state_tracking:set_vertex_buffer_but_not_used_in_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,command_buffer,render,state_tracking:set_vertex_buffer_without_changing_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute,basic:large_dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute,basic:memcpy:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:multi_entry_points:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:numeric_id:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:precision:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:shared_shader_module:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,compute_pipeline,overrides:workgroup_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,device,lost:lost_on_destroy:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,device,lost:not_lost_on_gc:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,device,lost:same_object:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,labels:object_has_descriptor_label:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,labels:wrappers_do_not_share_labels:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:multiple_pairs_of_dispatches_in_one_compute_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:multiple_pairs_of_draws_in_one_render_bundle:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:multiple_pairs_of_draws_in_one_render_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:rw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:wr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,multiple_buffers:ww:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:rw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:two_dispatches_in_the_same_compute_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:two_draws_in_the_same_render_bundle:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:two_draws_in_the_same_render_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:wr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,buffer,single_buffer:ww:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,texture,same_subresource:rw,single_pass,load_resolve:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,texture,same_subresource:rw,single_pass,load_store:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,texture,same_subresource:rw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,texture,same_subresource:wr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,memory_sync,texture,same_subresource:ww:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,onSubmittedWorkDone:many,parallel:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,onSubmittedWorkDone:many,parallel_order:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,onSubmittedWorkDone:many,serial:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,onSubmittedWorkDone:with_work:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,onSubmittedWorkDone:without_work:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,pipeline,default_layout:getBindGroupLayout_js_object:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,pipeline,default_layout:incompatible_with_explicit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,pipeline,default_layout:layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,queue,writeBuffer:array_types:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,queue,writeBuffer:multiple_writes_at_different_offsets_and_sizes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,reflection:buffer_reflection_attributes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,reflection:query_set_reflection_attributes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,reflection:texture_reflection_attributes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,clear_value:layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,clear_value:loaded:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,clear_value:srgb:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,clear_value:stencil_clear_value:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,clear_value:stored:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,resolve:render_pass_resolve:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_only:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,color_attachment_with_depth_stencil_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,storeOp:render_pass_store_op,multiple_color_attachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pass,storeop2:storeOp_controls_whether_1x1_drawn_quad_is_stored:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,culling_tests:culling:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:multi_entry_points:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:precision:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,overrides:shared_shader_module:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,pipeline_output_targets:color,attachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,pipeline_output_targets:color,component_count,blend:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,pipeline_output_targets:color,component_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,primitive_topology:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,primitive_topology:unaligned_vertex_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,sample_mask:alpha_to_coverage_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,sample_mask:fragment_output_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,render_pipeline,vertex_only_render_pipeline:draw_depth_and_stencil_with_vertex_only_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,basic:clear:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,basic:fullscreen_quad:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,basic:large_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blend_constant,initial:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blend_constant,not_inherited:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blend_constant,setting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blending,GPUBlendComponent:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blending,clamping:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:blending,formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:color_write_mask,blending_disabled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,color_target_state:color_write_mask,channel_work:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth:depth_compare_func:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth:depth_disabled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth:depth_test_fail:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth:depth_write_disabled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth:reverse_depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth_bias:depth_bias:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth_bias:depth_bias_24bit_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth_clip_clamp:depth_clamp_and_clip:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,depth_clip_clamp:depth_test_input_clamped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,draw:arguments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,draw:default_arguments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,draw:largeish_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,draw:vertex_attributes,basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,draw:vertex_attributes,formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,indirect_draw:basics:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_compare_func:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_depthFailOp_operation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_failOp_operation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_passOp_operation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_read_write_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,rendering,stencil:stencil_reference_initialized:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:copy_buffer_to_buffer_copy_source:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:copy_buffer_to_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:copy_texture_to_partial_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:index_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:indirect_buffer_for_dispatch_indirect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:indirect_buffer_for_draw_indirect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:map_partial_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:map_whole_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:mapped_at_creation_partial_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:mapped_at_creation_whole_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:partial_write_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:readonly_storage_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:resolve_query_set_to_partial_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:storage_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:uniform_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,buffer:vertex_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,resource_init,texture_zero:uninitialized_texture_is_zero:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,sampling,anisotropy:anisotropic_filter_checkerboard:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,sampling,anisotropy:anisotropic_filter_mipmap_color:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,shader_module,compilation_info:getCompilationInfo_returns:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,shader_module,compilation_info:line_number_and_position:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,shader_module,compilation_info:offset_and_length:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,format_reinterpretation:render_and_resolve_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,format_reinterpretation:texture_binding:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,read:aspect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,read:dimension:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,read:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,write:aspect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,write:dimension:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,texture_view,write:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,uncapturederror:constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,uncapturederror:iff_uncaptured:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,uncapturederror:only_original_device_is_event_target:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,uncapturederror:uncapturederror_from_non_originating_thread:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:array_stride_zero:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:buffers_with_varying_step_mode:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:discontiguous_location_and_attribs:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:max_buffers_and_attribs:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:non_zero_array_stride_and_attribute_offset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:overlapping_attributes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:setVertexBuffer_offset_and_attribute_offset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:vertex_buffer_used_multiple_times_interleaved:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:vertex_buffer_used_multiple_times_overlapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,correctness:vertex_format_to_shader_format_conversion:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:index_format,change_pipeline_after_setIndexBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:index_format,setIndexBuffer_before_setPipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:index_format,setIndexBuffer_different_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:index_format,uint16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:index_format,uint32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,operation,vertex_state,index_format:primitive_restart:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,create:createBuffer_invalid_and_oom:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,create:limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,create:size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,create:usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,destroy:all_usages:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,destroy:error_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,destroy:twice:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,destroy:while_mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:gc_behavior,mapAsync:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:gc_behavior,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,disjoinRanges_many:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,disjointRanges:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,offsetAndSizeAlignment,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,offsetAndSizeAlignment,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,sizeAndOffsetOOB,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,sizeAndOffsetOOB,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,destroyed:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,invalid_mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,mappedAgain:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,mappingPending:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,state,unmapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,subrange,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:getMappedRange,subrange,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,abort_over_invalid_error:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,invalidBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,offsetAndSizeAlignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,offsetAndSizeOOB:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,sizeUnspecifiedOOB:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,state,destroyed:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,state,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,state,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,state,mappingPending:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:mapAsync,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:unmap,state,destroyed:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:unmap,state,mapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:unmap,state,mappedAtCreation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:unmap,state,mappingPending:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,buffer,mapping:unmap,state,unmapped:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,query_types:createQuerySet:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,query_types:writeTimestamp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:canvas_configuration:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:canvas_configuration_view_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:depth_stencil_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:render_bundle_encoder_descriptor_depth_stencil_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor_view_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_view_descriptor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindGroups:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindGroups:setBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBindingsPerBindGroup:validate:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxBufferSize:createBuffer,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachmentBytesPerSample:beginRenderPass,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachmentBytesPerSample:createRenderBundle,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachmentBytesPerSample:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachments:beginRenderPass,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachments:createRenderBundle,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachments:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxColorAttachments:validate,maxColorAttachmentBytesPerSample:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeInvocationsPerWorkgroup:createComputePipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeWorkgroupSizeX:createComputePipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeWorkgroupSizeY:createComputePipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeWorkgroupSizeZ:createComputePipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeWorkgroupStorageSize:createComputePipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxComputeWorkgroupsPerDimension:dispatchWorkgroups,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxDynamicStorageBuffersPerPipelineLayout:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxDynamicUniformBuffersPerPipelineLayout:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxInterStageShaderComponents:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxInterStageShaderVariables:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSampledTexturesPerShaderStage:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSamplersPerShaderStage:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSamplersPerShaderStage:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxSamplersPerShaderStage:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageBufferBindingSize:createBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageBufferBindingSize:validate,maxBufferSize:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageBuffersPerShaderStage:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageBuffersPerShaderStage:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageBuffersPerShaderStage:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageTexturesPerShaderStage:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageTexturesPerShaderStage:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxStorageTexturesPerShaderStage:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureArrayLayers:createTexture,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureDimension1D:createTexture,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:configure,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:createTexture,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureDimension2D:getCurrentTexture,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxTextureDimension3D:createTexture,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxUniformBufferBindingSize:createBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxUniformBufferBindingSize:validate,maxBufferSize:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxUniformBuffersPerShaderStage:createBindGroupLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxUniformBuffersPerShaderStage:createPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxUniformBuffersPerShaderStage:createPipelineLayout,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxVertexAttributes:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxVertexBufferArrayStride:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxVertexBuffers:createRenderPipeline,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,maxVertexBuffers:setVertexBuffer,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minStorageBufferOffsetAlignment:createBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minStorageBufferOffsetAlignment:setBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minStorageBufferOffsetAlignment:validate,greaterThanOrEqualTo32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minStorageBufferOffsetAlignment:validate,powerOf2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minUniformBufferOffsetAlignment:createBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minUniformBufferOffsetAlignment:setBindGroup,at_over:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minUniformBufferOffsetAlignment:validate,greaterThanOrEqualTo32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,capability_checks,limits,minUniformBufferOffsetAlignment:validate,powerOf2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:limits,invocations_per_workgroup,each_component:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:limits,invocations_per_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:limits,workgroup_storage_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,identifier:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,uninitialized:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,value,type_error:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,value,validation_error,f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,value,validation_error:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits,workgroup_storage_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,workgroup_size,limits:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:overrides,workgroup_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:pipeline_layout,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:shader_module,compute:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:shader_module,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,compute_pipeline:shader_module,invalid:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:bind_group_layout,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:binding_count_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:binding_must_be_present_in_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:binding_must_contain_resource_defined_in_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:binding_resources,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer,effective_buffer_binding_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer,resource_binding_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer,resource_offset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer,resource_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:buffer_offset_and_size_for_bind_groups_match:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:minBindingSize:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:multisampled_validation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:sampler,compare_function_with_binding_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:sampler,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:storage_texture,format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:storage_texture,mip_level_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:storage_texture,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:texture,resource_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:texture_binding_must_have_correct_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_component_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroup:texture_must_have_correct_dimension:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:duplicate_bindings:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:max_dynamic_buffers:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_bind_group_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:max_resources_per_stage,in_pipeline_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:maximum_binding_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:multisampled_validation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:storage_texture,formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:storage_texture,layout_dimension:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:visibility,VERTEX_shader_stage_buffer_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:visibility,VERTEX_shader_stage_storage_texture_access:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createBindGroupLayout:visibility:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createPipelineLayout:bind_group_layouts,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createPipelineLayout:number_of_bind_group_layouts_exceeds_the_maximum_value:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createPipelineLayout:number_of_dynamic_buffers_exceeds_the_maximum_value:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createSampler:lodMinAndMaxClamp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createSampler:maxAnisotropy:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:dimension_type_and_format_compatibility:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:mipLevelCount,bound_check,bigger_than_integer_bit_width:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:mipLevelCount,bound_check:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:mipLevelCount,format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:sampleCount,valid_sampleCount_with_other_parameter_varies:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:sampleCount,various_sampleCount_with_all_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:sample_count,1d_2d_array_3d:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,1d_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,2d_texture,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,2d_texture,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,3d_texture,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,3d_texture,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,default_value_and_smallest_size,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_size,default_value_and_smallest_size,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:texture_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:viewFormats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createTexture:zero_size_and_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:array_layers:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:aspect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:cube_faces_square:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:dimension:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:mip_levels:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,createView:texture_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,debugMarker:push_pop_call_count_unbalance,command_encoder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,debugMarker:push_pop_call_count_unbalance,render_compute_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginComputePass:timestampWrites,invalid_query_set:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginComputePass:timestampWrites,query_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginComputePass:timestampWrites,query_set_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginComputePass:timestamp_query_set,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:color_attachments,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:depth_stencil_attachment,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:occlusion_query_set,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,beginRenderPass:timestamp_query_set,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:default_args:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:out_of_bounds:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:overflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,clearBuffer:size_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:dispatch_sizes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:indirect_dispatch_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:indirect_dispatch_buffer,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:indirect_dispatch_buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:pipeline,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,compute_pass:set_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:copy_offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:copy_out_of_bounds:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:copy_overflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:copy_size_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyBufferToBuffer:copy_within_same_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_aspects:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_ranges:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_ranges_with_compressed_texture_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_with_invalid_or_destroyed_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:copy_within_same_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:depth_stencil_copy_restrictions:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:mipmap_level:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:multisampled_copy_restrictions:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:texture,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:texture_format_compatibility:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,copyTextureToTexture:texture_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,debug:debug_group:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,debug:debug_group_balanced:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,debug:debug_marker:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,index_access:out_of_bounds:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,index_access:out_of_bounds_zero_sized_index_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:buffer_binding_overlap:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:index_buffer_OOB:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:last_buffer_setting_take_account:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:max_draw_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,draw:vertex_buffer_OOB:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setBlendConstant:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setScissorRect,x_y_width_height_nonnegative:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setScissorRect,xy_rect_contained_in_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setStencilReference:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,depth_rangeAndOrder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,x_y_width_height_nonnegative:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,dynamic_state:setViewport,xy_rect_contained_in_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,indirect_draw:indirect_offset_oob:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setIndexBuffer:index_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setIndexBuffer:index_buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setIndexBuffer:index_buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setIndexBuffer:offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setIndexBuffer:offset_and_size_oob:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setPipeline:invalid_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setPipeline:pipeline,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:offset_and_size_oob:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:slot:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:vertex_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:vertex_buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,setVertexBuffer:vertex_buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:all_needed_index_buffer_should_be_bound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:all_needed_vertex_buffer_should_be_bound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:vertex_buffers_do_not_inherit_between_render_passes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,render,state_tracking:vertex_buffers_inherit_from_previous_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:bind_group,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:buffer_dynamic_offsets:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:dynamic_offsets_match_expectations_in_pass_encoder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:dynamic_offsets_passed_but_not_expected:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:state_and_binding_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,cmds,setBindGroup:u32array_start_and_length:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,empty_color_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,aligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachmentBytesPerSample,unaligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:attachment_state,limits,maxColorAttachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:depth_stencil_readonly:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:depth_stencil_readonly_with_undefined_depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,createRenderBundleEncoder:valid_texture_formats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_open_state:compute_pass_commands:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_open_state:non_pass_commands:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_open_state:render_bundle_commands:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_open_state:render_pass_commands:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_state:call_after_successful_finish:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_invalid_order:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_none:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_twice,basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,encoder_state:pass_end_twice,render_pass_invalid:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_binding_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_resource_type_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_visibility_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bind_groups_and_pipeline_layout_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:buffer_binding,render_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:empty_bind_group_layouts_requires_empty_bind_groups,compute_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:empty_bind_group_layouts_requires_empty_bind_groups,render_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:sampler_binding,render_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,begin_end:nesting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,begin_end:occlusion_query,begin_end_balance:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,begin_end:occlusion_query,begin_end_invalid_nesting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,begin_end:occlusion_query,disjoint_queries_with_same_query_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:occlusion_query,invalid_query_set:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:occlusion_query,query_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:occlusion_query,query_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:timestamp_query,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:timestamp_query,invalid_query_set:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,general:timestamp_query,query_type_and_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:destination_buffer_usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:destination_offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:first_query_and_query_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:query_set_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:queryset_and_destination_buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,queries,resolveQuerySet:resolve_buffer_oob:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:color_formats_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:depth_stencil_formats_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:depth_stencil_readonly_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:empty_bundle_list:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,encoding,render_bundle:sample_count_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:balanced_nesting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:balanced_siblings:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:current_scope:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:empty:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:parent_scope:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,error_scope:simple:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,getBindGroupLayout:index_range,auto_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,getBindGroupLayout:index_range,explicit_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,getBindGroupLayout:unique_js_object,auto_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,getBindGroupLayout:unique_js_object,explicit_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:import_and_use_in_different_microtask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:import_and_use_in_different_task:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:import_from_different_video_frame:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:import_multiple_times_in_same_task_scope:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:use_import_to_refresh:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,gpu_external_texture_expiration:webcodec_video_frame_close_expire_immediately:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_related:buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_related:buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_related:bytes_per_row_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_related:usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:depth_stencil_format,copy_buffer_offset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:depth_stencil_format,copy_buffer_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:depth_stencil_format,copy_usage_and_aspect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,buffer_texture_copies:texture_buffer_usages:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:bound_on_bytes_per_row:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:bound_on_offset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:bound_on_rows_per_image:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:copy_end_overflows_u64:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:required_bytes_in_copy:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,layout_related:rows_per_image_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:copy_rectangle:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:mip_level:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:origin_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:size_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:texture,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,image_copy,texture_related:valid:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,query_set,create:count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,query_set,destroy:invalid_queryset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,query_set,destroy:twice:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,buffer_mapped:copyBufferToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,buffer_mapped:copyBufferToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,buffer_mapped:copyTextureToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,buffer_mapped:map_command_recording_order:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,buffer_mapped:writeBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:OOB,destination:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:OOB,source:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,mipLevel:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:destination_texture,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_canvas,state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_image,crossOrigin:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_imageBitmap,state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,copyToTexture,CopyExternalImageToTexture:source_offscreenCanvas,state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:copyBufferToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:copyBufferToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:copyTextureToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:resolveQuerySet:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:setBindGroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:setIndexBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:setVertexBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,buffer:writeBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,query_set:beginOcclusionQuery:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,query_set:resolveQuerySet:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,query_set:writeTimestamp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:beginRenderPass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:copyBufferToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:copyTextureToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:copyTextureToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:setBindGroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,destroyed,texture:writeTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,submit:command_buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeBuffer:buffer,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeBuffer:buffer_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeBuffer:ranges:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeBuffer:usages:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeTexture:sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeTexture:texture,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeTexture:texture_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,queue,writeTexture:usages:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,color_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,color_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,color_sparse:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,depth_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_and_bundle,sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,color_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,color_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,color_sparse:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,depth_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,depth_stencil_read_only_write_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,attachment_compatibility:render_pass_or_bundle_and_pipeline,sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,color_depth_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,layer_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,mip_level_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,one_color_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,one_depth_stencil_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:attachments,same_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,empty:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,aligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachmentBytesPerSample,unaligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,limits,maxColorAttachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,non_multisampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:color_attachments,sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,depth_clear_value:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,loadOp_storeOp_match_depthReadOnly_stencilReadOnly:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:depth_stencil_attachment,sample_counts_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:occlusionQuerySet,query_set_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,array_layer_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,different_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,different_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,error_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,format_supports_resolve:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,mipmap_level_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,single_sample_count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:resolveTarget,usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:timestampWrite,query_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,render_pass_descriptor:timestampWrites,query_set_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pass,resolve:resolve_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:depth_test:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:depth_write,frag_depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:depth_write:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:stencil_test:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,depth_stencil_state:stencil_write:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:color_target_exists:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,aligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachmentBytesPerSample,unaligned:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:limits,maxColorAttachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:pipeline_output_targets,blend:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:pipeline_output_targets:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:targets_blend:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:targets_format_filterable:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:targets_format_renderable:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,fragment_state:targets_write_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:interpolation_sampling:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:interpolation_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,subset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:location,superset:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_components_count,input:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_components_count,output:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:max_shader_variable_location:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,inter_stage:type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,misc:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,misc:pipeline_layout,device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,misc:vertex_state_only:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,multisample_state:alpha_to_coverage,count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,multisample_state:alpha_to_coverage,sample_mask:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,multisample_state:count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:identifier,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:identifier,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:uninitialized,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:uninitialized,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,type_error,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,type_error,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,validation_error,f16,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,validation_error,f16,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,validation_error,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,overrides:value,validation_error,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,primitive_state:strip_index_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,primitive_state:unclipped_depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,shader_module:device_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,shader_module:invalid,fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,shader_module:invalid,vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:many_attributes_overlapping:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:max_vertex_attribute_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:max_vertex_buffer_array_stride_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:max_vertex_buffer_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_attribute_contained_in_stride:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_attribute_offset_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_attribute_shaderLocation_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_attribute_shaderLocation_unique:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_buffer_array_stride_limit_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_input_location_in_vertex_state:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_input_location_limit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,render_pipeline,vertex_state:vertex_shader_type_matches_attribute_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_compute_pass_with_two_dispatches:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_compute_pass_with_no_dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_compute_pass_with_one_dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_no_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_one_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_encoder:subresources,buffer_usage_in_one_render_pass_with_two_draws:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_misc:subresources,buffer_usages_in_copy_and_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_misc:subresources,reset_buffer_usage_before_dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,buffer,in_pass_misc:subresources,reset_buffer_usage_before_draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:bindings_in_bundle:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:replaced_binding:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,basic,render:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,pass_boundary,compute:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:scope,pass_boundary,render:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:shader_stages_and_visibility,attachment_write:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:shader_stages_and_visibility,storage_write:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_aspect:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:subresources_and_binding_types_combination_for_color:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_pass_encoder:unused_bindings_in_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,color_attachment_and_bind_group:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,color_attachments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,depth_stencil_attachment_and_bind_group:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,depth_stencil_texture_in_bind_groups:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_common:subresources,multiple_bind_groups:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_bind_group_on_same_index_color_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_bind_group_on_same_index_depth_stencil_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,set_unused_bind_group:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,resource_usages,texture,in_render_misc:subresources,texture_usages_in_copy_and_render_pass:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,shader_module,entry_point:compute:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,shader_module,entry_point:fragment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,shader_module,entry_point:vertex:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,shader_module,overrides:id_conflict:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,shader_module,overrides:name_conflict:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,clearBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,computePass,dispatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,copyBufferToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,copyBufferToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,copyTextureToBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,copyTextureToTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,renderPass,draw:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,renderPass,renderBundle:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,resolveQuerySet:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:command,writeTimestamp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createBindGroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createBindGroupLayout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createCommandEncoder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createComputePipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createPipelineLayout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createQuerySet:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createRenderBundleEncoder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createRenderPipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createSampler:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createShaderModule:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createTexture,2d,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createTexture,2d,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createView,2d,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:createView,2d,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:importExternalTexture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,copyExternalImageToTexture,canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,copyExternalImageToTexture,imageBitmap:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,writeBuffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,writeTexture,2d,compressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,state,device_lost,destroy:queue,writeTexture,2d,uncompressed_format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:configure_storage_usage_on_canvas_context_with_bgra8unorm_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:configure_storage_usage_on_canvas_context_without_bgra8unorm_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:create_bind_group_layout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_with_bgra8unorm_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:create_shader_module_without_bgra8unorm_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,bgra8unorm_storage:create_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,destroy:base:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,destroy:invalid_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,destroy:submit_a_destroyed_texture_as_attachment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,destroy:twice:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,float32_filterable:create_bind_group:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,rg11b10ufloat_renderable:begin_render_bundle_encoder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,rg11b10ufloat_renderable:begin_render_pass_msaa_and_resolve:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,rg11b10ufloat_renderable:begin_render_pass_single_sampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,rg11b10ufloat_renderable:create_render_pipeline:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:api,validation,texture,rg11b10ufloat_renderable:create_texture:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,async:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,builder_cases:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,builder_cases_subcases:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,builder_subcases:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,builder_subcases_short:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,plain_cases:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic,plain_cases_private:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:gpu,async:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:gpu,buffers:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:gpu,with_texture_compression,bc:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:gpu,with_texture_compression,etc2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:not_implemented_yet,with_plan:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:not_implemented_yet,without_plan:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:examples:test_name:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:BufferUsage,count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:BufferUsage,values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:ColorWrite,count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:ColorWrite,values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:ShaderStage,count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:ShaderStage,values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:TextureUsage,count:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:idl,constants,flags:TextureUsage,values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_and:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_and_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_exclusive_or:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_exclusive_or_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_or:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise:bitwise_or_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise_shift:shift_left_concrete:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise_shift:shift_left_concrete_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise_shift:shift_right_concrete:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bitwise_shift:shift_right_concrete_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:and:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:and_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:and_short_circuit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:not_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:or:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:or_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,bool_logical:or_short_circuit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:greater_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:greater_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:less_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:less_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f16_comparison:not_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_addition:vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:greater_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:greater_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:less_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:less_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_comparison:not_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_division:vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_addition:matrix:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_addition:matrix_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_matrix_multiplication:matrix_matrix:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_matrix_multiplication:matrix_matrix_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_scalar_multiplication:matrix_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_scalar_multiplication:matrix_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_scalar_multiplication:scalar_matrix:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_subtraction:matrix:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_subtraction:matrix_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_vector_multiplication:matrix_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_vector_multiplication:vector_matrix:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_matrix_vector_multiplication:vector_matrix_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_multiplication:vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_remainder:vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,f32_subtraction:vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:addition_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:division_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:multiplication_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:remainder_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_arithmetic:subtraction_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:greater_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:greater_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:less_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:less_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,i32_comparison:not_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:addition_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:division:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:division_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:division_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:division_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:multiplication_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:remainder:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:remainder_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_scalar_vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_arithmetic:subtraction_vector_scalar_compound:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:greater_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:greater_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:less_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:less_than:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,binary,u32_comparison:not_equals:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,abs:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acos:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acos:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acos:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acosh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acosh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,acosh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,all:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,any:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:binding_subregion:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:multiple_elements:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:read_only:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:single_element:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,arrayLength:struct_member:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asin:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asin:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asin:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asinh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asinh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,asinh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan2:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan2:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan2:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atan:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atanh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atanh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atanh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicAdd:add_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicAdd:add_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicAnd:and_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicAnd:and_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicCompareExchangeWeak:exchange:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicExchange:exchange:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicLoad:load:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicMax:max_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicMax:max_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicMin:min_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicMin:min_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicOr:or_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicOr:or_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicStore:store:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicSub:sub_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicXor:xor_storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,atomics,atomicXor:xor_workgroup:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:f16_to_f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:f32_to_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:f32_to_i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:f32_to_u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:f32_to_vec2h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:i32_to_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:i32_to_i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:i32_to_u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:i32_to_vec2h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:u32_to_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:u32_to_i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:u32_to_u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:u32_to_vec2h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2f_to_vec4h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2h_to_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2h_to_i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2h_to_u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2i_to_vec4h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec2u_to_vec4h:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec4h_to_vec2f:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec4h_to_vec2i:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,bitcast:vec4h_to_vec2u:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ceil:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ceil:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ceil:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,clamp:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cos:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cos:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cos:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cosh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cosh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cosh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countLeadingZeros:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countLeadingZeros:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countOneBits:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countOneBits:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,countTrailingZeros:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cross:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cross:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,cross:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,degrees:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,degrees:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,degrees:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,determinant:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,determinant:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,determinant:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,distance:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dot:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdx:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdxCoarse:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdxFine:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdy:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdyCoarse:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,dpdyFine:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp2:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp2:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp2:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,exp:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,extractBits:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,extractBits:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,faceForward:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,faceForward:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,faceForward:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,faceForward:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,faceForward:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,firstLeadingBit:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,firstLeadingBit:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,firstTrailingBit:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,firstTrailingBit:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,floor:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,floor:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,floor:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fma:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fma:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fma:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fract:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fract:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fract:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec2_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec2_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec3_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec3_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec4_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f16_vec4_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec2_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec3_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_exp:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,frexp:f32_vec4_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fwidth:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fwidthCoarse:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,fwidthFine:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,insertBits:integer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,inversesqrt:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,inversesqrt:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,inversesqrt:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ldexp:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ldexp:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,ldexp:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,length:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log2:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log2:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log2:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,log:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,max:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,min:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:matching_abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:matching_f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:matching_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:monmatching_f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:nonmatching_abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,mix:nonmatching_f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec2_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec2_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec3_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec3_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec4_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_vec4_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f16_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec2_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec2_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec3_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec3_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec4_fract:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_vec4_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,modf:f32_whole:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,normalize:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack2x16float:pack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack2x16snorm:pack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack2x16unorm:pack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack4x8snorm:pack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pack4x8unorm:pack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pow:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pow:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,pow:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,quantizeToF16:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,radians:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,radians:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,radians:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reflect:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:f32_vec2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:f32_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,refract:f32_vec4:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reverseBits:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,reverseBits:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,round:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,round:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,round:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,saturate:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,saturate:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,saturate:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,select:scalar:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,select:vector:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sign:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sin:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sin:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sin:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sinh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,smoothstep:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,smoothstep:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,smoothstep:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sqrt:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sqrt:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,sqrt:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,step:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,step:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,step:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,storageBarrier:barrier:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,storageBarrier:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tan:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tan:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tan:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tanh:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tanh:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,tanh:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureDimension:depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureDimension:external:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureDimension:sampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureDimension:storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:depth_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:depth_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:depth_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:depth_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:sampled_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:sampled_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGather:sampled_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGatherCompare:array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGatherCompare:array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGatherCompare:sampled_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureGatherCompare:sampled_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:arrayed:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:external:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:multisampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:sampled_1d:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:sampled_2d:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureLoad:sampled_3d:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumLayers:arrayed:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumLayers:sampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumLayers:storage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumLevels:depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumLevels:sampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumSamples:depth:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureNumSamples:sampled:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:control_flow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:depth_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:depth_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:depth_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:depth_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:sampled_1d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:sampled_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:sampled_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:sampled_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSample:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:arrayed_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:arrayed_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:control_flow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:sampled_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:sampled_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleBias:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:arrayed_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:arrayed_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:control_flow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompare:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:arrayed_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:arrayed_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:control_flow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleCompareLevel:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleGrad:sampled_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleGrad:sampled_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleGrad:sampled_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleGrad:sampled_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:depth_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:depth_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:depth_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:sampled_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:sampled_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:sampled_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureSampleLevel:sampled_array_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureStore:store_1d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureStore:store_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureStore:store_3d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,textureStore:store_array_2d_coords:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,transpose:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,transpose:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,transpose:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,trunc:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,trunc:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,trunc:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack2x16float:unpack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack2x16snorm:unpack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack2x16unorm:unpack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack4x8snorm:unpack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,unpack4x8unorm:unpack:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,workgroupBarrier:barrier:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,call,builtin,workgroupBarrier:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,abstract_float_assignment:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,abstract_float_assignment:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_conversion:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,bool_logical:negation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_arithmetic:negation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:f32_mat:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,f32_conversion:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_arithmetic:negation:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_complement:i32_complement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,i32_conversion:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_complement:u32_complement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:bool:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,expression,unary,u32_conversion:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,float_parse:valid:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,call:call_basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,call:call_nested:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,call:call_repeated:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,complex:continue_in_switch_in_for_loop:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_compound_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:1d_array_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_compound_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:2d_array_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_lhs_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_lhs_member_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_via_ptrs:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:array_index_via_struct_members:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_C_C_R:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_C_R_C:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_C_R_C_C:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_chain_R_C_C_C:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_lhs_const:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_parenthesized_expr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:binary_op_rhs_const:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:bitwise_and:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:bitwise_or:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:builtin_fn_args:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:logical_and:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:logical_or:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:matrix_index:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:matrix_index_via_ptr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_builtin_fn_args:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_fn_args:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_struct_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:nested_vec4_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:struct_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:user_fn_args:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,eval_order:vec4_constructor:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_condition:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_continuing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_complex_initalizer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_condition:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_continuing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:for_initalizer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:nested_for_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,for:nested_for_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,if:else_if:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,if:if_false:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,if:if_true:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,if:nested_if_else:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,loop:loop_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,loop:loop_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,loop:loop_continuing_basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,loop:nested_loops:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_builtin:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_must_use:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_nested:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,phony:phony_assign_call_nested_must_use:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,return:return:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,return:return_conditional_false:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,return:return_conditional_true:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_default:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_default_only:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_multiple_case:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,switch:switch_multiple_case_default:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,while:while_basic:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,while:while_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,while:while_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,while:while_nested_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,flow_control,while:while_nested_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,atomicity:atomicity:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_load_store:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_load:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,barrier:workgroup_barrier_store_store:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,coherence:corr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,coherence:corw1:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,coherence:corw2:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,coherence:cowr:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,coherence:coww:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:2_plus_2_write:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:load_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:message_passing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:read:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:store:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,memory_model,weak:store_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:array_of_matCx3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:array_of_struct:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:array_of_vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:matCx3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:struct_explicit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:struct_implicit:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:struct_nested:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,padding:vec3:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,robust_access:linear_memory:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,robust_access_vertex:vertex_buffer_access:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shader_io,compute_builtins:inputs:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shader_io,shared_structs:shared_between_stages:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shader_io,shared_structs:shared_with_buffer:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shader_io,shared_structs:shared_with_non_entry_point_function:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:builtin:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:declaration:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:for_loop:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:if:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:loop:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:switch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,shadow:while:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:frexp_exp_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_i32_decrement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_i32_decrement_underflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_i32_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_i32_increment_overflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_u32_decrement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_u32_decrement_underflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_u32_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:scalar_u32_increment_overflow:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec2_element_decrement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec2_element_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec3_element_decrement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec3_element_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec4_element_decrement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,statement,increment_decrement:vec4_element_increment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,execution,zero_init:compute,zero_init:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,const_assert,const_assert:constant_expression:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,const_assert,const_assert:evaluation_stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,expression,binary,bitwise_shift:shift_left_concrete:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,expression,binary,bitwise_shift:shift_left_vec_size_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,expression,binary,bitwise_shift:shift_right_concrete:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,expression,binary,bitwise_shift:shift_right_vec_size_mismatch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,expression,call,builtin,atomics:stage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,align:multi_align:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,align:parsing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,align:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,align:required_alignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,attribute:expressions:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,binary_ops:all:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,blankspace:blankspace:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,blankspace:bom:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,blankspace:null_characters:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,break:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,builtin:parse:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,builtin:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,comments:comments:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,comments:line_comment_eof:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,comments:line_comment_terminators:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,comments:unterminated_block_comment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,const:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,const_assert:parse:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,discard:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,enable:enable:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,identifiers:identifiers:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,identifiers:non_normalized:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:abstract_float:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:abstract_int:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:bools:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:f16:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:f32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:i32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,literal:u32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:compute_parsing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:duplicate_compute_on_function:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:duplicate_fragment_on_function:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:duplicate_vertex_on_function:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:fragment_parsing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:multiple_entry_points:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:placement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,pipeline_stage:vertex_parsing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_assignment:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_call:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_case:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_case_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_compound_statement:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_continuing:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_default_case:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_default_case_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_discard:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_enable:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_fn_const_assert:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_fn_const_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_fn_var_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_for:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_for_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_func_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_if:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_if_else:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_let_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_loop:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_loop_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_loop_break_if:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_loop_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_member:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_module_const_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_module_var_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_return:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_struct_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_switch:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_type_alias_decl:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_while:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_while_break:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:after_while_continue:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:compound_statement_multiple:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:compound_statement_single:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:function_body_multiple:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:function_body_single:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:module_scope_multiple:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,semicolon:module_scope_single:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,source:empty:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,source:invalid_source:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,source:valid_source:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,unary_ops:all:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,parse,var_and_let:initializer_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,resource_interface,bindings:binding_attributes:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,resource_interface,bindings:different_entry_points:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,resource_interface,bindings:single_entry_point:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:duplicates:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:missing_vertex_position:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:nesting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:reuse_builtin_name:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:stage_inout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,builtins:type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,entry_point:missing_attribute_on_param:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,entry_point:missing_attribute_on_param_struct:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,entry_point:missing_attribute_on_return_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,entry_point:missing_attribute_on_return_type_struct:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,entry_point:no_entry_point_provided:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,interpolate:duplicate:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,interpolate:integral_types:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,interpolate:require_location:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,interpolate:type_and_sampling:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,invariant:duplicate:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,invariant:invalid_use_of_parameters:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,invariant:not_valid_on_user_defined_io:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,invariant:valid_only_with_vertex_position_builtin:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,locations:duplicates:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,locations:nesting:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,locations:stage_inout:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,shader_io,locations:type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,uniformity,uniformity:basics:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,uniformity,uniformity:compute_builtin_values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:shader,validation,uniformity,uniformity:fragment_builtin_values:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:float_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:sint_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:snorm_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:ufloat_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:uint_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texel_data:unorm_texel_data_in_shader:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texture_ok:float32:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texture_ok:norm:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:util,texture,texture_ok:snorm_min:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:alpha_mode:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:defaults:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:device:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:format:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:size_zero_after_configure:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:size_zero_before_configure:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:usage:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,configure:viewFormats:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,context_creation:return_type:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:configured:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:expiry:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:multiple_frames:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:resize:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getCurrentTexture:single_frames:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,getPreferredCanvasFormat:value:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:drawTo2DCanvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:offscreenCanvas,snapshot:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,snapshot:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:onscreenCanvas,uploadToWebGL:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_huge_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_unconfigured_nonzero_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,canvas,readbackFromWebGPUCanvas:transferToImageBitmap_zero_size:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_2D_Canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,ImageBitmap:copy_subrect_from_ImageData:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,ImageBitmap:from_ImageData:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,ImageBitmap:from_canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:color_space_conversion:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_2d_context_canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_bitmaprenderer_context_canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,copyToTexture,video:copy_from_video_element:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,compute:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,sample:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,sampleWithRotationMetadata:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,external_texture,video:importExternalTexture,sampleWithVideoFrameWithVisibleRectParam:*", + {} + ], + [ + "webgpu/cts.https.html?q=webgpu:web_platform,worker,worker:worker:*", {} ] - ] + ], + "webgpu": { + "idl": { + "exposed.http.html": [ + "94a814d005a8aa7042647a4100d3bf1e3755d9a5", + [ + null, + {} + ] + ], + "exposed.https.html": [ + "8d421b7020d64350ba9b81261cc5309f9b76283b", + [ + null, + {} + ] + ] + } + } } } }, diff --git a/tests/wpt/webgpu/tests/checkout_commit.txt b/tests/wpt/webgpu/tests/checkout_commit.txt new file mode 100644 index 00000000000..5db12b3c0c2 --- /dev/null +++ b/tests/wpt/webgpu/tests/checkout_commit.txt @@ -0,0 +1 @@ +9ab2eade6a818ed58ac1a7b36b706858f3ba5eb3 diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/data_cache.js b/tests/wpt/webgpu/tests/webgpu/common/framework/data_cache.js new file mode 100644 index 00000000000..e426ffbbc91 --- /dev/null +++ b/tests/wpt/webgpu/tests/webgpu/common/framework/data_cache.js @@ -0,0 +1,89 @@ +/** + * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts + **/ + +/** DataCache is an interface to a data store used to hold cached data */ +export class DataCache { + /** setDataStore() sets the backing data store used by the data cache */ + setStore(dataStore) { + this.dataStore = dataStore; + } + + /** setDebugLogger() sets the verbose logger */ + setDebugLogger(logger) { + this.debugLogger = logger; + } + + /** + * fetch() retrieves cacheable data from the data cache, first checking the + * in-memory cache, then the data store (if specified), then resorting to + * building the data and storing it in the cache. + */ + async fetch(cacheable) { + // First check the in-memory cache + let data = this.cache.get(cacheable.path); + if (data !== undefined) { + this.log('in-memory cache hit'); + return Promise.resolve(data); + } + this.log('in-memory cache miss'); + // In in-memory cache miss. + // Next, try the data store. + if (this.dataStore !== null && !this.unavailableFiles.has(cacheable.path)) { + let serialized; + try { + serialized = await this.dataStore.load(cacheable.path); + this.log('loaded serialized'); + } catch (err) { + // not found in data store + this.log(`failed to load (${cacheable.path}): ${err}`); + this.unavailableFiles.add(cacheable.path); + } + if (serialized !== undefined) { + this.log(`deserializing`); + data = cacheable.deserialize(serialized); + this.cache.set(cacheable.path, data); + return data; + } + } + // Not found anywhere. Build the data, and cache for future lookup. + this.log(`cache: building (${cacheable.path})`); + data = await cacheable.build(); + this.cache.set(cacheable.path, data); + return data; + } + + log(msg) { + if (this.debugLogger !== null) { + this.debugLogger(`DataCache: ${msg}`); + } + } + + cache = new Map(); + unavailableFiles = new Set(); + dataStore = null; + debugLogger = null; +} + +/** The data cache */ +export const dataCache = new DataCache(); + +/** true if the current process is building the cache */ +let isBuildingDataCache = false; + +/** @returns true if the data cache is currently being built */ +export function getIsBuildingDataCache() { + return isBuildingDataCache; +} + +/** Sets whether the data cache is currently being built */ +export function setIsBuildingDataCache(value = true) { + isBuildingDataCache = value; +} + +/** + * Cacheable is the interface to something that can be stored into the + * DataCache. + * The 'npm run gen_cache' tool will look for module-scope variables of this + * interface, with the name `d`. + */ diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/fixture.js b/tests/wpt/webgpu/tests/webgpu/common/framework/fixture.js index fcff2a6bb9f..1e5f129e6a4 100644 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/fixture.js +++ b/tests/wpt/webgpu/tests/webgpu/common/framework/fixture.js @@ -1,64 +1,178 @@ /** * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { assert } from './util/util.js'; + **/ import { assert, unreachable } from '../util/util.js'; export class SkipTestCase extends Error {} +export class UnexpectedPassError extends Error {} -// A Fixture is a class used to instantiate each test case at run time. -// A new instance of the Fixture is created for every single test case -// (i.e. every time the test function is run). -export class Fixture { - constructor(rec, params) { - _defineProperty(this, 'params', void 0); - _defineProperty(this, 'rec', void 0); - _defineProperty(this, 'eventualExpectations', []); - _defineProperty(this, 'numOutstandingAsyncExpectations', 0); - this.rec = rec; +export { TestCaseRecorder } from '../internal/logging/test_case_recorder.js'; + +/** The fully-general type for params passed to a test function invocation. */ + +export class SubcaseBatchState { + constructor( + recorder, + /** The case parameters for this test fixture shared state. Subcase params are not included. */ + params + ) { + this.recorder = recorder; this.params = params; } - // This has to be a member function instead of an async `createFixture` function, because - // we need to be able to ergonomically override it in subclasses. + /** + * Runs before the `.before()` function. + * @internal MAINTENANCE_TODO: Make this not visible to test code? + */ + async init() {} + /** + * Runs between the `.before()` function and the subcases. + * @internal MAINTENANCE_TODO: Make this not visible to test code? + */ + async postInit() {} + /** + * Runs after all subcases finish. + * @internal MAINTENANCE_TODO: Make this not visible to test code? + */ + async finalize() {} +} + +/** + * A Fixture is a class used to instantiate each test sub/case at run time. + * A new instance of the Fixture is created for every single test subcase + * (i.e. every time the test function is run). + */ +export class Fixture { + /** + * Interface for recording logs and test status. + * + * @internal + */ + + eventualExpectations = []; + numOutstandingAsyncExpectations = 0; + objectsToCleanUp = []; + + static MakeSharedState(recorder, params) { + return new SubcaseBatchState(recorder, params); + } + + /** @internal */ + constructor(sharedState, rec, params) { + this._sharedState = sharedState; + this.rec = rec; + this._params = params; + } + + /** + * Returns the (case+subcase) parameters for this test function invocation. + */ + get params() { + return this._params; + } + + /** + * Gets the test fixture's shared state. This object is shared between subcases + * within the same testcase. + */ + get sharedState() { + return this._sharedState; + } + + /** + * Override this to do additional pre-test-function work in a derived fixture. + * This has to be a member function instead of an async `createFixture` function, because + * we need to be able to ergonomically override it in subclasses. + * + * @internal MAINTENANCE_TODO: Make this not visible to test code? + */ async init() {} + /** + * Override this to do additional post-test-function work in a derived fixture. + * + * Called even if init was unsuccessful. + * + * @internal MAINTENANCE_TODO: Make this not visible to test code? + */ + async finalize() { + assert( + this.numOutstandingAsyncExpectations === 0, + 'there were outstanding immediateAsyncExpectations (e.g. expectUncapturedError) at the end of the test' + ); + + // Loop to exhaust the eventualExpectations in case they chain off each other. + while (this.eventualExpectations.length) { + const p = this.eventualExpectations.shift(); + try { + await p; + } catch (ex) { + this.rec.threw(ex); + } + } + + // And clean up any objects now that they're done being used. + for (const o of this.objectsToCleanUp) { + if ('getExtension' in o) { + const WEBGL_lose_context = o.getExtension('WEBGL_lose_context'); + if (WEBGL_lose_context) WEBGL_lose_context.loseContext(); + } else if ('destroy' in o) { + o.destroy(); + } else { + o.close(); + } + } + } + + /** + * Tracks an object to be cleaned up after the test finishes. + * + * MAINTENANCE_TODO: Use this in more places. (Will be easier once .destroy() is allowed on + * invalid objects.) + */ + trackForCleanup(o) { + this.objectsToCleanUp.push(o); + return o; + } + + /** Tracks an object, if it's destroyable, to be cleaned up after the test finishes. */ + tryTrackForCleanup(o) { + if (typeof o === 'object' && o !== null) { + if ( + 'destroy' in o || + 'close' in o || + o instanceof WebGLRenderingContext || + o instanceof WebGL2RenderingContext + ) { + this.objectsToCleanUp.push(o); + } + } + return o; + } + + /** Log a debug message. */ debug(msg) { this.rec.debug(new Error(msg)); } + /** Throws an exception marking the subcase as skipped. */ skip(msg) { throw new SkipTestCase(msg); } - async finalize() { - assert( - this.numOutstandingAsyncExpectations === 0, - 'there were outstanding asynchronous expectations (e.g. shouldReject) at the end of the test' - ); - - await Promise.all(this.eventualExpectations); - } - + /** Log a warning and increase the result status to "Warn". */ warn(msg) { this.rec.warn(new Error(msg)); } + /** Log an error and increase the result status to "ExpectFailed". */ fail(msg) { this.rec.expectationFailed(new Error(msg)); } + /** + * Wraps an async function. Tracks its status to fail if the test tries to report a test status + * before the async work has finished. + */ async immediateAsyncExpectation(fn) { this.numOutstandingAsyncExpectations++; const ret = await fn(); @@ -66,28 +180,32 @@ export class Fixture { return ret; } + /** + * Wraps an async function, passing it an `Error` object recording the original stack trace. + * The async work will be implicitly waited upon before reporting a test status. + */ eventualAsyncExpectation(fn) { const promise = fn(new Error()); this.eventualExpectations.push(promise); - return promise; } - expectErrorValue(expectedName, ex, niceStack) { + expectErrorValue(expectedError, ex, niceStack) { if (!(ex instanceof Error)) { niceStack.message = `THREW non-error value, of type ${typeof ex}: ${ex}`; this.rec.expectationFailed(niceStack); return; } const actualName = ex.name; - if (actualName !== expectedName) { - niceStack.message = `THREW ${actualName}, instead of ${expectedName}: ${ex}`; + if (expectedError !== true && actualName !== expectedError) { + niceStack.message = `THREW ${actualName}, instead of ${expectedError}: ${ex}`; this.rec.expectationFailed(niceStack); } else { - niceStack.message = `OK: threw ${actualName}${ex.message}`; + niceStack.message = `OK: threw ${actualName}: ${ex.message}`; this.rec.debug(niceStack); } } + /** Expect that the provided promise resolves (fulfills). */ shouldResolve(p, msg) { this.eventualAsyncExpectation(async niceStack => { const m = msg ? ': ' + msg : ''; @@ -95,12 +213,16 @@ export class Fixture { await p; niceStack.message = 'resolved as expected' + m; } catch (ex) { - niceStack.message = `REJECTED${m}\n${ex.message}`; + niceStack.message = `REJECTED${m}`; + if (ex instanceof Error) { + niceStack.message += '\n' + ex.message; + } this.rec.expectationFailed(niceStack); } }); } + /** Expect that the provided promise rejects, with the provided exception name. */ shouldReject(expectedName, p, msg) { this.eventualAsyncExpectation(async niceStack => { const m = msg ? ': ' + msg : ''; @@ -115,16 +237,31 @@ export class Fixture { }); } - shouldThrow(expectedName, fn, msg) { + /** + * Expect that the provided function throws (if `true` or `string`) or not (if `false`). + * If a string is provided, expect that the throw exception has that name. + * + * MAINTENANCE_TODO: Change to `string | false` so the exception name is always checked. + */ + shouldThrow(expectedError, fn, msg) { const m = msg ? ': ' + msg : ''; try { fn(); - this.rec.expectationFailed(new Error('DID NOT THROW' + m)); + if (expectedError === false) { + this.rec.debug(new Error('did not throw, as expected' + m)); + } else { + this.rec.expectationFailed(new Error('unexpectedly did not throw' + m)); + } } catch (ex) { - this.expectErrorValue(expectedName, ex, new Error(m)); + if (expectedError === false) { + this.rec.expectationFailed(new Error('threw unexpectedly' + m)); + } else { + this.expectErrorValue(expectedError, ex, new Error(m)); + } } } + /** Expect that a condition is true. */ expect(cond, msg) { if (cond) { const m = msg ? ': ' + msg : ''; @@ -134,4 +271,39 @@ export class Fixture { } return cond; } + + /** + * If the argument is an `Error`, fail (or warn). If it's `undefined`, no-op. + * If the argument is an array, apply the above behavior on each of elements. + */ + expectOK(error, { mode = 'fail', niceStack } = {}) { + const handleError = error => { + if (error instanceof Error) { + if (niceStack) { + error.stack = niceStack.stack; + } + if (mode === 'fail') { + this.rec.expectationFailed(error); + } else if (mode === 'warn') { + this.rec.warn(error); + } else { + unreachable(); + } + } + }; + + if (Array.isArray(error)) { + for (const e of error) { + handleError(e); + } + } else { + handleError(error); + } + } + + eventualExpectOK(error, { mode = 'fail' } = {}) { + this.eventualAsyncExpectation(async niceStack => { + this.expectOK(await error, { mode, niceStack }); + }); + } } diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/device_pool.js b/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/device_pool.js deleted file mode 100644 index f72b6b734c6..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/device_pool.js +++ /dev/null @@ -1,155 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { assert, raceWithRejectOnTimeout, unreachable, assertReject } from '../util/util.js'; -import { getGPU } from './implementation.js'; - -class TestFailedButDeviceReusable extends Error {} -export class TestOOMedShouldAttemptGC extends Error {} - -const kPopErrorScopeTimeoutMS = 5000; - -export class DevicePool { - constructor() { - _defineProperty(this, 'failed', false); - _defineProperty(this, 'holder', undefined); - } // undefined if "uninitialized" (not yet initialized, or lost) - - async acquire() { - assert(!this.failed, 'WebGPU device previously failed to initialize; not retrying'); - - if (this.holder === undefined) { - try { - this.holder = await DevicePool.makeHolder(); - } catch (ex) { - this.failed = true; - throw ex; - } - } - assert(!this.holder.acquired, 'Device was in use on DevicePool.acquire'); - this.holder.acquired = true; - - this.beginErrorScopes(); - return this.holder.device; - } - - // When a test is done using a device, it's released back into the pool. - // This waits for error scopes, checks their results, and checks for various error conditions. - async release(device) { - const holder = this.holder; - assert(holder !== undefined, 'trying to release a device while pool is uninitialized'); - assert(holder.acquired, 'trying to release a device while already released'); - assert(device === holder.device, 'Released device was the wrong device'); - - try { - // Time out if popErrorScope never completes. This could happen due to a browser bug - e.g., - // as of this writing, on Chrome GPU process crash, popErrorScope just hangs. - await raceWithRejectOnTimeout( - this.endErrorScopes(), - kPopErrorScopeTimeoutMS, - 'finalization popErrorScope timed out' - ); - - // (Hopefully if the device was lost, it has been reported by the time endErrorScopes() - // has finished (or timed out). If not, it could cause a finite number of extra test - // failures following this one (but should recover eventually).) - const lostReason = holder.lostReason; - if (lostReason !== undefined) { - // Fail the current test. - unreachable(`Device was lost: ${lostReason}`); - } - } catch (ex) { - // Any error that isn't explicitly TestFailedButDeviceReusable forces a new device to be - // created for the next test. - if (!(ex instanceof TestFailedButDeviceReusable)) { - this.holder = undefined; - } - throw ex; - } finally { - // TODO: device.destroy() - - // Mark the holder as free. (This only has an effect if the pool still has the holder.) - // This could be done at the top but is done here to guard against async-races during release. - holder.acquired = false; - } - } - - // Gets a device and creates a DeviceHolder. - // If the device is lost, DeviceHolder.lostReason gets set. - static async makeHolder() { - const gpu = getGPU(); - const adapter = await gpu.requestAdapter(); - assert(adapter !== null); - const device = await adapter.requestDevice(); - assert(device !== null); - - const holder = { - acquired: false, - device, - lostReason: undefined, - }; - - holder.device.lost.then(ev => { - holder.lostReason = ev.message; - }); - return holder; - } - - // Create error scopes that wrap the entire test. - beginErrorScopes() { - assert(this.holder !== undefined); - this.holder.device.pushErrorScope('out-of-memory'); - this.holder.device.pushErrorScope('validation'); - } - - // End the whole-test error scopes. Check that there are no extra error scopes, and that no - // otherwise-uncaptured errors occurred during the test. - async endErrorScopes() { - assert(this.holder !== undefined); - let gpuValidationError; - let gpuOutOfMemoryError; - - try { - // May reject if the device was lost. - gpuValidationError = await this.holder.device.popErrorScope(); - gpuOutOfMemoryError = await this.holder.device.popErrorScope(); - } catch (ex) { - assert( - this.holder.lostReason !== undefined, - "popErrorScope failed, but device.lost hasn't fired (yet)" - ); - - throw ex; - } - - await assertReject( - this.holder.device.popErrorScope(), - 'There was an extra error scope on the stack after a test' - ); - - if (gpuValidationError !== null) { - assert(gpuValidationError instanceof GPUValidationError); - // Allow the device to be reused. - throw new TestFailedButDeviceReusable( - `Unexpected validation error occurred: ${gpuValidationError.message}` - ); - } - if (gpuOutOfMemoryError !== null) { - assert(gpuOutOfMemoryError instanceof GPUOutOfMemoryError); - // Don't allow the device to be reused; unexpected OOM could break the device. - throw new TestOOMedShouldAttemptGC('Unexpected out-of-memory error occurred'); - } - } -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/implementation.js b/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/implementation.js deleted file mode 100644 index ab118a45444..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/gpu/implementation.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ /// -import { assert } from '../util/util.js'; -let impl = undefined; - -export function getGPU() { - if (impl) { - return impl; - } - - assert( - typeof navigator !== 'undefined' && navigator.gpu !== undefined, - 'No WebGPU implementation found' - ); - - impl = navigator.gpu; - return impl; -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/log_message.js b/tests/wpt/webgpu/tests/webgpu/common/framework/logging/log_message.js deleted file mode 100644 index 8c1007fa822..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/log_message.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { extractImportantStackTrace } from '../util/stack.js'; -export class LogMessageWithStack extends Error { - constructor(name, ex) { - super(ex.message); - _defineProperty(this, 'stackHidden', false); - _defineProperty(this, 'timesSeen', 1); - - this.name = name; - this.stack = ex.stack; - } - - /** Set a flag so the stack is not printed in toJSON(). */ - setStackHidden() { - this.stackHidden = true; - } - - /** Increment the "seen x times" counter. */ - incrementTimesSeen() { - this.timesSeen++; - } - - toJSON() { - let m = this.name; - if (this.message) m += ': ' + this.message; - if (!this.stackHidden && this.stack) { - m += '\n' + extractImportantStackTrace(this); - } - if (this.timesSeen > 1) { - m += `\n(seen ${this.timesSeen} times with identical stack)`; - } - return m; - } -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/logger.js b/tests/wpt/webgpu/tests/webgpu/common/framework/logging/logger.js deleted file mode 100644 index c4e65c746f0..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/logger.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { version } from '../version.js'; -import { TestCaseRecorder } from './test_case_recorder.js'; - -export class Logger { - constructor(debug) { - _defineProperty(this, 'debug', void 0); - _defineProperty(this, 'results', new Map()); - this.debug = debug; - } - - record(name) { - const result = { status: 'running', timems: -1 }; - this.results.set(name, result); - return [new TestCaseRecorder(result, this.debug), result]; - } - - asJSON(space) { - return JSON.stringify({ version, results: Array.from(this.results) }, undefined, space); - } -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/test_case_recorder.js b/tests/wpt/webgpu/tests/webgpu/common/framework/logging/test_case_recorder.js deleted file mode 100644 index 37acb53143c..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/logging/test_case_recorder.js +++ /dev/null @@ -1,139 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { SkipTestCase } from '../fixture.js'; -import { now, assert } from '../util/util.js'; -import { LogMessageWithStack } from './log_message.js'; -var LogSeverity; -(function (LogSeverity) { - LogSeverity[(LogSeverity['Pass'] = 0)] = 'Pass'; - LogSeverity[(LogSeverity['Skip'] = 1)] = 'Skip'; - LogSeverity[(LogSeverity['Warn'] = 2)] = 'Warn'; - LogSeverity[(LogSeverity['ExpectFailed'] = 3)] = 'ExpectFailed'; - LogSeverity[(LogSeverity['ValidationFailed'] = 4)] = 'ValidationFailed'; - LogSeverity[(LogSeverity['ThrewException'] = 5)] = 'ThrewException'; -})(LogSeverity || (LogSeverity = {})); - -const kMaxLogStacks = 2; - -/** Holds onto a LiveTestCaseResult owned by the Logger, and writes the results into it. */ -export class TestCaseRecorder { - /** Used to dedup log messages which have identical stacks. */ - - constructor(result, debugging) { - _defineProperty(this, 'result', void 0); - _defineProperty(this, 'maxLogSeverity', LogSeverity.Pass); - _defineProperty(this, 'startTime', -1); - _defineProperty(this, 'logs', []); - _defineProperty(this, 'logLinesAtCurrentSeverity', 0); - _defineProperty(this, 'debugging', false); - _defineProperty(this, 'messagesForPreviouslySeenStacks', new Map()); - this.result = result; - this.debugging = debugging; - } - - start() { - assert(this.startTime < 0, 'TestCaseRecorder cannot be reused'); - this.startTime = now(); - } - - finish() { - assert(this.startTime >= 0, 'finish() before start()'); - - const timeMilliseconds = now() - this.startTime; - // Round to next microsecond to avoid storing useless .xxxx00000000000002 in results. - this.result.timems = Math.ceil(timeMilliseconds * 1000) / 1000; - - // Convert numeric enum back to string (but expose 'exception' as 'fail') - this.result.status = - this.maxLogSeverity === LogSeverity.Pass - ? 'pass' - : this.maxLogSeverity === LogSeverity.Skip - ? 'skip' - : this.maxLogSeverity === LogSeverity.Warn - ? 'warn' - : 'fail'; // Everything else is an error - - this.result.logs = this.logs; - } - - injectResult(injectedResult) { - Object.assign(this.result, injectedResult); - } - - debug(ex) { - if (!this.debugging) { - return; - } - const logMessage = new LogMessageWithStack('DEBUG', ex); - logMessage.setStackHidden(); - this.logImpl(LogSeverity.Pass, logMessage); - } - - skipped(ex) { - this.logImpl(LogSeverity.Skip, new LogMessageWithStack('SKIP', ex)); - } - - warn(ex) { - this.logImpl(LogSeverity.Warn, new LogMessageWithStack('WARN', ex)); - } - - expectationFailed(ex) { - this.logImpl(LogSeverity.ExpectFailed, new LogMessageWithStack('EXPECTATION FAILED', ex)); - } - - validationFailed(ex) { - this.logImpl(LogSeverity.ValidationFailed, new LogMessageWithStack('VALIDATION FAILED', ex)); - } - - threw(ex) { - if (ex instanceof SkipTestCase) { - this.skipped(ex); - return; - } - this.logImpl(LogSeverity.ThrewException, new LogMessageWithStack('EXCEPTION', ex)); - } - - logImpl(level, logMessage) { - // Deduplicate errors with the exact same stack - if (logMessage.stack) { - const seen = this.messagesForPreviouslySeenStacks.get(logMessage.stack); - if (seen) { - seen.incrementTimesSeen(); - return; - } - this.messagesForPreviouslySeenStacks.set(logMessage.stack, logMessage); - } - - // Mark printStack=false for all logs except 2 at the highest severity - if (level > this.maxLogSeverity) { - this.logLinesAtCurrentSeverity = 0; - this.maxLogSeverity = level; - if (!this.debugging) { - // Go back and turn off printStack for everything of a lower log level - for (const log of this.logs) { - log.setStackHidden(); - } - } - } - if (level < this.maxLogSeverity || this.logLinesAtCurrentSeverity >= kMaxLogStacks) { - if (!this.debugging) { - logMessage.setStackHidden(); - } - } - this.logs.push(logMessage); - this.logLinesAtCurrentSeverity++; - } -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/params_builder.js b/tests/wpt/webgpu/tests/webgpu/common/framework/params_builder.js index f585e3a2184..787911f9649 100644 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/params_builder.js +++ b/tests/wpt/webgpu/tests/webgpu/common/framework/params_builder.js @@ -1,140 +1,213 @@ /** * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ let _Symbol$iterator; -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; + **/ import { mergeParams } from '../internal/params_utils.js'; +import { stringifyPublicParams } from '../internal/query/stringify_params.js'; +import { assert, mapLazy } from '../util/util.js'; + +// ================================================================ +// "Public" ParamsBuilder API / Documentation +// ================================================================ + +/** + * Provides doc comments for the methods of CaseParamsBuilder and SubcaseParamsBuilder. + * (Also enforces rough interface match between them.) + */ + +/** + * Base class for `CaseParamsBuilder` and `SubcaseParamsBuilder`. + */ +export class ParamsBuilderBase { + constructor(cases) { + this.cases = cases; } - return obj; -} -import { publicParamsEquals } from './params_utils.js'; -import { assert } from './util/util.js'; -/** Forces a type to resolve its type definitions, to make it readable/debuggable. */ -function typeAssert() {} -{ - { - typeAssert(); - typeAssert(); - typeAssert(); - typeAssert(); - typeAssert(); - - typeAssert(); - - typeAssert(); - typeAssert(); - typeAssert(); - typeAssert(); - typeAssert(); - - // Unexpected test results - hopefully okay to ignore these - typeAssert(); - typeAssert(); - } + /** + * Hidden from test files. Use `builderIterateCasesWithSubcases` to access this. + */ } -export function poptions(name, values) { - const iter = makeReusableIterable(function* () { - for (const value of values) { - yield { [name]: value }; +/** + * Calls the (normally hidden) `iterateCasesWithSubcases()` method. + */ +export function builderIterateCasesWithSubcases(builder) { + return builder.iterateCasesWithSubcases(); +} + +/** + * Builder for combinatorial test **case** parameters. + * + * CaseParamsBuilder is immutable. Each method call returns a new, immutable object, + * modifying the list of cases according to the method called. + * + * This means, for example, that the `unit` passed into `TestBuilder.params()` can be reused. + */ +export class CaseParamsBuilder extends ParamsBuilderBase { + *iterateCasesWithSubcases() { + for (const a of this.cases()) { + yield [a, undefined]; } - }); - - return iter; -} - -export function pbool(name) { - return poptions(name, [false, true]); -} - -export function params() { - return new ParamsBuilder(); -} -_Symbol$iterator = Symbol.iterator; -export class ParamsBuilder { - constructor() { - _defineProperty(this, 'paramSpecs', [{}]); - } - [_Symbol$iterator]() { - const iter = this.paramSpecs[Symbol.iterator](); - return iter; } - combine(newParams) { - const paramSpecs = this.paramSpecs; - this.paramSpecs = makeReusableIterable(function* () { - for (const a of paramSpecs) { - for (const b of newParams) { - yield mergeParams(a, b); - } + [Symbol.iterator]() { + return this.cases(); + } + + /** @inheritDoc */ + expandWithParams(expander) { + const newGenerator = expanderGenerator(this.cases, expander); + return new CaseParamsBuilder(() => newGenerator({})); + } + + /** @inheritDoc */ + expand(key, expander) { + return this.expandWithParams(function* (p) { + for (const value of expander(p)) { + yield { [key]: value }; } }); - - return this; } - expand(expander) { - const paramSpecs = this.paramSpecs; - this.paramSpecs = makeReusableIterable(function* () { - for (const a of paramSpecs) { - for (const b of expander(a)) { - yield mergeParams(a, b); - } - } - }); + /** @inheritDoc */ + combineWithParams(newParams) { + assertNotGenerator(newParams); + const seenValues = new Set(); + for (const params of newParams) { + const paramsStr = stringifyPublicParams(params); + assert(!seenValues.has(paramsStr), `Duplicate entry in combine[WithParams]: ${paramsStr}`); + seenValues.add(paramsStr); + } - return this; + return this.expandWithParams(() => newParams); } + /** @inheritDoc */ + combine(key, values) { + assertNotGenerator(values); + const mapped = mapLazy(values, v => ({ [key]: v })); + return this.combineWithParams(mapped); + } + + /** @inheritDoc */ filter(pred) { - const paramSpecs = this.paramSpecs; - this.paramSpecs = makeReusableIterable(function* () { - for (const p of paramSpecs) { - if (pred(p)) { - yield p; - } - } - }); - return this; + const newGenerator = filterGenerator(this.cases, pred); + return new CaseParamsBuilder(() => newGenerator({})); } + /** @inheritDoc */ unless(pred) { return this.filter(x => !pred(x)); } - exclude(exclude) { - const excludeArray = Array.from(exclude); - const paramSpecs = this.paramSpecs; - this.paramSpecs = makeReusableIterable(function* () { - for (const p of paramSpecs) { - if (excludeArray.every(e => !publicParamsEquals(p, e))) { - yield p; - } + /** + * "Finalize" the list of cases and begin defining subcases. + * Returns a new SubcaseParamsBuilder. Methods called on SubcaseParamsBuilder + * generate new subcases instead of new cases. + */ + beginSubcases() { + return new SubcaseParamsBuilder( + () => this.cases(), + function* () { + yield {}; + } + ); + } +} + +/** + * The unit CaseParamsBuilder, representing a single case with no params: `[ {} ]`. + * + * `punit` is passed to every `.params()`/`.paramsSubcasesOnly()` call, so `kUnitCaseParamsBuilder` + * is only explicitly needed if constructing a ParamsBuilder outside of a test builder. + */ +export const kUnitCaseParamsBuilder = new CaseParamsBuilder(function* () { + yield {}; +}); + +/** + * Builder for combinatorial test _subcase_ parameters. + * + * SubcaseParamsBuilder is immutable. Each method call returns a new, immutable object, + * modifying the list of subcases according to the method called. + */ +export class SubcaseParamsBuilder extends ParamsBuilderBase { + constructor(cases, generator) { + super(cases); + this.subcases = generator; + } + + *iterateCasesWithSubcases() { + for (const caseP of this.cases()) { + const subcases = Array.from(this.subcases(caseP)); + if (subcases.length) { + yield [caseP, subcases]; + } + } + } + + /** @inheritDoc */ + expandWithParams(expander) { + return new SubcaseParamsBuilder(this.cases, expanderGenerator(this.subcases, expander)); + } + + /** @inheritDoc */ + expand(key, expander) { + return this.expandWithParams(function* (p) { + for (const value of expander(p)) { + // TypeScript doesn't know here that NewPKey is always a single literal string type. + yield { [key]: value }; } }); - return this; + } + + /** @inheritDoc */ + combineWithParams(newParams) { + assertNotGenerator(newParams); + return this.expandWithParams(() => newParams); + } + + /** @inheritDoc */ + combine(key, values) { + assertNotGenerator(values); + return this.expand(key, () => values); + } + + /** @inheritDoc */ + filter(pred) { + return new SubcaseParamsBuilder(this.cases, filterGenerator(this.subcases, pred)); + } + + /** @inheritDoc */ + unless(pred) { + return this.filter(x => !pred(x)); } } -// If you create an Iterable by calling a generator function (e.g. in IIFE), it is exhausted after -// one use. This just wraps a generator function in an object so it be iterated multiple times. -function makeReusableIterable(generatorFn) { - return { [Symbol.iterator]: generatorFn }; +function expanderGenerator(baseGenerator, expander) { + return function* (base) { + for (const a of baseGenerator(base)) { + for (const b of expander(mergeParams(base, a))) { + yield mergeParams(a, b); + } + } + }; } -// (keyof A & keyof B) is not empty, so they overlapped +function filterGenerator(baseGenerator, pred) { + return function* (base) { + for (const a of baseGenerator(base)) { + if (pred(mergeParams(base, a))) { + yield a; + } + } + }; +} -function mergeParams(a, b) { - for (const key of Object.keys(a)) { - assert(!(key in b), 'Duplicate key: ' + key); +/** Assert an object is not a Generator (a thing returned from a generator function). */ +function assertNotGenerator(x) { + if ('constructor' in x) { + assert( + x.constructor !== (function* () {})().constructor, + 'Argument must not be a generator, as generators are not reusable' + ); } - return { ...a, ...b }; } diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/query/json_param_value.js b/tests/wpt/webgpu/tests/webgpu/common/framework/query/json_param_value.js deleted file mode 100644 index 921b3ddce6a..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/query/json_param_value.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ import { assert } from '../util/util.js'; -// JSON can't represent `undefined` and by default stores it as `null`. -// Instead, store `undefined` as this magic string value in JSON. -const jsUndefinedMagicValue = '_undef_'; - -export function stringifyParamValue(value) { - return JSON.stringify(value, (k, v) => { - // Make sure no one actually uses the magic value as a parameter. - assert(v !== jsUndefinedMagicValue); - - return v === undefined ? jsUndefinedMagicValue : v; - }); -} - -export function parseParamValue(s) { - return JSON.parse(s, (k, v) => (v === jsUndefinedMagicValue ? undefined : v)); -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/query/query.js b/tests/wpt/webgpu/tests/webgpu/common/framework/query/query.js deleted file mode 100644 index 0a9742055eb..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/query/query.js +++ /dev/null @@ -1,127 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true, - }); - } else { - obj[key] = value; - } - return obj; -} -import { assert } from '../util/util.js'; -import { encodeURIComponentSelectively } from './encode_selectively.js'; -import { kBigSeparator, kPathSeparator, kWildcard, kParamSeparator } from './separators.js'; -import { stringifyPublicParams } from './stringify_params.js'; - -/** - * Represents a test query of some level. - * - * TestQuery types are immutable. - */ - -// SingleCase - -/** - * A multi-file test query, like `s:*` or `s:a,b,*`. - * - * Immutable (makes copies of constructor args). - */ -export class TestQueryMultiFile { - constructor(suite, file) { - _defineProperty(this, 'level', 1); - _defineProperty(this, 'isMultiFile', true); - _defineProperty(this, 'suite', void 0); - _defineProperty(this, 'filePathParts', void 0); - this.suite = suite; - this.filePathParts = [...file]; - } - - toString() { - return encodeURIComponentSelectively(this.toStringHelper().join(kBigSeparator)); - } - - toStringHelper() { - return [this.suite, [...this.filePathParts, kWildcard].join(kPathSeparator)]; - } -} - -/** - * A multi-test test query, like `s:f:*` or `s:f:a,b,*`. - * - * Immutable (makes copies of constructor args). - */ -export class TestQueryMultiTest extends TestQueryMultiFile { - constructor(suite, file, test) { - super(suite, file); - _defineProperty(this, 'level', 2); - _defineProperty(this, 'isMultiFile', false); - _defineProperty(this, 'isMultiTest', true); - _defineProperty(this, 'testPathParts', void 0); - assert(file.length > 0, 'multi-test (or finer) query must have file-path'); - this.testPathParts = [...test]; - } - - toStringHelper() { - return [ - this.suite, - this.filePathParts.join(kPathSeparator), - [...this.testPathParts, kWildcard].join(kPathSeparator), - ]; - } -} - -/** - * A multi-case test query, like `s:f:t:*` or `s:f:t:a,b,*`. - * - * Immutable (makes copies of constructor args), except for param values - * (which aren't normally supposed to change; they're marked readonly in CaseParams). - */ -export class TestQueryMultiCase extends TestQueryMultiTest { - constructor(suite, file, test, params) { - super(suite, file, test); - _defineProperty(this, 'level', 3); - _defineProperty(this, 'isMultiTest', false); - _defineProperty(this, 'isMultiCase', true); - _defineProperty(this, 'params', void 0); - assert(test.length > 0, 'multi-case (or finer) query must have test-path'); - this.params = { ...params }; - } - - toStringHelper() { - const paramsParts = stringifyPublicParams(this.params); - return [ - this.suite, - this.filePathParts.join(kPathSeparator), - this.testPathParts.join(kPathSeparator), - [...paramsParts, kWildcard].join(kParamSeparator), - ]; - } -} - -/** - * A multi-case test query, like `s:f:t:` or `s:f:t:a=1,b=1`. - * - * Immutable (makes copies of constructor args). - */ -export class TestQuerySingleCase extends TestQueryMultiCase { - constructor(...args) { - super(...args); - _defineProperty(this, 'level', 4); - _defineProperty(this, 'isMultiCase', false); - } - - toStringHelper() { - const paramsParts = stringifyPublicParams(this.params); - return [ - this.suite, - this.filePathParts.join(kPathSeparator), - this.testPathParts.join(kPathSeparator), - paramsParts.join(kParamSeparator), - ]; - } -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/query/stringify_params.js b/tests/wpt/webgpu/tests/webgpu/common/framework/query/stringify_params.js deleted file mode 100644 index b9c9cde7067..00000000000 --- a/tests/wpt/webgpu/tests/webgpu/common/framework/query/stringify_params.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts - **/ import { badParamValueChars, paramKeyIsPublic } from '../params_utils.js'; -import { assert } from '../util/util.js'; - -import { stringifyParamValue } from './json_param_value.js'; -import { kParamKVSeparator } from './separators.js'; - -export function stringifyPublicParams(p) { - return Object.keys(p) - .filter(k => paramKeyIsPublic(k)) - .map(k => stringifySingleParam(k, p[k])); -} - -export function stringifySingleParam(k, v) { - return `${k}${kParamKVSeparator}${stringifySingleParamValue(v)}`; -} - -function stringifySingleParamValue(v) { - const s = stringifyParamValue(v); - assert( - !badParamValueChars.test(s), - `JSON.stringified param value must not match ${badParamValueChars} - was ${s}` - ); - - return s; -} diff --git a/tests/wpt/webgpu/tests/webgpu/common/framework/resources.js b/tests/wpt/webgpu/tests/webgpu/common/framework/resources.js new file mode 100644 index 00000000000..72eabeda4e4 --- /dev/null +++ b/tests/wpt/webgpu/tests/webgpu/common/framework/resources.js @@ -0,0 +1,111 @@ +/** + * AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts + **/ /** + * Base path for resources. The default value is correct for non-worker WPT, but standalone and + * workers must access resources using a different base path, so this is overridden in + * `test_worker-worker.ts` and `standalone.ts`. + */ let baseResourcePath = './resources'; +let crossOriginHost = ''; + +function getAbsoluteBaseResourcePath(path) { + // Path is already an absolute one. + if (path[0] === '/') { + return path; + } + + // Path is relative + const relparts = window.location.pathname.split('/'); + relparts.pop(); + const pathparts = path.split('/'); + + let i; + for (i = 0; i < pathparts.length; ++i) { + switch (pathparts[i]) { + case '': + break; + case '.': + break; + case '..': + relparts.pop(); + break; + default: + relparts.push(pathparts[i]); + break; + } + } + + return relparts.join('/'); +} + +function runningOnLocalHost() { + const hostname = window.location.hostname; + return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '::1'; +} + +/** + * Get a path to a resource in the `resources` directory relative to the current execution context + * (html file or worker .js file), for `fetch()`, ``, `