{"id":13731830,"url":"https://github.com/GPUOpen-Archive/Anvil","last_synced_at":"2025-05-08T05:31:38.311Z","repository":{"id":201404080,"uuid":"59041293","full_name":"GPUOpen-Archive/Anvil","owner":"GPUOpen-Archive","description":"Anvil is a cross-platform framework for Vulkan","archived":false,"fork":false,"pushed_at":"2024-06-17T14:54:34.000Z","size":7201,"stargazers_count":597,"open_issues_count":15,"forks_count":62,"subscribers_count":52,"default_branch":"master","last_synced_at":"2024-12-14T15:05:29.569Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GPUOpen-Archive.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","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":"2016-05-17T16:48:39.000Z","updated_at":"2024-12-09T13:09:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"275a956c-f8b0-437c-9f2d-a80ba8d02a7e","html_url":"https://github.com/GPUOpen-Archive/Anvil","commit_stats":null,"previous_names":["gpuopen-archive/anvil","gpuopen-librariesandsdks/anvil"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Archive%2FAnvil","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Archive%2FAnvil/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Archive%2FAnvil/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Archive%2FAnvil/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GPUOpen-Archive","download_url":"https://codeload.github.com/GPUOpen-Archive/Anvil/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253008772,"owners_count":21839699,"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":[],"created_at":"2024-08-03T02:01:39.392Z","updated_at":"2025-05-08T05:31:33.298Z","avatar_url":"https://github.com/GPUOpen-Archive.png","language":"C++","readme":"# Anvil\n\nThis is a README file for Anvil, a framework for Vulkan\u0026trade;.\nThe README is organized as a FAQ.\n\n|Toolchain|Status|\n|:--------|-----:|\n|**Linux (clang/gcc) build status**|[![Build Status](https://travis-ci.org/GPUOpen-LibrariesAndSDKs/Anvil.svg?branch=master)](https://travis-ci.org/GPUOpen-LibrariesAndSDKs/Anvil)|\n|**Windows (VS15/VS17) build status:**|[![Build status](https://ci.appveyor.com/api/projects/status/e395xs8mvq92fa5t?svg=true)](https://ci.appveyor.com/project/DominikWitczakAMD/anvil)|\n\n\nWhat license governs Anvil usage?\n------\nMIT. See `LICENSE.txt`.\n\nWhat is this?\n------\nAnvil is a framework for Vulkan v1.0 and v1.1, which we have been using internally for\nquite some time now, in order to develop various Vulkan applications. This guarantees\nthat vast majority of the functionality exposed by the library is regularly tested.\n\nThe general idea we started from was to have a cross-platform tool, which would\nreduce the amount of time required to write portable Vulkan-based apps from\nscratch. We would then find ourselves adding new features \u0026 extending the\nexisting codebase with new wrappers every now and then.\n\nThis eventually led to the library we have decided to release to the public.\n\nWhy? Do we really need another wrapper library for Vulkan?\n------\nAnvil was designed with the following goals in mind:\n\n- Provide object-oriented Vulkan solution.\n- Reduce the amount of code the developer needs to write in order to start\n  using Vulkan, without hiding the API behind thick abstraction layers.\n- Simplify validation layer usage. All you have to do is specify which function\n  you would like to be called if a debug call-back is made, and that's it.\n- Provide a simple cross-platform implementation for areas unrelated to Vulkan\n  (eg. window management)\n- Provide a simple way (with optional flexibility) to manage memory allocations\n  and memory bindings.\n\nAnvil is **not** the right choice for developers who do not have a reasonable\nunderstanding of how Vulkan works. Its goal is not to provide a glBegin/glEnd-like\nlevel of abstraction, but rather to give a sensible environment,\nin which you can rapidly prototype Vulkan applications.\n\nWhat platforms and hardware does it work on?\n------\nCurrently, Anvil has been confirmed to build and work correctly under:\n- 32- and 64-bit Linux   (Ubuntu)\n- 32- and 64-bit Windows (7, 8.1, 10)\n\nWhat are Anvil's requirements?\n------\nIn order to build Anvil, you will need the following software:\n- C++11 compiler.\n- CMake\n- Vulkan SDK (the latest available version is highly recommended)\n\nTo build Anvil on Linux, additional packages should be installed:\n- libxcb-keysyms (For ubuntu, use \"apt-get install libxcb-keysyms1-dev\")\n\nDoes Anvil work only with AMD driver?\n------\nAnvil has *not* been designed with AMD hardware architecture in mind, but it\nis going to provide interface-level support for any extensions we may decide\nto release in the future.\n\nAs such, it should (and has been verified to) work on any Windows Vulkan\nimplementation and on AMDGPU-PRO Vulkan implementation on Linux.\n\nWhat can it do?\n------\nAnvil provides full support for functionality exposed in Vulkan 1.0 and Vulkan 1.1.\nWe also try to do our best to keep it up to date with any extensions our Vulkan implementations\nexpose.\n\nWe are planning to keep adding new features in the future.\n\nAre there any Anvil examples available which would present how to use the framework?\n------\nAnvil comes with several example applications, including OutOfOrderRasterization,\nwhich renders 10k teapots on screen. It uses various Anvil wrappers, so you can\nuse it to get a better understanding of how various parts of the library can be\nused.\n\n...and its Vulkan-related code only takes ~45kbytes!\n\nOutOfOrderRasterization and the other example applications are located in the\n`examples` directory.\n\nWhat are the known issues?\n------\nPlease observe the \"Issues\" tab for more details.\n\nWho made it?\n------\nVarious developers within AMD.\n\nWhat if I have some feed-back?\n------\nPlease feel free to open an issue in Anvil's GitHub project.\n\nAttribution\n-----------\n\n* AMD, the AMD Arrow logo, Radeon, and combinations thereof are either registered trademarks or trademarks of Advanced Micro Devices, Inc. in the United States and/or other countries.\n* Microsoft, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.\n* Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.\n* Vulkan and the Vulkan logo are trademarks of the Khronos Group, Inc.\n","funding_links":[],"categories":["Graphics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGPUOpen-Archive%2FAnvil","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGPUOpen-Archive%2FAnvil","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGPUOpen-Archive%2FAnvil/lists"}