diff --git a/.pick_status.json b/.pick_status.json index c4f97bafbab..02795485e1c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -697,7 +697,7 @@ "description": "zink: remove first_frame stalling", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 3, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index cefc99417dc..a97e3ea1faf 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -3347,16 +3347,6 @@ zink_flush(struct pipe_context *pctx, if (fence) { if (!(flags & (PIPE_FLUSH_DEFERRED | PIPE_FLUSH_ASYNC))) sync_flush(ctx, zink_batch_state(fence)); - - if (flags & PIPE_FLUSH_END_OF_FRAME && !(flags & TC_FLUSH_ASYNC) && !deferred) { - /* if the first frame has not yet occurred, we need an explicit fence here - * in some cases in order to correctly draw the first frame, though it's - * unknown at this time why this is the case - */ - if (!ctx->first_frame_done) - zink_vkfence_wait(screen, fence, PIPE_TIMEOUT_INFINITE); - ctx->first_frame_done = true; - } } } diff --git a/src/gallium/drivers/zink/zink_context.h b/src/gallium/drivers/zink/zink_context.h index 7965f3ef389..529281d1308 100644 --- a/src/gallium/drivers/zink/zink_context.h +++ b/src/gallium/drivers/zink/zink_context.h @@ -363,7 +363,6 @@ struct zink_context { uint32_t num_so_targets; struct pipe_stream_output_target *so_targets[PIPE_MAX_SO_OUTPUTS]; bool dirty_so_targets; - bool first_frame_done; bool have_timelines; bool gfx_dirty;