{"id":20493558,"url":"https://github.com/zoulhadj/vulkan_starter","last_synced_at":"2026-06-08T05:31:18.074Z","repository":{"id":171492719,"uuid":"387414987","full_name":"ZOulhadj/vulkan_starter","owner":"ZOulhadj","description":"A basic triangle example program using Vulkan.","archived":false,"fork":false,"pushed_at":"2021-08-20T15:45:20.000Z","size":921,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-05T17:51:09.402Z","etag":null,"topics":["cmake","cpp20","glfw3","shaders","vulkan","vulkan-example"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZOulhadj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-07-19T09:49:21.000Z","updated_at":"2022-01-27T03:33:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"74230ae9-e228-489d-8da6-a056d4ba8b14","html_url":"https://github.com/ZOulhadj/vulkan_starter","commit_stats":null,"previous_names":["zoulhadj/vulkan_starter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZOulhadj/vulkan_starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZOulhadj%2Fvulkan_starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZOulhadj%2Fvulkan_starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZOulhadj%2Fvulkan_starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZOulhadj%2Fvulkan_starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZOulhadj","download_url":"https://codeload.github.com/ZOulhadj/vulkan_starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZOulhadj%2Fvulkan_starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34050225,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cmake","cpp20","glfw3","shaders","vulkan","vulkan-example"],"created_at":"2024-11-15T17:35:16.578Z","updated_at":"2026-06-08T05:31:18.055Z","avatar_url":"https://github.com/ZOulhadj.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vulkan Starter\nA basic Vulkan implementation that renders a simple triangle. If you see this, then\nplease be aware that the code is still a work in progress as I continue to clean up\nthe code and increase readability.\n\n\u003cimg src=\".gitassets/Application.png\" width=\"500\"/\u003e\n\n## Requirements\n* [GLFW](https://glfw.org) - Cross-platform windowing\n* [Vulkan SDK](https://vulkan.lunarg.com/) - Graphics API\n* [CMake](https://cmake.org) - Project configuration/building\n\n### Dependencies\n\nAs mentioned above, GLFW is used for the cross-platform windowing. This example project includes the GLFW repository as a git submodule.\nWhen cloning the repository the full command is:\n\n``` git clone --recurse-submodules git@github.com:ZOulhadj/VulkanStarter.git ```.\n\nThis will ensure that you clone both the actual repository and all dependencies\nwhich this case is only GLFW.\n\n## Building\n\nBefore building, your system needs to have the VulkanSDK installed. Once\ninstalled it's installed, inspect the ``` CompileShaders.sh ``` file and\nensure that the paths within the file point to the correct SDK directory.\nThis will allow the shader compiler program to be found and used to\nconvert the shader files from text to SPIR-V (More details regarding this\nare mentioned below).\n\nAfter the SDK and paths to the SDK have been set up, you can compile the\nproject. Although CMake is used to create makefiles and project files,\nyou have to ensure that you have the correct programs installed. For\nexample, if generating Visual Studio solution files on Windows then this\ndoes not apply. However, if creating a makefile then g++ is required and\nthus, needs to be installed and set in the system path.\n\nThen from within the ``` Build ``` folder, call ``` cmake ../ ```. This\nwill create an \"out of source\" build which will ensure that build files\ndo not get mixed with the program source code.\n\n### Shader Compiling\nUnlike in OpenGL, shaders cannot be loaded as text directly to Vulkan.\nInstead, Vulkan requires shaders to be in the SPIR-V (Standard,\nPortable Intermediate Representation-V) intermediate language format\nwhen loaded.\n\nThis example project already includes precompiled SPIR-V shader files\nwith the ```Build/Shaders``` folder, however, if you make any changes\nto the source text shader files then make sure to compile them again.\nThere are a few ways to achieve this however, for simplicity, the\nVulkan SDK provides a program called ```glslc``` which converts the\nshader files at ```Source/Shaders``` from text to SPIR-V and outputs\nthem to the ```Build/Shaders``` directory which then get loaded at\nruntime to Vulkan. To compile the shaders again simply run the\n``` CompileShaders.sh ``` file.\n\n## Running\n\nIt's assumed that the working directory is within the ``` Build ```\nfolder. If not, then make sure you specify the relative path to the\nshader from wherever the program is running from.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoulhadj%2Fvulkan_starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoulhadj%2Fvulkan_starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoulhadj%2Fvulkan_starter/lists"}