Go to file
bors[bot] fbf62659f4 Merge #98
98: Map present modes and more r=kvark a=grovesNL

Present modes:
- Update to latest gfx
- Expose relevant present modes in `gfxGetPhysicalDeviceSurfacePresentModesKHR`
- Map present modes to HAL and back

Instance/device creation (with these changes we pass 10/13 of `dEQP-VK.api.device_init`, the other 3 are not supported for now):
- Handle null instance/device and whether required extensions (although the check is not comprehensive for now) have been enabled in `gfxGet{Instance|Device}ProcAddr` – this fixes `dEQP-VK.api.version_check.entry_points`
- Check API version to fix `dEQP-VK.api.device_init.create_instance_invalid_api_version`
- Verify that the provided instance/device extension names are valid – fixes a couple more tests in `dEQP-VK.api.device_init`
- Verify that the requested features are supported - fixes `dEQP-VK.api.device_init.create_device_unsupported_features`

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2018-06-19 14:06:29 +00:00
conformance Conformance testing makefile command 2018-04-02 21:58:48 -04:00
libportability Add macOS surface 2018-06-05 20:54:11 -06:00
libportability-gfx Ensure requested features are supported 2018-06-17 22:43:50 -06:00
libportability-icd Keep a list of allocated command buffes for proper destruction of the pool 2018-04-18 15:30:07 -04: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 Ignore subdirectory builds and settings 2018-05-03 19:03:24 -06:00
.gitmodules Git modules, README, travis, etc 2017-09-06 22:04:18 -04:00
.lldbinit Query pools and swapchains 2018-06-12 08:02:50 -07:00
.travis.yml Debug Handle tracker 2018-04-27 09:49:57 -04: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 Add present mode querying 2018-06-17 12:41:59 -06: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 Query pools and swapchains 2018-06-12 08:02:50 -07:00
README.md new make cts options 2018-05-30 21:30:04 -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 7759 2155 131 34 0 5439 0 0 0 0
DX12 3576 1258 70 0 0 2248 0 0 0 0
Metal 7687 2072 112 39 0 5464 0 0 0 0

Current blockers:

  • Vulkan: "api.command_buffers.render_pass_continue" (secondary render passes).
  • DX12: lack of VkBufferView implementation.
  • Metal: "api.buffer_view.access.suballocation.buffer_view_memory_test_complete" (missing R32Uint support).

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>.

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.