enum __DRI2throttleReason {
__DRI2_THROTTLE_SWAPBUFFER,
__DRI2_THROTTLE_COPYSUBBUFFER,
- __DRI2_THROTTLE_FLUSHFRONT
+ __DRI2_THROTTLE_FLUSHFRONT,
+ __DRI2_NOTHROTTLE_SWAPBUFFER,
};
struct __DRI2flushExtensionRec {
if (dri2_surf->back)
dri2_surf->back->age = 1;
- dri2_flush_drawable_for_swapbuffers_flags(disp, draw, -1);
+ dri2_flush_drawable_for_swapbuffers_flags(disp, draw, __DRI2_NOTHROTTLE_SWAPBUFFER);
/* dri2_surf->buffer can be null even when no error has occurred. For
* example, if the user has called no GL rendering commands since the
if (args->drawable->stvis.samples > 1 &&
(args->reason == __DRI2_THROTTLE_SWAPBUFFER ||
+ args->reason == __DRI2_NOTHROTTLE_SWAPBUFFER ||
args->reason == __DRI2_THROTTLE_COPYSUBBUFFER)) {
/* Resolve the MSAA back buffer. */
dri_pipe_blit(st->pipe,
args->drawable->textures[ST_ATTACHMENT_BACK_LEFT],
args->drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]);
- if (args->reason == __DRI2_THROTTLE_SWAPBUFFER &&
+ if ((args->reason == __DRI2_THROTTLE_SWAPBUFFER ||
+ args->reason == __DRI2_NOTHROTTLE_SWAPBUFFER) &&
args->drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT] &&
args->drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]) {
args->swap_msaa_buffers = true;
flush_flags = 0;
if (flags & __DRI2_FLUSH_CONTEXT)
flush_flags |= ST_FLUSH_FRONT;
- if (reason == __DRI2_THROTTLE_SWAPBUFFER)
+ if (reason == __DRI2_THROTTLE_SWAPBUFFER ||
+ reason == __DRI2_NOTHROTTLE_SWAPBUFFER)
flush_flags |= ST_FLUSH_END_OF_FRAME;
/* Flush the context and throttle if needed. */