egl/kopper: Pass ancillary invalidate flush flags down to gallium.
We can just add the flags to the kopper interface, since it's private to Mesa. This gets us depth/stencil invalidation on swapbuffers, which is critical for tiler performance. glmark2-es2 -b texture (windowed) goes from 1650 to 1930 fps on zink+turnip with ZINK_DEBUG=rp. Part of #7321 (we're still a little behind freedreno's 2180 fps) Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21317>
This commit is contained in:
@@ -840,7 +840,7 @@ kopper_create_drawable(struct dri_screen *screen, const struct gl_config *visual
|
||||
}
|
||||
|
||||
static int64_t
|
||||
kopperSwapBuffers(__DRIdrawable *dPriv)
|
||||
kopperSwapBuffers(__DRIdrawable *dPriv, uint32_t flush_flags)
|
||||
{
|
||||
struct dri_drawable *drawable = dri_drawable(dPriv);
|
||||
struct dri_context *ctx = dri_get_current();
|
||||
@@ -861,7 +861,7 @@ kopperSwapBuffers(__DRIdrawable *dPriv)
|
||||
drawable->texture_stamp = drawable->lastStamp - 1;
|
||||
|
||||
dri_flush(opaque_dri_context(ctx), opaque_dri_drawable(drawable),
|
||||
__DRI2_FLUSH_DRAWABLE | __DRI2_FLUSH_CONTEXT,
|
||||
__DRI2_FLUSH_DRAWABLE | __DRI2_FLUSH_CONTEXT | flush_flags,
|
||||
__DRI2_THROTTLE_SWAPBUFFER);
|
||||
|
||||
kopper_copy_to_front(ctx->st->pipe, drawable, ptex);
|
||||
@@ -881,7 +881,7 @@ kopperSwapBuffers(__DRIdrawable *dPriv)
|
||||
static void
|
||||
kopper_swap_buffers(struct dri_drawable *drawable)
|
||||
{
|
||||
kopperSwapBuffers(opaque_dri_drawable(drawable));
|
||||
kopperSwapBuffers(opaque_dri_drawable(drawable), 0);
|
||||
}
|
||||
|
||||
static __DRIdrawable *
|
||||
|
Reference in New Issue
Block a user