panfrost: Re-emit descriptors after resource shadowing

This could be made slightly more efficient by only setting the dirty
state that is needed, but eventually you reach a point where it's
cheaper to re-emit everything than work out what can or can't be kept.

Fixes rendering issues in Duckstation.

Fixes: cd2c1ef9da ("panfrost: Dirty track textures/samplers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15250>
This commit is contained in:
Icecream95 2022-02-15 20:34:57 +13:00 committed by Alyssa Rosenzweig
parent b164ee0d7b
commit d6c431c2e3
2 changed files with 3 additions and 2 deletions

View file

@ -924,6 +924,9 @@ panfrost_ptr_map(struct pipe_context *pctx,
}
if (create_new_bo) {
/* Make sure we re-emit any descriptors using this resource */
panfrost_dirty_state_all(ctx);
/* If the BO is used by one of the pending batches or if it's
* not ready yet (still accessed by one of the already flushed
* batches), we try to allocate a new one to avoid waiting.

View file

@ -374,9 +374,7 @@ spec@arb_texture_rg@texwrap formats-float bordercolor-swizzled@GL_RG32F- swizzle
spec@arb_texture_view@sampling-2d-array-as-cubemap-array,Crash
spec@arb_texture_view@sampling-2d-array-as-cubemap,Crash
spec@arb_transform_feedback_instanced@draw-auto instanced,Fail
spec@arb_uniform_buffer_object@rendering-dsa,Fail
spec@arb_uniform_buffer_object@rendering-dsa-offset,Fail
spec@arb_uniform_buffer_object@rendering,Fail
spec@arb_uniform_buffer_object@rendering-offset,Fail
spec@arb_vertex_program@clip-plane-transformation arb,Fail
spec@egl 1.4@eglterminate then unbind context,Fail