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

Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Sep 28 08:14:28 2023 -0400

zink: move v3dv scalarBlockLayout workaround

this isn't actually device-level workaround, it's just error suppression

fixes #9895

Fixes: 2978b85789c ("zink: don't warn about missing scalarBlockLayout on v3dv")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25456>

---

 src/gallium/drivers/zink/zink_screen.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_screen.c 
b/src/gallium/drivers/zink/zink_screen.c
index 6e55838f917..e472755e3b3 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -2615,6 +2615,13 @@ check_base_requirements(struct zink_screen *screen)
 {
    if (zink_debug & ZINK_DEBUG_QUIET)
       return;
+   if (screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_V3DV) {
+      /* v3dv doesn't support straddling i/o, but zink doesn't do that so this 
is effectively supported:
+       * don't spam errors in this case
+       */
+      screen->info.feats12.scalarBlockLayout = true;
+      screen->info.have_EXT_scalar_block_layout = true;
+   }
    if (!screen->info.feats.features.logicOp ||
        !screen->info.feats.features.fillModeNonSolid ||
        !screen->info.feats.features.shaderClipDistance ||
@@ -2639,6 +2646,10 @@ check_base_requirements(struct zink_screen *screen)
       CHECK_OR_PRINT(have_EXT_line_rasterization);
       fprintf(stderr, "\n");
    }
+   if (screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_V3DV) {
+      screen->info.feats12.scalarBlockLayout = false;
+      screen->info.have_EXT_scalar_block_layout = false;
+   }
 }
 
 static void
@@ -2837,14 +2848,6 @@ init_driver_workarounds(struct zink_screen *screen)
       abort();
    }
 
-   if (screen->info.driver_props.driverID == VK_DRIVER_ID_MESA_V3DV) {
-      /* v3dv doesn't support straddling i/o, but zink doesn't do that so this 
is effectively supported:
-       * don't spam errors in this case
-       */
-      screen->info.feats12.scalarBlockLayout = true;
-      screen->info.have_EXT_scalar_block_layout = true;
-   }
-
    /* these drivers benefit from renderpass optimization */
    switch (screen->info.driver_props.driverID) {
    case VK_DRIVER_ID_MESA_LLVMPIPE:

Reply via email to