From 51fcabfb044b46a143d36391ddd4d481c014a299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Tue, 15 Nov 2022 17:09:32 -0500 Subject: [PATCH] frontend/dri: unduplicate flush_drawable callback Reviewed-by: Adam Jackson Part-of: --- src/gallium/frontends/dri/dri2.c | 14 +------------- src/gallium/frontends/dri/dri_drawable.c | 12 ++++++++++++ src/gallium/frontends/dri/dri_drawable.h | 3 +++ src/gallium/frontends/dri/kopper.c | 9 +-------- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c index a678a83a14e..38f3b328c38 100644 --- a/src/gallium/frontends/dri/dri2.c +++ b/src/gallium/frontends/dri/dri2.c @@ -67,18 +67,6 @@ dri2_buffer(__DRIbuffer * driBufferPriv) return (struct dri2_buffer *) driBufferPriv; } -/** - * DRI2 flush extension. - */ -static void -dri2_flush_drawable(__DRIdrawable *dPriv) -{ - struct dri_context *ctx = dri_get_current(); - - if (ctx) - dri_flush(opaque_dri_context(ctx), dPriv, __DRI2_FLUSH_DRAWABLE, -1); -} - /** * Invalidate the drawable. * @@ -115,7 +103,7 @@ dri2_invalidate_drawable(__DRIdrawable *dPriv) static const __DRI2flushExtension dri2FlushExtension = { .base = { __DRI2_FLUSH, 4 }, - .flush = dri2_flush_drawable, + .flush = dri_flush_drawable, .invalidate = dri2_invalidate_drawable, .flush_with_flags = dri_flush, }; diff --git a/src/gallium/frontends/dri/dri_drawable.c b/src/gallium/frontends/dri/dri_drawable.c index 6c43bff5763..a719854eef4 100644 --- a/src/gallium/frontends/dri/dri_drawable.c +++ b/src/gallium/frontends/dri/dri_drawable.c @@ -569,6 +569,18 @@ dri_flush(__DRIcontext *cPriv, st->invalidate_state(st, ST_INVALIDATE_FB_STATE); } +/** + * DRI2 flush extension. + */ +void +dri_flush_drawable(__DRIdrawable *dPriv) +{ + struct dri_context *ctx = dri_get_current(); + + if (ctx) + dri_flush(opaque_dri_context(ctx), dPriv, __DRI2_FLUSH_DRAWABLE, -1); +} + /** * dri_throttle - A DRI2ThrottleExtension throttling function. */ diff --git a/src/gallium/frontends/dri/dri_drawable.h b/src/gallium/frontends/dri/dri_drawable.h index 9ee0b88da4c..86ebf80061a 100644 --- a/src/gallium/frontends/dri/dri_drawable.h +++ b/src/gallium/frontends/dri/dri_drawable.h @@ -158,6 +158,9 @@ dri_flush(__DRIcontext *cPriv, unsigned flags, enum __DRI2throttleReason reason); +void +dri_flush_drawable(__DRIdrawable *dPriv); + extern const __DRItexBufferExtension driTexBufferExtension; extern const __DRI2throttleExtension dri2ThrottleExtension; #endif diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c index 677fe219377..c406da31a10 100644 --- a/src/gallium/frontends/dri/kopper.c +++ b/src/gallium/frontends/dri/kopper.c @@ -59,13 +59,6 @@ static struct dri_drawable * kopper_create_drawable(struct dri_screen *screen, const struct gl_config *visual, boolean isPixmap, void *loaderPrivate); -static void -kopper_flush_drawable(__DRIdrawable *dPriv) -{ - dri_flush(opaque_dri_context(dri_get_current()), dPriv, - __DRI2_FLUSH_DRAWABLE, -1); -} - static inline void kopper_invalidate_drawable(__DRIdrawable *dPriv) { @@ -79,7 +72,7 @@ kopper_invalidate_drawable(__DRIdrawable *dPriv) static const __DRI2flushExtension driVkFlushExtension = { .base = { __DRI2_FLUSH, 4 }, - .flush = kopper_flush_drawable, + .flush = dri_flush_drawable, .invalidate = kopper_invalidate_drawable, .flush_with_flags = dri_flush, };