114: Handle unused depth stencil subpass attachments r=kvark a=msiglreith
Treating VK_UNUSED_ATTACHMENT case same way as passing NULL for the depth stencil attachment.
Co-authored-by: msiglreith <m.siglreith@gmail.com>
113: Robust descriptor release, safe handle access, more iterator usage r=msiglreith a=kvark
This is super important, has 3 parts:
- fixed and refined descriptor set allocation (now calling `free` on failure)
- added a check to `Handle` be valid on any access, this catches the Dota bug in all configurations and is hugely important for us to avoid undefined behavior in the future
- removes a few `Vec::collect()` occurrences in favor of iterators
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
110: Expose VK_KHR_maintenance1 and fix the descriptor allocation fall back r=msiglreith a=kvark
Depends on https://github.com/gfx-rs/gfx/pull/2202
cc @fkaa
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
108: fix overly conservative function pointer retrieval r=kvark a=msiglreith
Addresses some parts of https://github.com/gfx-rs/portability/pull/98
Current implementation rejects too agressively which is not required, in most cases the spec defines the returned pointers as undefined. InstanceProcAddr also doesn't correctly retrieve some device proc addresses.
CTS looks fine
(9 green, 3 unsupported, `dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail` crashes but seems unrelated)
cc @grovesNL
Co-authored-by: msiglreith <m.siglreith@gmail.com>
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>
96: Transmute enum values r=kvark a=grovesNL
Transmutes enum values instead of matching, also adds mapping for stencil op and logic op.
Depends on gfx-rs/gfx#2132
Co-authored-by: Joshua Groves <josh@joshgroves.com>
87: Add support for renderdoc capturing (dx12 only) r=kvark a=msiglreith
Blocked on a new renderdoc-rs release (and merging gfx-rs PR).
Automatically creates a capture when enabling the `portability-gfx/renderdoc` feature. Works only if no swapchain is attached and dx12 only atm.
Primary use case are CTS tests.
Co-authored-by: msiglreith <m.siglreith@gmail.com>