mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 11:32:04 +00:00
Remove old fallback for vblank wait via manual drm ioctl
This workaround code has just been incrementally carried forward since Cogl was integrated with Clutter but really we have no idea when this code path was ever tested. Since the work around is from before the time of the current Cogl developers we don't know anything about the circumstances which led to this extreme workaround instead of pushing to fix a driver. It seems pretty likely we can push to fix any drm based drivers so we're removing the workaround. https://bugzilla.gnome.org/show_bug.cgi?id=667009 Reviewed-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
parent
20f2d51392
commit
3bc70687ac
@ -61,12 +61,6 @@
|
||||
#include <GL/glx.h>
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#ifdef HAVE_DRM
|
||||
#include <drm.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <errno.h>
|
||||
#endif
|
||||
|
||||
#define COGL_ONSCREEN_X11_EVENT_MASK StructureNotifyMask
|
||||
#define MAX_GLX_CONFIG_ATTRIBS 30
|
||||
|
||||
@ -432,20 +426,6 @@ update_winsys_features (CoglContext *context, GError **error)
|
||||
COGL_WINSYS_FEATURE_VBLANK_WAIT,
|
||||
TRUE);
|
||||
|
||||
#ifdef HAVE_DRM
|
||||
/* drm is really an extreme fallback -rumoured to work with Via
|
||||
* chipsets... */
|
||||
if (!glx_renderer->pf_glXWaitVideoSync)
|
||||
{
|
||||
if (glx_renderer->dri_fd < 0)
|
||||
glx_renderer->dri_fd = open("/dev/dri/card0", O_RDWR);
|
||||
if (glx_renderer->dri_fd >= 0)
|
||||
COGL_FLAGS_SET (context->winsys_features,
|
||||
COGL_WINSYS_FEATURE_VBLANK_WAIT,
|
||||
TRUE);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (glx_renderer->pf_glXCopySubBuffer || context->glBlitFramebuffer)
|
||||
COGL_FLAGS_SET (context->winsys_features,
|
||||
COGL_WINSYS_FEATURE_SWAP_REGION, TRUE);
|
||||
@ -1097,24 +1077,6 @@ _cogl_winsys_onscreen_bind (CoglOnscreen *onscreen)
|
||||
glx_context->current_drawable = drawable;
|
||||
}
|
||||
|
||||
#ifdef HAVE_DRM
|
||||
static int
|
||||
drm_wait_vblank (int fd, drm_wait_vblank_t *vbl)
|
||||
{
|
||||
int ret, rc;
|
||||
|
||||
do
|
||||
{
|
||||
ret = ioctl (fd, DRM_IOCTL_WAIT_VBLANK, vbl);
|
||||
vbl->request.type &= ~_DRM_VBLANK_RELATIVE;
|
||||
rc = errno;
|
||||
}
|
||||
while (ret && rc == EINTR);
|
||||
|
||||
return rc;
|
||||
}
|
||||
#endif /* HAVE_DRM */
|
||||
|
||||
static void
|
||||
_cogl_winsys_wait_for_vblank (void)
|
||||
{
|
||||
@ -1133,18 +1095,6 @@ _cogl_winsys_wait_for_vblank (void)
|
||||
(current_count + 1) % 2,
|
||||
¤t_count);
|
||||
}
|
||||
#ifdef HAVE_DRM
|
||||
else
|
||||
{
|
||||
drm_wait_vblank_t blank;
|
||||
|
||||
COGL_NOTE (WINSYS, "Waiting for vblank (drm)");
|
||||
blank.request.type = _DRM_VBLANK_RELATIVE;
|
||||
blank.request.sequence = 1;
|
||||
blank.request.signal = 0;
|
||||
drm_wait_vblank (glx_renderer->dri_fd, &blank);
|
||||
}
|
||||
#endif /* HAVE_DRM */
|
||||
}
|
||||
|
||||
static guint32
|
||||
|
Loading…
Reference in New Issue
Block a user