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

Author: Mike Blumenkrantz <[email protected]>
Date:   Sun Mar 13 12:11:33 2022 -0400

zink: start a unified driver workarounds struct

eventually anything that checks driverID should be moved here for ease of
reference/updating

Acked-by: Dave Airlie <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15392>

---

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

diff --git a/src/gallium/drivers/zink/zink_screen.c 
b/src/gallium/drivers/zink/zink_screen.c
index 3da9972abc8..d4db85e6032 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -2056,6 +2056,12 @@ zink_get_sample_pixel_grid(struct pipe_screen *pscreen, 
unsigned sample_count,
    *height = screen->maxSampleLocationGridSize[idx].height;
 }
 
+static void
+init_driver_workarounds(struct zink_screen *screen)
+{
+   screen->driver_workarounds.color_write_missing = 
!screen->info.have_EXT_color_write_enable;
+}
+
 static struct zink_screen *
 zink_internal_create_screen(const struct pipe_screen_config *config)
 {
@@ -2266,6 +2272,8 @@ zink_internal_create_screen(const struct 
pipe_screen_config *config)
    screen->base.vertex_state_destroy = zink_cache_vertex_state_destroy;
    glsl_type_singleton_init_or_ref();
 
+   init_driver_workarounds(screen);
+
    return screen;
 
 fail:
diff --git a/src/gallium/drivers/zink/zink_screen.h 
b/src/gallium/drivers/zink/zink_screen.h
index b93673e75bb..585ec729a6b 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -177,6 +177,10 @@ struct zink_screen {
    } null_descriptor_hashes;
 
    VkExtent2D maxSampleLocationGridSize[5];
+
+   struct {
+      bool color_write_missing;
+   } driver_workarounds;
 };
 
 

Reply via email to