gitextract_6vnxf1s_/ ├── .cargo/ │ └── config.toml ├── .claude/ │ └── skills/ │ ├── cts-triage/ │ │ └── SKILL.md │ └── webgpu-specs/ │ ├── SKILL.md │ └── download.sh ├── .config/ │ └── nextest.toml ├── .deny.toml ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ ├── feature_request.md │ │ └── other.md │ ├── actions/ │ │ ├── install-agility-sdk/ │ │ │ └── action.yml │ │ ├── install-dxc/ │ │ │ └── action.yml │ │ ├── install-mesa/ │ │ │ └── action.yml │ │ ├── install-vulkan-sdk/ │ │ │ └── action.yml │ │ └── install-warp/ │ │ └── action.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── changelog.yml │ ├── ci.yml │ ├── cts.yml │ ├── docs.yml │ ├── generate.yml │ ├── lazy.yml │ ├── publish.yml │ └── shaders.yml ├── .gitignore ├── .prettierignore ├── AGENTS.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Cargo.toml ├── GOVERNANCE.md ├── LICENSE.APACHE ├── LICENSE.MIT ├── README.md ├── SECURITY.md ├── benches/ │ ├── Cargo.toml │ ├── README.md │ ├── benches/ │ │ └── wgpu-benchmark/ │ │ ├── bind_groups.rs │ │ ├── computepass-bindless.wgsl │ │ ├── computepass.rs │ │ ├── computepass.wgsl │ │ ├── main.rs │ │ ├── renderpass-bindless.wgsl │ │ ├── renderpass.rs │ │ ├── renderpass.wgsl │ │ ├── resource_creation.rs │ │ └── shader.rs │ └── src/ │ ├── context.rs │ ├── file.rs │ ├── iter.rs │ ├── lib.rs │ └── print.rs ├── clippy.toml ├── codecov.yml ├── cts_runner/ │ ├── Cargo.toml │ ├── README.md │ ├── examples/ │ │ └── hello-compute.js │ ├── fail.lst │ ├── revision.txt │ ├── skip.lst │ ├── src/ │ │ ├── bootstrap.js │ │ └── main.rs │ ├── test.lst │ └── tests/ │ └── integration.rs ├── deno_webgpu/ │ ├── 00_init.js │ ├── 01_webgpu.js │ ├── 02_surface.js │ ├── Cargo.toml │ ├── LICENSE.md │ ├── README.md │ ├── adapter.rs │ ├── bind_group.rs │ ├── bind_group_layout.rs │ ├── buffer.rs │ ├── byow.rs │ ├── command_buffer.rs │ ├── command_encoder.rs │ ├── compute_pass.rs │ ├── compute_pipeline.rs │ ├── device.rs │ ├── error.rs │ ├── lib.rs │ ├── pipeline_layout.rs │ ├── query_set.rs │ ├── queue.rs │ ├── render_bundle.rs │ ├── render_pass.rs │ ├── render_pipeline.rs │ ├── rustfmt.toml │ ├── sampler.rs │ ├── shader.rs │ ├── surface.rs │ ├── texture.rs │ └── webidl.rs ├── docs/ │ ├── api-specs/ │ │ ├── cooperative_matrix.md │ │ ├── mesh_shading.md │ │ └── ray_tracing.md │ ├── big-picture.xml │ ├── broadcast_license.nu │ ├── release-checklist.md │ ├── review-checklist.md │ └── testing.md ├── examples/ │ ├── README.md │ ├── bug-repro/ │ │ └── 01_texture_atomic_bug/ │ │ ├── Cargo.toml │ │ └── src/ │ │ ├── main.rs │ │ └── shader.wgsl │ ├── features/ │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── big_compute_buffers/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── shader.wgsl │ │ │ │ └── tests.rs │ │ │ ├── boids/ │ │ │ │ ├── README.md │ │ │ │ ├── compute.wgsl │ │ │ │ ├── draw.wgsl │ │ │ │ └── mod.rs │ │ │ ├── bunnymark/ │ │ │ │ ├── README.md │ │ │ │ └── mod.rs │ │ │ ├── conservative_raster/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── triangle_and_lines.wgsl │ │ │ │ └── upscale.wgsl │ │ │ ├── cooperative_matrix/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── shader.wgsl │ │ │ │ ├── shader_f16_16x16.wgsl │ │ │ │ └── tests.rs │ │ │ ├── cube/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── framework.rs │ │ │ ├── hello_synchronization/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── shaders.wgsl │ │ │ │ └── tests.rs │ │ │ ├── hello_triangle/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── hello_windows/ │ │ │ │ ├── README.md │ │ │ │ └── mod.rs │ │ │ ├── hello_workgroups/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── lib.rs │ │ │ ├── main.rs │ │ │ ├── mesh_shader/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ ├── shader.hlsl │ │ │ │ ├── shader.metal │ │ │ │ └── shader.wgsl │ │ │ ├── mipmap/ │ │ │ │ ├── README.md │ │ │ │ ├── blit.wgsl │ │ │ │ ├── draw.wgsl │ │ │ │ └── mod.rs │ │ │ ├── msaa_line/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── multiple_render_targets/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── multiview/ │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_cube_compute/ │ │ │ │ ├── README.md │ │ │ │ ├── blit.wgsl │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_cube_fragment/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_cube_normals/ │ │ │ │ ├── README.md │ │ │ │ ├── blit.wgsl │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_scene/ │ │ │ │ ├── cube.mtl │ │ │ │ ├── cube.obj │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_shadows/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── ray_traced_triangle/ │ │ │ │ ├── README.md │ │ │ │ ├── blit.wgsl │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── render_to_texture/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── render_with_compute/ │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── repeated_compute/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── shadow/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── skybox/ │ │ │ │ ├── README.md │ │ │ │ ├── images/ │ │ │ │ │ ├── astc.ktx2 │ │ │ │ │ ├── bc7.ktx2 │ │ │ │ │ ├── etc2.ktx2 │ │ │ │ │ ├── generation.bash │ │ │ │ │ └── rgba8.ktx2 │ │ │ │ ├── mod.rs │ │ │ │ ├── models/ │ │ │ │ │ ├── rustacean-3d.mtl │ │ │ │ │ └── rustacean-3d.obj │ │ │ │ └── shader.wgsl │ │ │ ├── srgb_blend/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── stencil_triangles/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── storage_texture/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── texture_arrays/ │ │ │ │ ├── README.md │ │ │ │ ├── indexing.wgsl │ │ │ │ ├── mod.rs │ │ │ │ └── non_uniform_indexing.wgsl │ │ │ ├── timestamp_queries/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── uniform_values/ │ │ │ │ ├── README.md │ │ │ │ ├── mod.rs │ │ │ │ └── shader.wgsl │ │ │ ├── utils.rs │ │ │ └── water/ │ │ │ ├── README.md │ │ │ ├── mod.rs │ │ │ ├── point_gen.rs │ │ │ ├── terrain.wgsl │ │ │ └── water.wgsl │ │ └── web-static/ │ │ └── index.html │ └── standalone/ │ ├── 01_hello_compute/ │ │ ├── Cargo.toml │ │ ├── cargo-generate.toml │ │ └── src/ │ │ ├── main.rs │ │ └── shader.wgsl │ ├── 02_hello_window/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── main.rs │ └── custom_backend/ │ ├── Cargo.toml │ └── src/ │ ├── custom.rs │ └── main.rs ├── lock-analyzer/ │ ├── Cargo.toml │ └── src/ │ └── main.rs ├── naga/ │ ├── .cargo/ │ │ └── config.toml │ ├── .gitattributes │ ├── .gitignore │ ├── CHANGELOG.md │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ ├── README.md │ ├── build.rs │ ├── fuzz/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── fuzz_targets/ │ │ ├── glsl_parser.rs │ │ ├── ir.rs │ │ ├── spv_parser.rs │ │ └── wgsl_parser.rs │ ├── hlsl-snapshots/ │ │ ├── Cargo.toml │ │ └── src/ │ │ └── lib.rs │ ├── src/ │ │ ├── arena/ │ │ │ ├── handle.rs │ │ │ ├── handle_set.rs │ │ │ ├── handlevec.rs │ │ │ ├── mod.rs │ │ │ ├── range.rs │ │ │ └── unique_arena.rs │ │ ├── back/ │ │ │ ├── continue_forward.rs │ │ │ ├── dot/ │ │ │ │ └── mod.rs │ │ │ ├── glsl/ │ │ │ │ ├── conv.rs │ │ │ │ ├── features.rs │ │ │ │ ├── keywords.rs │ │ │ │ ├── mod.rs │ │ │ │ └── writer.rs │ │ │ ├── hlsl/ │ │ │ │ ├── conv.rs │ │ │ │ ├── help.rs │ │ │ │ ├── keywords.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── ray.rs │ │ │ │ ├── storage.rs │ │ │ │ └── writer.rs │ │ │ ├── mod.rs │ │ │ ├── msl/ │ │ │ │ ├── keywords.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── sampler.rs │ │ │ │ └── writer.rs │ │ │ ├── pipeline_constants.rs │ │ │ ├── spv/ │ │ │ │ ├── block.rs │ │ │ │ ├── f16_polyfill.rs │ │ │ │ ├── helpers.rs │ │ │ │ ├── image.rs │ │ │ │ ├── index.rs │ │ │ │ ├── instructions.rs │ │ │ │ ├── layout.rs │ │ │ │ ├── mesh_shader.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── ray/ │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── query.rs │ │ │ │ ├── reclaimable.rs │ │ │ │ ├── selection.rs │ │ │ │ ├── subgroup.rs │ │ │ │ └── writer.rs │ │ │ └── wgsl/ │ │ │ ├── mod.rs │ │ │ ├── polyfill/ │ │ │ │ ├── inverse/ │ │ │ │ │ ├── inverse_2x2_f16.wgsl │ │ │ │ │ ├── inverse_2x2_f32.wgsl │ │ │ │ │ ├── inverse_3x3_f16.wgsl │ │ │ │ │ ├── inverse_3x3_f32.wgsl │ │ │ │ │ ├── inverse_4x4_f16.wgsl │ │ │ │ │ └── inverse_4x4_f32.wgsl │ │ │ │ └── mod.rs │ │ │ └── writer.rs │ │ ├── common/ │ │ │ ├── diagnostic_debug.rs │ │ │ ├── diagnostic_display.rs │ │ │ ├── mod.rs │ │ │ ├── predeclared.rs │ │ │ └── wgsl/ │ │ │ ├── diagnostics.rs │ │ │ ├── mod.rs │ │ │ ├── to_wgsl.rs │ │ │ └── types.rs │ │ ├── compact/ │ │ │ ├── expressions.rs │ │ │ ├── functions.rs │ │ │ ├── handle_set_map.rs │ │ │ ├── mod.rs │ │ │ ├── statements.rs │ │ │ └── types.rs │ │ ├── diagnostic_filter.rs │ │ ├── error.rs │ │ ├── front/ │ │ │ ├── atomic_upgrade.rs │ │ │ ├── glsl/ │ │ │ │ ├── ast.rs │ │ │ │ ├── builtins.rs │ │ │ │ ├── context.rs │ │ │ │ ├── error.rs │ │ │ │ ├── functions.rs │ │ │ │ ├── lex.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── offset.rs │ │ │ │ ├── parser/ │ │ │ │ │ ├── declarations.rs │ │ │ │ │ ├── expressions.rs │ │ │ │ │ ├── functions.rs │ │ │ │ │ └── types.rs │ │ │ │ ├── parser.rs │ │ │ │ ├── parser_tests.rs │ │ │ │ ├── token.rs │ │ │ │ ├── types.rs │ │ │ │ └── variables.rs │ │ │ ├── interpolator.rs │ │ │ ├── mod.rs │ │ │ ├── spv/ │ │ │ │ ├── convert.rs │ │ │ │ ├── error.rs │ │ │ │ ├── function.rs │ │ │ │ ├── image.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── next_block.rs │ │ │ │ └── null.rs │ │ │ ├── type_gen.rs │ │ │ └── wgsl/ │ │ │ ├── error.rs │ │ │ ├── index.rs │ │ │ ├── lower/ │ │ │ │ ├── construction.rs │ │ │ │ ├── conversion.rs │ │ │ │ ├── mod.rs │ │ │ │ └── template_list.rs │ │ │ ├── mod.rs │ │ │ ├── parse/ │ │ │ │ ├── ast.rs │ │ │ │ ├── conv.rs │ │ │ │ ├── directive/ │ │ │ │ │ ├── enable_extension.rs │ │ │ │ │ └── language_extension.rs │ │ │ │ ├── directive.rs │ │ │ │ ├── lexer.rs │ │ │ │ ├── mod.rs │ │ │ │ └── number.rs │ │ │ └── tests.rs │ │ ├── ir/ │ │ │ ├── block.rs │ │ │ └── mod.rs │ │ ├── keywords/ │ │ │ ├── mod.rs │ │ │ └── wgsl.rs │ │ ├── lib.rs │ │ ├── non_max_u32.rs │ │ ├── proc/ │ │ │ ├── constant_evaluator.rs │ │ │ ├── emitter.rs │ │ │ ├── index.rs │ │ │ ├── keyword_set.rs │ │ │ ├── layouter.rs │ │ │ ├── mod.rs │ │ │ ├── namer.rs │ │ │ ├── overloads/ │ │ │ │ ├── any_overload_set.rs │ │ │ │ ├── constructor_set.rs │ │ │ │ ├── list.rs │ │ │ │ ├── mathfunction.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── one_bits_iter.rs │ │ │ │ ├── regular.rs │ │ │ │ ├── rule.rs │ │ │ │ ├── scalar_set.rs │ │ │ │ └── utils.rs │ │ │ ├── terminator.rs │ │ │ ├── type_methods.rs │ │ │ └── typifier.rs │ │ ├── racy_lock.rs │ │ ├── span.rs │ │ └── valid/ │ │ ├── analyzer.rs │ │ ├── compose.rs │ │ ├── expression.rs │ │ ├── function.rs │ │ ├── handles.rs │ │ ├── interface.rs │ │ ├── mod.rs │ │ └── type.rs │ ├── tests/ │ │ ├── in/ │ │ │ ├── glsl/ │ │ │ │ ├── 210-bevy-2d-shader.frag │ │ │ │ ├── 210-bevy-2d-shader.vert │ │ │ │ ├── 210-bevy-shader.vert │ │ │ │ ├── 246-collatz.comp │ │ │ │ ├── 277-casting.frag │ │ │ │ ├── 280-matrix-cast.frag │ │ │ │ ├── 484-preprocessor-if.frag │ │ │ │ ├── 5246-dual-iteration.frag │ │ │ │ ├── 800-out-of-bounds-panic.toml │ │ │ │ ├── 800-out-of-bounds-panic.vert │ │ │ │ ├── 896-push-constant.frag │ │ │ │ ├── 896-push-constant.toml │ │ │ │ ├── 900-implicit-conversions.frag │ │ │ │ ├── 901-lhs-field-select.frag │ │ │ │ ├── 931-constant-emitting.frag │ │ │ │ ├── 932-for-loop-if.frag │ │ │ │ ├── anonymous-entry-point-type.frag │ │ │ │ ├── bevy-pbr.frag │ │ │ │ ├── bevy-pbr.vert │ │ │ │ ├── bits.frag │ │ │ │ ├── bits.toml │ │ │ │ ├── bool-select.frag │ │ │ │ ├── buffer.frag │ │ │ │ ├── clamp-splat.vert │ │ │ │ ├── const-global-swizzle.frag │ │ │ │ ├── constant-array-size.frag │ │ │ │ ├── declarations.frag │ │ │ │ ├── double-math-functions.frag │ │ │ │ ├── double-math-functions.toml │ │ │ │ ├── dual-source-blending.frag │ │ │ │ ├── dual-source-blending.toml │ │ │ │ ├── expressions.frag │ │ │ │ ├── f16-glsl.comp │ │ │ │ ├── f16-glsl.toml │ │ │ │ ├── fma.frag │ │ │ │ ├── functions_call.frag │ │ │ │ ├── global-constant-array.frag │ │ │ │ ├── images.frag │ │ │ │ ├── inverse-polyfill.frag │ │ │ │ ├── local-var-init-in-loop.comp │ │ │ │ ├── long-form-matrix.frag │ │ │ │ ├── math-functions.frag │ │ │ │ ├── multipart-for-loop.frag │ │ │ │ ├── prepostfix.frag │ │ │ │ ├── quad_glsl.frag │ │ │ │ ├── quad_glsl.vert │ │ │ │ ├── sampler-functions.frag │ │ │ │ ├── samplers.frag │ │ │ │ ├── spec-constant.frag │ │ │ │ ├── spec-constant.toml │ │ │ │ ├── statements.frag │ │ │ │ ├── variations.frag │ │ │ │ ├── variations.toml │ │ │ │ ├── vector-functions.frag │ │ │ │ └── vector-functions.toml │ │ │ ├── spv/ │ │ │ │ ├── 8151-barrier-reorder.spvasm │ │ │ │ ├── atomic_compare_exchange.spvasm │ │ │ │ ├── atomic_exchange.spvasm │ │ │ │ ├── atomic_global_struct_field_vertex.spvasm │ │ │ │ ├── atomic_i_add_sub.spvasm │ │ │ │ ├── atomic_i_decrement.spvasm │ │ │ │ ├── atomic_i_increment.spvasm │ │ │ │ ├── atomic_load_and_store.spvasm │ │ │ │ ├── barrier.spvasm │ │ │ │ ├── barrier.toml │ │ │ │ ├── binding-arrays.dynamic.spvasm │ │ │ │ ├── binding-arrays.dynamic.toml │ │ │ │ ├── binding-arrays.runtime.slang │ │ │ │ ├── binding-arrays.runtime.spvasm │ │ │ │ ├── binding-arrays.runtime.toml │ │ │ │ ├── binding-arrays.static.spvasm │ │ │ │ ├── binding-arrays.static.toml │ │ │ │ ├── builtin-accessed-outside-entrypoint.spvasm │ │ │ │ ├── builtin-accessed-outside-entrypoint.toml │ │ │ │ ├── degrees.spvasm │ │ │ │ ├── degrees.toml │ │ │ │ ├── do-while.spvasm │ │ │ │ ├── do-while.toml │ │ │ │ ├── dual-source-blending.spvasm │ │ │ │ ├── dual-source-blending.toml │ │ │ │ ├── empty-global-name.spvasm │ │ │ │ ├── empty-global-name.toml │ │ │ │ ├── f16-spv.comp │ │ │ │ ├── f16-spv.spvasm │ │ │ │ ├── f16-spv.toml │ │ │ │ ├── fetch_depth.spvasm │ │ │ │ ├── fetch_depth.toml │ │ │ │ ├── gather-cmp.slang │ │ │ │ ├── gather-cmp.spvasm │ │ │ │ ├── gather-cmp.toml │ │ │ │ ├── gather.slang │ │ │ │ ├── gather.spvasm │ │ │ │ ├── gather.toml │ │ │ │ ├── inv-hyperbolic-trig-functions.spvasm │ │ │ │ ├── inv-hyperbolic-trig-functions.toml │ │ │ │ ├── load-ms-texture.slang │ │ │ │ ├── load-ms-texture.spvasm │ │ │ │ ├── load-ms-texture.toml │ │ │ │ ├── non-semantic-debug.spvasm │ │ │ │ ├── per-vertex.spvasm │ │ │ │ ├── per-vertex.toml │ │ │ │ ├── quad-vert.spvasm │ │ │ │ ├── quad-vert.toml │ │ │ │ ├── shadow.spvasm │ │ │ │ ├── shadow.toml │ │ │ │ ├── spec-constants-issue-5598.spvasm │ │ │ │ ├── spec-constants-issue-5598.toml │ │ │ │ ├── spec-constants.spvasm │ │ │ │ ├── spec-constants.toml │ │ │ │ ├── spec-constants.vert │ │ │ │ ├── subgroup-barrier.spvasm │ │ │ │ ├── subgroup-barrier.toml │ │ │ │ ├── subgroup-operations-s.spvasm │ │ │ │ ├── subgroup-operations-s.toml │ │ │ │ ├── unnamed-gl-per-vertex.spvasm │ │ │ │ └── unnamed-gl-per-vertex.toml │ │ │ └── wgsl/ │ │ │ ├── 6220-break-from-loop.toml │ │ │ ├── 6220-break-from-loop.wgsl │ │ │ ├── 6438-conflicting-idents.wgsl │ │ │ ├── 6772-unpack-expr-accesses.wgsl │ │ │ ├── 7048-multiple-dynamic-1.toml │ │ │ ├── 7048-multiple-dynamic-1.wgsl │ │ │ ├── 7048-multiple-dynamic-2.toml │ │ │ ├── 7048-multiple-dynamic-2.wgsl │ │ │ ├── 7048-multiple-dynamic-3.toml │ │ │ ├── 7048-multiple-dynamic-3.wgsl │ │ │ ├── 7995-unicode-idents.wgsl │ │ │ ├── 8820-multiple-local-invocation-index-id.wgsl │ │ │ ├── 9105-primitive-index-ordering.toml │ │ │ ├── 9105-primitive-index-ordering.wgsl │ │ │ ├── abstract-types-atomic.toml │ │ │ ├── abstract-types-atomic.wgsl │ │ │ ├── abstract-types-builtins.toml │ │ │ ├── abstract-types-builtins.wgsl │ │ │ ├── abstract-types-const.toml │ │ │ ├── abstract-types-const.wgsl │ │ │ ├── abstract-types-function-calls.toml │ │ │ ├── abstract-types-function-calls.wgsl │ │ │ ├── abstract-types-let.toml │ │ │ ├── abstract-types-let.wgsl │ │ │ ├── abstract-types-operators.toml │ │ │ ├── abstract-types-operators.wgsl │ │ │ ├── abstract-types-return.wgsl │ │ │ ├── abstract-types-texture.toml │ │ │ ├── abstract-types-texture.wgsl │ │ │ ├── abstract-types-var.toml │ │ │ ├── abstract-types-var.wgsl │ │ │ ├── access.toml │ │ │ ├── access.wgsl │ │ │ ├── aliased-ray-query.toml │ │ │ ├── aliased-ray-query.wgsl │ │ │ ├── array-in-ctor.wgsl │ │ │ ├── array-in-function-return-type.wgsl │ │ │ ├── atomicCompareExchange-int64.toml │ │ │ ├── atomicCompareExchange-int64.wgsl │ │ │ ├── atomicCompareExchange.toml │ │ │ ├── atomicCompareExchange.wgsl │ │ │ ├── atomicOps-float32.toml │ │ │ ├── atomicOps-float32.wgsl │ │ │ ├── atomicOps-int64-min-max.toml │ │ │ ├── atomicOps-int64-min-max.wgsl │ │ │ ├── atomicOps-int64.toml │ │ │ ├── atomicOps-int64.wgsl │ │ │ ├── atomicOps.wgsl │ │ │ ├── atomicTexture-int64.toml │ │ │ ├── atomicTexture-int64.wgsl │ │ │ ├── atomicTexture.toml │ │ │ ├── atomicTexture.wgsl │ │ │ ├── barycentrics.toml │ │ │ ├── barycentrics.wgsl │ │ │ ├── binding-arrays.toml │ │ │ ├── binding-arrays.wgsl │ │ │ ├── binding-buffer-arrays.toml │ │ │ ├── binding-buffer-arrays.wgsl │ │ │ ├── bitcast.wgsl │ │ │ ├── bits-optimized-msl.toml │ │ │ ├── bits-optimized-msl.wgsl │ │ │ ├── bits.toml │ │ │ ├── bits.wgsl │ │ │ ├── bits_downlevel.toml │ │ │ ├── bits_downlevel.wgsl │ │ │ ├── bits_downlevel_webgl.toml │ │ │ ├── bits_downlevel_webgl.wgsl │ │ │ ├── boids.toml │ │ │ ├── boids.wgsl │ │ │ ├── bounds-check-dynamic-buffer.toml │ │ │ ├── bounds-check-dynamic-buffer.wgsl │ │ │ ├── bounds-check-image-restrict-depth.toml │ │ │ ├── bounds-check-image-restrict-depth.wgsl │ │ │ ├── bounds-check-image-restrict.toml │ │ │ ├── bounds-check-image-restrict.wgsl │ │ │ ├── bounds-check-image-rzsw-depth.toml │ │ │ ├── bounds-check-image-rzsw-depth.wgsl │ │ │ ├── bounds-check-image-rzsw.toml │ │ │ ├── bounds-check-image-rzsw.wgsl │ │ │ ├── bounds-check-restrict.toml │ │ │ ├── bounds-check-restrict.wgsl │ │ │ ├── bounds-check-zero-atomic.toml │ │ │ ├── bounds-check-zero-atomic.wgsl │ │ │ ├── bounds-check-zero.toml │ │ │ ├── bounds-check-zero.wgsl │ │ │ ├── break-if.wgsl │ │ │ ├── clip-distances.toml │ │ │ ├── clip-distances.wgsl │ │ │ ├── collatz.toml │ │ │ ├── collatz.wgsl │ │ │ ├── const-exprs.wgsl │ │ │ ├── const_assert.toml │ │ │ ├── const_assert.wgsl │ │ │ ├── constructors.wgsl │ │ │ ├── control-flow.toml │ │ │ ├── control-flow.wgsl │ │ │ ├── conversion-float-to-int-no-f64.toml │ │ │ ├── conversion-float-to-int-no-f64.wgsl │ │ │ ├── conversion-float-to-int.toml │ │ │ ├── conversion-float-to-int.wgsl │ │ │ ├── conversions.wgsl │ │ │ ├── cooperative-matrix.toml │ │ │ ├── cooperative-matrix.wgsl │ │ │ ├── cross.wgsl │ │ │ ├── cubeArrayShadow.toml │ │ │ ├── cubeArrayShadow.wgsl │ │ │ ├── debug-symbol-large-source.toml │ │ │ ├── debug-symbol-large-source.wgsl │ │ │ ├── debug-symbol-simple.toml │ │ │ ├── debug-symbol-simple.wgsl │ │ │ ├── debug-symbol-terrain.toml │ │ │ ├── debug-symbol-terrain.wgsl │ │ │ ├── diagnostic-filter.toml │ │ │ ├── diagnostic-filter.wgsl │ │ │ ├── draw-index.toml │ │ │ ├── draw-index.wgsl │ │ │ ├── dualsource.toml │ │ │ ├── dualsource.wgsl │ │ │ ├── early-depth-test-conservative.toml │ │ │ ├── early-depth-test-conservative.wgsl │ │ │ ├── early-depth-test-force.toml │ │ │ ├── early-depth-test-force.wgsl │ │ │ ├── empty-if.toml │ │ │ ├── empty-if.wgsl │ │ │ ├── empty.wgsl │ │ │ ├── extra.toml │ │ │ ├── extra.wgsl │ │ │ ├── f16-native.toml │ │ │ ├── f16-native.wgsl │ │ │ ├── f16-polyfill.toml │ │ │ ├── f16-polyfill.wgsl │ │ │ ├── f16.toml │ │ │ ├── f16.wgsl │ │ │ ├── f64.toml │ │ │ ├── f64.wgsl │ │ │ ├── force_point_size_vertex_shader_webgl.toml │ │ │ ├── force_point_size_vertex_shader_webgl.wgsl │ │ │ ├── fragment-output.wgsl │ │ │ ├── functions-optimized-by-capability.toml │ │ │ ├── functions-optimized-by-capability.wgsl │ │ │ ├── functions-optimized-by-version.toml │ │ │ ├── functions-optimized-by-version.wgsl │ │ │ ├── functions-unoptimized.toml │ │ │ ├── functions-unoptimized.wgsl │ │ │ ├── functions-webgl.toml │ │ │ ├── functions-webgl.wgsl │ │ │ ├── functions.wgsl │ │ │ ├── globals.wgsl │ │ │ ├── hlsl-keyword.toml │ │ │ ├── hlsl-keyword.wgsl │ │ │ ├── image.toml │ │ │ ├── image.wgsl │ │ │ ├── index-by-value.toml │ │ │ ├── index-by-value.wgsl │ │ │ ├── int64.toml │ │ │ ├── int64.wgsl │ │ │ ├── interface.toml │ │ │ ├── interface.wgsl │ │ │ ├── interpolate.toml │ │ │ ├── interpolate.wgsl │ │ │ ├── interpolate_compat.toml │ │ │ ├── interpolate_compat.wgsl │ │ │ ├── invariant.toml │ │ │ ├── invariant.wgsl │ │ │ ├── lexical-scopes.toml │ │ │ ├── lexical-scopes.wgsl │ │ │ ├── local-const.toml │ │ │ ├── local-const.wgsl │ │ │ ├── mat_cx2.toml │ │ │ ├── mat_cx2.wgsl │ │ │ ├── mat_cx3.toml │ │ │ ├── mat_cx3.wgsl │ │ │ ├── math-functions.toml │ │ │ ├── math-functions.wgsl │ │ │ ├── memory-decorations-coherent.toml │ │ │ ├── memory-decorations-coherent.wgsl │ │ │ ├── memory-decorations.toml │ │ │ ├── memory-decorations.wgsl │ │ │ ├── mesh-shader-empty.toml │ │ │ ├── mesh-shader-empty.wgsl │ │ │ ├── mesh-shader-lines.toml │ │ │ ├── mesh-shader-lines.wgsl │ │ │ ├── mesh-shader-points.toml │ │ │ ├── mesh-shader-points.wgsl │ │ │ ├── mesh-shader.toml │ │ │ ├── mesh-shader.wgsl │ │ │ ├── module-scope.toml │ │ │ ├── module-scope.wgsl │ │ │ ├── msl-varyings.toml │ │ │ ├── msl-varyings.wgsl │ │ │ ├── msl-vpt-formats-x1.toml │ │ │ ├── msl-vpt-formats-x1.wgsl │ │ │ ├── msl-vpt-formats-x2.toml │ │ │ ├── msl-vpt-formats-x2.wgsl │ │ │ ├── msl-vpt-formats-x3.toml │ │ │ ├── msl-vpt-formats-x3.wgsl │ │ │ ├── msl-vpt-formats-x4.toml │ │ │ ├── msl-vpt-formats-x4.wgsl │ │ │ ├── msl-vpt.toml │ │ │ ├── msl-vpt.wgsl │ │ │ ├── multiview.toml │ │ │ ├── multiview.wgsl │ │ │ ├── multiview_webgl.toml │ │ │ ├── multiview_webgl.wgsl │ │ │ ├── must-use.toml │ │ │ ├── must-use.wgsl │ │ │ ├── operators.wgsl │ │ │ ├── overrides-atomicCompareExchangeWeak.toml │ │ │ ├── overrides-atomicCompareExchangeWeak.wgsl │ │ │ ├── overrides-ray-query.toml │ │ │ ├── overrides-ray-query.wgsl │ │ │ ├── overrides.toml │ │ │ ├── overrides.wgsl │ │ │ ├── padding.toml │ │ │ ├── padding.wgsl │ │ │ ├── per-vertex.toml │ │ │ ├── per-vertex.wgsl │ │ │ ├── phony_assignment.wgsl │ │ │ ├── pointer-function-arg-restrict.toml │ │ │ ├── pointer-function-arg-restrict.wgsl │ │ │ ├── pointer-function-arg-rzsw.toml │ │ │ ├── pointer-function-arg-rzsw.wgsl │ │ │ ├── pointer-function-arg.toml │ │ │ ├── pointer-function-arg.wgsl │ │ │ ├── pointers.toml │ │ │ ├── pointers.wgsl │ │ │ ├── policy-mix.toml │ │ │ ├── policy-mix.wgsl │ │ │ ├── primitive-index-mesh.toml │ │ │ ├── primitive-index-mesh.wgsl │ │ │ ├── primitive-index.toml │ │ │ ├── primitive-index.wgsl │ │ │ ├── push-constants.toml │ │ │ ├── push-constants.wgsl │ │ │ ├── quad.toml │ │ │ ├── quad.wgsl │ │ │ ├── ray-query-no-init-tracking.toml │ │ │ ├── ray-query-no-init-tracking.wgsl │ │ │ ├── ray-query.toml │ │ │ ├── ray-query.wgsl │ │ │ ├── ray-tracing-pipeline.toml │ │ │ ├── ray-tracing-pipeline.wgsl │ │ │ ├── resource-binding-map.toml │ │ │ ├── resource-binding-map.wgsl │ │ │ ├── sample-cube-array-depth-lod.toml │ │ │ ├── sample-cube-array-depth-lod.wgsl │ │ │ ├── select.wgsl │ │ │ ├── separate-entry-points.toml │ │ │ ├── separate-entry-points.wgsl │ │ │ ├── shadow.toml │ │ │ ├── shadow.wgsl │ │ │ ├── skybox.toml │ │ │ ├── skybox.wgsl │ │ │ ├── sprite.toml │ │ │ ├── sprite.wgsl │ │ │ ├── standard.wgsl │ │ │ ├── storage-textures.toml │ │ │ ├── storage-textures.wgsl │ │ │ ├── struct-layout.wgsl │ │ │ ├── subgroup-barrier.toml │ │ │ ├── subgroup-barrier.wgsl │ │ │ ├── subgroup-operations.toml │ │ │ ├── subgroup-operations.wgsl │ │ │ ├── template-list-ge.toml │ │ │ ├── template-list-ge.wgsl │ │ │ ├── template-list-trailing-comma.toml │ │ │ ├── template-list-trailing-comma.wgsl │ │ │ ├── texture-arg.toml │ │ │ ├── texture-arg.wgsl │ │ │ ├── texture-external.toml │ │ │ ├── texture-external.wgsl │ │ │ ├── type-alias.toml │ │ │ ├── type-alias.wgsl │ │ │ ├── type-inference.wgsl │ │ │ ├── types_with_comments.toml │ │ │ ├── types_with_comments.wgsl │ │ │ ├── unconsumed_vertex_outputs_frag.toml │ │ │ ├── unconsumed_vertex_outputs_frag.wgsl │ │ │ ├── unconsumed_vertex_outputs_vert.toml │ │ │ ├── unconsumed_vertex_outputs_vert.wgsl │ │ │ ├── use-gl-ext-over-grad-workaround-if-instructed.toml │ │ │ ├── use-gl-ext-over-grad-workaround-if-instructed.wgsl │ │ │ ├── workgroup-uniform-load-atomic.wgsl │ │ │ ├── workgroup-uniform-load.wgsl │ │ │ ├── workgroup-var-init.toml │ │ │ └── workgroup-var-init.wgsl │ │ ├── naga/ │ │ │ ├── example_wgsl.rs │ │ │ ├── main.rs │ │ │ ├── snapshots.rs │ │ │ ├── spirv_capabilities.rs │ │ │ ├── validation.rs │ │ │ └── wgsl_errors.rs │ │ └── out/ │ │ ├── analysis/ │ │ │ ├── spv-shadow.info.ron │ │ │ ├── wgsl-access.info.ron │ │ │ ├── wgsl-collatz.info.ron │ │ │ ├── wgsl-overrides.info.ron │ │ │ └── wgsl-storage-textures.info.ron │ │ ├── dot/ │ │ │ └── wgsl-quad.dot │ │ ├── glsl/ │ │ │ ├── glsl-variations.frag.main.Fragment.glsl │ │ │ ├── spv-barrier.main.Compute.glsl │ │ │ ├── spv-do-while.main.Fragment.glsl │ │ │ ├── spv-quad-vert.main.Vertex.glsl │ │ │ ├── spv-spec-constants-issue-5598.fragment.Fragment.glsl │ │ │ ├── spv-spec-constants-issue-5598.vertex.Vertex.glsl │ │ │ ├── spv-subgroup-barrier.main.Compute.glsl │ │ │ ├── spv-subgroup-operations-s.main.Compute.glsl │ │ │ ├── spv-unnamed-gl-per-vertex.main.Vertex.glsl │ │ │ ├── wgsl-6438-conflicting-idents.fs.Fragment.glsl │ │ │ ├── wgsl-6438-conflicting-idents.vs.Vertex.glsl │ │ │ ├── wgsl-6772-unpack-expr-accesses.main.Compute.glsl │ │ │ ├── wgsl-7995-unicode-idents.main.Compute.glsl │ │ │ ├── wgsl-8820-multiple-local-invocation-index-id.compute1.Compute.glsl │ │ │ ├── wgsl-abstract-types-builtins.f.Compute.glsl │ │ │ ├── wgsl-abstract-types-function-calls.main.Compute.glsl │ │ │ ├── wgsl-abstract-types-let.main.Compute.glsl │ │ │ ├── wgsl-abstract-types-operators.main.Compute.glsl │ │ │ ├── wgsl-abstract-types-return.main.Compute.glsl │ │ │ ├── wgsl-abstract-types-var.main.Compute.glsl │ │ │ ├── wgsl-access.foo_compute.Compute.glsl │ │ │ ├── wgsl-access.foo_frag.Fragment.glsl │ │ │ ├── wgsl-access.foo_vert.Vertex.glsl │ │ │ ├── wgsl-array-in-ctor.cs_main.Compute.glsl │ │ │ ├── wgsl-array-in-function-return-type.main.Fragment.glsl │ │ │ ├── wgsl-atomicCompareExchange.test_atomic_compare_exchange_i32.Compute.glsl │ │ │ ├── wgsl-atomicCompareExchange.test_atomic_compare_exchange_u32.Compute.glsl │ │ │ ├── wgsl-atomicOps.cs_main.Compute.glsl │ │ │ ├── wgsl-atomicTexture.cs_main.Compute.glsl │ │ │ ├── wgsl-barycentrics.fs_main.Fragment.glsl │ │ │ ├── wgsl-barycentrics.fs_main_no_perspective.Fragment.glsl │ │ │ ├── wgsl-bitcast.main.Compute.glsl │ │ │ ├── wgsl-bits.main.Compute.glsl │ │ │ ├── wgsl-bits_downlevel.main.Fragment.glsl │ │ │ ├── wgsl-bits_downlevel_webgl.main.Fragment.glsl │ │ │ ├── wgsl-boids.main.Compute.glsl │ │ │ ├── wgsl-bounds-check-image-restrict.fragment_shader.Fragment.glsl │ │ │ ├── wgsl-bounds-check-image-rzsw.fragment_shader.Fragment.glsl │ │ │ ├── wgsl-break-if.main.Compute.glsl │ │ │ ├── wgsl-clip-distances.main.Vertex.glsl │ │ │ ├── wgsl-const-exprs.main.Compute.glsl │ │ │ ├── wgsl-constructors.main.Compute.glsl │ │ │ ├── wgsl-control-flow.main.Compute.glsl │ │ │ ├── wgsl-conversions.main.Compute.glsl │ │ │ ├── wgsl-cross.main.Compute.glsl │ │ │ ├── wgsl-cubeArrayShadow.fragment.Fragment.glsl │ │ │ ├── wgsl-dualsource.main.Fragment.glsl │ │ │ ├── wgsl-early-depth-test-conservative.main.Fragment.glsl │ │ │ ├── wgsl-early-depth-test-force.main.Fragment.glsl │ │ │ ├── wgsl-empty-if.comp.Compute.glsl │ │ │ ├── wgsl-empty.main.Compute.glsl │ │ │ ├── wgsl-f64.main.Compute.glsl │ │ │ ├── wgsl-force_point_size_vertex_shader_webgl.fs_main.Fragment.glsl │ │ │ ├── wgsl-force_point_size_vertex_shader_webgl.vs_main.Vertex.glsl │ │ │ ├── wgsl-fragment-output.main_vec2scalar.Fragment.glsl │ │ │ ├── wgsl-fragment-output.main_vec4vec3.Fragment.glsl │ │ │ ├── wgsl-functions-webgl.main.Fragment.glsl │ │ │ ├── wgsl-functions.main.Compute.glsl │ │ │ ├── wgsl-globals.main.Compute.glsl │ │ │ ├── wgsl-image.gather.Fragment.glsl │ │ │ ├── wgsl-image.levels_queries.Vertex.glsl │ │ │ ├── wgsl-image.main.Compute.glsl │ │ │ ├── wgsl-image.queries.Vertex.glsl │ │ │ ├── wgsl-image.texture_sample.Fragment.glsl │ │ │ ├── wgsl-image.texture_sample_comparison.Fragment.glsl │ │ │ ├── wgsl-interpolate_compat.frag_main.Fragment.glsl │ │ │ ├── wgsl-interpolate_compat.vert_main.Vertex.glsl │ │ │ ├── wgsl-invariant.fs.Fragment.glsl │ │ │ ├── wgsl-invariant.vs.Vertex.glsl │ │ │ ├── wgsl-math-functions.main.Fragment.glsl │ │ │ ├── wgsl-memory-decorations-coherent.main.Compute.glsl │ │ │ ├── wgsl-memory-decorations.main.Compute.glsl │ │ │ ├── wgsl-multiview.main.Fragment.glsl │ │ │ ├── wgsl-multiview_webgl.main.Fragment.glsl │ │ │ ├── wgsl-operators.main.Compute.glsl │ │ │ ├── wgsl-overrides.main.Compute.glsl │ │ │ ├── wgsl-padding.vertex.Vertex.glsl │ │ │ ├── wgsl-phony_assignment.main.Compute.glsl │ │ │ ├── wgsl-pointer-function-arg.main.Compute.glsl │ │ │ ├── wgsl-primitive-index-mesh.func.Fragment.glsl │ │ │ ├── wgsl-primitive-index.func.Fragment.glsl │ │ │ ├── wgsl-push-constants.main.Fragment.glsl │ │ │ ├── wgsl-push-constants.vert_main.Vertex.glsl │ │ │ ├── wgsl-quad.frag_main.Fragment.glsl │ │ │ ├── wgsl-quad.fs_extra.Fragment.glsl │ │ │ ├── wgsl-quad.vert_main.Vertex.glsl │ │ │ ├── wgsl-sample-cube-array-depth-lod.main.Fragment.glsl │ │ │ ├── wgsl-select.main.Compute.glsl │ │ │ ├── wgsl-separate-entry-points.compute.Compute.glsl │ │ │ ├── wgsl-separate-entry-points.fragment.Fragment.glsl │ │ │ ├── wgsl-shadow.fs_main.Fragment.glsl │ │ │ ├── wgsl-shadow.fs_main_without_storage.Fragment.glsl │ │ │ ├── wgsl-shadow.vs_main.Vertex.glsl │ │ │ ├── wgsl-skybox.fs_main.Fragment.glsl │ │ │ ├── wgsl-skybox.vs_main.Vertex.glsl │ │ │ ├── wgsl-standard.derivatives.Fragment.glsl │ │ │ ├── wgsl-struct-layout.needs_padding_comp.Compute.glsl │ │ │ ├── wgsl-struct-layout.needs_padding_frag.Fragment.glsl │ │ │ ├── wgsl-struct-layout.needs_padding_vert.Vertex.glsl │ │ │ ├── wgsl-struct-layout.no_padding_comp.Compute.glsl │ │ │ ├── wgsl-struct-layout.no_padding_frag.Fragment.glsl │ │ │ ├── wgsl-struct-layout.no_padding_vert.Vertex.glsl │ │ │ ├── wgsl-subgroup-operations.main.Compute.glsl │ │ │ ├── wgsl-texture-arg.main.Fragment.glsl │ │ │ ├── wgsl-type-inference.main.Compute.glsl │ │ │ ├── wgsl-use-gl-ext-over-grad-workaround-if-instructed.main.Fragment.glsl │ │ │ ├── wgsl-workgroup-uniform-load-atomic.test_atomic_workgroup_uniform_load.Compute.glsl │ │ │ ├── wgsl-workgroup-uniform-load.test_workgroupUniformLoad.Compute.glsl │ │ │ └── wgsl-workgroup-var-init.main.Compute.glsl │ │ ├── hlsl/ │ │ │ ├── spv-barrier.hlsl │ │ │ ├── spv-barrier.ron │ │ │ ├── spv-do-while.hlsl │ │ │ ├── spv-do-while.ron │ │ │ ├── spv-empty-global-name.hlsl │ │ │ ├── spv-empty-global-name.ron │ │ │ ├── spv-fetch_depth.hlsl │ │ │ ├── spv-fetch_depth.ron │ │ │ ├── spv-inv-hyperbolic-trig-functions.hlsl │ │ │ ├── spv-inv-hyperbolic-trig-functions.ron │ │ │ ├── spv-quad-vert.hlsl │ │ │ ├── spv-quad-vert.ron │ │ │ ├── spv-subgroup-operations-s.hlsl │ │ │ ├── spv-subgroup-operations-s.ron │ │ │ ├── spv-unnamed-gl-per-vertex.hlsl │ │ │ ├── spv-unnamed-gl-per-vertex.ron │ │ │ ├── wgsl-6438-conflicting-idents.hlsl │ │ │ ├── wgsl-6438-conflicting-idents.ron │ │ │ ├── wgsl-6772-unpack-expr-accesses.hlsl │ │ │ ├── wgsl-6772-unpack-expr-accesses.ron │ │ │ ├── wgsl-7995-unicode-idents.hlsl │ │ │ ├── wgsl-7995-unicode-idents.ron │ │ │ ├── wgsl-8820-multiple-local-invocation-index-id.hlsl │ │ │ ├── wgsl-8820-multiple-local-invocation-index-id.ron │ │ │ ├── wgsl-9105-primitive-index-ordering.hlsl │ │ │ ├── wgsl-9105-primitive-index-ordering.ron │ │ │ ├── wgsl-abstract-types-return.hlsl │ │ │ ├── wgsl-abstract-types-return.ron │ │ │ ├── wgsl-access.hlsl │ │ │ ├── wgsl-access.ron │ │ │ ├── wgsl-aliased-ray-query.hlsl │ │ │ ├── wgsl-aliased-ray-query.ron │ │ │ ├── wgsl-array-in-ctor.hlsl │ │ │ ├── wgsl-array-in-ctor.ron │ │ │ ├── wgsl-array-in-function-return-type.hlsl │ │ │ ├── wgsl-array-in-function-return-type.ron │ │ │ ├── wgsl-atomicCompareExchange-int64.hlsl │ │ │ ├── wgsl-atomicCompareExchange-int64.ron │ │ │ ├── wgsl-atomicCompareExchange.hlsl │ │ │ ├── wgsl-atomicCompareExchange.ron │ │ │ ├── wgsl-atomicOps-int64-min-max.hlsl │ │ │ ├── wgsl-atomicOps-int64-min-max.ron │ │ │ ├── wgsl-atomicOps-int64.hlsl │ │ │ ├── wgsl-atomicOps-int64.ron │ │ │ ├── wgsl-atomicOps.hlsl │ │ │ ├── wgsl-atomicOps.ron │ │ │ ├── wgsl-atomicTexture-int64.hlsl │ │ │ ├── wgsl-atomicTexture-int64.ron │ │ │ ├── wgsl-atomicTexture.hlsl │ │ │ ├── wgsl-atomicTexture.ron │ │ │ ├── wgsl-barycentrics.hlsl │ │ │ ├── wgsl-barycentrics.ron │ │ │ ├── wgsl-binding-arrays.hlsl │ │ │ ├── wgsl-binding-arrays.ron │ │ │ ├── wgsl-bitcast.hlsl │ │ │ ├── wgsl-bitcast.ron │ │ │ ├── wgsl-bits.hlsl │ │ │ ├── wgsl-bits.ron │ │ │ ├── wgsl-boids.hlsl │ │ │ ├── wgsl-boids.ron │ │ │ ├── wgsl-bounds-check-dynamic-buffer.hlsl │ │ │ ├── wgsl-bounds-check-dynamic-buffer.ron │ │ │ ├── wgsl-break-if.hlsl │ │ │ ├── wgsl-break-if.ron │ │ │ ├── wgsl-collatz.hlsl │ │ │ ├── wgsl-collatz.ron │ │ │ ├── wgsl-const-exprs.hlsl │ │ │ ├── wgsl-const-exprs.ron │ │ │ ├── wgsl-constructors.hlsl │ │ │ ├── wgsl-constructors.ron │ │ │ ├── wgsl-control-flow.hlsl │ │ │ ├── wgsl-control-flow.ron │ │ │ ├── wgsl-conversion-float-to-int.hlsl │ │ │ ├── wgsl-conversion-float-to-int.ron │ │ │ ├── wgsl-conversions.hlsl │ │ │ ├── wgsl-conversions.ron │ │ │ ├── wgsl-cross.hlsl │ │ │ ├── wgsl-cross.ron │ │ │ ├── wgsl-dualsource.hlsl │ │ │ ├── wgsl-dualsource.ron │ │ │ ├── wgsl-empty-if.hlsl │ │ │ ├── wgsl-empty-if.ron │ │ │ ├── wgsl-empty.hlsl │ │ │ ├── wgsl-empty.ron │ │ │ ├── wgsl-f16.hlsl │ │ │ ├── wgsl-f16.ron │ │ │ ├── wgsl-f64.hlsl │ │ │ ├── wgsl-f64.ron │ │ │ ├── wgsl-fragment-output.hlsl │ │ │ ├── wgsl-fragment-output.ron │ │ │ ├── wgsl-functions-optimized-by-version.hlsl │ │ │ ├── wgsl-functions-optimized-by-version.ron │ │ │ ├── wgsl-functions-unoptimized.hlsl │ │ │ ├── wgsl-functions-unoptimized.ron │ │ │ ├── wgsl-functions.hlsl │ │ │ ├── wgsl-functions.ron │ │ │ ├── wgsl-globals.hlsl │ │ │ ├── wgsl-globals.ron │ │ │ ├── wgsl-hlsl-keyword.hlsl │ │ │ ├── wgsl-hlsl-keyword.ron │ │ │ ├── wgsl-image.hlsl │ │ │ ├── wgsl-image.ron │ │ │ ├── wgsl-int64.hlsl │ │ │ ├── wgsl-int64.ron │ │ │ ├── wgsl-interface.hlsl │ │ │ ├── wgsl-interface.ron │ │ │ ├── wgsl-interpolate.hlsl │ │ │ ├── wgsl-interpolate.ron │ │ │ ├── wgsl-interpolate_compat.hlsl │ │ │ ├── wgsl-interpolate_compat.ron │ │ │ ├── wgsl-mat_cx2.hlsl │ │ │ ├── wgsl-mat_cx2.ron │ │ │ ├── wgsl-mat_cx3.hlsl │ │ │ ├── wgsl-mat_cx3.ron │ │ │ ├── wgsl-math-functions.hlsl │ │ │ ├── wgsl-math-functions.ron │ │ │ ├── wgsl-memory-decorations-coherent.hlsl │ │ │ ├── wgsl-memory-decorations-coherent.ron │ │ │ ├── wgsl-multiview.hlsl │ │ │ ├── wgsl-multiview.ron │ │ │ ├── wgsl-operators.hlsl │ │ │ ├── wgsl-operators.ron │ │ │ ├── wgsl-overrides.hlsl │ │ │ ├── wgsl-overrides.ron │ │ │ ├── wgsl-padding.hlsl │ │ │ ├── wgsl-padding.ron │ │ │ ├── wgsl-phony_assignment.hlsl │ │ │ ├── wgsl-phony_assignment.ron │ │ │ ├── wgsl-pointer-function-arg.hlsl │ │ │ ├── wgsl-pointer-function-arg.ron │ │ │ ├── wgsl-primitive-index.hlsl │ │ │ ├── wgsl-primitive-index.ron │ │ │ ├── wgsl-push-constants.hlsl │ │ │ ├── wgsl-push-constants.ron │ │ │ ├── wgsl-quad.hlsl │ │ │ ├── wgsl-quad.ron │ │ │ ├── wgsl-ray-query-no-init-tracking.hlsl │ │ │ ├── wgsl-ray-query-no-init-tracking.ron │ │ │ ├── wgsl-ray-query.hlsl │ │ │ ├── wgsl-ray-query.ron │ │ │ ├── wgsl-select.hlsl │ │ │ ├── wgsl-select.ron │ │ │ ├── wgsl-shadow.hlsl │ │ │ ├── wgsl-shadow.ron │ │ │ ├── wgsl-skybox.hlsl │ │ │ ├── wgsl-skybox.ron │ │ │ ├── wgsl-standard.hlsl │ │ │ ├── wgsl-standard.ron │ │ │ ├── wgsl-storage-textures.hlsl │ │ │ ├── wgsl-storage-textures.ron │ │ │ ├── wgsl-struct-layout.hlsl │ │ │ ├── wgsl-struct-layout.ron │ │ │ ├── wgsl-subgroup-operations.hlsl │ │ │ ├── wgsl-subgroup-operations.ron │ │ │ ├── wgsl-texture-arg.hlsl │ │ │ ├── wgsl-texture-arg.ron │ │ │ ├── wgsl-texture-external.hlsl │ │ │ ├── wgsl-texture-external.ron │ │ │ ├── wgsl-type-inference.hlsl │ │ │ ├── wgsl-type-inference.ron │ │ │ ├── wgsl-unconsumed_vertex_outputs_frag.hlsl │ │ │ ├── wgsl-unconsumed_vertex_outputs_frag.ron │ │ │ ├── wgsl-unconsumed_vertex_outputs_vert.hlsl │ │ │ ├── wgsl-unconsumed_vertex_outputs_vert.ron │ │ │ ├── wgsl-workgroup-uniform-load-atomic.hlsl │ │ │ ├── wgsl-workgroup-uniform-load-atomic.ron │ │ │ ├── wgsl-workgroup-uniform-load.hlsl │ │ │ ├── wgsl-workgroup-uniform-load.ron │ │ │ ├── wgsl-workgroup-var-init.hlsl │ │ │ └── wgsl-workgroup-var-init.ron │ │ ├── ir/ │ │ │ ├── spv-fetch_depth.compact.ron │ │ │ ├── spv-fetch_depth.ron │ │ │ ├── spv-shadow.compact.ron │ │ │ ├── spv-shadow.ron │ │ │ ├── spv-spec-constants.compact.ron │ │ │ ├── spv-spec-constants.ron │ │ │ ├── wgsl-access.compact.ron │ │ │ ├── wgsl-access.ron │ │ │ ├── wgsl-collatz.compact.ron │ │ │ ├── wgsl-collatz.ron │ │ │ ├── wgsl-const_assert.compact.ron │ │ │ ├── wgsl-const_assert.ron │ │ │ ├── wgsl-diagnostic-filter.compact.ron │ │ │ ├── wgsl-diagnostic-filter.ron │ │ │ ├── wgsl-index-by-value.compact.ron │ │ │ ├── wgsl-index-by-value.ron │ │ │ ├── wgsl-local-const.compact.ron │ │ │ ├── wgsl-local-const.ron │ │ │ ├── wgsl-must-use.compact.ron │ │ │ ├── wgsl-must-use.ron │ │ │ ├── wgsl-overrides-atomicCompareExchangeWeak.compact.ron │ │ │ ├── wgsl-overrides-atomicCompareExchangeWeak.ron │ │ │ ├── wgsl-overrides-ray-query.compact.ron │ │ │ ├── wgsl-overrides-ray-query.ron │ │ │ ├── wgsl-overrides.compact.ron │ │ │ ├── wgsl-overrides.ron │ │ │ ├── wgsl-storage-textures.compact.ron │ │ │ ├── wgsl-storage-textures.ron │ │ │ ├── wgsl-template-list-trailing-comma.compact.ron │ │ │ ├── wgsl-template-list-trailing-comma.ron │ │ │ ├── wgsl-texture-external.compact.ron │ │ │ ├── wgsl-texture-external.ron │ │ │ ├── wgsl-types_with_comments.compact.ron │ │ │ └── wgsl-types_with_comments.ron │ │ ├── msl/ │ │ │ ├── spv-barrier.metal │ │ │ ├── spv-do-while.metal │ │ │ ├── spv-empty-global-name.metal │ │ │ ├── spv-fetch_depth.metal │ │ │ ├── spv-quad-vert.metal │ │ │ ├── spv-subgroup-barrier.metal │ │ │ ├── spv-subgroup-operations-s.metal │ │ │ ├── spv-unnamed-gl-per-vertex.metal │ │ │ ├── wgsl-6438-conflicting-idents.metal │ │ │ ├── wgsl-6772-unpack-expr-accesses.metal │ │ │ ├── wgsl-7995-unicode-idents.metal │ │ │ ├── wgsl-8820-multiple-local-invocation-index-id.metal │ │ │ ├── wgsl-abstract-types-builtins.metal │ │ │ ├── wgsl-abstract-types-const.metal │ │ │ ├── wgsl-abstract-types-function-calls.metal │ │ │ ├── wgsl-abstract-types-let.metal │ │ │ ├── wgsl-abstract-types-operators.metal │ │ │ ├── wgsl-abstract-types-return.metal │ │ │ ├── wgsl-abstract-types-texture.metal │ │ │ ├── wgsl-abstract-types-var.metal │ │ │ ├── wgsl-access.metal │ │ │ ├── wgsl-aliased-ray-query.metal │ │ │ ├── wgsl-array-in-ctor.metal │ │ │ ├── wgsl-array-in-function-return-type.metal │ │ │ ├── wgsl-atomicCompareExchange.metal │ │ │ ├── wgsl-atomicOps-float32.metal │ │ │ ├── wgsl-atomicOps-int64-min-max.metal │ │ │ ├── wgsl-atomicOps.metal │ │ │ ├── wgsl-atomicTexture-int64.metal │ │ │ ├── wgsl-atomicTexture.metal │ │ │ ├── wgsl-barycentrics.metal │ │ │ ├── wgsl-binding-arrays.metal │ │ │ ├── wgsl-bitcast.metal │ │ │ ├── wgsl-bits-optimized-msl.metal │ │ │ ├── wgsl-bits.metal │ │ │ ├── wgsl-boids.metal │ │ │ ├── wgsl-bounds-check-image-restrict-depth.metal │ │ │ ├── wgsl-bounds-check-image-restrict.metal │ │ │ ├── wgsl-bounds-check-image-rzsw-depth.metal │ │ │ ├── wgsl-bounds-check-image-rzsw.metal │ │ │ ├── wgsl-bounds-check-restrict.metal │ │ │ ├── wgsl-bounds-check-zero-atomic.metal │ │ │ ├── wgsl-bounds-check-zero.metal │ │ │ ├── wgsl-break-if.metal │ │ │ ├── wgsl-collatz.metal │ │ │ ├── wgsl-const-exprs.metal │ │ │ ├── wgsl-constructors.metal │ │ │ ├── wgsl-control-flow.metal │ │ │ ├── wgsl-conversion-float-to-int-no-f64.metal │ │ │ ├── wgsl-conversions.metal │ │ │ ├── wgsl-cooperative-matrix.metal │ │ │ ├── wgsl-cross.metal │ │ │ ├── wgsl-dualsource.metal │ │ │ ├── wgsl-empty-if.metal │ │ │ ├── wgsl-empty.metal │ │ │ ├── wgsl-extra.metal │ │ │ ├── wgsl-f16.metal │ │ │ ├── wgsl-fragment-output.metal │ │ │ ├── wgsl-functions-optimized-by-version.metal │ │ │ ├── wgsl-functions-unoptimized.metal │ │ │ ├── wgsl-functions.metal │ │ │ ├── wgsl-globals.metal │ │ │ ├── wgsl-image.metal │ │ │ ├── wgsl-int64.metal │ │ │ ├── wgsl-interface.metal │ │ │ ├── wgsl-interpolate.metal │ │ │ ├── wgsl-interpolate_compat.metal │ │ │ ├── wgsl-math-functions.metal │ │ │ ├── wgsl-memory-decorations-coherent.metal │ │ │ ├── wgsl-msl-varyings.metal │ │ │ ├── wgsl-msl-vpt-formats-x1.metal │ │ │ ├── wgsl-msl-vpt-formats-x2.metal │ │ │ ├── wgsl-msl-vpt-formats-x3.metal │ │ │ ├── wgsl-msl-vpt-formats-x4.metal │ │ │ ├── wgsl-msl-vpt.metal │ │ │ ├── wgsl-multiview.metal │ │ │ ├── wgsl-operators.metal │ │ │ ├── wgsl-overrides-atomicCompareExchangeWeak.metal │ │ │ ├── wgsl-overrides-ray-query.metal │ │ │ ├── wgsl-overrides.metal │ │ │ ├── wgsl-padding.metal │ │ │ ├── wgsl-phony_assignment.metal │ │ │ ├── wgsl-pointer-function-arg-restrict.metal │ │ │ ├── wgsl-pointer-function-arg-rzsw.metal │ │ │ ├── wgsl-pointer-function-arg.metal │ │ │ ├── wgsl-policy-mix.metal │ │ │ ├── wgsl-primitive-index.metal │ │ │ ├── wgsl-quad.metal │ │ │ ├── wgsl-ray-query-no-init-tracking.metal │ │ │ ├── wgsl-ray-query.metal │ │ │ ├── wgsl-resource-binding-map.metal │ │ │ ├── wgsl-select.metal │ │ │ ├── wgsl-shadow.metal │ │ │ ├── wgsl-skybox.metal │ │ │ ├── wgsl-standard.metal │ │ │ ├── wgsl-storage-textures.metal │ │ │ ├── wgsl-struct-layout.metal │ │ │ ├── wgsl-subgroup-barrier.metal │ │ │ ├── wgsl-subgroup-operations.metal │ │ │ ├── wgsl-texture-arg.metal │ │ │ ├── wgsl-texture-external.metal │ │ │ ├── wgsl-type-inference.metal │ │ │ ├── wgsl-workgroup-uniform-load-atomic.metal │ │ │ ├── wgsl-workgroup-uniform-load.metal │ │ │ └── wgsl-workgroup-var-init.metal │ │ ├── spv/ │ │ │ ├── spv-barrier.spvasm │ │ │ ├── spv-fetch_depth.spvasm │ │ │ ├── spv-per-vertex.spvasm │ │ │ ├── spv-subgroup-barrier.spvasm │ │ │ ├── wgsl-6220-break-from-loop.spvasm │ │ │ ├── wgsl-6438-conflicting-idents.spvasm │ │ │ ├── wgsl-6772-unpack-expr-accesses.spvasm │ │ │ ├── wgsl-7048-multiple-dynamic-1.spvasm │ │ │ ├── wgsl-7048-multiple-dynamic-2.spvasm │ │ │ ├── wgsl-7048-multiple-dynamic-3.spvasm │ │ │ ├── wgsl-7995-unicode-idents.spvasm │ │ │ ├── wgsl-8820-multiple-local-invocation-index-id.spvasm │ │ │ ├── wgsl-abstract-types-builtins.spvasm │ │ │ ├── wgsl-abstract-types-const.spvasm │ │ │ ├── wgsl-abstract-types-function-calls.spvasm │ │ │ ├── wgsl-abstract-types-let.spvasm │ │ │ ├── wgsl-abstract-types-operators.spvasm │ │ │ ├── wgsl-abstract-types-return.spvasm │ │ │ ├── wgsl-abstract-types-var.spvasm │ │ │ ├── wgsl-access.spvasm │ │ │ ├── wgsl-aliased-ray-query.spvasm │ │ │ ├── wgsl-array-in-ctor.spvasm │ │ │ ├── wgsl-array-in-function-return-type.spvasm │ │ │ ├── wgsl-atomicCompareExchange-int64.spvasm │ │ │ ├── wgsl-atomicCompareExchange.spvasm │ │ │ ├── wgsl-atomicOps-float32.spvasm │ │ │ ├── wgsl-atomicOps-int64-min-max.spvasm │ │ │ ├── wgsl-atomicOps-int64.spvasm │ │ │ ├── wgsl-atomicOps.spvasm │ │ │ ├── wgsl-atomicTexture-int64.spvasm │ │ │ ├── wgsl-atomicTexture.spvasm │ │ │ ├── wgsl-barycentrics.spvasm │ │ │ ├── wgsl-binding-arrays.spvasm │ │ │ ├── wgsl-binding-buffer-arrays.spvasm │ │ │ ├── wgsl-bitcast.spvasm │ │ │ ├── wgsl-bits.spvasm │ │ │ ├── wgsl-boids.spvasm │ │ │ ├── wgsl-bounds-check-image-restrict-depth.spvasm │ │ │ ├── wgsl-bounds-check-image-restrict.spvasm │ │ │ ├── wgsl-bounds-check-image-rzsw-depth.spvasm │ │ │ ├── wgsl-bounds-check-image-rzsw.spvasm │ │ │ ├── wgsl-bounds-check-restrict.spvasm │ │ │ ├── wgsl-bounds-check-zero.spvasm │ │ │ ├── wgsl-break-if.spvasm │ │ │ ├── wgsl-clip-distances.spvasm │ │ │ ├── wgsl-collatz.spvasm │ │ │ ├── wgsl-const-exprs.spvasm │ │ │ ├── wgsl-constructors.spvasm │ │ │ ├── wgsl-control-flow.spvasm │ │ │ ├── wgsl-conversion-float-to-int.spvasm │ │ │ ├── wgsl-conversions.spvasm │ │ │ ├── wgsl-cooperative-matrix.spvasm │ │ │ ├── wgsl-cross.spvasm │ │ │ ├── wgsl-debug-symbol-large-source.spvasm │ │ │ ├── wgsl-debug-symbol-simple.spvasm │ │ │ ├── wgsl-debug-symbol-terrain.spvasm │ │ │ ├── wgsl-draw-index.spvasm │ │ │ ├── wgsl-dualsource.spvasm │ │ │ ├── wgsl-early-depth-test-conservative.spvasm │ │ │ ├── wgsl-early-depth-test-force.spvasm │ │ │ ├── wgsl-empty-if.spvasm │ │ │ ├── wgsl-empty.spvasm │ │ │ ├── wgsl-extra.spvasm │ │ │ ├── wgsl-f16-native.spvasm │ │ │ ├── wgsl-f16-polyfill.spvasm │ │ │ ├── wgsl-f16.spvasm │ │ │ ├── wgsl-f64.spvasm │ │ │ ├── wgsl-fragment-output.spvasm │ │ │ ├── wgsl-functions-optimized-by-capability.spvasm │ │ │ ├── wgsl-functions-optimized-by-version.spvasm │ │ │ ├── wgsl-functions-unoptimized.spvasm │ │ │ ├── wgsl-functions.spvasm │ │ │ ├── wgsl-globals.spvasm │ │ │ ├── wgsl-image.spvasm │ │ │ ├── wgsl-index-by-value.spvasm │ │ │ ├── wgsl-int64.spvasm │ │ │ ├── wgsl-interface.compute.spvasm │ │ │ ├── wgsl-interface.fragment.spvasm │ │ │ ├── wgsl-interface.vertex.spvasm │ │ │ ├── wgsl-interface.vertex_two_structs.spvasm │ │ │ ├── wgsl-interpolate.spvasm │ │ │ ├── wgsl-interpolate_compat.spvasm │ │ │ ├── wgsl-mat_cx2.spvasm │ │ │ ├── wgsl-mat_cx3.spvasm │ │ │ ├── wgsl-math-functions.spvasm │ │ │ ├── wgsl-memory-decorations-coherent.spvasm │ │ │ ├── wgsl-memory-decorations.spvasm │ │ │ ├── wgsl-mesh-shader-empty.spvasm │ │ │ ├── wgsl-mesh-shader-lines.spvasm │ │ │ ├── wgsl-mesh-shader-points.spvasm │ │ │ ├── wgsl-mesh-shader.spvasm │ │ │ ├── wgsl-multiview.spvasm │ │ │ ├── wgsl-operators.spvasm │ │ │ ├── wgsl-overrides-atomicCompareExchangeWeak.f.spvasm │ │ │ ├── wgsl-overrides-ray-query.main.spvasm │ │ │ ├── wgsl-overrides.main.spvasm │ │ │ ├── wgsl-padding.spvasm │ │ │ ├── wgsl-per-vertex.spvasm │ │ │ ├── wgsl-phony_assignment.spvasm │ │ │ ├── wgsl-pointers.spvasm │ │ │ ├── wgsl-policy-mix.spvasm │ │ │ ├── wgsl-primitive-index.spvasm │ │ │ ├── wgsl-quad.spvasm │ │ │ ├── wgsl-ray-query-no-init-tracking.spvasm │ │ │ ├── wgsl-ray-query.spvasm │ │ │ ├── wgsl-select.spvasm │ │ │ ├── wgsl-separate-entry-points.compute.spvasm │ │ │ ├── wgsl-separate-entry-points.fragment.spvasm │ │ │ ├── wgsl-shadow.spvasm │ │ │ ├── wgsl-skybox.spvasm │ │ │ ├── wgsl-sprite.spvasm │ │ │ ├── wgsl-standard.spvasm │ │ │ ├── wgsl-storage-textures.spvasm │ │ │ ├── wgsl-struct-layout.spvasm │ │ │ ├── wgsl-subgroup-barrier.spvasm │ │ │ ├── wgsl-subgroup-operations.spvasm │ │ │ ├── wgsl-texture-arg.spvasm │ │ │ ├── wgsl-type-inference.spvasm │ │ │ ├── wgsl-workgroup-uniform-load-atomic.spvasm │ │ │ ├── wgsl-workgroup-uniform-load.spvasm │ │ │ └── wgsl-workgroup-var-init.spvasm │ │ └── wgsl/ │ │ ├── glsl-210-bevy-2d-shader.frag.wgsl │ │ ├── glsl-210-bevy-2d-shader.vert.wgsl │ │ ├── glsl-210-bevy-shader.vert.wgsl │ │ ├── glsl-246-collatz.comp.wgsl │ │ ├── glsl-277-casting.frag.wgsl │ │ ├── glsl-280-matrix-cast.frag.wgsl │ │ ├── glsl-484-preprocessor-if.frag.wgsl │ │ ├── glsl-5246-dual-iteration.frag.wgsl │ │ ├── glsl-800-out-of-bounds-panic.vert.wgsl │ │ ├── glsl-896-push-constant.frag.wgsl │ │ ├── glsl-900-implicit-conversions.frag.wgsl │ │ ├── glsl-901-lhs-field-select.frag.wgsl │ │ ├── glsl-931-constant-emitting.frag.wgsl │ │ ├── glsl-932-for-loop-if.frag.wgsl │ │ ├── glsl-anonymous-entry-point-type.frag.wgsl │ │ ├── glsl-bevy-pbr.frag.wgsl │ │ ├── glsl-bevy-pbr.vert.wgsl │ │ ├── glsl-bits.frag.wgsl │ │ ├── glsl-bool-select.frag.wgsl │ │ ├── glsl-buffer.frag.wgsl │ │ ├── glsl-clamp-splat.vert.wgsl │ │ ├── glsl-const-global-swizzle.frag.wgsl │ │ ├── glsl-constant-array-size.frag.wgsl │ │ ├── glsl-declarations.frag.wgsl │ │ ├── glsl-double-math-functions.frag.wgsl │ │ ├── glsl-dual-source-blending.frag.wgsl │ │ ├── glsl-expressions.frag.wgsl │ │ ├── glsl-f16-glsl.comp.wgsl │ │ ├── glsl-fma.frag.wgsl │ │ ├── glsl-functions_call.frag.wgsl │ │ ├── glsl-global-constant-array.frag.wgsl │ │ ├── glsl-images.frag.wgsl │ │ ├── glsl-inverse-polyfill.frag.wgsl │ │ ├── glsl-local-var-init-in-loop.comp.wgsl │ │ ├── glsl-long-form-matrix.frag.wgsl │ │ ├── glsl-math-functions.frag.wgsl │ │ ├── glsl-multipart-for-loop.frag.wgsl │ │ ├── glsl-prepostfix.frag.wgsl │ │ ├── glsl-quad_glsl.frag.wgsl │ │ ├── glsl-quad_glsl.vert.wgsl │ │ ├── glsl-sampler-functions.frag.wgsl │ │ ├── glsl-samplers.frag.wgsl │ │ ├── glsl-spec-constant.frag.wgsl │ │ ├── glsl-statements.frag.wgsl │ │ ├── glsl-vector-functions.frag.wgsl │ │ ├── spv-8151-barrier-reorder.wgsl │ │ ├── spv-atomic_compare_exchange.wgsl │ │ ├── spv-atomic_exchange.wgsl │ │ ├── spv-atomic_global_struct_field_vertex.wgsl │ │ ├── spv-atomic_i_add_sub.wgsl │ │ ├── spv-atomic_i_decrement.wgsl │ │ ├── spv-atomic_i_increment.wgsl │ │ ├── spv-atomic_load_and_store.wgsl │ │ ├── spv-barrier.wgsl │ │ ├── spv-binding-arrays.dynamic.wgsl │ │ ├── spv-binding-arrays.runtime.wgsl │ │ ├── spv-binding-arrays.static.wgsl │ │ ├── spv-builtin-accessed-outside-entrypoint.wgsl │ │ ├── spv-do-while.wgsl │ │ ├── spv-dual-source-blending.wgsl │ │ ├── spv-empty-global-name.wgsl │ │ ├── spv-f16-spv.wgsl │ │ ├── spv-fetch_depth.wgsl │ │ ├── spv-gather-cmp.wgsl │ │ ├── spv-gather.wgsl │ │ ├── spv-inv-hyperbolic-trig-functions.wgsl │ │ ├── spv-load-ms-texture.wgsl │ │ ├── spv-non-semantic-debug.wgsl │ │ ├── spv-per-vertex.wgsl │ │ ├── spv-quad-vert.wgsl │ │ ├── spv-subgroup-barrier.wgsl │ │ ├── spv-subgroup-operations-s.wgsl │ │ ├── spv-unnamed-gl-per-vertex.wgsl │ │ ├── wgsl-6438-conflicting-idents.wgsl │ │ ├── wgsl-6772-unpack-expr-accesses.wgsl │ │ ├── wgsl-7995-unicode-idents.wgsl │ │ ├── wgsl-8820-multiple-local-invocation-index-id.wgsl │ │ ├── wgsl-abstract-types-atomic.wgsl │ │ ├── wgsl-abstract-types-builtins.wgsl │ │ ├── wgsl-abstract-types-const.wgsl │ │ ├── wgsl-abstract-types-function-calls.wgsl │ │ ├── wgsl-abstract-types-let.wgsl │ │ ├── wgsl-abstract-types-operators.wgsl │ │ ├── wgsl-abstract-types-return.wgsl │ │ ├── wgsl-abstract-types-var.wgsl │ │ ├── wgsl-access.wgsl │ │ ├── wgsl-array-in-ctor.wgsl │ │ ├── wgsl-array-in-function-return-type.wgsl │ │ ├── wgsl-atomicCompareExchange-int64.wgsl │ │ ├── wgsl-atomicCompareExchange.wgsl │ │ ├── wgsl-atomicOps-float32.wgsl │ │ ├── wgsl-atomicOps-int64-min-max.wgsl │ │ ├── wgsl-atomicOps-int64.wgsl │ │ ├── wgsl-atomicOps.wgsl │ │ ├── wgsl-atomicTexture-int64.wgsl │ │ ├── wgsl-atomicTexture.wgsl │ │ ├── wgsl-barycentrics.wgsl │ │ ├── wgsl-binding-arrays.wgsl │ │ ├── wgsl-binding-buffer-arrays.wgsl │ │ ├── wgsl-bitcast.wgsl │ │ ├── wgsl-bits.wgsl │ │ ├── wgsl-boids.wgsl │ │ ├── wgsl-break-if.wgsl │ │ ├── wgsl-clip-distances.wgsl │ │ ├── wgsl-collatz.wgsl │ │ ├── wgsl-const-exprs.wgsl │ │ ├── wgsl-const_assert.wgsl │ │ ├── wgsl-constructors.wgsl │ │ ├── wgsl-control-flow.wgsl │ │ ├── wgsl-conversion-float-to-int.wgsl │ │ ├── wgsl-conversions.wgsl │ │ ├── wgsl-cooperative-matrix.wgsl │ │ ├── wgsl-cross.wgsl │ │ ├── wgsl-draw-index.wgsl │ │ ├── wgsl-dualsource.wgsl │ │ ├── wgsl-empty-if.wgsl │ │ ├── wgsl-empty.wgsl │ │ ├── wgsl-extra.wgsl │ │ ├── wgsl-f16.wgsl │ │ ├── wgsl-f64.wgsl │ │ ├── wgsl-fragment-output.wgsl │ │ ├── wgsl-functions.wgsl │ │ ├── wgsl-globals.wgsl │ │ ├── wgsl-image.wgsl │ │ ├── wgsl-int64.wgsl │ │ ├── wgsl-interface.wgsl │ │ ├── wgsl-interpolate.wgsl │ │ ├── wgsl-interpolate_compat.wgsl │ │ ├── wgsl-lexical-scopes.wgsl │ │ ├── wgsl-local-const.wgsl │ │ ├── wgsl-math-functions.wgsl │ │ ├── wgsl-memory-decorations-coherent.wgsl │ │ ├── wgsl-memory-decorations.wgsl │ │ ├── wgsl-mesh-shader-empty.wgsl │ │ ├── wgsl-mesh-shader-lines.wgsl │ │ ├── wgsl-mesh-shader-points.wgsl │ │ ├── wgsl-mesh-shader.wgsl │ │ ├── wgsl-module-scope.wgsl │ │ ├── wgsl-multiview.wgsl │ │ ├── wgsl-operators.wgsl │ │ ├── wgsl-padding.wgsl │ │ ├── wgsl-per-vertex.wgsl │ │ ├── wgsl-phony_assignment.wgsl │ │ ├── wgsl-pointer-function-arg.wgsl │ │ ├── wgsl-pointers.wgsl │ │ ├── wgsl-primitive-index.wgsl │ │ ├── wgsl-quad.wgsl │ │ ├── wgsl-ray-tracing-pipeline.wgsl │ │ ├── wgsl-select.wgsl │ │ ├── wgsl-shadow.wgsl │ │ ├── wgsl-skybox.wgsl │ │ ├── wgsl-standard.wgsl │ │ ├── wgsl-struct-layout.wgsl │ │ ├── wgsl-subgroup-barrier.wgsl │ │ ├── wgsl-subgroup-operations.wgsl │ │ ├── wgsl-texture-arg.wgsl │ │ ├── wgsl-texture-external.wgsl │ │ ├── wgsl-type-alias.wgsl │ │ ├── wgsl-type-inference.wgsl │ │ ├── wgsl-workgroup-uniform-load-atomic.wgsl │ │ ├── wgsl-workgroup-uniform-load.wgsl │ │ └── wgsl-workgroup-var-init.wgsl │ └── xtask/ │ ├── .gitignore │ ├── Cargo.toml │ └── src/ │ ├── cli.rs │ ├── fs.rs │ ├── glob.rs │ ├── jobserver.rs │ ├── main.rs │ ├── path.rs │ ├── process.rs │ └── validate.rs ├── naga-cli/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ └── src/ │ └── bin/ │ └── naga.rs ├── naga-test/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── player/ │ ├── Cargo.toml │ ├── README.md │ ├── src/ │ │ ├── bin/ │ │ │ └── play.rs │ │ └── lib.rs │ └── tests/ │ └── player/ │ ├── data/ │ │ ├── all.ron │ │ ├── bind-group.ron │ │ ├── buffer-copy.ron │ │ ├── clear-buffer-texture.ron │ │ ├── empty.wgsl │ │ ├── pipeline-statistics-query.ron │ │ ├── quad.ron │ │ ├── quad.wgsl │ │ ├── zero-init-buffer-for-binding.wgsl │ │ ├── zero-init-buffer.ron │ │ ├── zero-init-texture-binding.ron │ │ ├── zero-init-texture-binding.wgsl │ │ ├── zero-init-texture-copytobuffer.ron │ │ └── zero-init-texture-rendertarget.ron │ └── main.rs ├── renovate.json ├── rust-toolchain.toml ├── rustfmt.toml ├── taplo.toml ├── tests/ │ ├── Cargo.toml │ ├── src/ │ │ ├── config.rs │ │ ├── copy_texture_to_buffer.wgsl │ │ ├── expectations.rs │ │ ├── image.rs │ │ ├── init.rs │ │ ├── isolation.rs │ │ ├── lib.rs │ │ ├── native.rs │ │ ├── params.rs │ │ ├── poll.rs │ │ ├── report.rs │ │ └── run.rs │ └── tests/ │ ├── wgpu-compile/ │ │ ├── fail/ │ │ │ ├── cpass_lifetime.rs │ │ │ ├── cpass_lifetime.stderr │ │ │ ├── rpass_lifetime.rs │ │ │ └── rpass_lifetime.stderr │ │ └── main.rs │ ├── wgpu-dependency/ │ │ └── main.rs │ ├── wgpu-gpu/ │ │ ├── bgra8unorm_storage.rs │ │ ├── bind_group_layout_dedup.rs │ │ ├── bind_groups.rs │ │ ├── binding_array/ │ │ │ ├── buffers.rs │ │ │ ├── mod.rs │ │ │ ├── sampled_textures.rs │ │ │ ├── samplers.rs │ │ │ ├── storage_textures.rs │ │ │ └── tlas.rs │ │ ├── buffer.rs │ │ ├── buffer_copy.rs │ │ ├── buffer_usages.rs │ │ ├── clear_texture.rs │ │ ├── clip_distances.rs │ │ ├── cloneable_types.rs │ │ ├── compute_pass_ownership.rs │ │ ├── create_surface_error.rs │ │ ├── device.rs │ │ ├── dispatch_workgroups_indirect.rs │ │ ├── draw_index.rs │ │ ├── draw_indirect.rs │ │ ├── dual_source_blending.rs │ │ ├── encoder.rs │ │ ├── external_image_copy.rs │ │ ├── external_texture/ │ │ │ ├── dimensions.wgsl │ │ │ ├── load.wgsl │ │ │ ├── mod.rs │ │ │ └── sample.wgsl │ │ ├── float32_filterable.rs │ │ ├── image_atomics/ │ │ │ ├── image_32_atomics.wgsl │ │ │ ├── image_64_atomics.wgsl │ │ │ └── mod.rs │ │ ├── immediates.rs │ │ ├── instance.rs │ │ ├── life_cycle.rs │ │ ├── main.rs │ │ ├── mem_leaks.rs │ │ ├── mesh_shader/ │ │ │ ├── basic.hlsl │ │ │ ├── mod.rs │ │ │ ├── shader.metal │ │ │ └── shader.wgsl │ │ ├── multiview/ │ │ │ ├── mod.rs │ │ │ └── shader.wgsl │ │ ├── naga_capabilities.rs │ │ ├── occlusion_query/ │ │ │ ├── mod.rs │ │ │ └── shader.wgsl │ │ ├── oob_indexing.rs │ │ ├── oom.rs │ │ ├── pass_ops/ │ │ │ └── mod.rs │ │ ├── passthrough/ │ │ │ ├── mod.rs │ │ │ ├── shader.frag │ │ │ ├── shader.hlsl │ │ │ ├── shader.metal │ │ │ ├── shader.vert │ │ │ └── shader.wgsl │ │ ├── per_vertex/ │ │ │ ├── mod.rs │ │ │ └── per_vertex.wgsl │ │ ├── pipeline.rs │ │ ├── pipeline_cache.rs │ │ ├── planar_texture/ │ │ │ ├── mod.rs │ │ │ ├── planar_texture_rendering.wgsl │ │ │ └── planar_texture_sampling.wgsl │ │ ├── poll.rs │ │ ├── primitive_index.rs │ │ ├── query_set.rs │ │ ├── queue_transfer.rs │ │ ├── ray_tracing/ │ │ │ ├── as_build.rs │ │ │ ├── as_create.rs │ │ │ ├── as_use_after_free.rs │ │ │ ├── limits.rs │ │ │ ├── mod.rs │ │ │ ├── scene/ │ │ │ │ ├── mesh_gen.rs │ │ │ │ └── mod.rs │ │ │ ├── shader.rs │ │ │ └── shader.wgsl │ │ ├── regression/ │ │ │ ├── issue_3349.fs.wgsl │ │ │ ├── issue_3349.rs │ │ │ ├── issue_3349.vs.wgsl │ │ │ ├── issue_3457.rs │ │ │ ├── issue_3457.wgsl │ │ │ ├── issue_4024.rs │ │ │ ├── issue_4122.rs │ │ │ ├── issue_4485.rs │ │ │ ├── issue_4485.wgsl │ │ │ ├── issue_4514.rs │ │ │ ├── issue_4514.wgsl │ │ │ ├── issue_5553.rs │ │ │ ├── issue_5553.wgsl │ │ │ ├── issue_6317.rs │ │ │ ├── issue_6467.rs │ │ │ └── issue_6827.rs │ │ ├── render_pass_ownership.rs │ │ ├── render_target.rs │ │ ├── resource_descriptor_accessor.rs │ │ ├── resource_error.rs │ │ ├── samplers.rs │ │ ├── scissor_tests/ │ │ │ ├── mod.rs │ │ │ └── solid_white.wgsl │ │ ├── shader/ │ │ │ ├── array_size_overrides.rs │ │ │ ├── compilation_messages/ │ │ │ │ ├── error_shader.wgsl │ │ │ │ ├── mod.rs │ │ │ │ └── successful_shader.wgsl │ │ │ ├── data_builtins.rs │ │ │ ├── mod.rs │ │ │ ├── numeric_builtins.rs │ │ │ ├── shader_test.wgsl │ │ │ ├── struct_layout.rs │ │ │ ├── workgroup_size_overrides.rs │ │ │ ├── zero_init_workgroup_mem.rs │ │ │ └── zero_init_workgroup_mem.wgsl │ │ ├── shader_barycentric/ │ │ │ ├── barycentric.wgsl │ │ │ └── mod.rs │ │ ├── shader_primitive_index/ │ │ │ ├── mod.rs │ │ │ └── primitive_index.wgsl │ │ ├── shader_view_format/ │ │ │ ├── mod.rs │ │ │ └── view_format.wgsl │ │ ├── subgroup_operations/ │ │ │ ├── mod.rs │ │ │ └── shader.wgsl │ │ ├── texture_binding/ │ │ │ ├── mod.rs │ │ │ ├── shader.wgsl │ │ │ └── single_scalar.wgsl │ │ ├── texture_blit.rs │ │ ├── texture_bounds.rs │ │ ├── texture_view_creation.rs │ │ ├── timestamp_normalization/ │ │ │ ├── mod.rs │ │ │ ├── shift_right_u96.wgsl │ │ │ ├── u64_mul_u32.wgsl │ │ │ └── utils.rs │ │ ├── timestamp_query.rs │ │ ├── transfer.rs │ │ ├── transient.rs │ │ ├── transition_resources.rs │ │ ├── vertex_formats/ │ │ │ ├── draw.vert.wgsl │ │ │ └── mod.rs │ │ ├── vertex_indices/ │ │ │ ├── draw.vert.wgsl │ │ │ └── mod.rs │ │ ├── vertex_state.rs │ │ ├── write_texture.rs │ │ └── zero_init_texture_after_discard.rs │ ├── wgpu-validation/ │ │ ├── api/ │ │ │ ├── binding_arrays.rs │ │ │ ├── buffer.rs │ │ │ ├── buffer_mapping.rs │ │ │ ├── buffer_slice.rs │ │ │ ├── command_buffer_actions.rs │ │ │ ├── device.rs │ │ │ ├── encoding.rs │ │ │ ├── error_scopes.rs │ │ │ ├── experimental.rs │ │ │ ├── external_texture.rs │ │ │ ├── instance.rs │ │ │ ├── mod.rs │ │ │ ├── render_pipeline.rs │ │ │ └── texture.rs │ │ ├── main.rs │ │ ├── noop.rs │ │ └── util.rs │ └── wgpu_trace.rs ├── typos.toml ├── wgpu/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ ├── build.rs │ └── src/ │ ├── api/ │ │ ├── adapter.rs │ │ ├── bind_group.rs │ │ ├── bind_group_layout.rs │ │ ├── blas.rs │ │ ├── buffer.rs │ │ ├── command_buffer.rs │ │ ├── command_buffer_actions.rs │ │ ├── command_encoder.rs │ │ ├── common_pipeline.rs │ │ ├── compute_pass.rs │ │ ├── compute_pipeline.rs │ │ ├── device.rs │ │ ├── external_texture.rs │ │ ├── instance.rs │ │ ├── mod.rs │ │ ├── pipeline_cache.rs │ │ ├── pipeline_layout.rs │ │ ├── query_set.rs │ │ ├── queue.rs │ │ ├── render_bundle.rs │ │ ├── render_bundle_encoder.rs │ │ ├── render_pass.rs │ │ ├── render_pipeline.rs │ │ ├── sampler.rs │ │ ├── shader_module.rs │ │ ├── surface.rs │ │ ├── surface_texture.rs │ │ ├── texture.rs │ │ ├── texture_view.rs │ │ └── tlas.rs │ ├── backend/ │ │ ├── custom.rs │ │ ├── mod.rs │ │ ├── webgpu/ │ │ │ ├── defined_non_null_js_value.rs │ │ │ ├── ext_bindings.rs │ │ │ └── webgpu_sys/ │ │ │ ├── gen_Gpu.rs │ │ │ ├── gen_GpuAdapter.rs │ │ │ ├── gen_GpuAdapterInfo.rs │ │ │ ├── gen_GpuAddressMode.rs │ │ │ ├── gen_GpuAutoLayoutMode.rs │ │ │ ├── gen_GpuBindGroup.rs │ │ │ ├── gen_GpuBindGroupDescriptor.rs │ │ │ ├── gen_GpuBindGroupEntry.rs │ │ │ ├── gen_GpuBindGroupLayout.rs │ │ │ ├── gen_GpuBindGroupLayoutDescriptor.rs │ │ │ ├── gen_GpuBindGroupLayoutEntry.rs │ │ │ ├── gen_GpuBlendComponent.rs │ │ │ ├── gen_GpuBlendFactor.rs │ │ │ ├── gen_GpuBlendOperation.rs │ │ │ ├── gen_GpuBlendState.rs │ │ │ ├── gen_GpuBuffer.rs │ │ │ ├── gen_GpuBufferBinding.rs │ │ │ ├── gen_GpuBufferBindingLayout.rs │ │ │ ├── gen_GpuBufferBindingType.rs │ │ │ ├── gen_GpuBufferDescriptor.rs │ │ │ ├── gen_GpuBufferMapState.rs │ │ │ ├── gen_GpuCanvasAlphaMode.rs │ │ │ ├── gen_GpuCanvasConfiguration.rs │ │ │ ├── gen_GpuCanvasContext.rs │ │ │ ├── gen_GpuCanvasToneMapping.rs │ │ │ ├── gen_GpuCanvasToneMappingMode.rs │ │ │ ├── gen_GpuColorDict.rs │ │ │ ├── gen_GpuColorTargetState.rs │ │ │ ├── gen_GpuCommandBuffer.rs │ │ │ ├── gen_GpuCommandBufferDescriptor.rs │ │ │ ├── gen_GpuCommandEncoder.rs │ │ │ ├── gen_GpuCommandEncoderDescriptor.rs │ │ │ ├── gen_GpuCompareFunction.rs │ │ │ ├── gen_GpuCompilationInfo.rs │ │ │ ├── gen_GpuCompilationMessage.rs │ │ │ ├── gen_GpuCompilationMessageType.rs │ │ │ ├── gen_GpuComputePassDescriptor.rs │ │ │ ├── gen_GpuComputePassEncoder.rs │ │ │ ├── gen_GpuComputePassTimestampWrites.rs │ │ │ ├── gen_GpuComputePipeline.rs │ │ │ ├── gen_GpuComputePipelineDescriptor.rs │ │ │ ├── gen_GpuCopyExternalImageDestInfo.rs │ │ │ ├── gen_GpuCopyExternalImageSourceInfo.rs │ │ │ ├── gen_GpuCullMode.rs │ │ │ ├── gen_GpuDepthStencilState.rs │ │ │ ├── gen_GpuDevice.rs │ │ │ ├── gen_GpuDeviceDescriptor.rs │ │ │ ├── gen_GpuDeviceLostInfo.rs │ │ │ ├── gen_GpuDeviceLostReason.rs │ │ │ ├── gen_GpuError.rs │ │ │ ├── gen_GpuErrorFilter.rs │ │ │ ├── gen_GpuExtent3dDict.rs │ │ │ ├── gen_GpuExternalTexture.rs │ │ │ ├── gen_GpuExternalTextureBindingLayout.rs │ │ │ ├── gen_GpuExternalTextureDescriptor.rs │ │ │ ├── gen_GpuFeatureName.rs │ │ │ ├── gen_GpuFilterMode.rs │ │ │ ├── gen_GpuFragmentState.rs │ │ │ ├── gen_GpuFrontFace.rs │ │ │ ├── gen_GpuIndexFormat.rs │ │ │ ├── gen_GpuLoadOp.rs │ │ │ ├── gen_GpuMipmapFilterMode.rs │ │ │ ├── gen_GpuMultisampleState.rs │ │ │ ├── gen_GpuObjectDescriptorBase.rs │ │ │ ├── gen_GpuOrigin2dDict.rs │ │ │ ├── gen_GpuOrigin3dDict.rs │ │ │ ├── gen_GpuOutOfMemoryError.rs │ │ │ ├── gen_GpuPipelineDescriptorBase.rs │ │ │ ├── gen_GpuPipelineLayout.rs │ │ │ ├── gen_GpuPipelineLayoutDescriptor.rs │ │ │ ├── gen_GpuPowerPreference.rs │ │ │ ├── gen_GpuPrimitiveState.rs │ │ │ ├── gen_GpuPrimitiveTopology.rs │ │ │ ├── gen_GpuProgrammableStage.rs │ │ │ ├── gen_GpuQuerySet.rs │ │ │ ├── gen_GpuQuerySetDescriptor.rs │ │ │ ├── gen_GpuQueryType.rs │ │ │ ├── gen_GpuQueue.rs │ │ │ ├── gen_GpuQueueDescriptor.rs │ │ │ ├── gen_GpuRenderBundle.rs │ │ │ ├── gen_GpuRenderBundleDescriptor.rs │ │ │ ├── gen_GpuRenderBundleEncoder.rs │ │ │ ├── gen_GpuRenderBundleEncoderDescriptor.rs │ │ │ ├── gen_GpuRenderPassColorAttachment.rs │ │ │ ├── gen_GpuRenderPassDepthStencilAttachment.rs │ │ │ ├── gen_GpuRenderPassDescriptor.rs │ │ │ ├── gen_GpuRenderPassEncoder.rs │ │ │ ├── gen_GpuRenderPassTimestampWrites.rs │ │ │ ├── gen_GpuRenderPipeline.rs │ │ │ ├── gen_GpuRenderPipelineDescriptor.rs │ │ │ ├── gen_GpuRequestAdapterOptions.rs │ │ │ ├── gen_GpuSampler.rs │ │ │ ├── gen_GpuSamplerBindingLayout.rs │ │ │ ├── gen_GpuSamplerBindingType.rs │ │ │ ├── gen_GpuSamplerDescriptor.rs │ │ │ ├── gen_GpuShaderModule.rs │ │ │ ├── gen_GpuShaderModuleDescriptor.rs │ │ │ ├── gen_GpuStencilFaceState.rs │ │ │ ├── gen_GpuStencilOperation.rs │ │ │ ├── gen_GpuStorageTextureAccess.rs │ │ │ ├── gen_GpuStorageTextureBindingLayout.rs │ │ │ ├── gen_GpuStoreOp.rs │ │ │ ├── gen_GpuSupportedFeatures.rs │ │ │ ├── gen_GpuSupportedLimits.rs │ │ │ ├── gen_GpuTexelCopyBufferInfo.rs │ │ │ ├── gen_GpuTexelCopyBufferLayout.rs │ │ │ ├── gen_GpuTexelCopyTextureInfo.rs │ │ │ ├── gen_GpuTexture.rs │ │ │ ├── gen_GpuTextureAspect.rs │ │ │ ├── gen_GpuTextureBindingLayout.rs │ │ │ ├── gen_GpuTextureDescriptor.rs │ │ │ ├── gen_GpuTextureDimension.rs │ │ │ ├── gen_GpuTextureFormat.rs │ │ │ ├── gen_GpuTextureSampleType.rs │ │ │ ├── gen_GpuTextureView.rs │ │ │ ├── gen_GpuTextureViewDescriptor.rs │ │ │ ├── gen_GpuTextureViewDimension.rs │ │ │ ├── gen_GpuUncapturedErrorEvent.rs │ │ │ ├── gen_GpuUncapturedErrorEventInit.rs │ │ │ ├── gen_GpuValidationError.rs │ │ │ ├── gen_GpuVertexAttribute.rs │ │ │ ├── gen_GpuVertexBufferLayout.rs │ │ │ ├── gen_GpuVertexFormat.rs │ │ │ ├── gen_GpuVertexState.rs │ │ │ ├── gen_GpuVertexStepMode.rs │ │ │ ├── gen_WgslLanguageFeatures.rs │ │ │ ├── gen_gpu_map_mode.rs │ │ │ └── mod.rs │ │ ├── webgpu.rs │ │ ├── wgpu_core/ │ │ │ └── thread_id.rs │ │ └── wgpu_core.rs │ ├── cmp.rs │ ├── dispatch.rs │ ├── lib.rs │ ├── macros/ │ │ ├── be-aligned.spv │ │ ├── le-aligned.spv │ │ └── mod.rs │ └── util/ │ ├── belt.rs │ ├── blit.wgsl │ ├── device.rs │ ├── encoder.rs │ ├── init.rs │ ├── mod.rs │ ├── mutex.rs │ ├── panicking.rs │ ├── spirv.rs │ └── texture_blitter.rs ├── wgpu-core/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ ├── build.rs │ ├── platform-deps/ │ │ ├── apple/ │ │ │ ├── Cargo.toml │ │ │ ├── LICENSE.APACHE │ │ │ ├── LICENSE.MIT │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── emscripten/ │ │ │ ├── Cargo.toml │ │ │ ├── LICENSE.APACHE │ │ │ ├── LICENSE.MIT │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ ├── wasm/ │ │ │ ├── Cargo.toml │ │ │ ├── LICENSE.APACHE │ │ │ ├── LICENSE.MIT │ │ │ ├── README.md │ │ │ └── src/ │ │ │ └── lib.rs │ │ └── windows-linux-android/ │ │ ├── Cargo.toml │ │ ├── LICENSE.APACHE │ │ ├── LICENSE.MIT │ │ ├── README.md │ │ └── src/ │ │ └── lib.rs │ └── src/ │ ├── as_hal.rs │ ├── binding_model.rs │ ├── command/ │ │ ├── allocator.rs │ │ ├── bind.rs │ │ ├── bundle.rs │ │ ├── clear.rs │ │ ├── compute.rs │ │ ├── compute_command.rs │ │ ├── draw.rs │ │ ├── encoder.rs │ │ ├── encoder_command.rs │ │ ├── ffi.rs │ │ ├── memory_init.rs │ │ ├── mod.rs │ │ ├── pass.rs │ │ ├── query.rs │ │ ├── ray_tracing.rs │ │ ├── render.rs │ │ ├── render_command.rs │ │ ├── timestamp_writes.rs │ │ ├── transfer.rs │ │ └── transition_resources.rs │ ├── conv.rs │ ├── device/ │ │ ├── bgl.rs │ │ ├── global.rs │ │ ├── life.rs │ │ ├── mod.rs │ │ ├── queue.rs │ │ ├── ray_tracing.rs │ │ ├── resource.rs │ │ ├── trace/ │ │ │ ├── record.rs │ │ │ └── replay.rs │ │ └── trace.rs │ ├── error.rs │ ├── global.rs │ ├── hash_utils.rs │ ├── hub.rs │ ├── id.rs │ ├── identity.rs │ ├── indirect_validation/ │ │ ├── dispatch.rs │ │ ├── draw.rs │ │ ├── mod.rs │ │ ├── utils.rs │ │ └── validate_draw.wgsl │ ├── init_tracker/ │ │ ├── buffer.rs │ │ ├── mod.rs │ │ └── texture.rs │ ├── instance.rs │ ├── lib.rs │ ├── lock/ │ │ ├── mod.rs │ │ ├── observing.rs │ │ ├── rank.rs │ │ ├── ranked.rs │ │ └── vanilla.rs │ ├── pipeline.rs │ ├── pipeline_cache.rs │ ├── pool.rs │ ├── present.rs │ ├── ray_tracing.rs │ ├── registry.rs │ ├── resource.rs │ ├── scratch.rs │ ├── snatch.rs │ ├── storage.rs │ ├── timestamp_normalization/ │ │ ├── common.wgsl │ │ ├── mod.rs │ │ └── timestamp_normalization.wgsl │ ├── track/ │ │ ├── blas.rs │ │ ├── buffer.rs │ │ ├── metadata.rs │ │ ├── mod.rs │ │ ├── range.rs │ │ ├── stateless.rs │ │ └── texture.rs │ ├── validation/ │ │ └── shader_io_deductions.rs │ ├── validation.rs │ └── weak_vec.rs ├── wgpu-hal/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ ├── README.md │ ├── build.rs │ ├── examples/ │ │ ├── halmark/ │ │ │ ├── main.rs │ │ │ └── shader.wgsl │ │ ├── raw-gles.em.html │ │ ├── raw-gles.rs │ │ └── ray-traced-triangle/ │ │ ├── main.rs │ │ └── shader.wgsl │ └── src/ │ ├── auxil/ │ │ ├── dxgi/ │ │ │ ├── conv.rs │ │ │ ├── exception.rs │ │ │ ├── factory.rs │ │ │ ├── mod.rs │ │ │ ├── name.rs │ │ │ ├── result.rs │ │ │ └── time.rs │ │ ├── mod.rs │ │ └── renderdoc.rs │ ├── dx12/ │ │ ├── adapter.rs │ │ ├── command.rs │ │ ├── conv.rs │ │ ├── dcomp.rs │ │ ├── descriptor.rs │ │ ├── device.rs │ │ ├── device_creation.rs │ │ ├── instance.rs │ │ ├── mod.rs │ │ ├── pipeline_desc.rs │ │ ├── sampler.rs │ │ ├── shader_compilation.rs │ │ ├── suballocation.rs │ │ ├── types.rs │ │ └── view.rs │ ├── dynamic/ │ │ ├── adapter.rs │ │ ├── command.rs │ │ ├── device.rs │ │ ├── instance.rs │ │ ├── mod.rs │ │ ├── queue.rs │ │ └── surface.rs │ ├── gles/ │ │ ├── adapter.rs │ │ ├── command.rs │ │ ├── conv.rs │ │ ├── device.rs │ │ ├── egl.rs │ │ ├── emscripten.rs │ │ ├── fence.rs │ │ ├── mod.rs │ │ ├── queue.rs │ │ ├── shaders/ │ │ │ ├── clear.frag │ │ │ ├── clear.vert │ │ │ ├── srgb_present.frag │ │ │ └── srgb_present.vert │ │ ├── web.rs │ │ └── wgl.rs │ ├── lib.rs │ ├── metal/ │ │ ├── adapter.rs │ │ ├── command.rs │ │ ├── conv.rs │ │ ├── device.rs │ │ ├── library_from_metallib.rs │ │ ├── mod.rs │ │ ├── surface.rs │ │ └── time.rs │ ├── noop/ │ │ ├── buffer.rs │ │ ├── command.rs │ │ └── mod.rs │ ├── validation_canary.rs │ └── vulkan/ │ ├── adapter.rs │ ├── command.rs │ ├── conv.rs │ ├── device.rs │ ├── drm.rs │ ├── instance.rs │ ├── mod.rs │ ├── sampler.rs │ ├── semaphore_list.rs │ └── swapchain/ │ ├── mod.rs │ └── native.rs ├── wgpu-info/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ ├── README.md │ └── src/ │ ├── cli.rs │ ├── human.rs │ ├── main.rs │ ├── report.rs │ ├── tests.rs │ └── texture.rs ├── wgpu-macros/ │ ├── Cargo.toml │ └── src/ │ └── lib.rs ├── wgpu-naga-bridge/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ └── src/ │ └── lib.rs ├── wgpu-types/ │ ├── Cargo.toml │ ├── LICENSE.APACHE │ ├── LICENSE.MIT │ └── src/ │ ├── adapter.rs │ ├── assertions.rs │ ├── backend.rs │ ├── binding.rs │ ├── buffer.rs │ ├── cast_utils.rs │ ├── counters.rs │ ├── device.rs │ ├── env.rs │ ├── error.rs │ ├── features.rs │ ├── instance.rs │ ├── lib.rs │ ├── limits.rs │ ├── math.rs │ ├── origin_extent.rs │ ├── ray_tracing.rs │ ├── render.rs │ ├── send_sync.rs │ ├── shader.rs │ ├── surface.rs │ ├── texture/ │ │ ├── external_image.rs │ │ ├── external_texture.rs │ │ └── format.rs │ ├── texture.rs │ ├── tokens.rs │ ├── transfers.rs │ ├── vertex.rs │ └── write_only.rs └── xtask/ ├── Cargo.toml └── src/ ├── changelog.rs ├── cts.rs ├── install_agility_sdk.rs ├── install_warp.rs ├── main.rs ├── miri.rs ├── run_wasm.rs ├── test.rs ├── util.rs └── vendor_web_sys.rs