Vulkan 1.2 + extensions device support (dynamic_rendering / synchronization2 as KHR) -- 1.3 devices unchanged #675
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#675
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Accept Vulkan 1.2 devices that expose the Vulkan 1.3 functionality we use as extensions, instead of requiring a 1.3 driver. Prompted by a Windows 7 / GTX 1060 user on NVIDIA's last Win7 branch (474.xx, Vulkan 1.2).
Rule #1
The newest devices on modern drivers are completely unaffected. On a 1.3+ device we request 1.3 (or newer) exactly as today: same features, same code paths, same performance. The 1.2 path is a fallback, never a replacement.
Scope (option 1, cheap)
VK_API_VERSION_1_3when the physical device reports ≥ 1.3, else 1.2.VK_KHR_dynamic_rendering,VK_KHR_synchronization2, plus optionalVK_KHR_maintenance4,VK_EXT_extended_dynamic_state(2),VK_EXT_shader_demote_to_helper_invocation,VK_EXT_subgroup_size_control,VK_EXT_inline_uniform_block,VK_KHR_copy_commands2,VK_KHR_format_feature_flags2(whatever we actually use).vkCmdBeginRendering[KHR],vkCmdEndRendering,vkCmdPipelineBarrier2,vkQueueSubmit2,vkCmdSetCullMode/depth-test etc.), so the ~370 call sites don't change.Data point
The user's 474.xx vulkaninfo has synchronization2, descriptor indexing, timeline semaphores and the Vulkan 1.1/1.2 features. It does not have
VK_KHR_dynamic_rendering, so that driver gets the clean message. Making it actually run needs a VkRenderPass fallback, which is a separate, larger ticket.Agent dispatched (Sonnet).
Shipped in 1.2.2 and 1.3.0 Beta 4: Vulkan 1.2 devices that expose the 1.3 features as extensions are now accepted. Vulkan 1.3 devices are unchanged.