summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-03-07 18:02:29 +0900
committerMichel Dänzer <michel@daenzer.net>2017-03-07 18:02:29 +0900
commitfa85331f0ce27e16a9338516518433955133840e (patch)
tree08028d0967e2fdf9be28344154427175e38f878b
parent7884e38e94c2cbd6c205f556f2b31ad59b4089b4 (diff)
glamor: Use glamor_finish when available
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--configure.ac9
-rw-r--r--src/amdgpu_glamor.c7
2 files changed, 14 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac
index 00249a5..591c2b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -138,9 +138,14 @@ if test "x$GLAMOR" != "xno"; then
[Have glamor_egl_destroy_textured_pixmap API])], [],
[#include "xorg-server.h"
#include "glamor.h"])
- fi
- PKG_CHECK_MODULES(LIBGL, [gl])
+ AC_CHECK_DECL(glamor_finish,
+ [AC_DEFINE(HAVE_GLAMOR_FINISH, 1,
+ [Have glamor_finish API])],
+ [PKG_CHECK_MODULES(LIBGL, [gl])],
+ [#include "xorg-server.h"
+ #include "glamor.h"])
+ fi
if test "x$GLAMOR_XSERVER" != xyes; then
PKG_CHECK_MODULES(LIBGLAMOR, [glamor >= 0.6.0])
diff --git a/src/amdgpu_glamor.c b/src/amdgpu_glamor.c
index d29b096..1c5dfc2 100644
--- a/src/amdgpu_glamor.c
+++ b/src/amdgpu_glamor.c
@@ -36,7 +36,9 @@
#include <gbm.h>
+#ifndef HAVE_GLAMOR_FINISH
#include <GL/gl.h>
+#endif
DevPrivateKeyRec amdgpu_pixmap_index;
@@ -470,8 +472,13 @@ void amdgpu_glamor_finish(ScrnInfoPtr pScrn)
AMDGPUInfoPtr info = AMDGPUPTR(pScrn);
if (info->use_glamor) {
+#if HAVE_GLAMOR_FINISH
+ glamor_finish(pScrn->pScreen);
+ info->gpu_flushed++;
+#else
amdgpu_glamor_flush(pScrn);
glFinish();
+#endif
}
}