Go to file
2018-04-17 23:12:02 +02:00
conformance Conformance testing makefile command 2018-04-02 21:58:48 -04:00
libportability Fix dispatchable handles 2018-03-14 22:38:02 +01:00
libportability-gfx Add support for blending, buffer copy and indexed drawing 2018-04-17 23:12:02 +02:00
libportability-icd Fix dispatchable handles 2018-03-14 22:38:02 +01: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 Include Cargo.lock instead of fixed revisions 2018-04-11 21:32:31 -04:00
.gitmodules Git modules, README, travis, etc 2017-09-06 22:04:18 -04:00
.travis.yml Metal support, dispatch feature 2018-03-02 06:56:17 -05:00
appveyor.yml Add appveyor CI support 2018-03-01 13:33:14 +01:00
bors.toml Add appveyor CI support 2018-03-01 13:33:14 +01:00
Cargo.lock gfx update to c0ba2019c613432d74e2f13d95a398b220c9c9c4 2018-04-17 15:28:59 -04:00
Cargo.toml Restructure project for ICD implementation 2017-12-08 19:18:35 +01: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 gfx update to c0ba2019c613432d74e2f13d95a398b220c9c9c4 2018-04-17 15:28:59 -04:00
README.md gfx update to c0ba2019c613432d74e2f13d95a398b220c9c9c4 2018-04-17 15:28:59 -04:00

gfx-portability

Build Status Gitter

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

Vulkan CTS coverage

gfx-rs Backend Total cases Pass Fail Quality warning Compatibility warning Not supported Resource error Internal error Timeout Crash
Vulkan 7723 2236 66 34 0 5387 0 0 0 0
DX12 3563 1243 73 0 0 2247 0 0 0 0
Metal 3538 1215 109 0 0 2214 0 0 0 0

DX12 and Metal measurement are currently out of date.

Currently stopping with:

(RADV ARCH VULKAN) radv_BeginCommandBuffer: Assertion `pBeginInfo->pInheritanceInfo' failed.

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.

Check out

git clone --recursive https://github.com/gfx-rs/portability && cd portability

Build

Makefile (Unix)

make

CMake (Window)

Build the Rust library (portability implementation):

cargo build --manifest-path libportability/Cargo.toml --features <vulkan|dx12|metal>

Build the native example:

mkdir build
cd build
cmake ..
cmake --build . --target native_test

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.