.gitignore | 1 Makefile.am | 8 NEWS | 56 configure.ac | 55 src/Makefile.am | 14 src/common.h | 10 src/i915_video.c | 1 src/i965_reg.h | 4 src/i965_render.c | 102 src/i965_video.c | 3 src/intel.h | 16 src/intel_batchbuffer.c | 52 src/intel_display.c | 2 src/intel_dri.c | 2 src/intel_driver.c | 13 src/intel_module.c | 14 src/intel_uxa.c | 31 src/intel_video.c | 38 src/legacy/i810/Makefile.am | 1 src/legacy/i810/i810.h | 14 src/legacy/i810/i810_cursor.c | 19 src/legacy/i810/i810_driver.c | 21 src/legacy/i810/i810_io.c | 133 src/legacy/i810/xvmc/I810XvMC.c | 2 src/sna/Makefile.am | 12 src/sna/blt.c | 57 src/sna/compiler.h | 51 src/sna/gen2_render.c | 1016 +++-- src/sna/gen3_render.c | 984 +++-- src/sna/gen4_render.c | 334 + src/sna/gen5_render.c | 768 +++- src/sna/gen5_render.h | 47 src/sna/gen6_render.c | 734 +++- src/sna/gen7_render.c | 388 +- src/sna/gen7_render.h | 6 src/sna/kgem.c | 851 +++- src/sna/kgem.h | 79 src/sna/kgem_debug.c | 24 src/sna/kgem_debug.h | 3 src/sna/kgem_debug_gen2.c | 631 +++ src/sna/kgem_debug_gen3.c | 1 src/sna/kgem_debug_gen7.c | 747 ++++ src/sna/rop.h | 264 + src/sna/sna.h | 150 src/sna/sna_accel.c | 7301 ++++++++++++++++++++++++++++++++++------ src/sna/sna_blt.c | 823 +++- src/sna/sna_composite.c | 190 - src/sna/sna_damage.c | 704 +++ src/sna/sna_damage.h | 81 src/sna/sna_display.c | 85 src/sna/sna_dri.c | 1051 +++-- src/sna/sna_driver.c | 141 src/sna/sna_glyphs.c | 439 +- src/sna/sna_gradient.c | 67 src/sna/sna_io.c | 51 src/sna/sna_reg.h | 50 src/sna/sna_render.c | 141 src/sna/sna_render.h | 62 src/sna/sna_render_inline.h | 37 src/sna/sna_tiling.c | 29 src/sna/sna_trapezoids.c | 4208 +++++++++++++++++------ src/sna/sna_video.c | 261 - src/sna/sna_video.h | 25 src/sna/sna_video_overlay.c | 36 src/sna/sna_video_textured.c | 77 src/xvmc/i965_xvmc.c | 2 src/xvmc/intel_batchbuffer.h | 1 src/xvmc/intel_xvmc.c | 2 src/xvmc/xvmc_vld.c | 2 test/.gitignore | 1 test/Makefile.am | 1 test/basic-copyarea-size.c | 6 test/basic-copyarea.c | 3 test/basic-fillrect.c | 3 test/basic-lines.c | 147 test/basic-putimage.c | 3 test/basic-stress.c | 3 test/mixed-stress.c | 3 test/render-composite-solid.c | 3 test/render-copyarea-size.c | 6 test/render-copyarea.c | 3 test/render-fill-copy.c | 3 test/render-fill.c | 3 test/render-trapezoid-image.c | 6 test/render-trapezoid.c | 6 test/test.h | 2 test/test_image.c | 7 uxa/uxa-glyphs.c | 17 uxa/uxa-priv.h | 4 uxa/uxa-render.c | 16 uxa/uxa-unaccel.c | 50 91 files changed, 18521 insertions(+), 5400 deletions(-)
New commits: commit 24ece4a87e34c27115ffb55f91294bce2bdf1502 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed Nov 16 23:14:25 2011 +0000 configure: Version bump for 2.17.0 release Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/configure.ac b/configure.ac index 3fd28b0..8afe25b 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.63]) AC_INIT([xf86-video-intel], - [2.16.902], + [2.17.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-video-intel]) AC_CONFIG_SRCDIR([Makefile.am]) commit 14b3176962bd535933623d8ed77ba286b077d6f0 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed Nov 16 23:13:44 2011 +0000 NEWS: Release notes for 2.17.0 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/NEWS b/NEWS index 36d5776..2bd476b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +Release 2.17.0 (2011-11-16) +============================== +A few months have passed, and we have accumulated a surprising number of +bug fixes. Oops! We would strongly encourage everyone to upgrade. + +Bugs fixed in this snapshot (compared to 2.16.902) +-------------------------------------------------- + +* Video clobbering composite batch state + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635953 + Snapshot 2.16.902 (2011-11-13) ============================== This is the second release candidate in preparation for the upcoming commit c259144e3fc52d078b0a78107c38f0f3d3a2bbc1 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed Nov 16 10:28:23 2011 +0000 sna: The block handler is passed an indirect pointer to the timeval Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c index 4c9f298..45e8fb2 100644 --- a/src/sna/sna_driver.c +++ b/src/sna/sna_driver.c @@ -582,13 +582,14 @@ static void sna_block_handler(int i, pointer data, pointer timeout, pointer read_mask) { struct sna *sna = data; - struct timeval *tv = timeout; + struct timeval **tv = timeout; - DBG(("%s\n", __FUNCTION__)); + DBG(("%s (tv=%ld.%06ld)\n", __FUNCTION__, + *tv ? (*tv)->tv_sec : -1, *tv ? (*tv)->tv_usec : 0)); sna->BlockHandler(i, sna->BlockData, timeout, read_mask); - if (tv == NULL || (tv->tv_usec | tv->tv_sec)) + if (*tv == NULL || ((*tv)->tv_usec | (*tv)->tv_sec)) sna_accel_block_handler(sna); } commit bfd2bb40274d1242001d295a4010211fd51b0fc3 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Nov 15 10:38:09 2011 +0000 sna: Correct dependencies for DRI2 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/configure.ac b/configure.ac index 2c40760..3fd28b0 100644 --- a/configure.ac +++ b/configure.ac @@ -175,7 +175,7 @@ XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) PKG_CHECK_MODULES(XORG, [xorg-server >= $required_xorg_xserver_version xproto fontsproto pixman-1 >= $required_pixman_version $REQUIRED_MODULES]) PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.23]) PKG_CHECK_MODULES(DRI, [xf86driproto], , DRI=no) -PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6]) +PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6],, DRI2=no) PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server` @@ -218,6 +218,10 @@ else AC_MSG_ERROR([DRI requested but prerequisites not found]) fi fi +AM_CONDITIONAL(DRI2, test x$DRI2 != xno) +if test "x$DRI2" != "xno"; then + AC_DEFINE(USE_DRI2,1,[Enable DRI2 driver support]) +fi if test "$XVMC" = yes; then PKG_CHECK_MODULES(XVMCLIB, diff --git a/src/sna/Makefile.am b/src/sna/Makefile.am index 30cedc6..65e85bf 100644 --- a/src/sna/Makefile.am +++ b/src/sna/Makefile.am @@ -74,7 +74,7 @@ libsna_la_SOURCES = \ gen7_render.h \ $(NULL) -if DRI +if DRI2 libsna_la_SOURCES += \ sna_dri.c \ $(NULL) diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c index 19413a9..4c9f298 100644 --- a/src/sna/sna_driver.c +++ b/src/sna/sna_driver.c @@ -925,7 +925,7 @@ sna_screen_init(int scrnIndex, ScreenPtr screen, int argc, char **argv) xf86DPMSInit(screen, xf86DPMSSet, 0); sna_video_init(sna, screen); -#ifdef DRI2 +#if USE_DRI2 sna->directRenderingOpen = sna_dri_open(sna, screen); if (sna->directRenderingOpen) xf86DrvMsg(scrn->scrnIndex, X_INFO, commit 3771387ad11b5842a83e58a4b373c2acdd827bd2 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Nov 15 10:32:34 2011 +0000 Compile out UXA if so desired Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/Makefile.am b/Makefile.am index 29c04fd..48c3477 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,7 +20,13 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -SUBDIRS = uxa src man +SUBDIRS = man + +if UXA +SUBDIRS += uxa +endif + +SUBDIRS += src MAINTAINERCLEANFILES = ChangeLog INSTALL if HAVE_X11 diff --git a/configure.ac b/configure.ac index 831f6b3..2c40760 100644 --- a/configure.ac +++ b/configure.ac @@ -120,14 +120,13 @@ AC_ARG_ENABLE(kms-only, AS_HELP_STRING([--enable-kms-only], [KMS_ONLY="$enableval"], [KMS_ONLY=no]) +AC_MSG_CHECKING([whether to include SNA support]) AC_ARG_ENABLE(sna, AS_HELP_STRING([--enable-sna], [Enable SandyBridge's New Acceleration (SNA) [default=no]]), [SNA="$enableval"], [SNA=no]) AM_CONDITIONAL(SNA, test x$SNA != xno) -AC_MSG_CHECKING([whether to include SNA support]) - required_xorg_xserver_version=1.6 required_pixman_version=0.16 if test "x$SNA" != "xno"; then @@ -137,6 +136,17 @@ if test "x$SNA" != "xno"; then fi AC_MSG_RESULT([$SNA]) +AC_MSG_CHECKING([whether to include UXA support]) +AC_ARG_ENABLE(uxa, + AS_HELP_STRING([--enable-uxa], + [Enable Unified Acceleration Architecture (UXA) [default=yes]]), + [UXA="$enableval"], + [UXA=yes]) +AM_CONDITIONAL(UXA, test x$UXA != xno) +if test "x$UXA" != "xno"; then + AC_DEFINE(USE_UXA, 1, [Enable UXA support]) +fi +AC_MSG_RESULT([$UXA]) AC_ARG_ENABLE(vmap, AS_HELP_STRING([--enable-vmap], diff --git a/src/Makefile.am b/src/Makefile.am index cd1bb36..e5097da 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -27,13 +27,12 @@ SUBDIRS = xvmc render_program legacy # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc. AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @UDEV_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \ - @PCIACCESS_CFLAGS@ -I$(top_srcdir)/uxa -I$(top_srcdir)/src/render_program + @PCIACCESS_CFLAGS@ intel_drv_la_LTLIBRARIES = intel_drv.la intel_drv_la_LDFLAGS = -module -avoid-version intel_drv_ladir = @moduledir@/drivers -intel_drv_la_LIBADD = @UDEV_LIBS@ -lm @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la legacy/liblegacy.la -intel_drv_la_LIBADD += @PCIACCESS_LIBS@ +intel_drv_la_LIBADD = legacy/liblegacy.la @PCIACCESS_LIBS@ if SNA SUBDIRS += sna @@ -43,11 +42,17 @@ endif NULL:=# intel_drv_la_SOURCES = \ + intel_module.c \ + $(NULL) + +if UXA +AM_CFLAGS += -I$(top_srcdir)/uxa -I$(top_srcdir)/src/render_program +intel_drv_la_LIBADD += @UDEV_LIBS@ @DRM_LIBS@ -ldrm_intel ../uxa/libuxa.la +intel_drv_la_SOURCES += \ brw_defines.h \ brw_structs.h \ common.h \ intel.h \ - intel_module.c \ intel_batchbuffer.c \ intel_batchbuffer.h \ intel_display.c \ @@ -87,3 +92,4 @@ intel_drv_la_SOURCES += \ intel_hwmc.c \ $(NULL) endif +endif diff --git a/src/i915_video.c b/src/i915_video.c index d46c6d1..c73615e 100644 --- a/src/i915_video.c +++ b/src/i915_video.c @@ -33,6 +33,7 @@ #include "xf86_OSproc.h" #include "xf86xv.h" #include "fourcc.h" +#include "gcstruct.h" #include "intel.h" #include "intel_video.h" diff --git a/src/intel.h b/src/intel.h index ed95063..1a002e2 100644 --- a/src/intel.h +++ b/src/intel.h @@ -75,7 +75,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <libudev.h> #endif -#include "uxa.h" /* XXX * The X server gained an *almost* identical implementation in 1.9. * @@ -316,7 +315,7 @@ typedef struct intel_screen_private { void (*batch_flush) (struct intel_screen_private *intel); void (*batch_commit_notify) (struct intel_screen_private *intel); - uxa_driver_t *uxa_driver; + struct _UxaDriver *uxa_driver; Bool need_sync; int accel_pixmap_offset_alignment; int accel_max_x; diff --git a/src/intel_batchbuffer.c b/src/intel_batchbuffer.c index 89a9969..2b8fbb6 100644 --- a/src/intel_batchbuffer.c +++ b/src/intel_batchbuffer.c @@ -40,6 +40,8 @@ #include "i915_drm.h" #include "i965_reg.h" +#include "uxa.h" + #define DUMP_BATCHBUFFERS NULL // "/tmp/i915-batchbuffers.dump" static void intel_end_vertex(intel_screen_private *intel) diff --git a/src/intel_dri.c b/src/intel_dri.c index 1227dbb..135ba4e 100644 --- a/src/intel_dri.c +++ b/src/intel_dri.c @@ -56,8 +56,8 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "windowstr.h" #include "shadow.h" - #include "xaarop.h" +#include "fb.h" #include "intel.h" #include "i830_reg.h" diff --git a/src/intel_driver.c b/src/intel_driver.c index f385819..188c512 100644 --- a/src/intel_driver.c +++ b/src/intel_driver.c @@ -70,6 +70,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #endif #include "legacy/legacy.h" +#include "uxa.h" #include <sys/ioctl.h> #include "i915_drm.h" diff --git a/src/intel_module.c b/src/intel_module.c index 3a0ecc9..80b5da8 100644 --- a/src/intel_module.c +++ b/src/intel_module.c @@ -346,8 +346,10 @@ static Bool intel_pci_probe(DriverPtr driver, default: #if USE_SNA sna_init_scrn(scrn, entity_num); -#else +#elif USE_UXA intel_init_scrn(scrn); +#else + scrn = NULL; #endif break; } @@ -387,8 +389,10 @@ intel_available_options(int chipid, int busid) default: #if USE_SNA return sna_available_options(chipid, busid); -#else +#elif USE_UXA return intel_uxa_available_options(chipid, busid); +#else + return NULL; #endif } } diff --git a/src/intel_uxa.c b/src/intel_uxa.c index 8c6f754..94dfb86 100644 --- a/src/intel_uxa.c +++ b/src/intel_uxa.c @@ -40,6 +40,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <string.h> #include <errno.h> +#include "uxa.h" + static const int I830CopyROP[16] = { ROP_0, /* GXclear */ ROP_DSa, /* GXand */ commit edbeab8c4edf9e0e89d85add485fe659795b6350 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Nov 15 10:17:06 2011 +0000 sna: Reduce and clarify dependencies Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/src/common.h b/src/common.h index 6b9c315..f9f2300 100644 --- a/src/common.h +++ b/src/common.h @@ -109,7 +109,7 @@ static inline void memcpy_volatile(volatile void *dst, const void *src, size_t i; for (i = 0; i < len; i++) - ((volatile char *)dst)[i] = ((volatile char *)src)[i]; + ((volatile char *)dst)[i] = ((const volatile char *)src)[i]; } /* Memory mapped register access macros */ diff --git a/src/intel.h b/src/intel.h index 3b3f87d..ed95063 100644 --- a/src/intel.h +++ b/src/intel.h @@ -57,7 +57,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "xf86Pci.h" #include "xf86Cursor.h" #include "xf86xv.h" -#include "vgaHW.h" #include "xf86Crtc.h" #include "xf86RandR12.h" @@ -636,7 +635,7 @@ intel_get_transformed_coordinates_3d(int x, int y, PictTransformPtr transform, float *x_out, float *y_out, float *z_out); static inline void -intel_debug_fallback(ScrnInfoPtr scrn, char *format, ...) +intel_debug_fallback(ScrnInfoPtr scrn, const char *format, ...) { intel_screen_private *intel = intel_get_screen_private(scrn); va_list ap; diff --git a/src/intel_display.c b/src/intel_display.c index 84c7c08..542dc20 100644 --- a/src/intel_display.c +++ b/src/intel_display.c @@ -42,6 +42,8 @@ #include "intel_bufmgr.h" #include "xf86drmMode.h" #include "X11/Xatom.h" +#include "X11/extensions/dpmsconst.h" +#include "xf86DDC.h" struct intel_mode { int fd; diff --git a/src/intel_driver.c b/src/intel_driver.c index 24696da..f385819 100644 --- a/src/intel_driver.c +++ b/src/intel_driver.c @@ -50,11 +50,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "xf86cmap.h" #include "compiler.h" #include "mibstore.h" -#include "vgaHW.h" #include "mipointer.h" #include "micmap.h" #include "shadowfb.h" #include <X11/extensions/randr.h> +#include <X11/extensions/dpmsconst.h> #include "fb.h" #include "miscstruct.h" #include "dixstruct.h" @@ -1118,9 +1118,6 @@ static void I830FreeScreen(int scrnIndex, int flags) free(intel); scrn->driverPrivate = NULL; } - - if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); } static void I830LeaveVT(int scrnIndex, int flags) diff --git a/src/sna/Makefile.am b/src/sna/Makefile.am index ac60988..30cedc6 100644 --- a/src/sna/Makefile.am +++ b/src/sna/Makefile.am @@ -35,6 +35,7 @@ libsna_la_SOURCES = \ compiler.h \ kgem.c \ kgem.h \ + rop.h \ sna.h \ sna_accel.c \ sna_blt.c \ diff --git a/src/sna/rop.h b/src/sna/rop.h new file mode 100644 index 0000000..9db15cf --- /dev/null +++ b/src/sna/rop.h @@ -0,0 +1,264 @@ +#ifndef ROP_H +#define ROP_H + +#define ROP_0 0x00 +#define ROP_DPSoon 0x01 +#define ROP_DPSona 0x02 +#define ROP_PSon 0x03 +#define ROP_SDPona 0x04 +#define ROP_DPon 0x05 +#define ROP_PDSxnon 0x06 +#define ROP_PDSaon 0x07 +#define ROP_SDPnaa 0x08 +#define ROP_PDSxon 0x09 +#define ROP_DPna 0x0A +#define ROP_PSDnaon 0x0B +#define ROP_SPna 0x0C +#define ROP_PDSnaon 0x0D +#define ROP_PDSonon 0x0E +#define ROP_Pn 0x0F +#define ROP_PDSona 0x10 +#define ROP_DSon 0x11 +#define ROP_SDPxnon 0x12 +#define ROP_SDPaon 0x13 +#define ROP_DPSxnon 0x14 +#define ROP_DPSaon 0x15 +#define ROP_PSDPSanaxx 0x16 +#define ROP_SSPxDSxaxn 0x17 +#define ROP_SPxPDxa 0x18 +#define ROP_SDPSanaxn 0x19 +#define ROP_PDSPaox 0x1A +#define ROP_SDPSxaxn 0x1B +#define ROP_PSDPaox 0x1C +#define ROP_DSPDxaxn 0x1D +#define ROP_PDSox 0x1E +#define ROP_PDSoan 0x1F +#define ROP_DPSnaa 0x20 +#define ROP_SDPxon 0x21 +#define ROP_DSna 0x22 +#define ROP_SPDnaon 0x23 +#define ROP_SPxDSxa 0x24 +#define ROP_PDSPanaxn 0x25 +#define ROP_SDPSaox 0x26 +#define ROP_SDPSxnox 0x27 +#define ROP_DPSxa 0x28 +#define ROP_PSDPSaoxxn 0x29 +#define ROP_DPSana 0x2A +#define ROP_SSPxPDxaxn 0x2B +#define ROP_SPDSoax 0x2C +#define ROP_PSDnox 0x2D +#define ROP_PSDPxox 0x2E +#define ROP_PSDnoan 0x2F +#define ROP_PSna 0x30 +#define ROP_SDPnaon 0x31 +#define ROP_SDPSoox 0x32 +#define ROP_Sn 0x33 +#define ROP_SPDSaox 0x34 +#define ROP_SPDSxnox 0x35 +#define ROP_SDPox 0x36 +#define ROP_SDPoan 0x37 +#define ROP_PSDPoax 0x38 +#define ROP_SPDnox 0x39 +#define ROP_SPDSxox 0x3A +#define ROP_SPDnoan 0x3B +#define ROP_PSx 0x3C +#define ROP_SPDSonox 0x3D +#define ROP_SPDSnaox 0x3E +#define ROP_PSan 0x3F +#define ROP_PSDnaa 0x40 +#define ROP_DPSxon 0x41 +#define ROP_SDxPDxa 0x42 +#define ROP_SPDSanaxn 0x43 +#define ROP_SDna 0x44 +#define ROP_DPSnaon 0x45 +#define ROP_DSPDaox 0x46 +#define ROP_PSDPxaxn 0x47 +#define ROP_SDPxa 0x48 +#define ROP_PDSPDaoxxn 0x49 +#define ROP_DPSDoax 0x4A +#define ROP_PDSnox 0x4B +#define ROP_SDPana 0x4C +#define ROP_SSPxDSxoxn 0x4D +#define ROP_PDSPxox 0x4E +#define ROP_PDSnoan 0x4F +#define ROP_PDna 0x50 +#define ROP_DSPnaon 0x51 +#define ROP_DPSDaox 0x52 +#define ROP_SPDSxaxn 0x53 +#define ROP_DPSonon 0x54 +#define ROP_Dn 0x55 +#define ROP_DPSox 0x56 +#define ROP_DPSoan 0x57 +#define ROP_PDSPoax 0x58 +#define ROP_DPSnox 0x59 +#define ROP_DPx 0x5A +#define ROP_DPSDonox 0x5B +#define ROP_DPSDxox 0x5C +#define ROP_DPSnoan 0x5D +#define ROP_DPSDnaox 0x5E +#define ROP_DPan 0x5F +#define ROP_PDSxa 0x60 +#define ROP_DSPDSaoxxn 0x61 +#define ROP_DSPDoax 0x62 +#define ROP_SDPnox 0x63 +#define ROP_SDPSoax 0x64 +#define ROP_DSPnox 0x65 +#define ROP_DSx 0x66 +#define ROP_SDPSonox 0x67 +#define ROP_DSPDSonoxxn 0x68 +#define ROP_PDSxxn 0x69 +#define ROP_DPSax 0x6A +#define ROP_PSDPSoaxxn 0x6B +#define ROP_SDPax 0x6C +#define ROP_PDSPDoaxxn 0x6D +#define ROP_SDPSnoax 0x6E +#define ROP_PDSxnan 0x6F +#define ROP_PDSana 0x70 +#define ROP_SSDxPDxaxn 0x71 +#define ROP_SDPSxox 0x72 +#define ROP_SDPnoan 0x73 +#define ROP_DSPDxox 0x74 +#define ROP_DSPnoan 0x75 +#define ROP_SDPSnaox 0x76 +#define ROP_DSan 0x77 +#define ROP_PDSax 0x78 +#define ROP_DSPDSoaxxn 0x79 +#define ROP_DPSDnoax 0x7A +#define ROP_SDPxnan 0x7B +#define ROP_SPDSnoax 0x7C +#define ROP_DPSxnan 0x7D +#define ROP_SPxDSxo 0x7E +#define ROP_DPSaan 0x7F +#define ROP_DPSaa 0x80 +#define ROP_SPxDSxon 0x81 +#define ROP_DPSxna 0x82 +#define ROP_SPDSnoaxn 0x83 +#define ROP_SDPxna 0x84 +#define ROP_PDSPnoaxn 0x85 +#define ROP_DSPDSoaxx 0x86 +#define ROP_PDSaxn 0x87 +#define ROP_DSa 0x88 +#define ROP_SDPSnaoxn 0x89 +#define ROP_DSPnoa 0x8A +#define ROP_DSPDxoxn 0x8B +#define ROP_SDPnoa 0x8C +#define ROP_SDPSxoxn 0x8D +#define ROP_SSDxPDxax 0x8E +#define ROP_PDSanan 0x8F +#define ROP_PDSxna 0x90 +#define ROP_SDPSnoaxn 0x91 +#define ROP_DPSDPoaxx 0x92 +#define ROP_SPDaxn 0x93 +#define ROP_PSDPSoaxx 0x94 +#define ROP_DPSaxn 0x95 +#define ROP_DPSxx 0x96 +#define ROP_PSDPSonoxx 0x97 +#define ROP_SDPSonoxn 0x98 +#define ROP_DSxn 0x99 +#define ROP_DPSnax 0x9A +#define ROP_SDPSoaxn 0x9B +#define ROP_SPDnax 0x9C +#define ROP_DSPDoaxn 0x9D +#define ROP_DSPDSaoxx 0x9E +#define ROP_PDSxan 0x9F +#define ROP_DPa 0xA0 +#define ROP_PDSPnaoxn 0xA1 +#define ROP_DPSnoa 0xA2 +#define ROP_DPSDxoxn 0xA3 +#define ROP_PDSPonoxn 0xA4 +#define ROP_PDxn 0xA5 +#define ROP_DSPnax 0xA6 +#define ROP_PDSPoaxn 0xA7 +#define ROP_DPSoa 0xA8 +#define ROP_DPSoxn 0xA9 +#define ROP_D 0xAA +#define ROP_DPSono 0xAB +#define ROP_SPDSxax 0xAC +#define ROP_DPSDaoxn 0xAD +#define ROP_DSPnao 0xAE +#define ROP_DPno 0xAF +#define ROP_PDSnoa 0xB0 +#define ROP_PDSPxoxn 0xB1 +#define ROP_SSPxDSxox 0xB2 +#define ROP_SDPanan 0xB3 +#define ROP_PSDnax 0xB4 +#define ROP_DPSDoaxn 0xB5 +#define ROP_DPSDPaoxx 0xB6 +#define ROP_SDPxan 0xB7 +#define ROP_PSDPxax 0xB8 +#define ROP_DSPDaoxn 0xB9 +#define ROP_DPSnao 0xBA +#define ROP_DSno 0xBB +#define ROP_SPDSanax 0xBC +#define ROP_SDxPDxan 0xBD +#define ROP_DPSxo 0xBE +#define ROP_DPSano 0xBF +#define ROP_Psa 0xC0 +#define ROP_SPDSnaoxn 0xC1 +#define ROP_SPDSonoxn 0xC2 +#define ROP_PSxn 0xC3 +#define ROP_SPDnoa 0xC4 +#define ROP_SPDSxoxn 0xC5 +#define ROP_SDPnax 0xC6 +#define ROP_PSDPoaxn 0xC7 +#define ROP_SDPoa 0xC8 +#define ROP_SPDoxn 0xC9 +#define ROP_DPSDxax 0xCA +#define ROP_SPDSaoxn 0xCB +#define ROP_S 0xCC +#define ROP_SDPono 0xCD +#define ROP_SDPnao 0xCE +#define ROP_SPno 0xCF +#define ROP_PSDnoa 0xD0 +#define ROP_PSDPxoxn 0xD1 +#define ROP_PDSnax 0xD2 +#define ROP_SPDSoaxn 0xD3 +#define ROP_SSPxPDxax 0xD4 +#define ROP_DPSanan 0xD5 +#define ROP_PSDPSaoxx 0xD6 +#define ROP_DPSxan 0xD7 +#define ROP_PDSPxax 0xD8 +#define ROP_SDPSaoxn 0xD9 +#define ROP_DPSDanax 0xDA +#define ROP_SPxDSxan 0xDB +#define ROP_SPDnao 0xDC +#define ROP_SDno 0xDD +#define ROP_SDPxo 0xDE +#define ROP_SDPano 0xDF +#define ROP_PDSoa 0xE0 +#define ROP_PDSoxn 0xE1 +#define ROP_DSPDxax 0xE2 +#define ROP_PSDPaoxn 0xE3 +#define ROP_SDPSxax 0xE4 +#define ROP_PDSPaoxn 0xE5 +#define ROP_SDPSanax 0xE6 +#define ROP_SPxPDxan 0xE7 +#define ROP_SSPxDSxax 0xE8 +#define ROP_DSPDSanaxxn 0xE9 +#define ROP_DPSao 0xEA +#define ROP_DPSxno 0xEB +#define ROP_SDPao 0xEC +#define ROP_SDPxno 0xED +#define ROP_DSo 0xEE +#define ROP_SDPnoo 0xEF +#define ROP_P 0xF0 +#define ROP_PDSono 0xF1 +#define ROP_PDSnao 0xF2 +#define ROP_PSno 0xF3 +#define ROP_PSDnao 0xF4 +#define ROP_PDno 0xF5 +#define ROP_PDSxo 0xF6 +#define ROP_PDSano 0xF7 +#define ROP_PDSao 0xF8 +#define ROP_PDSxno 0xF9 +#define ROP_DPo 0xFA +#define ROP_DPSnoo 0xFB +#define ROP_PSo 0xFC +#define ROP_PSDnoo 0xFD +#define ROP_DPSoo 0xFE +#define ROP_1 0xFF + +#define NO_SRC_ROP(rop) \ + ((rop == GXnoop) || (rop == GXset) || (rop == GXclear) || (rop == GXinvert)) + +#endif /* ROP_H */ diff --git a/src/sna/sna.h b/src/sna/sna.h index 573fe0e..9492fc2 100644 --- a/src/sna/sna.h +++ b/src/sna/sna.h @@ -49,7 +49,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include <xf86Pci.h> #include <xf86Cursor.h> #include <xf86xv.h> -#include <vgaHW.h> #include <xf86Crtc.h> #include <xf86RandR12.h> #include <gcstruct.h> diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index e0990c5..46992f6 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -31,11 +31,11 @@ #include "sna.h" #include "sna_reg.h" +#include "rop.h" #include <X11/fonts/font.h> #include <X11/fonts/fontstruct.h> -#include <xaarop.h> #include <fb.h> #include <dixfontstr.h> diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c index 0290a33..4c7beab 100644 --- a/src/sna/sna_blt.c +++ b/src/sna/sna_blt.c @@ -36,10 +36,10 @@ #include "sna_render.h" #include "sna_render_inline.h" #include "sna_reg.h" +#include "rop.h" #include <mipict.h> #include <fbpict.h> -#include <xaarop.h> #if DEBUG_BLT #undef DBG diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c index 532dd80..1d66a8d 100644 --- a/src/sna/sna_composite.c +++ b/src/sna/sna_composite.c @@ -726,7 +726,6 @@ fallback: sna_drawable_move_to_cpu(dst->alphaMap->pDrawable, true); if (op == PictOpSrc || op == PictOpClear) { - PixmapPtr pixmap = get_drawable_pixmap(dst->pDrawable); int nbox = REGION_NUM_RECTS(®ion); BoxPtr box = REGION_RECTS(®ion); uint32_t pixel; diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index b1275ed..32162ef 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -39,6 +39,8 @@ #include <xorgVersion.h> #include <X11/Xatom.h> +#include <X11/extensions/dpmsconst.h> +#include <xf86DDC.h> #include "sna.h" #include "sna_reg.h" diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c index 693febc..19413a9 100644 --- a/src/sna/sna_driver.c +++ b/src/sna/sna_driver.c @@ -45,21 +45,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include <stdio.h> #include <errno.h> -#include "xf86.h" -#include "xf86_OSproc.h" -#include "xf86cmap.h" +#include <xf86cmap.h> +#include <micmap.h> +#include <fb.h> + #include "compiler.h" -#include "mibstore.h" -#include "vgaHW.h" -#include "mipointer.h" -#include "micmap.h" -#include "shadowfb.h" -#include <X11/extensions/randr.h> -#include "fb.h" -#include "miscstruct.h" -#include "dixstruct.h" -#include "xf86xv.h" -#include <X11/extensions/Xv.h> #include "sna.h" #include "sna_module.h" #include "sna_video.h" @@ -973,9 +963,6 @@ static void sna_free_screen(int scrnIndex, int flags) } sna_close_drm_master(scrn); - - if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); } /* commit 78d4e99fc916e6477edb01c6f24b69ad73adc552 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Tue Nov 15 11:06:04 2011 +0000 sna: And keep unity happy Rewrite the DRI layer to avoid the various bugs and shortcomings of the Xserver and interfacing with mesa. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38732 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=39044 Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/src/sna/kgem.c b/src/sna/kgem.c index c854846..89caf96 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -263,7 +263,6 @@ static struct kgem_bo *__kgem_bo_init(struct kgem_bo *bo, bo->handle = handle; bo->size = size; bo->reusable = true; - bo->purgeable = true; bo->cpu_read = true; bo->cpu_write = true; list_init(&bo->request); @@ -577,6 +576,8 @@ static void kgem_bo_free(struct kgem *kgem, struct kgem_bo *bo) { struct kgem_bo_binding *b; + DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle)); + b = bo->binding.next; while (b) { struct kgem_bo_binding *next = b->next; @@ -592,6 +593,8 @@ static void kgem_bo_free(struct kgem *kgem, struct kgem_bo *bo) static void __kgem_bo_destroy(struct kgem *kgem, struct kgem_bo *bo) { + DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle)); + assert(list_is_empty(&bo->list)); assert(bo->refcnt == 0); @@ -603,9 +606,11 @@ static void __kgem_bo_destroy(struct kgem *kgem, struct kgem_bo *bo) if(!bo->reusable) goto destroy; - if (bo->purgeable && !bo->rq && !bo->needs_flush) { + if (!bo->rq && !bo->needs_flush) { assert(!bo->purged); + DBG(("%s: handle=%d, purged\n", __FUNCTION__, bo->handle)); + if (!gem_madvise(kgem->fd, bo->handle, I915_MADV_DONTNEED)) { kgem->need_purge |= bo->gpu; goto destroy; @@ -616,10 +621,13 @@ static void __kgem_bo_destroy(struct kgem *kgem, struct kgem_bo *bo) kgem->need_expire = true; if (bo->rq) { + DBG(("%s: handle=%d -> active\n", __FUNCTION__, bo->handle)); list_move(&bo->list, active(kgem, bo->size)); } else if (bo->purged) { + DBG(("%s: handle=%d -> inactive\n", __FUNCTION__, bo->handle)); list_move(&bo->list, inactive(kgem, bo->size)); } else { + DBG(("%s: handle=%d -> flushing\n", __FUNCTION__, bo->handle)); assert(list_is_empty(&bo->request)); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1rr0xv-0002gl...@vasks.debian.org