59: Implement push constant command r=kvark a=msiglreith
With this and a small change to spirv cross for combined image sampler support we can start tracking support for the Vulkan samples from SaschaWillems.
Co-authored-by: msiglreith <m.siglreith@gmail.com>
58: Add support for blending, buffer copy and indexed drawing r=kvark a=msiglreith
Allows to get `gears` running with dx12+ICD.
We currently don't expose support for high precision depth formats resulting in some artifacts.
Current samples fail due to lack of combined image sampler support for the UI rendering.
But one step after another :p
Co-authored-by: msiglreith <m.siglreith@gmail.com>
57: gfx update to c0ba2019c613432d74e2f13d95a398b220c9c9c4 r=msiglreith a=kvark
The CTS numbers regression is likely caused by the change in the test suite file (1.0.2 instead of 1.0.3), which I had to do because 1.0.3 is gone from latest CTS for some reason.
There is a bunch of errors like "maxMipLevels is not full mip pyramid size" and "maxResourceSize smaller than minimum required size" on the image_format_properties tests that should be an easy target.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
56: Support for Vulkan Samples with ICD r=kvark a=msiglreith
Add a few missing piece to get Vulkan Samples working with ICD (dx12, windows):
* Expose device extensions (partially)
* Expose addr to CreateWin32SurfaceKHR
Additionally, fixing vkMapMemory for the `VK_WHOLE_SIZE` case.
Co-authored-by: msiglreith <m.siglreith@gmail.com>
54: Implement ResetFences and GetFenceStatus r=kvark a=AIOOB
My drivers seem to be a bit odd so these measurements may need to be repeated.
I have added an error on `gfxCreateEvent` to workaround it causing the CTS to crash as events are not currently supported by Vulkan portability.
Co-authored-by: AIOOB <jack@rickard.plus.com>
53: Device leak fix, Cargo lock r=msiglreith a=kvark
The motivation behind including the lock is: no rust library is going to link to us anyway, so this crate is the head of the dependency graph, and doing a single `cargo update` is simpler for updates than figuring out the revision ids manually.
Co-authored-by: Dzmitry Malyshau <kvark@mozilla.com>
52: Return VK_INCOMPLETE for partial physical device enumeration r=kvark a=grovesNL
Trivial fix for `dEQP-VK.api.info.instance.physical_devices: Query didn't return VK_INCOMPLETE(Fail)` (only tested with Metal CTS).
[Reference:](https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumeratePhysicalDevices.html)
> If pPhysicalDeviceCount is smaller than the number of physical devices available, VK_INCOMPLETE will be returned instead of VK_SUCCESS, to indicate that not all the available physical devices were returned.
Co-authored-by: grovesNL <josh@joshgroves.com>
50: First CTS results on OSX r=msiglreith a=kvark
Results are based on my local modified CTS code, upstreaming is on the roadmap.
Currently passing 6 tests only. Way forward is blocked by https://github.com/gfx-rs/gfx/issues/1911
49: Update gfx with image_format_properties r=msiglreith a=kvark
Reached ~100 failures on Linux 🎉
I believe there is still work to do for the image format queries, so this number can be brought down.
46: Fix physical device enumeration and add dummy features r=kvark a=msiglreith
Vulkan loader expects that EnumeratePhysicalDevices will return the same handles on each call. Caching them on startup
44: Fix dispatchable handles r=kvark a=msiglreith
Temporarily disables command buffer freeing.
Allows to run first CTS tests on dx12 with the ICD layer.
25: Basic support for Metal r=msiglreith a=kvark
Addresses part of #24
~~I haven't actually made it running, since the lack of "vulkan.h" on the system. We should be packing it in this project. But at least the code builds now on Metal.~~
Update: PR has been revived. Metal builds and executes just fine up to the point where window integration is needed - leaving for the follow-ups (help is appreciated!).