metal2vulkan
Translate Metal AIR / LLVM IR to Vulkan SPIR-V with a native Rust emitter
File Explorer
- ci.yml
- ARCHITECTURE.md
- HOWTO.md
- REFLECTION.md
- VALIDATION.md
- translate_native.rs
- translate_reflected.rs
- mtlb_extract.py
- README.md
- README.md
- regen-spirv-grammar.sh
- embedded.rs
- function_constants.rs
- globals.rs
- intersections.rs
- mod.rs
- tests.rs
- textures.rs
- types.rs
- cross_arm.rs
- detect.rs
- finders.rs
- mod.rs
- normalize.rs
- privatize.rs
- renest.rs
- construct_tree.rs
- construct_tree_fixtures.rs
- loop_merges.rs
- mod.rs
- multi_exit.rs
- own_arm.rs
- phi_util.rs
- plan.rs
- reject.rs
- selection_merge.rs
- straddle.rs
- straddle_region.rs
- terminal_exit.rs
- blocks.rs
- exit_check.rs
- graph.rs
- loop_split.rs
- loopforest.rs
- mod.rs
- repair.rs
- ssa_demote.rs
- structured_order.rs
- constants.rs
- eval.rs
- mod.rs
- nonzero.rs
- prune.rs
- simplify.rs
- calls.rs
- core_inst.rs
- gep_provenance.rs
- memcpy_memset.rs
- mod.rs
- reinterpret_pointer.rs
- vector_load.rs
- vector_store.rs
- word_access.rs
- loop_continue.rs
- merge_helpers.rs
- merges.rs
- mod.rs
- byte_array_scalar.rs
- device_addr.rs
- gep.rs
- index_ptr.rs
- mod.rs
- store.rs
- word_access.rs
- air_calls.rs
- atomics.rs
- binary_ops.rs
- conversions.rs
- freeze_unary.rs
- intrinsics.rs
- mod.rs
- operands.rs
- gep_linearize.rs
- mod.rs
- phi_compare.rs
- phi_merge.rs
- phi_provenance.rs
- raw_select.rs
- select.rs
- select_gep.rs
- air_struct_offsets.rs
- functions.rs
- helpers.rs
- layout_tests.rs
- mod.rs
- pointer_network.rs
- types.rs
- mod.rs
- tests.rs
- alloca.rs
- metadata_pointees.rs
- mod.rs
- parse.rs
- pointer_pointees.rs
- raw_buffer.rs
- static_init.rs
- buffers.rs
- control_flow.rs
- error_class.rs
- interface.rs
- intrinsics.rs
- misc.rs
- mod.rs
- textures.rs
- threadgroup.rs
- types.rs
- lower.rs
- mod.rs
- operands.rs
- phi_edit.rs
- pointee.rs
- rename.rs
- storage.rs
- substitute.rs
- terminator.rs
- async_copy.rs
- buffer_arm_reconcile.rs
- diagnostics.rs
- emit_tiers.rs
- error_class.rs
- error_classifier_tests.rs
- imageblock.rs
- inline.rs
- lex.rs
- mixed_pointer_select.rs
- mod.rs
- opaque_image_select.rs
- parse.rs
- phi_index.rs
- private_vector_word.rs
- psb.rs
- psb_value_select.rs
- ray_intersection.rs
- relooper.rs
- render.rs
- rewrites.rs
- sampled_image_type.rs
- sroa.rs
- subword_pack.rs
- vec_scalar_merge.rs
- wg_atomic.rs
- access_chain.rs
- access_provenance.rs
- byte_aggregate.rs
- dynamic_reinterpret.rs
- index_remap.rs
- mod.rs
- private_memory.rs
- raw_byte.rs
- README.md
- scalar_store.rs
- vector_subword.rs
- workgroup.rs
- atomic.rs
- fetch_coord.rs
- gather.rs
- mod.rs
- query_offset.rs
- resolve.rs
- sample.rs
- sample_depth.rs
- write_read.rs
- agx_emask.rs
- bfloat_glsl.rs
- conversions.rs
- dispatch_texture.rs
- float_imageblock.rs
- integer_simd.rs
- matrix_shuffle.rs
- mod.rs
- rawbyte_unary.rs
- README.md
- reduce_bitops.rs
- mod.rs
- README.md
- mod.rs
- tests.rs
- air_struct_remap.rs
- mod.rs
- private_atomics.rs
- raw_word_rewrite.rs
- structural_load.rs
- bindings.rs
- buffer_addresses.rs
- collapse.rs
- discovery.rs
- mod.rs
- query_select.rs
- README.md
- texture_array.rs
- air_layout.rs
- decorations.rs
- kernel_grid.rs
- kernel_values.rs
- layout.rs
- mod.rs
- README.md
- mod.rs
- README.md
- atomic_loop.rs
- mod.rs
- pointers.rs
- README.md
- types.rs
- zero_initialize.rs
- agx_cluster.rs
- finalize.rs
- lowering_regression_tests.rs
- mod.rs
- module_cleanup.rs
- prune.rs
- spirv_cfg.rs
- type_singletons.rs
- value_queries.rs
- footprint.rs
- mod.rs
- tests.rs
- decode_generated.rs
- decoder.rs
- error.rs
- error_generated.rs
- grammar.rs
- grammar_generated.rs
- mod.rs
- parse_generated.rs
- parser.rs
- README.md
- type_tracker.rs
- air_intrinsics.rs
- as_shadow.rs
- emit_sidecar.rs
- env_vars.rs
- fc_specialize.rs
- layout.rs
- lib.rs
- linked_functions.rs
- main.rs
- passthrough.rs
- primary_retry.rs
- retry.rs
- spirv_disassemble_generated.rs
- spirv_module.rs
- spirv_operand.rs
- spirv_operand_display_generated.rs
- spirv_variable_ptr.rs
- tools.rs
- types.rs
- env_registry.rs
- must_fallback.rs
- nextest.toml
- shard_000.jsonl
- shard_013.jsonl
- shard_015.jsonl
- shard_020.jsonl
- shard_027.jsonl
- shard_029.jsonl
- shard_036.jsonl
- shard_040.jsonl
- shard_042.jsonl
- shard_049.jsonl
- shard_050.jsonl
- shard_055.jsonl
- shard_059.jsonl
- shard_063.jsonl
- shard_000.jsonl
- shard_013.jsonl
- shard_015.jsonl
- shard_020.jsonl
- shard_027.jsonl
- shard_029.jsonl
- shard_036.jsonl
- shard_040.jsonl
- shard_042.jsonl
- shard_049.jsonl
- shard_050.jsonl
- shard_055.jsonl
- shard_059.jsonl
- shard_063.jsonl
- shard_000.jsonl
- shard_013.jsonl
- shard_015.jsonl
- shard_020.jsonl
- shard_027.jsonl
- shard_029.jsonl
- shard_036.jsonl
- shard_040.jsonl
- shard_042.jsonl
- shard_049.jsonl
- shard_050.jsonl
- shard_055.jsonl
- shard_059.jsonl
- shard_063.jsonl
- shard_000.jsonl
- shard_013.jsonl
- shard_015.jsonl
- shard_020.jsonl
- shard_029.jsonl
- shard_036.jsonl
- shard_040.jsonl
- shard_049.jsonl
- shard_050.jsonl
- shard_059.jsonl
- shard_063.jsonl
- shard_000.jsonl
- shard_013.jsonl
- shard_015.jsonl
- shard_020.jsonl
- shard_029.jsonl
- shard_036.jsonl
- shard_040.jsonl
- shard_049.jsonl
- shard_050.jsonl
- shard_059.jsonl
- shard_063.jsonl
- README.md
- fragment_constant_color.ll
- fragment_constant_color.metal
- fragment_custom_imageblock.ll
- fragment_custom_imageblock.metal
- fragment_depth_stencil.ll
- fragment_depth_stencil.metal
- fragment_varying_color.ll
- fragment_varying_color.metal
- kernel_argument_buffer_intersection_table.metal
- kernel_bounded_loop_word.ll
- kernel_bounded_loop_word.metal
- kernel_copy_word.ll
- kernel_copy_word.metal
- kernel_imageblock_word.ll
- kernel_imageblock_word.metal
- kernel_implicit_imageblock_half2.ll
- kernel_implicit_imageblock_half2.metal
- kernel_implicit_imageblock_half4.metal
- kernel_instance_as_intersect.ll
- kernel_instance_as_intersect.metal
- kernel_instance_as_world_space.ll
- kernel_instance_as_world_space.metal
- kernel_invert_word.ll
- kernel_invert_word.metal
- kernel_primitive_as_intersect.ll
- kernel_primitive_as_intersect.metal
- kernel_primitive_as_word.ll
- kernel_primitive_as_word.metal
- kernel_simdgroup_matrix_mad.metal
- kernel_stage_input_word.ll
- kernel_stage_input_word.metal
- kernel_store_const.ll
- kernel_store_const.metal
- kernel_texture_array_width.ll
- kernel_texture_array_width.metal
- kernel_threadgroup_word.ll
- kernel_threadgroup_word.metal
- kernel_vector_function_constant.ll
- kernel_vector_function_constant.metal
- kernel_visible_function_table_word.metal
- tessellation_literal.metal
- vertex_narrow_attributes.ll
- vertex_narrow_attributes.metal
- vertex_side_effect.metal
- vertex_varying_triangle.ll
- vertex_varying_triangle.metal
- visible_function_add_one.metal
- candidate_common.rs
- corpus-ab.rs
- corpus-case-check.rs
- corpus-harvest.rs
- corpus-index.rs
- corpus-metal.rs
- corpus-moltenvk.rs
- corpus-next.rs
- corpus-openrouter-propose.rs
- corpus-refresh.rs
- corpus-status.rs
- corpus-triage.rs
- corpus-vulkan.rs
- ab.rs
- air.rs
- candidate.rs
- case.rs
- check.rs
- executor_contract.rs
- hash.rs
- index.rs
- jsonl.rs
- lib.rs
- library_module.rs
- literal.rs
- metal.rs
- observation.rs
- observation_contract.rs
- requirement.rs
- review.rs
- source.rs
- store.rs
- translation_audit.rs
- triage.rs
- build.rs
- Cargo.toml
- README.md
- .gitattributes
- .gitignore
- AGENTS.md
- Cargo.toml
- CHANGELOG.md
- CONTRIBUTING.md
- LICENSE
- README.md
- rustfmt.toml
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
cargo doc
View Details ▼
cargo doc
Build the documentation of Rust packages.
cargo {{[d|doc]}}
Build the documentation for the current project and all dependencies:
cargo {{[d|doc]}} --no-deps
Do not build documentation for dependencies:
cargo {{[d|doc]}} --open
Build and open the documentation in a browser:
cargo install
View Details ▼
cargo install
Build and install a Rust binary.
cargo install {{package}}@{{version}}
Install a package from <https://crates.io> (the version is optional - latest by default):
cargo install --git {{repo_url}}
Install a package from the specified Git repository:
cargo install --git {{repo_url}} --{{branch|tag|rev}} {{branch_name|tag|commit_hash}}
Build from the specified branch/tag/commit when installing from a Git repository:
cargo run
View Details ▼
cargo run
Run the current Cargo package.
Note: The working directory of the executed binary will be set to the current working directory.
cargo {{[r|run]}}
Run the default binary target:
cargo {{[r|run]}} --bin {{name}}
Run the specified binary:
cargo {{[r|run]}} --example {{name}}
Run the specified example:
llvm-dis
View Details ▼
llvm-dis
Convert LLVM bitcode files into human-readable LLVM Intermediate Representation (IR).
llvm-dis {{path/to/input.bc}} -o -
Convert a bitcode file as LLVM IR and write the result to `stdout`:
llvm-dis {{path/to/file.bc}}
Convert a bitcode file to an LLVM IR file with the same filename:
llvm-dis {{path/to/input.bc}} -o {{path/to/output.ll}}
Convert a bitcode file to LLVM IR, writing the result to the specified file:
# Project Badges
-
License: LGPL-3.0-or-later Visit
