mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
loader_dri3: Support GLX_SWAP_COPY_OML
Support the GLX_SWAP_COPY_OML method. When this method is requested, we use the same swapbuffer code path as EGL_BUFFER_PRESERVED. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
1e83baeb4b
commit
16d1a0bcdb
2 changed files with 10 additions and 1 deletions
|
|
@ -311,6 +311,13 @@ loader_dri3_drawable_init(xcb_connection_t *conn,
|
|||
draw->vtable->set_drawable_size(draw, draw->width, draw->height);
|
||||
free(reply);
|
||||
|
||||
draw->swap_method = __DRI_ATTRIB_SWAP_UNDEFINED;
|
||||
if (draw->ext->core->base.version >= 2) {
|
||||
(void )draw->ext->core->getConfigAttrib(dri_config,
|
||||
__DRI_ATTRIB_SWAP_METHOD,
|
||||
&draw->swap_method);
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure server has the same swap interval we do for the new
|
||||
* drawable.
|
||||
|
|
@ -777,7 +784,7 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
|
|||
* The force_copy parameter is used by EGL to attempt to preserve
|
||||
* the back buffer across a call to this function.
|
||||
*/
|
||||
if (force_copy)
|
||||
if (draw->swap_method == __DRI_ATTRIB_SWAP_COPY || force_copy)
|
||||
draw->cur_blit_source = LOADER_DRI3_BACK_ID(draw->cur_back);
|
||||
|
||||
dri3_flush_present_events(draw);
|
||||
|
|
|
|||
|
|
@ -158,6 +158,8 @@ struct loader_dri3_drawable {
|
|||
|
||||
struct loader_dri3_extensions *ext;
|
||||
const struct loader_dri3_vtable *vtable;
|
||||
|
||||
unsigned int swap_method;
|
||||
};
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue