Mesa (main): zink: populate maxSampleLocationGridSize for all available sample sizes on init

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 9 17:40:57 UTC 2021


Module: Mesa
Branch: main
Commit: 652db34f8a63e39e0cfaa6bd539f30266712a70c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=652db34f8a63e39e0cfaa6bd539f30266712a70c

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Apr  2 15:16:17 2021 -0400

zink: populate maxSampleLocationGridSize for all available sample sizes on init

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189>

---

 src/gallium/drivers/zink/zink_screen.c | 12 ++++++++++++
 src/gallium/drivers/zink/zink_screen.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index c5fe1a9f0e8..62711ce81bc 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -1709,6 +1709,18 @@ zink_internal_create_screen(const struct pipe_screen_config *config)
    screen->base.destroy = zink_destroy_screen;
    screen->base.finalize_nir = zink_shader_finalize;
 
+   if (screen->info.have_EXT_sample_locations) {
+      VkMultisamplePropertiesEXT prop;
+      prop.sType = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT;
+      prop.pNext = NULL;
+      for (unsigned i = 0; i < ARRAY_SIZE(screen->maxSampleLocationGridSize); i++) {
+         if (screen->info.sample_locations_props.sampleLocationSampleCounts & (1 << i)) {
+            screen->vk_GetPhysicalDeviceMultisamplePropertiesEXT(screen->pdev, 1 << i, &prop);
+            screen->maxSampleLocationGridSize[i] = prop.maxSampleLocationGridSize;
+         }
+      }
+   }
+
    if (!zink_screen_resource_init(&screen->base))
       goto fail;
    zink_screen_fence_init(&screen->base);
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index b8ef5d87254..1a570c6ceae 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -202,6 +202,7 @@ struct zink_screen {
 
    PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vk_GetPhysicalDeviceMultisamplePropertiesEXT;
    PFN_vkCmdSetSampleLocationsEXT vk_CmdSetSampleLocationsEXT;
+   VkExtent2D maxSampleLocationGridSize[5];
 };
 
 



More information about the mesa-commit mailing list