portability/README.md
2018-04-19 14:15:56 -04:00

2.2 KiB

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 7759 2155 131 34 0 5439 0 0 0 0
DX12 3576 1258 70 0 0 2248 0 0 0 0
Metal 3538 1215 109 0 0 2214 0 0 0 0

Vulkan is currently stopping on "dEQP-VK.api.command_buffers.render_pass_continue" (secondary render passes). DX12 and Metal - on the lack of VkBufferView implementations.

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.