glamor-es2: Add gles2 option.
First commit to enable gles2 support. --enable-glamor-ddx --enable-glamor-gles2 will set thwo MACROs GLAMOR_DDX and GLAMOR_GLES2. Currently, the gles2 support is still incomplete. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
This commit is contained in:
parent
98f8ef5f99
commit
68c3c6eb0c
|
@ -17,6 +17,10 @@ if RECORD
|
|||
RECORD_DIR=record
|
||||
endif
|
||||
|
||||
if GLAMOR
|
||||
GLAMOR_DIR=glamor
|
||||
endif
|
||||
|
||||
SUBDIRS = \
|
||||
doc \
|
||||
man \
|
||||
|
@ -38,7 +42,7 @@ SUBDIRS = \
|
|||
$(COMPOSITE_DIR) \
|
||||
$(GLX_DIR) \
|
||||
exa \
|
||||
glamor \
|
||||
$(GLAMOR_DIR) \
|
||||
config \
|
||||
hw \
|
||||
test
|
||||
|
|
23
configure.ac
23
configure.ac
|
@ -646,6 +646,8 @@ AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest serv
|
|||
AC_ARG_ENABLE(xquartz, AS_HELP_STRING([--enable-xquartz], [Build Xquartz server for OS-X (default: auto)]), [XQUARTZ=$enableval], [XQUARTZ=auto])
|
||||
AC_ARG_ENABLE(standalone-xpbproxy, AS_HELP_STRING([--enable-standalone-xpbproxy], [Build a standalone xpbproxy (in addition to the one integrated into Xquartz as a separate thread) (default: no)]), [STANDALONE_XPBPROXY=$enableval], [STANDALONE_XPBPROXY=no])
|
||||
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
|
||||
#AC_ARG_ENABLE(glamor, AS_HELP_STRING([--enable-glamor], [Build glamor server (default: no)]), [GLAMOR=$enableval], [GLAMOR=no])
|
||||
AC_ARG_ENABLE(glamor-ddx, AS_HELP_STRING([--enable-glamor-ddx], [Build glamor ddx (default: no)]), [GLAMOR_DDX=$enableval], [GLAMOR_DDX=no])
|
||||
dnl kdrive and its subsystems
|
||||
AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
|
||||
AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
|
||||
|
@ -655,6 +657,8 @@ dnl kdrive options
|
|||
AC_ARG_ENABLE(kdrive-kbd, AS_HELP_STRING([--enable-kdrive-kbd], [Build kbd driver for kdrive (default: auto)]), [KDRIVE_KBD=$enableval], [KDRIVE_KBD=auto])
|
||||
AC_ARG_ENABLE(kdrive-mouse, AC_HELP_STRING([--enable-kdrive-mouse], [Build mouse driver for kdrive (default: auto)]), [KDRIVE_MOUSE=$enableval], [KDRIVE_MOUSE=auto])
|
||||
AC_ARG_ENABLE(kdrive-evdev, AC_HELP_STRING([--enable-kdrive-evdev], [Build evdev driver for kdrive (default: auto)]), [KDRIVE_EVDEV=$enableval], [KDRIVE_EVDEV=auto])
|
||||
dnl glamor options
|
||||
AC_ARG_ENABLE(glamor-gles2, AS_HELP_STRING([--enable-glamor-gles2], [Build glamor based on gles2 (default: no)]), [GLAMOR_GLES2=$enableval], [GLAMOR_GLES2=no])
|
||||
|
||||
|
||||
dnl chown/chmod to be setuid root as part of build
|
||||
|
@ -1765,6 +1769,25 @@ AM_CONDITIONAL([SOLARIS_VT], [test "x$solaris_vt" = xyes])
|
|||
AM_CONDITIONAL([DGA], [test "x$DGA" = xyes])
|
||||
AM_CONDITIONAL([XF86VIDMODE], [test "x$XF86VIDMODE" = xyes])
|
||||
|
||||
dnl glamor
|
||||
|
||||
AM_CONDITIONAL([GLAMOR], [test "x$XEPHYR" = xyes || test "x$GLAMOR_DDX" = xyes])
|
||||
|
||||
GLAMOR=yes
|
||||
|
||||
if test "x$GLAMOR" = xyes; then
|
||||
AC_DEFINE(GLAMOR,1,[Build Glamor])
|
||||
if test "x$GLAMOR_GLES2" = xyes; then
|
||||
AC_DEFINE(GLAMOR_GLES2,1,[Build glamor over GLES2])
|
||||
else
|
||||
AC_DEFINE(GLAMOR_GL,1,[Build glamor over GL])
|
||||
fi
|
||||
|
||||
if test "x$GLAMOR_DDX" = xyes; then
|
||||
AC_DEFINE(GLAMOR_DDX,1,[Enable glamor ddx driver])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl XWin DDX
|
||||
|
||||
AC_MSG_CHECKING([whether to build XWin DDX])
|
||||
|
|
|
@ -29,10 +29,28 @@
|
|||
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#include <xorg-config.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include "glamor.h"
|
||||
|
||||
#ifdef GLAMOR_GLES2
|
||||
|
||||
#define GLEW_ES_ONLY 1
|
||||
|
||||
#define GL_BGRA GL_BGRA_EXT
|
||||
#define GL_COLOR_INDEX 0x1900
|
||||
#define GL_BITMAP 0x1A00
|
||||
#define GL_UNSIGNED_INT_8_8_8_8 0x8035
|
||||
#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
|
||||
#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
|
||||
#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
|
||||
#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
|
||||
#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
|
||||
|
||||
#endif
|
||||
|
||||
#include <GL/glew.h>
|
||||
|
||||
#ifdef RENDER
|
||||
|
|
|
@ -27,12 +27,16 @@ if INT10MODULE
|
|||
INT10_SUBDIR = int10
|
||||
endif
|
||||
|
||||
SUBDIRS = common ddc i2c x86emu $(INT10_SUBDIR) fbdevhw glamor os-support parser \
|
||||
if GLAMOR
|
||||
GLAMOR_DIR=glamor
|
||||
endif
|
||||
|
||||
SUBDIRS = common ddc i2c x86emu $(INT10_SUBDIR) fbdevhw $(GLAMOR_DIR) os-support parser \
|
||||
ramdac shadowfb $(VBE_SUBDIR) $(VGAHW_SUBDIR) $(XAA_SUBDIR) \
|
||||
loader dixmods exa modes \
|
||||
$(DRI_SUBDIR) $(DRI2_SUBDIR) $(XF86UTILS_SUBDIR) doc man
|
||||
|
||||
DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw glamor os-support \
|
||||
DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw $(GLAMOR_DIR) os-support \
|
||||
parser ramdac shadowfb vbe vgahw xaa \
|
||||
loader dixmods dri dri2 exa modes \
|
||||
utils doc man
|
||||
|
|
|
@ -1118,7 +1118,11 @@ videoPtrToDriverList(struct pci_device *dev,
|
|||
} else if (dev->device_id == 0x8108) {
|
||||
break; /* "hooray" for poulsbo */
|
||||
} else {
|
||||
#if GLAMOR_DDX
|
||||
driverList[0] = "glamor";
|
||||
#else
|
||||
driverList[0] = "intel";
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case 0x102b: driverList[0] = "mga"; break;
|
||||
|
|
|
@ -12,8 +12,11 @@ glamor_la_CFLAGS = \
|
|||
-I$(top_srcdir)/glamor \
|
||||
-I/usr/include/drm
|
||||
|
||||
glamor_la_LDFLAGS = \
|
||||
-module -avoid-version -L$(libdir) -lEGL $(top_builddir)/glamor/libglamor.la -lGLEW
|
||||
glamor_la_LDFLAGS = \
|
||||
-module -avoid-version -L$(libdir) -lEGL \
|
||||
$(top_builddir)/glamor/libglamor.la \
|
||||
-L$(libdir)/../lib64 -lGLEW
|
||||
|
||||
glamor_ladir = $(moduledir)/drivers
|
||||
glamor_la_SOURCES = \
|
||||
glamor.c \
|
||||
|
|
|
@ -38,7 +38,13 @@
|
|||
#define GL_GLEXT_PROTOTYPES
|
||||
#define EGL_EGLEXT_PROTOTYPES
|
||||
#define EGL_DISPLAY_NO_X_MESA
|
||||
|
||||
#if GLAMOR_GLES2
|
||||
#include <GLES2/gl2.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
#include <EGL/egl.h>
|
||||
#include <EGL/eglext.h>
|
||||
|
||||
|
@ -322,7 +328,6 @@ glamor_screen_init_ddx(int scrnIndex, ScreenPtr screen, int argc, char **argv)
|
|||
|
||||
glamor->display = eglGetDRMDisplayMESA(glamor->fd);
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
LogMessageVerb(X_INFO, 0, "%s glCreateProgramObjectARB=%p", __FUNCTION__, *(&glCreateProgramObjectARB));
|
||||
if (!eglInitialize(glamor->display, &glamor->major, &glamor->minor)) {
|
||||
xf86DrvMsg(scrn->scrnIndex, X_ERROR,
|
||||
"eglInitialize() failed\n");
|
||||
|
|
|
@ -53,7 +53,17 @@
|
|||
#define GL_GLEXT_PROTOTYPES
|
||||
#define EGL_EGLEXT_PROTOTYPES
|
||||
#define EGL_DISPLAY_NO_X_MESA
|
||||
|
||||
#if GLAMOR_GLES2
|
||||
#include <GLES2/gl2.h>
|
||||
#include <GLES2/gl2ext.h>
|
||||
#ifndef GL_BGRA
|
||||
#define GL_BGRA GL_BGRA_EXT
|
||||
#endif
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
|
||||
#include <EGL/egl.h>
|
||||
#include <EGL/eglext.h>
|
||||
|
||||
|
@ -482,11 +492,15 @@ drmmode_load_cursor_argb (xf86CrtcPtr crtc, CARD32 *image)
|
|||
GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, drmmode_crtc->cursor);
|
||||
}
|
||||
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 64);
|
||||
glBindTexture(GL_TEXTURE_2D, drmmode_crtc->cursor_tex);
|
||||
#if GLAMOR_GLES2
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, 64, 64, 0,
|
||||
GL_BGRA, GL_UNSIGNED_BYTE, image);
|
||||
#else
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 64);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0,
|
||||
GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, image);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -139,4 +139,15 @@
|
|||
/* Build with libdrm support */
|
||||
#undef WITH_LIBDRM
|
||||
|
||||
|
||||
/* Build GLAMOR */
|
||||
#undef GLAMOR
|
||||
|
||||
/* Build GLAMOR over GLES2*/
|
||||
#undef GLAMOR_GLES2
|
||||
|
||||
/* Build GLAMOR ddx*/
|
||||
#undef GLAMOR_DDX
|
||||
|
||||
|
||||
#endif /* _XORG_CONFIG_H_ */
|
||||
|
|
Loading…
Reference in New Issue
Block a user