Module: Mesa Branch: master Commit: 6940d3ba054d741b2f1b1f95715db925b79e8f70 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6940d3ba054d741b2f1b1f95715db925b79e8f70
Author: Erik Faye-Lund <erik.faye-l...@collabora.com> Date: Fri Apr 9 09:53:31 2021 +0200 zink: document scalarBlockLayout requirement We're currently using uint arrays instead of uvec4 arrays for UBOs and SSBOs, which requires scalarBlockLayout. Fixing this is a lot of work, so let's just document it for now. Reviewed-By: Mike Blumenkrantz <michael.blumenkra...@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10127> --- docs/drivers/zink.rst | 4 ++++ src/gallium/drivers/zink/zink_device_info.py | 4 ++++ src/gallium/drivers/zink/zink_screen.c | 2 ++ 3 files changed, 10 insertions(+) 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 " _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit