NEWS | 45 configure.ac | 113 +- debian/changelog | 27 debian/copyright | 360 +++++- debian/patches/fix-uxa-fglrx-stealing.diff | 646 ----------- debian/patches/series | 4 debian/patches/sna-freescreen.diff | 19 debian/patches/sna-use-vmask-in-3dstate-ps.diff | 65 - debian/source/format | 1 debian/upstream.changelog | 1088 +++++++++++++++++++ debian/xserver-xorg-video-intel.maintscript | 1 man/intel.man | 11 src/backlight.c | 75 + src/backlight.h | 4 src/compat-api.h | 32 src/fd.c | 24 src/fd.h | 1 src/i915_pciids.h | 17 src/intel_device.c | 152 ++ src/intel_driver.h | 25 src/intel_module.c | 61 - src/legacy/i810/i810_driver.c | 4 src/render_program/Makefile.am | 11 src/render_program/exa_wm_src_affine.g8a | 1 src/render_program/exa_wm_src_sample_argb.g8a | 1 src/render_program/exa_wm_src_sample_planar.g8a | 1 src/render_program/exa_wm_write.g8a | 1 src/render_program/exa_wm_yuv_rgb.g8a | 105 + src/render_program/exa_wm_yuv_rgb.g8b | 21 src/sna/Makefile.am | 1 src/sna/brw/brw_eu.c | 4 src/sna/brw/brw_eu.h | 2 src/sna/brw/brw_test_gen4.c | 12 src/sna/brw/brw_test_gen5.c | 14 src/sna/brw/brw_test_gen6.c | 6 src/sna/brw/brw_test_gen7.c | 2 src/sna/brw/brw_wm.c | 4 src/sna/fb/fbpict.c | 12 src/sna/gen2_render.c | 4 src/sna/gen3_render.c | 4 src/sna/gen4_render.c | 6 src/sna/gen4_vertex.c | 8 src/sna/gen5_render.c | 8 src/sna/gen6_render.c | 139 +- src/sna/gen7_render.c | 22 src/sna/gen8_eu.c | 32 src/sna/gen8_render.c | 88 - src/sna/gen8_render.h | 30 src/sna/kgem.c | 1047 ++++++++++++------- src/sna/kgem.h | 75 + src/sna/sna.h | 31 src/sna/sna_accel.c | 773 ++++++++------ src/sna/sna_blt.c | 149 +- src/sna/sna_composite.c | 35 src/sna/sna_cpuid.h | 4 src/sna/sna_damage.h | 56 - src/sna/sna_display.c | 1262 ++++++++++++++++------ src/sna/sna_display_fake.c | 7 src/sna/sna_dri2.c | 487 ++++---- src/sna/sna_dri3.c | 2 src/sna/sna_driver.c | 155 +- src/sna/sna_glyphs.c | 36 src/sna/sna_io.c | 67 - src/sna/sna_present.c | 29 src/sna/sna_render.c | 116 +- src/sna/sna_render.h | 8 src/sna/sna_render_inline.h | 29 src/sna/sna_transform.c | 8 src/sna/sna_trapezoids.c | 21 src/sna/sna_trapezoids.h | 74 + src/sna/sna_trapezoids_boxes.c | 45 src/sna/sna_trapezoids_imprecise.c | 783 ++++++-------- src/sna/sna_trapezoids_mono.c | 209 +++ src/sna/sna_trapezoids_precise.c | 879 ++++++++++----- src/sna/sna_video.c | 41 src/sna/sna_video.h | 1 src/sna/sna_video_hwmc.c | 2 src/sna/sna_video_overlay.c | 50 src/sna/sna_video_sprite.c | 51 src/sna/sna_video_textured.c | 56 - src/sna/xassert.h | 42 src/uxa/Makefile.am | 14 src/uxa/i830_3d.c | 1 src/uxa/i830_render.c | 83 - src/uxa/i915_3d.c | 1 src/uxa/i915_render.c | 101 - src/uxa/i915_video.c | 12 src/uxa/i965_3d.c | 1 src/uxa/i965_render.c | 99 - src/uxa/i965_video.c | 50 src/uxa/intel.h | 294 ----- src/uxa/intel_batchbuffer.c | 10 src/uxa/intel_batchbuffer.h | 4 src/uxa/intel_display.c | 513 +++++++-- src/uxa/intel_dri.c | 155 -- src/uxa/intel_dri3.c | 21 src/uxa/intel_driver.c | 103 - src/uxa/intel_glamor.c | 275 ----- src/uxa/intel_glamor.h | 71 - src/uxa/intel_hwmc.c | 8 src/uxa/intel_memory.c | 140 ++ src/uxa/intel_present.c | 16 src/uxa/intel_uxa.c | 383 ++---- src/uxa/intel_uxa.h | 299 +++++ src/uxa/intel_uxa_video.c | 388 +++++++ src/uxa/intel_video.c | 1320 +++--------------------- src/uxa/intel_video.h | 156 ++ src/uxa/intel_video_overlay.c | 554 ++++++++++ src/uxa/intel_video_overlay.h | 51 src/uxa/uxa-accel.c | 295 ----- src/uxa/uxa-glamor.h | 65 - src/uxa/uxa-glyphs.c | 28 src/uxa/uxa-render.c | 91 - src/uxa/uxa.c | 11 src/uxa/uxa.h | 16 test/.gitignore | 2 test/DrawSegments.c | 249 ++++ test/Makefile.am | 2 test/README | 8 test/cursor-test.c | 159 ++ test/lowlevel-blt-bench.c | 9 tools/virtual.c | 7 122 files changed, 9595 insertions(+), 6414 deletions(-)
New commits: commit e9b2e10b055df8720168f9bf375e39f1fe65a239 Author: Timo Aaltonen <tjaal...@debian.org> Date: Fri Dec 12 09:51:37 2014 +0200 release to vivid diff --git a/debian/changelog b/debian/changelog index 2364dc9..82d565d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1ubuntu1) UNRELEASED; urgency=medium +xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1ubuntu1) vivid; urgency=medium * Merge from debian experimental (LP: #1401784, #1401788) * Drop upstream patches. commit 1d5579e8b0d20d369f9025ef813b4851f23fa8e9 Author: Timo Aaltonen <tjaal...@debian.org> Date: Fri Dec 12 09:44:08 2014 +0200 drop patches, close bugs diff --git a/debian/changelog b/debian/changelog index e73e1fa..2364dc9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1ubuntu1) UNRELEASED; urgency=medium + + * Merge from debian experimental (LP: #1401784, #1401788) + * Drop upstream patches. + + -- Timo Aaltonen <tjaal...@debian.org> Fri, 12 Dec 2014 09:24:52 +0200 + xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1) experimental; urgency=medium * New upstream snapshot. diff --git a/debian/patches/fix-uxa-fglrx-stealing.diff b/debian/patches/fix-uxa-fglrx-stealing.diff deleted file mode 100644 index f67a1e4..0000000 --- a/debian/patches/fix-uxa-fglrx-stealing.diff +++ /dev/null @@ -1,646 +0,0 @@ -commit c139e2fb95f2db0b39aadcd58cc63b316a278951 -Author: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Wed Oct 8 13:59:55 2014 +0100 - - intel: Store pointer to struct intel_device - - Beware the barbarians at the gate, who invade and steal your ScrnInfoPtr - and its Entity from underneath you. In some configurations, we lose - access to the struct intel_device stored on the Entity after - initialisation, causing havoc. Workaround this by storing the - intel_device that we open in our driverPrivate. - - Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - ---- a/src/intel_device.c -+++ b/src/intel_device.c -@@ -65,9 +65,11 @@ - #include "fd.h" - - struct intel_device { -+ int idx; - char *master_node; - char *render_node; - int fd; -+ int device_id; - int open_count; - int master_count; - }; -@@ -97,7 +99,7 @@ - if (dev == NULL) - return 0; - -- return __intel_get_device_id(dev->fd); -+ return dev->device_id; - } - - static inline struct intel_device *intel_device(ScrnInfoPtr scrn) -@@ -108,11 +110,6 @@ - return xf86GetEntityPrivate(scrn->entityList[0], intel_device_key)->ptr; - } - --static inline void intel_set_device(ScrnInfoPtr scrn, struct intel_device *dev) --{ -- xf86GetEntityPrivate(scrn->entityList[0], intel_device_key)->ptr = dev; --} -- - static int is_i915_device(int fd) - { - drm_version_t version; -@@ -511,6 +508,12 @@ - if (geteuid() && is_master(fd)) - master_count++; - -+ if (pci) -+ dev->device_id = pci->device_id; -+ else -+ dev->device_id = __intel_get_device_id(fd); -+ -+ dev->idx = entity_num; - dev->fd = fd; - dev->open_count = master_count; - dev->master_count = master_count; -@@ -541,13 +544,15 @@ - return dev->fd; - } - --int intel_get_device(ScrnInfoPtr scrn) -+struct intel_device *intel_get_device(ScrnInfoPtr scrn, int *fd) - { - struct intel_device *dev; - int ret; - - dev = intel_device(scrn); -- assert(dev && dev->fd != -1); -+ if (dev == NULL) -+ return NULL; -+ assert(dev->fd != -1); - - if (dev->open_count++ == 0) { - drmSetVersion sv; -@@ -575,16 +580,16 @@ - "[drm] failed to set drm interface version: %s [%d].\n", - strerror(errno), errno); - dev->open_count--; -- return -1; -+ return NULL; - } - } - -- return dev->fd; -+ *fd = dev->fd; -+ return dev; - } - --const char *intel_get_client_name(ScrnInfoPtr scrn) -+const char *intel_get_client_name(struct intel_device *dev) - { -- struct intel_device *dev = intel_device(scrn); - assert(dev && dev->render_node); - return dev->render_node; - } -@@ -600,14 +605,11 @@ - return drmGetMagic(fd, &magic) == 0 && drmAuthMagic(dev->fd, magic) == 0; - } - --int intel_get_client_fd(ScrnInfoPtr scrn) -+int intel_get_client_fd(struct intel_device *dev) - { -- struct intel_device *dev; - int fd = -1; - -- dev = intel_device(scrn); -- assert(dev); -- assert(dev->fd != -1); -+ assert(dev && dev->fd != -1); - assert(dev->render_node); - - #ifdef O_CLOEXEC -@@ -628,16 +630,14 @@ - return fd; - } - --int intel_get_device_id(ScrnInfoPtr scrn) -+int intel_get_device_id(struct intel_device *dev) - { -- struct intel_device *dev = intel_device(scrn); - assert(dev && dev->fd != -1); -- return __intel_get_device_id(dev->fd); -+ return dev->device_id; - } - --int intel_get_master(ScrnInfoPtr scrn) -+int intel_get_master(struct intel_device *dev) - { -- struct intel_device *dev = intel_device(scrn); - int ret; - - assert(dev && dev->fd != -1); -@@ -658,9 +658,8 @@ - return ret; - } - --int intel_put_master(ScrnInfoPtr scrn) -+int intel_put_master(struct intel_device *dev) - { -- struct intel_device *dev = intel_device(scrn); - int ret; - - assert(dev && dev->fd != -1); -@@ -676,10 +675,8 @@ - return ret; - } - --void intel_put_device(ScrnInfoPtr scrn) -+void intel_put_device(struct intel_device *dev) - { -- struct intel_device *dev = intel_device(scrn); -- - assert(dev && dev->fd != -1); - - assert(dev->open_count); -@@ -687,7 +684,7 @@ - return; - - assert(!hosted()); -- intel_set_device(scrn, NULL); -+ xf86GetEntityPrivate(dev->idx, intel_device_key)->ptr = NULL; - - drmClose(dev->fd); - if (dev->render_node != dev->master_node) ---- a/src/intel_driver.h -+++ b/src/intel_driver.h -@@ -119,22 +119,24 @@ - struct intel_device_info { - int gen; - }; -+struct intel_device; - - int intel_entity_get_devid(int index); - --void intel_detect_chipset(ScrnInfoPtr scrn, EntityInfoPtr ent); -- - int intel_open_device(int entity_num, - const struct pci_device *pci, - struct xf86_platform_device *dev); - int __intel_peek_fd(ScrnInfoPtr scrn); --int intel_get_device(ScrnInfoPtr scrn); --const char *intel_get_client_name(ScrnInfoPtr scrn); --int intel_get_client_fd(ScrnInfoPtr scrn); --int intel_get_device_id(ScrnInfoPtr scrn); --int intel_get_master(ScrnInfoPtr scrn); --int intel_put_master(ScrnInfoPtr scrn); --void intel_put_device(ScrnInfoPtr scrn); -+ -+struct intel_device *intel_get_device(ScrnInfoPtr scrn, int *fd); -+const char *intel_get_client_name(struct intel_device *dev); -+int intel_get_client_fd(struct intel_device *dev); -+int intel_get_device_id(struct intel_device *dev); -+int intel_get_master(struct intel_device *dev); -+int intel_put_master(struct intel_device *dev); -+void intel_put_device(struct intel_device *dev); -+ -+void intel_detect_chipset(ScrnInfoPtr scrn, struct intel_device *dev); - - #define hosted() (xorgMir) - ---- a/src/intel_module.c -+++ b/src/intel_module.c -@@ -318,27 +318,31 @@ - }; - - void --intel_detect_chipset(ScrnInfoPtr scrn, EntityInfoPtr ent) -+intel_detect_chipset(ScrnInfoPtr scrn, struct intel_device *dev) - { -- MessageType from = X_PROBED; -- const char *name = NULL; - int devid; -+ const char *name = NULL; - int i; - -- if (ent->device->chipID >= 0) { -- xf86DrvMsg(scrn->scrnIndex, from = X_CONFIG, -- "ChipID override: 0x%04X\n", -- ent->device->chipID); -- devid = ent->device->chipID; -- } else { -+ if (dev == NULL) { -+ EntityInfoPtr ent; - struct pci_device *pci; - -- pci = xf86GetPciInfoForEntity(ent->index); -- if (pci != NULL) -- devid = pci->device_id; -- else -- devid = intel_get_device_id(scrn); -- } -+ ent = xf86GetEntityInfo(scrn->entityList[0]); -+ if (ent->device->chipID >= 0) { -+ xf86DrvMsg(scrn->scrnIndex, X_CONFIG, -+ "ChipID override: 0x%04X\n", -+ ent->device->chipID); -+ devid = ent->device->chipID; -+ } else { -+ pci = xf86GetPciInfoForEntity(ent->index); -+ if (pci) -+ devid = pci->device_id; -+ else -+ devid = ~0; -+ } -+ } else -+ devid = intel_get_device_id(dev); - - for (i = 0; intel_chipsets[i].name != NULL; i++) { - if (devid == intel_chipsets[i].token) { -@@ -358,7 +362,7 @@ - } - - if (gen) { -- xf86DrvMsg(scrn->scrnIndex, from, -+ xf86DrvMsg(scrn->scrnIndex, X_PROBED, - "gen%d engineering sample\n", gen); - } else { - xf86DrvMsg(scrn->scrnIndex, X_WARNING, -@@ -367,7 +371,7 @@ - - name = "unknown"; - } else { -- xf86DrvMsg(scrn->scrnIndex, from, -+ xf86DrvMsg(scrn->scrnIndex, X_PROBED, - "Integrated Graphics Chipset: Intel(R) %s\n", - name); - } ---- a/src/legacy/i810/i810_driver.c -+++ b/src/legacy/i810/i810_driver.c -@@ -364,7 +364,7 @@ - */ - I810DoDDC(scrn, pI810->pEnt->index); - -- intel_detect_chipset(scrn, pI810->pEnt); -+ intel_detect_chipset(scrn, NULL); - - pI810->LinearAddr = pI810->PciInfo->regions[0].base_addr; - xf86DrvMsg(scrn->scrnIndex, X_PROBED, "Linear framebuffer at 0x%lX\n", ---- a/src/sna/gen5_render.c -+++ b/src/sna/gen5_render.c -@@ -3333,7 +3333,7 @@ - #if !NO_COMPOSITE_SPANS - sna->render.check_composite_spans = gen5_check_composite_spans; - sna->render.composite_spans = gen5_render_composite_spans; -- if (intel_get_device_id(sna->scrn) == 0x0044) -+ if (intel_get_device_id(sna->dev) == 0x0044) - sna->render.prefer_gpu |= PREFER_GPU_SPANS; - #endif - sna->render.video = gen5_render_video; ---- a/src/sna/gen6_render.c -+++ b/src/sna/gen6_render.c -@@ -3633,7 +3633,7 @@ - - const char *gen6_render_init(struct sna *sna, const char *backend) - { -- int devid = intel_get_device_id(sna->scrn); -+ int devid = intel_get_device_id(sna->dev); - - if (!gen6_render_setup(sna, devid)) - return backend; ---- a/src/sna/gen7_render.c -+++ b/src/sna/gen7_render.c -@@ -3885,7 +3885,7 @@ - - const char *gen7_render_init(struct sna *sna, const char *backend) - { -- int devid = intel_get_device_id(sna->scrn); -+ int devid = intel_get_device_id(sna->dev); - - if (!gen7_render_setup(sna, devid)) - return backend; ---- a/src/sna/gen8_render.c -+++ b/src/sna/gen8_render.c -@@ -3887,7 +3887,7 @@ - int i, j, k, l, m; - uint32_t devid; - -- devid = intel_get_device_id(sna->scrn); -+ devid = intel_get_device_id(sna->dev); - if (devid & 0xf) - state->gt = ((devid >> 4) & 0xf) + 1; - DBG(("%s: gt=%d\n", __FUNCTION__, state->gt)); ---- a/src/sna/sna.h -+++ b/src/sna/sna.h -@@ -239,6 +239,7 @@ - struct kgem kgem; - - ScrnInfoPtr scrn; -+ struct intel_device *dev; - - unsigned flags; - #define SNA_IS_SLAVED 0x1 ---- a/src/sna/sna_dri2.c -+++ b/src/sna/sna_dri2.c -@@ -3232,7 +3232,7 @@ - memset(&info, '\0', sizeof(info)); - info.fd = sna->kgem.fd; - info.driverName = dri_driver_name(sna); -- info.deviceName = intel_get_client_name(sna->scrn); -+ info.deviceName = intel_get_client_name(sna->dev); - - DBG(("%s: loading dri driver '%s' [gen=%d] for device '%s'\n", - __FUNCTION__, info.driverName, sna->kgem.gen, info.deviceName)); ---- a/src/sna/sna_dri3.c -+++ b/src/sna/sna_dri3.c -@@ -178,7 +178,7 @@ - int fd; - - DBG(("%s()\n", __FUNCTION__)); -- fd = intel_get_client_fd(xf86ScreenToScrn(screen)); -+ fd = intel_get_client_fd(to_sna_from_screen(screen)->dev); - if (fd < 0) - return -fd; - ---- a/src/sna/sna_driver.c -+++ b/src/sna/sna_driver.c -@@ -264,7 +264,7 @@ - assert(sna->front == new_front); - screen->DestroyPixmap(new_front); /* transfer ownership to screen */ - -- if (intel_get_master(sna->scrn)) { -+ if (intel_get_master(sna->dev)) { - xf86DrvMsg(screen->myNum, X_ERROR, - "[intel] Failed to become DRM master\n"); - screen->DestroyPixmap(sna->front); -@@ -595,8 +595,8 @@ - scrn->progClock = TRUE; - scrn->rgbBits = 8; - -- fd = intel_get_device(scrn); -- if (fd == -1) { -+ sna->dev = intel_get_device(scrn, &fd); -+ if (sna->dev == NULL) { - xf86DrvMsg(scrn->scrnIndex, X_ERROR, - "Failed to claim DRM device.\n"); - goto cleanup; -@@ -612,7 +612,7 @@ - goto cleanup; - } - -- intel_detect_chipset(scrn, pEnt); -+ intel_detect_chipset(scrn, sna->dev); - xf86DrvMsg(scrn->scrnIndex, X_PROBED, "CPU: %s\n", - sna_cpu_features_to_string(sna->cpu_features, buf)); - -@@ -720,6 +720,8 @@ - - cleanup: - scrn->driverPrivate = (void *)((uintptr_t)sna->info | (sna->flags & SNA_IS_SLAVED) | 2); -+ if (sna->dev) -+ intel_put_device(sna->dev); - free(sna); - return FALSE; - } -@@ -901,12 +903,13 @@ - static void sna_leave_vt(VT_FUNC_ARGS_DECL) - { - SCRN_INFO_PTR(arg); -+ struct sna *sna = to_sna(scrn); - - DBG(("%s\n", __FUNCTION__)); - -- sna_mode_reset(to_sna(scrn)); -+ sna_mode_reset(sna); - -- if (intel_put_master(scrn)) -+ if (intel_put_master(sna->dev)) - xf86DrvMsg(scrn->scrnIndex, X_WARNING, - "drmDropMaster failed: %s\n", strerror(errno)); - } -@@ -944,7 +947,7 @@ - } - - if (scrn->vtSema) { -- intel_put_master(scrn); -+ intel_put_master(sna->dev); - scrn->vtSema = FALSE; - } - -@@ -1197,9 +1200,9 @@ - - sna_mode_fini(sna); - sna_acpi_fini(sna); -- free(sna); - -- intel_put_device(scrn); -+ intel_put_device(sna->dev); -+ free(sna); - } - - static Bool sna_enter_vt(VT_FUNC_ARGS_DECL) -@@ -1208,7 +1211,7 @@ - struct sna *sna = to_sna(scrn); - - DBG(("%s\n", __FUNCTION__)); -- if (intel_get_master(scrn)) -+ if (intel_get_master(sna->dev)) - return FALSE; - - if (sna->flags & SNA_REPROBE) { ---- a/src/sna/sna_video_hwmc.c -+++ b/src/sna/sna_video_hwmc.c -@@ -81,7 +81,7 @@ - return BadAlloc; - - if (sna->kgem.gen >= 040) { -- int devid = intel_get_device_id(sna->scrn); -+ int devid = intel_get_device_id(sna->dev); - - if (sna->kgem.gen >= 045) - priv->type = XVMC_I965_MPEG2_VLD; ---- a/src/uxa/intel.h -+++ b/src/uxa/intel.h -@@ -54,7 +54,6 @@ - #include "xorg-server.h" - #include "xf86_OSproc.h" - #include "compiler.h" --#include "xf86Pci.h" - #include "xf86Cursor.h" - #include "xf86xv.h" - #include "xf86Crtc.h" -@@ -171,6 +170,7 @@ - - typedef struct intel_screen_private { - ScrnInfoPtr scrn; -+ struct intel_device *dev; - int cpp; - - #define RENDER_BATCH I915_EXEC_RENDER -@@ -223,7 +223,6 @@ - - int Chipset; - EntityInfoPtr pEnt; -- struct pci_device *PciInfo; - const struct intel_device_info *info; - - unsigned int BR[20]; -@@ -378,14 +377,14 @@ - #define IS_HSW(intel) (INTEL_INFO(intel)->gen == 075) - - /* Some chips have specific errata (or limits) that we need to workaround. */ --#define IS_I830(intel) ((intel)->PciInfo->device_id == PCI_CHIP_I830_M) --#define IS_845G(intel) ((intel)->PciInfo->device_id == PCI_CHIP_845_G) --#define IS_I865G(intel) ((intel)->PciInfo->device_id == PCI_CHIP_I865_G) -+#define IS_I830(intel) (intel_get_device_id((intel)->dev) == PCI_CHIP_I830_M) -+#define IS_845G(intel) (intel_get_device_id((intel)->dev) == PCI_CHIP_845_G) -+#define IS_I865G(intel) (intel_get_device_id((intel)->dev) == PCI_CHIP_I865_G) - --#define IS_I915G(pI810) ((intel)->PciInfo->device_id == PCI_CHIP_I915_G || (intel)->PciInfo->device_id == PCI_CHIP_E7221_G) --#define IS_I915GM(pI810) ((intel)->PciInfo->device_id == PCI_CHIP_I915_GM) -+#define IS_I915G(pI810) (intel_get_device_id((intel)->dev) == PCI_CHIP_I915_G || intel_get_device_id((intel)->dev) == PCI_CHIP_E7221_G) -+#define IS_I915GM(pI810) (intel_get_device_id((intel)->dev) == PCI_CHIP_I915_GM) - --#define IS_965_Q(pI810) ((intel)->PciInfo->device_id == PCI_CHIP_I965_Q) -+#define IS_965_Q(pI810) (intel_get_device_id((intel)->dev) == PCI_CHIP_I965_Q) - - /* supports Y tiled surfaces (pre-965 Mesa isn't ready yet) */ - #define SUPPORTS_YTILING(pI810) (INTEL_INFO(intel)->gen >= 040) ---- a/src/uxa/intel_dri3.c -+++ b/src/uxa/intel_dri3.c -@@ -36,9 +36,11 @@ - RRProviderPtr provider, - int *out) - { -+ ScrnInfoPtr scrn = xf86ScreenToScrn(screen); -+ intel_screen_private *intel = intel_get_screen_private(scrn); - int fd; - -- fd = intel_get_client_fd(xf86ScreenToScrn(screen)); -+ fd = intel_get_client_fd(intel->dev); - if (fd < 0) - return -fd; - ---- a/src/uxa/intel_driver.c -+++ b/src/uxa/intel_driver.c -@@ -181,7 +181,7 @@ - static void intel_check_chipset_option(ScrnInfoPtr scrn) - { - intel_screen_private *intel = intel_get_screen_private(scrn); -- intel_detect_chipset(scrn, intel->pEnt); -+ intel_detect_chipset(scrn, intel->dev); - } - - static Bool I830GetEarlyOptions(ScrnInfoPtr scrn) -@@ -247,9 +247,8 @@ - static Bool intel_open_drm_master(ScrnInfoPtr scrn) - { - intel_screen_private *intel = intel_get_screen_private(scrn); -- -- intel->drmSubFD = intel_get_device(scrn); -- return intel->drmSubFD != -1; -+ intel->dev = intel_get_device(scrn, &intel->drmSubFD); -+ return intel->dev != NULL; - } - - static int intel_init_bufmgr(intel_screen_private *intel) -@@ -360,7 +359,7 @@ - } - - if (INTEL_INFO(intel)->gen == 060) { -- struct pci_device *const device = intel->PciInfo; -+ struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index); - - /* Sandybridge rev07 locks up easily, even with the - * BLT ring workaround in place. -@@ -461,8 +460,6 @@ - - scrn->displayWidth = 640; /* default it */ - -- intel->PciInfo = xf86GetPciInfoForEntity(intel->pEnt->index); -- - if (!intel_open_drm_master(scrn)) { - xf86DrvMsg(scrn->scrnIndex, X_ERROR, - "Failed to become DRM master.\n"); -@@ -862,7 +859,7 @@ - #ifdef INTEL_XVMC - MessageType from; - #endif -- struct pci_device *const device = intel->PciInfo; -+ struct pci_device *const device = xf86GetPciInfoForEntity(intel->pEnt->index); - int fb_bar = IS_GEN2(intel) ? 0 : 2; - - scrn->videoRam = device->regions[fb_bar].size / 1024; -@@ -1072,7 +1069,7 @@ - if (intel && !((uintptr_t)intel & 3)) { - intel_mode_fini(intel); - intel_bufmgr_fini(intel); -- intel_put_device(scrn); -+ intel_put_device(intel->dev); - - free(intel); - scrn->driverPrivate = NULL; -@@ -1082,12 +1079,13 @@ - static void I830LeaveVT(VT_FUNC_ARGS_DECL) - { - SCRN_INFO_PTR(arg); -+ intel_screen_private *intel = intel_get_screen_private(scrn); - - xf86RotateFreeShadow(scrn); - - xf86_hide_cursors(scrn); - -- if (intel_put_master(scrn)) -+ if (intel_put_master(intel->dev)) - xf86DrvMsg(scrn->scrnIndex, X_WARNING, - "drmDropMaster failed: %s\n", strerror(errno)); - } -@@ -1098,8 +1096,9 @@ - static Bool I830EnterVT(VT_FUNC_ARGS_DECL) - { - SCRN_INFO_PTR(arg); -+ intel_screen_private *intel = intel_get_screen_private(scrn); - -- if (intel_get_master(scrn)) { -+ if (intel_get_master(intel->dev)) { - xf86DrvMsg(scrn->scrnIndex, X_WARNING, - "drmSetMaster failed: %s\n", - strerror(errno)); ---- a/src/uxa/intel_hwmc.c -+++ b/src/uxa/intel_hwmc.c -@@ -191,6 +191,7 @@ - { - ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen); - intel_screen_private *intel = intel_get_screen_private(scrn); -+ struct pci_device *pci; - static XF86MCAdaptorRec *pAdapt; - char *name; - char buf[64]; -@@ -207,6 +208,10 @@ - return FALSE; - } - -+ pci = xf86GetPciInfoForEntity(intel->pEnt->index); -+ if (pci == NULL) -+ return FALSE; -+ - pAdapt = calloc(1, sizeof(XF86MCAdaptorRec)); - if (!pAdapt) { - ErrorF("Allocation error.\n"); -@@ -249,8 +254,7 @@ - } - - sprintf(buf, "pci:%04x:%02x:%02x.%d", -- intel->PciInfo->domain, -- intel->PciInfo->bus, intel->PciInfo->dev, intel->PciInfo->func); -+ pci->domain, pci->bus, pci->dev, pci->func); - - xf86XvMCRegisterDRInfo(pScreen, INTEL_XVMC_LIBNAME, - buf, ---- a/src/uxa/intel_memory.c -+++ b/src/uxa/intel_memory.c -@@ -168,7 +168,7 @@ - void intel_set_gem_max_sizes(ScrnInfoPtr scrn) - { - intel_screen_private *intel = intel_get_screen_private(scrn); -- size_t agp_size = agp_aperture_size(intel->PciInfo, -+ size_t agp_size = agp_aperture_size(xf86GetPciInfoForEntity(intel->pEnt->index), - INTEL_INFO(intel)->gen); - - /* The chances of being able to mmap an object larger than diff --git a/debian/patches/series b/debian/patches/series index 7ca1bfe..7fffdd9 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,8 +1,4 @@ dri3-flush-broken.patch # XMir series - xmir.patch -sna-freescreen.diff -fix-uxa-fglrx-stealing.diff -sna-use-vmask-in-3dstate-ps.diff diff --git a/debian/patches/sna-freescreen.diff b/debian/patches/sna-freescreen.diff deleted file mode 100644 index d9a2603..0000000 --- a/debian/patches/sna-freescreen.diff +++ /dev/null @@ -1,19 +0,0 @@ -commit f5469681b620d9d6ccaf53e92ed31f931cb03b0d -Author: Chris Wilson <ch...@chris-wilson.co.uk> -Date: Mon Aug 18 14:37:44 2014 +0100 - - sna: Be defensive during FreeScreen() - - Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> - ---- a/src/sna/sna_driver.c -+++ b/src/sna/sna_driver.c -@@ -1190,7 +1190,7 @@ - struct sna *sna = to_sna(scrn); - - DBG(("%s\n", __FUNCTION__)); -- if ((uintptr_t)sna & 1) -+ if (sna == NULL || (uintptr_t)sna & 3) /* beware thieves */ - return; - - scrn->driverPrivate = (void *)((uintptr_t)sna->info | (sna->flags & SNA_IS_SLAVED) | 2); diff --git a/debian/patches/sna-use-vmask-in-3dstate-ps.diff b/debian/patches/sna-use-vmask-in-3dstate-ps.diff deleted file mode 100644 index 8210142..0000000 --- a/debian/patches/sna-use-vmask-in-3dstate-ps.diff +++ /dev/null @@ -1,65 +0,0 @@ -From rodrigo.v...@intel.com Wed Nov 5 23:49:06 2014 -Return-Path: <rodrigo.v...@intel.com> -X-Original-To: tjaal...@mail.canonical.com -Delivered-To: tjaal...@mail.canonical.com -Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) - by grenadilla.canonical.com (Postfix) with ESMTP id 91BB3147201C - for <tjaal...@mail.canonical.com>; Wed, 5 Nov 2014 23:49:06 +0000 (UTC) -Received: from cluster-e.mailcontrol.com (cluster-e.mailcontrol.com [85.115.58.190]) - by fiordland.canonical.com (Postfix) with ESMTPS id 3EBB9A186DD - for <timo.aalto...@cleanmail.canonical.com>; Wed, 5 Nov 2014 23:49:06 +0000 (UTC) -Received: from arctowski.canonical.com (arctowski.canonical.com [91.189.94.158]) - by rly63e.srv.mailcontrol.com (MailControl) with ESMTP id sA5Nn4m8028317 - for <timo.aalto...@cleanmail.canonical.com>; Wed, 5 Nov 2014 23:49:04 GMT -Received: from fiordland.canonical.com ([91.189.94.145]) - by arctowski.canonical.com with esmtp (Exim 4.71) - (envelope-from <rodrigo.v...@intel.com>) - id 1XmAJz-0004aX-Vs - for timo.aalto...@cleanmail.canonical.com; Wed, 05 Nov 2014 23:49:04 +0000 -Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) - by fiordland.canonical.com (Postfix) with ESMTP id 746D0A186D8 - for <tjaal...@ubuntu.com>; Wed, 5 Nov 2014 23:49:02 +0000 (UTC) -Received: from orsmga001.jf.intel.com ([10.7.209.18]) - by orsmga102.jf.intel.com with ESMTP; 05 Nov 2014 15:46:35 -0800 -X-ExtLoop1: 1 -X-IronPort-AV: E=Sophos;i="5.07,322,1413270000"; - d="scan'208";a="603103293" -Received: from rdvivi-hillsboro.jf.intel.com ([10.7.196.162]) - by orsmga001.jf.intel.com with ESMTP; 05 Nov 2014 15:48:14 -0800 -From: Rodrigo Vivi <rodrigo.v...@intel.com> -To: intel-...@lists.freedesktop.org -Cc: Rodrigo Vivi <rodrigo.v...@intel.com>, Timo Aaltonen <tjaal...@ubuntu.com>, - Gary Wang <gary.c.w...@intel.com> -Subject: [PATCH] sna: Use VMask in 3DSTATE_PS -Date: Wed, 5 Nov 2014 15:48:14 -0800 -Message-Id: <1415231294-12435-1-git-send-email-rodrigo.v...@intel.com> -X-Mailer: git-send-email 1.9.3 -X-Mailcontrol-Inbound: WBq!ucXEz80wFmxD6S7f3nyjenN!phNbIQWiyBG44+lo3FL0yiLKb3yjenN!phNbh+9WRKrdgbE= -X-Spam-Score: 0.9 -X-Scanned-By: MailControl 35930.357 (www.mailcontrol.com) on 10.69.0.173 - -Using dispatch mask cause hangs waiting PS Done on some cases like bug #83207, -with larger screen or when scaling it. - -Also mesa uses VMask instead of Dmask for 3DSTATE_PS because in some cases -they were getting incorrect derivatives for subspans. - -Reference: https://bugs.freedesktop.org/show_bug.cgi?id=83207 -Cc: Timo Aaltonen <tjaal...@ubuntu.com> -Cc: Gary Wang <gary.c.w...@intel.com> -Signed-off-by: Rodrigo Vivi <rodrigo.v...@intel.com> ---- - src/sna/gen8_render.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/src/sna/gen8_render.c -+++ b/src/sna/gen8_render.c -@@ -900,7 +900,7 @@ gen8_emit_wm(struct sna *sna, int kernel - OUT_BATCH(GEN8_3DSTATE_PS | (12 - 2)); - OUT_BATCH64(kernels[0] ?: kernels[1] ?: kernels[2]); - OUT_BATCH(1 << PS_SAMPLER_COUNT_SHIFT | -- //PS_VECTOR_MASK_ENABLE | -+ PS_VECTOR_MASK_ENABLE | - wm_kernels[kernel].num_surfaces << PS_BINDING_TABLE_ENTRY_COUNT_SHIFT); - OUT_BATCH64(0); /* scratch address */ - OUT_BATCH(PS_MAX_THREADS | commit 4f2eecb8820c4c4090f4f39d0a930988796b53ad Author: maximilian attems <m...@debian.org> Date: Sun Nov 23 00:04:15 2014 +0100 changelog: prepare snapshot release Signed-off-by: maximilian attems <m...@debian.org> diff --git a/debian/changelog b/debian/changelog index 32eca67..232ed54 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1) UNRELEASED; urgency=medium +xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1) experimental; urgency=medium * New upstream snapshot. - -- maximilian attems <m...@debian.org> Sat, 22 Nov 2014 18:58:52 +0100 + -- maximilian attems <m...@debian.org> Sun, 23 Nov 2014 00:04:02 +0100 xserver-xorg-video-intel (2:2.99.916-1~exp1) experimental; urgency=medium commit 46245adadcfea7391c6a93cfea63de47fb80aaf5 Author: maximilian attems <m...@debian.org> Date: Sat Nov 22 19:00:11 2014 +0100 update changelog Signed-off-by: maximilian attems <m...@debian.org> diff --git a/debian/changelog b/debian/changelog index 311f090..32eca67 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-intel (2:2.99.916+git20141119-1~exp1) UNRELEASED; urgency=medium + + * New upstream snapshot. + + -- maximilian attems <m...@debian.org> Sat, 22 Nov 2014 18:58:52 +0100 + xserver-xorg-video-intel (2:2.99.916-1~exp1) experimental; urgency=medium [ Vincent Cheng ] commit 0f15b8b45bb6de10ce1926db303247a5bd3c1c08 Author: Chris Wilson <ch...@chris-wilson.co.uk> Date: Wed Nov 19 18:42:32 2014 +0000 sna/transform: Correctly check for imprecise fractional translations Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> diff --git a/src/sna/sna_transform.c b/src/sna/sna_transform.c index 3b54df4..b62b323 100644 --- a/src/sna/sna_transform.c +++ b/src/sna/sna_transform.c @@ -135,14 +135,14 @@ sna_transform_is_imprecise_integer_translation(const PictTransform *t, int f; f = pixman_fixed_fraction(t->matrix[0][2]); - if (f < IntToxFixed(1)/4 || f > IntToxFixed(3)/4) { - DBG(("%s: imprecise, fractional translation X\n", __FUNCTION__)); + if (f > IntToxFixed(1)/4 && f < IntToxFixed(3)/4) { + DBG(("%s: imprecise, fractional translation X: %x\n", __FUNCTION__, f)); return false; } f = pixman_fixed_fraction(t->matrix[1][2]); - if (f < IntToxFixed(1)/4 || f > IntToxFixed(3)/4) { - DBG(("%s: imprecise, fractional translation Y\n", __FUNCTION__)); + if (f > IntToxFixed(1)/4 && f < IntToxFixed(3)/4) { + DBG(("%s: imprecise, fractional translation Y: %x\n", __FUNCTION__, f)); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1xzl5g-0004lh...@moszumanska.debian.org