Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>tags/17.3-branchpoint
@@ -63,10 +63,6 @@ enum wl_drm_format_flags { | |||
HAS_RGB565 = 4, | |||
}; | |||
static EGLBoolean | |||
dri2_wl_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, | |||
EGLint interval); | |||
static int | |||
roundtrip(struct dri2_egl_display *dri2_dpy) | |||
{ | |||
@@ -230,8 +226,7 @@ dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp, | |||
goto cleanup_surf; | |||
} | |||
dri2_wl_swap_interval(drv, disp, &dri2_surf->base, | |||
dri2_dpy->default_swap_interval); | |||
dri2_surf->base.SwapInterval = dri2_dpy->default_swap_interval; | |||
return &dri2_surf->base; | |||
@@ -1150,13 +1145,6 @@ dri2_wl_swap_interval(_EGLDriver *drv, | |||
_EGLSurface *surf, | |||
EGLint interval) | |||
{ | |||
if (interval > surf->Config->MaxSwapInterval) | |||
interval = surf->Config->MaxSwapInterval; | |||
else if (interval < surf->Config->MinSwapInterval) | |||
interval = surf->Config->MinSwapInterval; | |||
surf->SwapInterval = interval; | |||
return EGL_TRUE; | |||
} | |||
@@ -956,16 +956,9 @@ dri2_x11_swap_interval(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, | |||
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); | |||
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); | |||
if (interval > surf->Config->MaxSwapInterval) | |||
interval = surf->Config->MaxSwapInterval; | |||
else if (interval < surf->Config->MinSwapInterval) | |||
interval = surf->Config->MinSwapInterval; | |||
if (interval != surf->SwapInterval && dri2_dpy->swap_available) | |||
if (dri2_dpy->swap_available) | |||
xcb_dri2_swap_interval(dri2_dpy->conn, dri2_surf->drawable, interval); | |||
surf->SwapInterval = interval; | |||
return EGL_TRUE; | |||
} | |||
@@ -1201,7 +1201,17 @@ eglSwapInterval(EGLDisplay dpy, EGLint interval) | |||
if (_eglGetSurfaceHandle(surf) == EGL_NO_SURFACE) | |||
RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE); | |||
ret = drv->API.SwapInterval(drv, disp, surf, interval); | |||
interval = CLAMP(interval, | |||
surf->Config->MinSwapInterval, | |||
surf->Config->MaxSwapInterval); | |||
if (surf->SwapInterval != interval) | |||
ret = drv->API.SwapInterval(drv, disp, surf, interval); | |||
else | |||
ret = EGL_TRUE; | |||
if (ret) | |||
surf->SwapInterval = interval; | |||
RETURN_EGL_EVAL(disp, ret); | |||
} |
@@ -45,22 +45,6 @@ | |||
#include "eglsurface.h" | |||
static void | |||
_eglClampSwapInterval(_EGLSurface *surf, EGLint interval) | |||
{ | |||
EGLint bound = surf->Config->MaxSwapInterval; | |||
if (interval >= bound) { | |||
interval = bound; | |||
} | |||
else { | |||
bound = surf->Config->MinSwapInterval; | |||
if (interval < bound) | |||
interval = bound; | |||
} | |||
surf->SwapInterval = interval; | |||
} | |||
/** | |||
* Parse the list of surface attributes and return the proper error code. | |||
*/ | |||
@@ -319,7 +303,7 @@ _eglInitSurface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type, | |||
surf->BufferAgeRead = EGL_FALSE; | |||
/* the default swap interval is 1 */ | |||
_eglClampSwapInterval(surf, 1); | |||
surf->SwapInterval = 1; | |||
err = _eglParseSurfaceAttribList(surf, attrib_list); | |||
if (err != EGL_SUCCESS) | |||
@@ -565,6 +549,5 @@ EGLBoolean | |||
_eglSwapInterval(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf, | |||
EGLint interval) | |||
{ | |||
_eglClampSwapInterval(surf, interval); | |||
return EGL_TRUE; | |||
} |