Mesa (master): zink: check for stores and atomics features
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Mar 24 21:21:05 UTC 2021
Module: Mesa
Branch: master
Commit: a466c2a783908899f646d4c2df38d11c74724a85
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a466c2a783908899f646d4c2df38d11c74724a85
Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date: Wed Mar 24 16:54:25 2021 +0100
zink: check for stores and atomics features
These limits depens on feature-bits.
Fixes: 322a3d4fb0c ("zink: partially enable SSBO pipe cap")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9803>
---
docs/drivers/zink.rst | 2 ++
src/gallium/drivers/zink/zink_screen.c | 18 ++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst
index 372dd643153..a2983e032d8 100644
--- a/docs/drivers/zink.rst
+++ b/docs/drivers/zink.rst
@@ -138,6 +138,8 @@ supported:
* ``VkPhysicalDeviceVulkan11Features``:
* ``shaderDrawParameters``
+ * ``vertexPipelineStoresAndAtomics``
+ * ``fragmentStoresAndAtomics``
* For Vulkan 1.1 and below:
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index b5c0a46eb67..206194de637 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -713,6 +713,24 @@ zink_get_shader_param(struct pipe_screen *pscreen,
return 32; /* arbitrary */
case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
+ switch (shader) {
+ case PIPE_SHADER_VERTEX:
+ case PIPE_SHADER_TESS_CTRL:
+ case PIPE_SHADER_TESS_EVAL:
+ case PIPE_SHADER_GEOMETRY:
+ if (!screen->info.feats.features.vertexPipelineStoresAndAtomics)
+ return 0;
+ break;
+
+ case PIPE_SHADER_FRAGMENT:
+ if (!screen->info.feats.features.fragmentStoresAndAtomics)
+ return 0;
+ break;
+
+ default:
+ break;
+ }
+
/* TODO: this limitation is dumb, and will need some fixes in mesa */
return MIN2(screen->info.props.limits.maxPerStageDescriptorStorageBuffers, PIPE_MAX_SHADER_BUFFERS);
More information about the mesa-commit
mailing list