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.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10127>
This commit is contained in:
Erik Faye-Lund 2021-04-09 09:53:31 +02:00 committed by Marge Bot
parent 6a2ee3b17c
commit 6940d3ba05
3 changed files with 10 additions and 0 deletions

View file

@ -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

View file

@ -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))

View file

@ -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 "