Go to file
2018-08-29 12:46:40 -06:00
bench Add new benchmarks, fix benching command line 2018-07-27 11:48:32 -04:00
conformance Conformance testing makefile command 2018-04-02 21:58:48 -04:00
etc Add showcase to README 2018-08-27 20:56:02 -04:00
libportability Add dx11 2018-06-22 15:00:34 +03:00
libportability-gfx gfx-rs update, image buffer granularity default 2018-08-27 20:56:04 -04:00
libportability-icd Add dx11 2018-06-22 15:00:34 +03:00
modules Git modules, README, travis, etc 2017-09-06 22:04:18 -04:00
native Metal support, dispatch feature 2018-03-02 06:56:17 -05:00
.gitignore Use git describe to create commit-sha 2018-08-29 12:46:40 -06:00
.gitmodules Git modules, README, travis, etc 2017-09-06 22:04:18 -04:00
.travis.yml Fix make for tags 2018-08-29 07:04:31 -06:00
appveyor.yml Update dependencies and add CI test for renderdoc 2018-05-31 23:30:02 +02:00
bors.toml Add appveyor CI support 2018-03-01 13:33:14 +01:00
Cargo.lock gfx-rs update, image buffer granularity default 2018-08-27 20:56:04 -04:00
Cargo.toml Build with panic=abort 2018-08-03 23:48:52 -04:00
CMakeLists.txt Update to latest gfx master 2018-01-02 00:47:47 +01:00
LICENSE Initial commit 2017-09-06 21:53:52 -04:00
Makefile Use git describe to create commit-sha 2018-08-29 12:46:40 -06:00
README.md Add showcase to README 2018-08-27 20:56:02 -04:00

gfx-portability

Build Status Gitter

This is a prototype library implementing Vulkan Portability Initiative using gfx-hal. See gfx-rs meta issue for backend limitations and further details.

Showcase

Dota2:

Dota2

RPCS3:

RPCS3-cube RPCS3-scogger

Dolphin:

Dolphin-sb Dolphin-pm

Instructions

Despite the fact it's written in Rust, the produced binary is a standard dynamic library that can be linked to from any program (written in the language of your choice). Typically, you'd need to create a symbolic link with a name that a target application expects, e.g. libvulkan.dylib -> libportability.dylib.

Check out and build:

git clone --recursive https://github.com/gfx-rs/portability && cd portability
cargo build --manifest-path libportability/Cargo.toml --features <vulkan|dx12|metal>

Running Samples

LunarG (API-Samples)

After building portability as shown above, grab a copy from https://github.com/LunarG/VulkanSamples. Manually override the VULKAN_LOADER variable and set it to the portability library.

set (VULKAN_LOADER "path/to/portability/library")

Then proceed with the normal build instructions.

Vulkan CTS coverage

Please visit our wiki for CTS hookup instructions. Once everything is set, you can generate the new results by calling make cts on Unix systems. When investigating a particular failure, it's handy to do make cts debug=<test_name>, which runs a single test under system debugger (gdb/lldb). For simply inspecting the log output, one can also do make cts pick=<test_name>.