diff options
-rw-r--r-- | src/gallium/state_trackers/dri/common/dri_drawable.c | 14 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/drm/dri2.c | 41 |
2 files changed, 30 insertions, 25 deletions
diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c index a399938c879..b7df053594c 100644 --- a/src/gallium/state_trackers/dri/common/dri_drawable.c +++ b/src/gallium/state_trackers/dri/common/dri_drawable.c @@ -258,10 +258,11 @@ dri_set_tex_buffer(__DRIcontext *pDRICtx, GLint target, } const __DRItexBufferExtension driTexBufferExtension = { - { __DRI_TEX_BUFFER, __DRI_TEX_BUFFER_VERSION }, - dri_set_tex_buffer, - dri_set_tex_buffer2, - NULL, + .base = { __DRI_TEX_BUFFER, 2 }, + + .setTexBuffer = dri_set_tex_buffer, + .setTexBuffer2 = dri_set_tex_buffer2, + .releaseTexBuffer = NULL, }; /** @@ -561,8 +562,9 @@ dri_throttle(__DRIcontext *cPriv, __DRIdrawable *dPriv, const __DRI2throttleExtension dri2ThrottleExtension = { - .base = { __DRI2_THROTTLE, __DRI2_THROTTLE_VERSION }, - .throttle = dri_throttle, + .base = { __DRI2_THROTTLE, 1 }, + + .throttle = dri_throttle, }; diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c index 4f2a87e86ce..7dccc5e0ef3 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.c +++ b/src/gallium/state_trackers/dri/drm/dri2.c @@ -95,10 +95,11 @@ dri2_invalidate_drawable(__DRIdrawable *dPriv) } static const __DRI2flushExtension dri2FlushExtension = { - { __DRI2_FLUSH, __DRI2_FLUSH_VERSION }, - dri2_flush_drawable, - dri2_invalidate_drawable, - dri_flush, + .base = { __DRI2_FLUSH, 4 }, + + .flush = dri2_flush_drawable, + .invalidate = dri2_invalidate_drawable, + .flush_with_flags = dri_flush, }; /** @@ -110,7 +111,7 @@ dri2_drawable_get_buffers(struct dri_drawable *drawable, unsigned *count) { __DRIdrawable *dri_drawable = drawable->dPriv; - struct __DRIdri2LoaderExtensionRec *loader = drawable->sPriv->dri2.loader; + const __DRIdri2LoaderExtension *loader = drawable->sPriv->dri2.loader; boolean with_format; __DRIbuffer *buffers; int num_buffers; @@ -522,7 +523,7 @@ dri2_flush_frontbuffer(struct dri_context *ctx, enum st_attachment_type statt) { __DRIdrawable *dri_drawable = drawable->dPriv; - struct __DRIdri2LoaderExtensionRec *loader = drawable->sPriv->dri2.loader; + const __DRIdri2LoaderExtension *loader = drawable->sPriv->dri2.loader; struct pipe_context *pipe = ctx->st->pipe; if (statt != ST_ATTACHMENT_FRONT_LEFT) @@ -557,7 +558,7 @@ dri2_update_tex_buffer(struct dri_drawable *drawable, static __DRIimage * dri2_lookup_egl_image(struct dri_screen *screen, void *handle) { - __DRIimageLookupExtension *loader = screen->sPriv->dri2.image; + const __DRIimageLookupExtension *loader = screen->sPriv->dri2.image; __DRIimage *img; if (!loader->lookupEGLImage) @@ -1035,18 +1036,20 @@ dri2_destroy_image(__DRIimage *img) FREE(img); } -static struct __DRIimageExtensionRec dri2ImageExtension = { - { __DRI_IMAGE, 6 }, - dri2_create_image_from_name, - dri2_create_image_from_renderbuffer, - dri2_destroy_image, - dri2_create_image, - dri2_query_image, - dri2_dup_image, - dri2_validate_usage, - dri2_from_names, - dri2_from_planar, - dri2_create_from_texture, +/* The extension is modified during runtime if DRI_PRIME is detected */ +static __DRIimageExtension dri2ImageExtension = { + .base = { __DRI_IMAGE, 6 }, + + .createImageFromName = dri2_create_image_from_name, + .createImageFromRenderbuffer = dri2_create_image_from_renderbuffer, + .destroyImage = dri2_destroy_image, + .createImage = dri2_create_image, + .queryImage = dri2_query_image, + .dupImage = dri2_dup_image, + .validateUsage = dri2_validate_usage, + .createImageFromNames = dri2_from_names, + .fromPlanar = dri2_from_planar, + .createImageFromTexture = dri2_create_from_texture, }; /* |