Mesa (main): zink: add a param to warn_missing_feature() macro

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 6 23:01:55 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Apr  6 14:30:49 2022 -0400

zink: add a param to warn_missing_feature() macro

this lets the macro be used more programmatically since the variable
is defined externally

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15778>

---

 src/gallium/drivers/zink/zink_pipeline.c | 6 ++++--
 src/gallium/drivers/zink/zink_screen.h   | 3 +--
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_pipeline.c b/src/gallium/drivers/zink/zink_pipeline.c
index a4797159025..978ee27aecd 100644
--- a/src/gallium/drivers/zink/zink_pipeline.c
+++ b/src/gallium/drivers/zink/zink_pipeline.c
@@ -128,8 +128,10 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
    ms_state.rasterizationSamples = state->rast_samples + 1;
    if (state->blend_state) {
       ms_state.alphaToCoverageEnable = state->blend_state->alpha_to_coverage;
-      if (state->blend_state->alpha_to_one && !screen->info.feats.features.alphaToOne)
-         warn_missing_feature("alphaToOne");
+      if (state->blend_state->alpha_to_one && !screen->info.feats.features.alphaToOne) {
+         static bool warned = false;
+         warn_missing_feature(warned, "alphaToOne");
+      }
       ms_state.alphaToOneEnable = state->blend_state->alpha_to_one;
    }
    /* "If pSampleMask is NULL, it is treated as if the mask has all bits set to 1."
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index 4d356235536..7bb240d4eef 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -282,9 +282,8 @@ zink_screen_init_descriptor_funcs(struct zink_screen *screen, bool fallback);
 void
 zink_stub_function_not_loaded(void);
 
-#define warn_missing_feature(feat) \
+#define warn_missing_feature(warned, feat) \
    do { \
-      static bool warned = false; \
       if (!warned) { \
          mesa_logw("WARNING: Incorrect rendering will happen, " \
                          "because the Vulkan device doesn't support " \



More information about the mesa-commit mailing list