diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index 5a67de28fa6..c5203679db5 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -41,6 +41,9 @@ Here's a list of those requirements: In addition to this, `VK_KHR_external_memory`_ is required to support the DRI code-path. +We also require either the `VK_EXT_scalar_block_layout`_ extension or +Vulkan 1.2, with the ``scalarBlockLayout`` feature. + OpenGL 3.0 ^^^^^^^^^^ @@ -251,6 +254,7 @@ questions, don't hesitate to visit `#zink on FreeNode .. _VK_KHR_maintenance1: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_maintenance1.html .. _VK_KHR_external_memory: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_external_memory.html +.. _VK_EXT_scalar_block_layout: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_scalar_block_layout.html .. _VK_EXT_transform_feedback: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_transform_feedback.html .. _VK_EXT_conditional_rendering: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_conditional_rendering.html .. _VK_EXT_vertex_attribute_divisor: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_vertex_attribute_divisor.html diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index 52a5e3383e2..fe6f24d9988 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -131,6 +131,10 @@ EXTENSIONS = [ Extension("VK_EXT_4444_formats", alias="format_4444", features=True), + Extension("VK_EXT_scalar_block_layout", + alias="scalar_block_layout", + features=True, + conditions=["$feats.scalarBlockLayout"]), ] # constructor: Versions(device_version(major, minor, patch), struct_version(major, minor)) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index d0d55f5d396..2b407a52a69 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1423,6 +1423,8 @@ check_base_requements(struct zink_screen *screen) !screen->info.feats.features.largePoints || !screen->info.feats.features.alphaToOne || !screen->info.feats.features.shaderClipDistance || + !(screen->info.feats12.scalarBlockLayout || + screen->info.have_EXT_scalar_block_layout) || !screen->info.have_KHR_maintenance1) { fprintf(stderr, "WARNING: The Vulkan device doesn't support " "the base Zink requirements, some incorrect rendering "