{"id":28561259,"url":"https://github.com/mxpv/rules_vulkan","last_synced_at":"2026-03-16T00:47:03.168Z","repository":{"id":298250047,"uuid":"996897367","full_name":"mxpv/rules_vulkan","owner":"mxpv","description":"Bazel rules to build Vulkan applications","archived":false,"fork":false,"pushed_at":"2025-06-10T06:11:26.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-10T06:32:52.349Z","etag":null,"topics":["bazel","bazel-rules","vulkan-sdk"],"latest_commit_sha":null,"homepage":"","language":"Starlark","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxpv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-05T16:21:44.000Z","updated_at":"2025-06-10T06:11:29.000Z","dependencies_parsed_at":"2025-06-10T06:32:57.916Z","dependency_job_id":"7d85a89a-7ffb-4229-ac6b-742fa023bb0d","html_url":"https://github.com/mxpv/rules_vulkan","commit_stats":null,"previous_names":["mxpv/rules_vulkan"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxpv%2Frules_vulkan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxpv%2Frules_vulkan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxpv%2Frules_vulkan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxpv%2Frules_vulkan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxpv","download_url":"https://codeload.github.com/mxpv/rules_vulkan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxpv%2Frules_vulkan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259058075,"owners_count":22799295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bazel","bazel-rules","vulkan-sdk"],"created_at":"2025-06-10T10:41:37.744Z","updated_at":"2026-03-16T00:47:03.124Z","avatar_url":"https://github.com/mxpv.png","language":"Starlark","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.png\" /\u003e\n\u003c/p\u003e\n\n# rules_vulkan\n\n[![CI](https://github.com/mxpv/rules_vulkan/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/mxpv/rules_vulkan/actions/workflows/ci.yml)\n[![License](https://img.shields.io/github/license/mxpv/rules_vulkan)](./LICENSE)\n\n\n`rules_vulkan` is a set of [Bazel](https://bazel.build) rules for integrating the [Vulkan SDK](https://vulkan.lunarg.com/)\ninto your builds. It streamlines downloading, installing, and using Vulkan SDKs across major platforms.\n\n- [Documentation](./docs/index.md)\n- [Download SDK](https://vulkan.lunarg.com)\n\n## Features\n- Fully automated SDK installation.\n- Maintains a list of [currently available](./vulkan/private/versions.bzl) SDK versions on `LunarG`.\n- Toolchains for `GLSL`, `HLSL`, and `Slang`.\n- Unit and integration tests on CI.\n- A nice-looking AI-generated logo!\n\n\n## :beginner: Getting started\n\nTo get started, you’ll need to fetch the Vulkan SDK and register the toolchains.\nAdd the following to your `MODULE.bazel` file:\n\n```bazel\nmodule(name = \"hello\")\n\nbazel_dep(name = \"rules_vulkan\", version = \"0.1\")\n\nvulkan_sdk = use_extension(\"@rules_vulkan//vulkan:extensions.bzl\", \"vulkan_sdk\")\n\nvulkan_sdk.download(version = \"1.4.313.0\")\nuse_repo(vulkan_sdk, \"vulkan_sdk_1.4.313.0\")\n\nregister_toolchains(\"@vulkan_sdk_1.4.313.0//:all\")\n```\n\nThen use it in your `BUILD` files:\n\n```bazel\nload(\"@rules_vulkan//hlsl:shader.bzl\", \"hlsl_shader\")\n\nhlsl_shader(\n    name = \"hello_hlsl\",\n    src = \"shader.hlsl\",\n    entry = \"CSMain\",\n    target = \"cs_6_0\",\n    spirv = True,\n)\n\ncc_binary(\n    name = \"app\",\n    srcs = [\"main.c\"],\n    data = [\":hello_hlsl\"],\n    deps = [\"@vulkan_sdk_1.4.313.0//:vulkan\"],\n)\n\n```\n\nRefer to `e2e` project [here](./e2e/smoke/) for a more complete setup.\n\n## :cockroach: Known issues\n- End-to-end tests on `Windows` are currently disabled in CI due to the missing `vulkan-1.dll`,\n  which is not included in the SDK package. This DLL is distributed separately as part of the Vulkan \"runtime\"\n  package and requires additional handling.\n- On Windows, `dxc.exe` fails due to symlink issues—native_binary does not copy `dxcompiler.dll` to the output directory.\n  See [failed CI job](https://github.com/mxpv/rules_vulkan/actions/runs/15526978807/job/43708453464) for details.\n- Slang doesn't like Linux (see [failed CI job](https://github.com/mxpv/rules_vulkan/actions/runs/15544365318/job/43762431714))\n  and requires deeper investigation.\n\n## License\n\nThe project itself is licensed under [`Apache 2.0`](./LICENSE) license.\n\n\u003e [!NOTE]\n\u003e This project downloads packages from LunarG, please ensure you comply with their license terms.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxpv%2Frules_vulkan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxpv%2Frules_vulkan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxpv%2Frules_vulkan/lists"}