zink: return false for implicit feedback loop check with image binds
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 24 Jan 2023 21:46:02 +0000 (16:46 -0500)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 25 Jan 2023 20:04:12 +0000 (15:04 -0500)
this can only be GENERAL layout so it's not a feedback loop ever

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20891>

src/gallium/drivers/zink/zink_context.c

index 9a32519..f53b1b4 100644 (file)
@@ -5143,7 +5143,8 @@ zink_tc_context_unwrap(struct pipe_context *pctx, bool threaded)
 static bool
 add_implicit_color_feedback_loop(struct zink_context *ctx, struct zink_resource *res)
 {
-   if (!res->fb_bind_count || !res->sampler_bind_count[0])
+   /* can only feedback loop with fb+sampler bind; image bind must be GENERAL */
+   if (!res->fb_bind_count || !res->sampler_bind_count[0] || res->image_bind_count[0])
       return false;
    bool is_feedback = false;
    /* avoid false positives when a texture is bound but not used */