diff --git a/.pick_status.json b/.pick_status.json index d5c46eecd97..677b8f8cd95 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -694,7 +694,7 @@ "description": "tc: fix zsbuf rp info persistence across fb states", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index 01d2c2f6314..a56fe0ded36 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -1476,7 +1476,7 @@ tc_set_framebuffer_state(struct pipe_context *_pipe, /* store existing zsbuf data for possible persistence */ uint8_t zsbuf = tc->renderpass_info_recording->has_draw ? 0 : - tc->renderpass_info_recording->data8[3]; + tc->renderpass_info_recording->data8[3] & BITFIELD_MASK(4); bool zsbuf_changed = tc->fb_resources[PIPE_MAX_COLOR_BUFS] != (fb->zsbuf ? fb->zsbuf->texture : NULL); diff --git a/src/gallium/auxiliary/util/u_threaded_context.h b/src/gallium/auxiliary/util/u_threaded_context.h index 7f9c3029771..2caf34a055b 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.h +++ b/src/gallium/auxiliary/util/u_threaded_context.h @@ -465,7 +465,7 @@ struct tc_renderpass_info { uint32_t data32[2]; /* cso info is in data16[2] */ uint16_t data16[4]; - /* zsbuf fb info is in data8[3] */ + /* zsbuf fb info is in data8[3] & BITFIELD_MASK(4) */ uint8_t data8[8]; }; };