kopper: Implement {EGL,GLX}_EXT_buffer_age

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17527>
This commit is contained in:
Adam Jackson
2022-07-12 14:26:15 -04:00
committed by Marge Bot
parent 81d83e81db
commit c123ab2137
6 changed files with 83 additions and 0 deletions

View File

@@ -992,11 +992,24 @@ kopperSetSwapInterval(__DRIdrawable *dPriv, int interval)
cdraw->info.initial_swap_interval = interval;
}
static int
kopperQueryBufferAge(__DRIdrawable *dPriv)
{
struct dri_context *ctx = dri_get_current(dPriv->driScreenPriv);
struct dri_drawable *drawable = dri_drawable(dPriv);
struct pipe_resource *ptex = drawable->textures[ST_ATTACHMENT_BACK_LEFT] ?
drawable->textures[ST_ATTACHMENT_BACK_LEFT] :
drawable->textures[ST_ATTACHMENT_FRONT_LEFT];
return zink_kopper_query_buffer_age(ctx->st->pipe, ptex);
}
const __DRIkopperExtension driKopperExtension = {
.base = { __DRI_KOPPER, 1 },
.createNewDrawable = kopperCreateNewDrawable,
.swapBuffers = kopperSwapBuffers,
.setSwapInterval = kopperSetSwapInterval,
.queryBufferAge = kopperQueryBufferAge,
};
const struct __DriverAPIRec galliumvk_driver_api = {