Bug#783153: xserver-xorg: The window freeze, Xorg.0.log contains : AIGLX: Suspending AIGLX clients for VT switch
Package: xserver-xorg Version: 1:7.7+7 Severity: important Dear Maintainer, I get a window freeze with a message in X log's file : AIGLX: Suspending AIGLX clients for VT switch I get that message when I have two SSH sessions (ssh -X) open on two different machines and when I use X software, mostly vim-gtk. at some time moving through window the X session is locked and I can only restart X connecting through ssh from another machine. I was connected to 2 different VM, one on the current machine (KVM), the other on another hardware (XEN). I get the same problem working with the 2 same VM from the XEN machine. The Xorg.conf is new since the first time I get some problems (result of "X -configurei" The two different machines : 1) i3-3220 CPU @ 3.30GHz No specific videocard, using video from CPU using "intel" driver 8G Ram upgraded from Wheezy to jessie last week 2) AMD Phenom(tm) II X4 905e Processor video card : NVIDIA Corporation G94 [GeForce 9600 GT] (rev a1) using "nouveau" driver 16 G Ram using jessie since more than 1 year. The machine are kept "uptodate" at least once a week, I never get that problem before. I try with different kernels (3.16 standard from Debian, 3.19.5 and even 4.0.0) getting always the lock after some (??) time. Regards JP P -- Package-specific info: X server symlink status: lrwxrwxrwx 1 root root 13 May 24 2014 /etc/X11/X -> /usr/bin/Xorg -rwxr-xr-x 1 root root 2401376 Feb 11 01:35 /usr/bin/Xorg VGA-compatible devices on PCI bus: -- 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) Xorg X server configuration file status: -rw-r--r-- 1 root root 2654 Apr 18 23:01 /etc/X11/xorg.conf Contents of /etc/X11/xorg.conf: --- Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice"Mouse0" "CorePointer" InputDevice"Keyboard0" "CoreKeyboard" EndSection Section "Files" ModulePath "/usr/lib/xorg/modules" FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/share/fonts/X11/cyrillic" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "built-ins" EndSection Section "Module" Load "glx" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName"Monitor Model" EndSection Section "Device" ### Available Driver options are:- ### Values: : integer, : float, : "True"/"False", ### : "String", : " Hz/kHz/MHz", ### : "%" ### [arg]: arg optional #Option "NoAccel" # [] #Option "AccelMethod" # #Option "Backlight" # #Option "DRI" # #Option "ColorKey" # #Option "VideoKey" # #Option "Tiling"# [] #Option "LinearFramebuffer" # [] #Option "SwapbuffersWait" # [] #Option "TripleBuffer" # [] #Option "XvPreferOverlay" # [] #Option "HotPlug" # [] #Option "ReprobeOutputs"# [] #Option "XvMC" # [] #Option "ZaphodHeads" # #Option "TearFree" # [] #Option "PerCrtcPixmaps"# [] #Option "FallbackDebug" # [] #Option "DebugFlushBatches" # [] #Option "DebugFlushCaches" # [] #Option "DebugWait" # [] #Option "BufferCache" # [] Identifier "Card0" Driver "intel" BusID "PCI:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor"Monitor0" SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Contents of /etc/X11/xorg.conf.d: - total 0 /etc/modprobe.d contains no KMS configuration files. Kernel version (/proc/version):
Re: Request for review: xorg-server 2:1.7.7-18+deb6u2 (CVE-2015-0255)
Hi again... On Mi 22 Apr 2015 14:31:40 CEST, Mike Gabriel wrote: Debdiff is attached to this mail. The .dsc file can be obtained via [1]. and here comes the missing .debdiff... Mike -- mike gabriel aka sunweaver (Debian Developer) fon: +49 (1520) 1976 148 GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: sunwea...@debian.org, http://sunweavers.net diff -u xorg-server-1.7.7/debian/changelog xorg-server-1.7.7/debian/changelog --- xorg-server-1.7.7/debian/changelog +++ xorg-server-1.7.7/debian/changelog @@ -1,3 +1,12 @@ +xorg-server (2:1.7.7-18+deb6u2) squeeze-lts; urgency=high + + * Non-maintainer upload by Debian LTS Team. + * debian/patches: ++ Add 30-CVE-2015-0255.patch. Don't swap XkbSetGeometry data in the + input buffer, check strings length against request size (CVE-2015-0255). + + -- Mike Gabriel Wed, 22 Apr 2015 11:45:21 +0200 + xorg-server (2:1.7.7-18+deb6u1) squeeze-lts; urgency=high * Non-maintainer upload by the Debian LTS Team. diff -u xorg-server-1.7.7/debian/patches/series xorg-server-1.7.7/debian/patches/series --- xorg-server-1.7.7/debian/patches/series +++ xorg-server-1.7.7/debian/patches/series @@ -58,0 +59 @@ +30-CVE-2015-0255.patch only in patch2: unchanged: --- xorg-server-1.7.7.orig/debian/patches/30-CVE-2015-0255.patch +++ xorg-server-1.7.7/debian/patches/30-CVE-2015-0255.patch @@ -0,0 +1,175 @@ +Description: fix information leak and denial of service in XkbSetGeometry +Origin: backport, http://cgit.freedesktop.org/xorg/xserver/commit/?id=81c90dc8f0aae3b65730409b1b615b5fa7280ebd +Origin: backport, http://cgit.freedesktop.org/xorg/xserver/commit/?id=20079c36cf7d377938ca5478447d8b9045cb7d43 + +--- a/xkb/xkb.c b/xkb/xkb.c +@@ -4819,27 +4819,30 @@ + + /******/ + +-static char * +-_GetCountedString(char **wire_inout,Bool swap) ++static Status ++_GetCountedString(char **wire_inout,ClientPtr client, char **str) + { +-char *wire,*str; +-CARD16len,*plen; ++char*wire,*next; ++CARD16len; + + wire= *wire_inout; +-plen= (CARD16 *)wire; +-if (swap) { ++len = *(CARD16 *) wire; ++if (client->swapped) { + register int n; +- swaps(plen,n); +-} +-len= *plen; +-str= xalloc(len+1); +-if (str) { +- memcpy(str,&wire[2],len); +- str[len]= '\0'; ++ swaps(&len,n); + } +-wire+= XkbPaddedSize(len+2); +-*wire_inout= wire; +-return str; ++next = wire + XkbPaddedSize(len + 2); ++/* Check we're still within the size of the request */ ++if (client->req_len < ++ bytes_to_int32(next - (char *) client->requestBuffer)) ++ return BadValue; ++*str = malloc(len + 1); ++if (!*str) ++ return BadAlloc; ++memcpy(*str, &wire[2], len); ++*(*str + len) = '\0'; ++*wire_inout = next; ++return Success; + } + + static Status +@@ -4850,26 +4853,30 @@ + { + char *wire; + xkbDoodadWireDesc * dWire; ++xkbAnyDoodadWireDesc any; ++xkbTextDoodadWireDesc text; + XkbDoodadPtr doodad; ++Statusstatus; + + dWire= (xkbDoodadWireDesc *)(*wire_inout); ++any = dWire->any; + wire= (char *)&dWire[1]; + if (client->swapped) { + register int n; +- swapl(&dWire->any.name,n); +- swaps(&dWire->any.top,n); +- swaps(&dWire->any.left,n); +- swaps(&dWire->any.angle,n); ++ swapl(&any.name,n); ++ swaps(&any.top,n); ++ swaps(&any.left,n); ++ swaps(&any.angle,n); + } + CHK_ATOM_ONLY(dWire->any.name); +-doodad= XkbAddGeomDoodad(geom,section,dWire->any.name); ++doodad= XkbAddGeomDoodad(geom,section,any.name); + if (!doodad) + return BadAlloc; + doodad->any.type= dWire->any.type; + doodad->any.priority= dWire->any.priority; +-doodad->any.top= dWire->any.top; +-doodad->any.left= dWire->any.left; +-doodad->any.angle= dWire->any.angle; ++doodad->any.top= any.top; ++doodad->any.left= any.left; ++doodad->any.angle= any.angle; + switch (doodad->any.type) { + case XkbOutlineDoodad: + case XkbSolidDoodad: +@@ -4892,16 +4899,23 @@ + dWire->text.colorNdx); + return BadMatch; + } ++ text = dWire->text; + if (client->swapped) { + register int n; +- swaps(&dWire->text.width,n); +- swaps(&dWire->text.height,n); ++ swaps(&text.width,n); ++ swaps(&text.height,n); + } +- doodad->text.width= dWire->text.width; +- doodad->text.height= dWire->text.height; ++ doodad->text.width= text.width; ++ doodad->text.height= text.height; + doodad->text.color_ndx= dWire->text.colorNdx; +- doodad->text.text= _GetCountedString(&wire,client->swapped); +- doodad->text.font= _GetCountedStrin
Request for review: xorg-server 2:1.7.7-18+deb6u2 (CVE-2015-0255)
Hi all, as breaking xorg-server in squeeze-lts is something that should not happen, I'd appreciate someone from the LTS team or the X Strike Force to review my squeeze-lts upload candidate for xorg-server 2:1.7.7-18+deb6u2 (fixing CVE 2015-0255). Debdiff is attached to this mail. The .dsc file can be obtained via [1]. I assembled the patch from looking at the upstream commits referenced, the latest security upload to Ubuntu precise and Debian wheezy. I tested the new package version on a Debian Edu squeeze machine and could not see any regressions or problems. Happy about some feedback, Mike [1] http://packages.it-zukunft-schule.de/debian/pool/main/x/xorg-server/xorg-server_1.7.7-18+deb6u2.dsc -- mike gabriel aka sunweaver (Debian Developer) fon: +49 (1520) 1976 148 GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31 mail: sunwea...@debian.org, http://sunweavers.net pgpW0UJJLIkbd.pgp Description: Digitale PGP-Signatur
xserver-xorg-video-intel: Changes to 'debian-experimental'
configure.ac | 83 +- debian/changelog |3 src/backlight.c|2 src/compat-api.h | 23 src/i915_pciids.h | 32 - src/intel_device.c | 20 src/intel_driver.h |1 src/intel_module.c | 11 src/intel_options.c| 86 ++ src/intel_options.h|2 src/legacy/i810/i810_memory.c |6 src/sna/blt.c | 361 src/sna/compiler.h |2 src/sna/gen2_render.c |6 src/sna/gen3_render.c | 12 src/sna/gen4_render.c |8 src/sna/gen5_render.c |6 src/sna/gen6_common.h | 110 +-- src/sna/gen6_render.c | 22 src/sna/gen7_render.c | 37 - src/sna/gen8_render.c | 34 - src/sna/kgem.c | 138 +++- src/sna/kgem.h | 26 src/sna/sna.h | 57 + src/sna/sna_accel.c| 239 +--- src/sna/sna_blt.c | 71 +- src/sna/sna_composite.c| 104 ++- src/sna/sna_display.c | 1103 - src/sna/sna_display_fake.c |3 src/sna/sna_dri2.c | 706 +-- src/sna/sna_driver.c | 233 +++ src/sna/sna_glyphs.c |2 src/sna/sna_present.c | 383 ++-- src/sna/sna_render.c |4 src/sna/sna_render_inline.h|6 src/sna/sna_trapezoids_imprecise.c | 340 --- src/sna/sna_trapezoids_mono.c | 73 +- src/sna/sna_trapezoids_precise.c | 340 --- src/sna/sna_video.c| 66 ++ src/sna/sna_video.h|3 src/sna/sna_video_overlay.c| 12 src/sna/sna_video_sprite.c |9 src/sna/sna_video_textured.c |5 src/sna/xassert.h | 11 src/uxa/i965_video.c |1 src/uxa/intel.h| 16 src/uxa/intel_display.c| 115 +-- src/uxa/intel_dri.c| 484 +--- src/uxa/intel_driver.c | 23 src/uxa/intel_present.c| 24 test/dri2-race.c | 274 - test/dri2-test.c | 30 - test/present-test.c| 1065 ++- tools/.gitignore |4 tools/Makefile.am | 15 tools/cursor.c | 108 +++ tools/dri3info.c | 139 tools/virtual.c| 18 58 files changed, 5233 insertions(+), 1884 deletions(-) New commits: commit fc50dfa7938f9550352da3bf321bfa1bd56e4240 Author: Timo Aaltonen Date: Fri Mar 20 10:59:03 2015 +0200 bump the version diff --git a/debian/changelog b/debian/changelog index 7f101bd..2643758 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -xserver-xorg-video-intel (2:2.99.917-1~exp2) UNRELEASED; urgency=medium +xserver-xorg-video-intel (2:2.99.917+git20150320-1~exp1) UNRELEASED; urgency=medium + * New snapshot. * rules: Fix valgrind-enabling check. * README.source: Mention that dpkg-source complains about symlinks which are real files on the tarball, and add a command to clean commit 7fe2b2948652443ff43d907855bd7a051d54d309 Author: Chris Wilson Date: Thu Mar 19 23:14:17 2015 + sna: Protect against ABI breakage in recent versions of libdrm Signed-off-by: Chris Wilson diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 11f0828..6f16cba 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -182,6 +182,15 @@ struct local_i915_gem_caching { #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching) #define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching) +struct local_i915_gem_mmap { + uint32_t handle; + uint32_t pad; + uint64_t offset; + uint64_t size; + uint64_t addr_ptr; +}; +#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap) + struct local_i915_gem_mmap2 { uint32_t handle; uint32_t pad; @@ -514,15 +523,15 @@ retry_wc: static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo) { - struct drm_i915_gem_mmap mmap_arg; + struct local_i915_gem_mmap arg; int err; retry: - VG_CLEAR(mmap_arg); - mmap_arg.handle = bo->handle; - mmap_arg.offset = 0; - mmap_arg.size = bytes(bo); - if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) { + VG_CLEAR(arg); + arg.handle = bo->handle; + arg.offset = 0; + arg.size = bytes(
xserver-xorg-video-intel: Changes to 'upstream-experimental'
configure.ac | 83 +- src/backlight.c|2 src/compat-api.h | 23 src/i915_pciids.h | 32 - src/intel_device.c | 20 src/intel_driver.h |1 src/intel_module.c | 11 src/intel_options.c| 86 ++ src/intel_options.h|2 src/legacy/i810/i810_memory.c |6 src/sna/blt.c | 361 src/sna/compiler.h |2 src/sna/gen2_render.c |6 src/sna/gen3_render.c | 12 src/sna/gen4_render.c |8 src/sna/gen5_render.c |6 src/sna/gen6_common.h | 110 +-- src/sna/gen6_render.c | 22 src/sna/gen7_render.c | 37 - src/sna/gen8_render.c | 34 - src/sna/kgem.c | 138 +++- src/sna/kgem.h | 26 src/sna/sna.h | 57 + src/sna/sna_accel.c| 239 +--- src/sna/sna_blt.c | 71 +- src/sna/sna_composite.c| 104 ++- src/sna/sna_display.c | 1103 - src/sna/sna_display_fake.c |3 src/sna/sna_dri2.c | 706 +-- src/sna/sna_driver.c | 233 +++ src/sna/sna_glyphs.c |2 src/sna/sna_present.c | 383 ++-- src/sna/sna_render.c |4 src/sna/sna_render_inline.h|6 src/sna/sna_trapezoids_imprecise.c | 340 --- src/sna/sna_trapezoids_mono.c | 73 +- src/sna/sna_trapezoids_precise.c | 340 --- src/sna/sna_video.c| 66 ++ src/sna/sna_video.h|3 src/sna/sna_video_overlay.c| 12 src/sna/sna_video_sprite.c |9 src/sna/sna_video_textured.c |5 src/sna/xassert.h | 11 src/uxa/i965_video.c |1 src/uxa/intel.h| 16 src/uxa/intel_display.c| 115 +-- src/uxa/intel_dri.c| 484 +--- src/uxa/intel_driver.c | 23 src/uxa/intel_present.c| 24 test/dri2-race.c | 274 - test/dri2-test.c | 30 - test/present-test.c| 1065 ++- tools/.gitignore |4 tools/Makefile.am | 15 tools/cursor.c | 108 +++ tools/dri3info.c | 139 tools/virtual.c| 18 57 files changed, 5231 insertions(+), 1883 deletions(-) New commits: commit 7fe2b2948652443ff43d907855bd7a051d54d309 Author: Chris Wilson Date: Thu Mar 19 23:14:17 2015 + sna: Protect against ABI breakage in recent versions of libdrm Signed-off-by: Chris Wilson diff --git a/src/sna/kgem.c b/src/sna/kgem.c index 11f0828..6f16cba 100644 --- a/src/sna/kgem.c +++ b/src/sna/kgem.c @@ -182,6 +182,15 @@ struct local_i915_gem_caching { #define LOCAL_IOCTL_I915_GEM_SET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_SET_CACHING, struct local_i915_gem_caching) #define LOCAL_IOCTL_I915_GEM_GET_CACHING DRM_IOW(DRM_COMMAND_BASE + LOCAL_I915_GEM_GET_CACHING, struct local_i915_gem_caching) +struct local_i915_gem_mmap { + uint32_t handle; + uint32_t pad; + uint64_t offset; + uint64_t size; + uint64_t addr_ptr; +}; +#define LOCAL_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct local_i915_gem_mmap) + struct local_i915_gem_mmap2 { uint32_t handle; uint32_t pad; @@ -514,15 +523,15 @@ retry_wc: static void *__kgem_bo_map__cpu(struct kgem *kgem, struct kgem_bo *bo) { - struct drm_i915_gem_mmap mmap_arg; + struct local_i915_gem_mmap arg; int err; retry: - VG_CLEAR(mmap_arg); - mmap_arg.handle = bo->handle; - mmap_arg.offset = 0; - mmap_arg.size = bytes(bo); - if ((err = do_ioctl(kgem->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg))) { + VG_CLEAR(arg); + arg.handle = bo->handle; + arg.offset = 0; + arg.size = bytes(bo); + if ((err = do_ioctl(kgem->fd, LOCAL_IOCTL_I915_GEM_MMAP, &arg))) { assert(err != EINVAL); if (__kgem_throttle_retire(kgem, 0)) @@ -536,10 +545,10 @@ retry: return NULL; } - VG(VALGRIND_MAKE_MEM_DEFINED(mmap_arg.addr_ptr, bytes(bo))); + VG(VALGRIND_MAKE_MEM_DEFINED(arg.addr_ptr, bytes(bo))); DBG(("%s: caching CPU vma for %d\n", __FUNCTION__, bo->handle)); - return bo->map__cpu = (void *)(uintptr_t)mmap_arg.addr_ptr; + return bo->map__cpu = (void *)(uintptr_t)arg.addr_ptr; } static int gem_write(int fd, uint32_t handle, commit bacaf7f18c2f4d3b5cb6bd6145dfb79fa409
xserver-xorg-video-intel: Changes to 'ubuntu-utopic'
debian/patches/bdw-annotate-more-64bit-pointer-locations.diff | 132 ++ debian/patches/bdw-clamp-urb-allocations-for-gt3.diff | 38 ++ debian/patches/series |2 3 files changed, 172 insertions(+) New commits: commit 583a3fbd9a9e51a63be5d778ca1f626e7a9eca82 Author: Timo Aaltonen Date: Fri Apr 17 07:59:16 2015 +0300 wip diff --git a/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff b/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff new file mode 100644 index 000..3ba449b --- /dev/null +++ b/debian/patches/bdw-annotate-more-64bit-pointer-locations.diff @@ -0,0 +1,132 @@ +commit de54a93217cc550c44ee138f0511ede6925d84e0 +Author: Chris Wilson +Date: Wed Oct 22 19:30:21 2014 +0100 + +sna/gen8: Annotate more 64bit pointer locations + +Signed-off-by: Chris Wilson + +--- a/src/sna/gen8_render.c b/src/sna/gen8_render.c +@@ -474,7 +474,7 @@ gen8_emit_vs_invariant(struct sna *sna) + OUT_BATCH(GEN8_3DSTATE_VS | (9 - 2)); + OUT_BATCH64(0); /* no VS kernel */ + OUT_BATCH(0); +- OUT_BATCH64(0); ++ OUT_BATCH64(0); /* scratch */ + OUT_BATCH(0); + OUT_BATCH(1 << 1); /* pass-through */ + OUT_BATCH(1 << 16 | 1 << 21); /* urb write to SBE */ +@@ -500,12 +500,10 @@ static void + gen8_emit_hs_invariant(struct sna *sna) + { + OUT_BATCH(GEN8_3DSTATE_HS | (9 - 2)); +- OUT_BATCH(0); /* no HS kernel */ +- OUT_BATCH(0); +- OUT_BATCH(0); +- OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); ++ OUT_BATCH64(0); /* no HS kernel */ ++ OUT_BATCH64(0); /* scratch */ + OUT_BATCH(0); + OUT_BATCH(0); /* pass-through */ + +@@ -541,11 +539,9 @@ static void + gen8_emit_ds_invariant(struct sna *sna) + { + OUT_BATCH(GEN8_3DSTATE_DS | (9 - 2)); ++ OUT_BATCH64(0); /* no kernel */ + OUT_BATCH(0); +- OUT_BATCH(0); +- OUT_BATCH(0); +- OUT_BATCH(0); +- OUT_BATCH(0); ++ OUT_BATCH64(0); /* scratch */ + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); +@@ -573,15 +569,13 @@ static void + gen8_emit_gs_invariant(struct sna *sna) + { + OUT_BATCH(GEN8_3DSTATE_GS | (10 - 2)); +- OUT_BATCH(0); /* no GS kernel */ +- OUT_BATCH(0); +- OUT_BATCH(0); +- OUT_BATCH(0); ++ OUT_BATCH64(0); /* no GS kernel */ + OUT_BATCH(0); ++ OUT_BATCH64(0); /* scratch */ + OUT_BATCH(0); ++ OUT_BATCH(0); /* pass-through */ + OUT_BATCH(0); + OUT_BATCH(0); +- OUT_BATCH(0); /* pass-through */ + + #if SIM + OUT_BATCH(GEN8_3DSTATE_CONSTANT_GS | (11 - 2)); +@@ -690,13 +684,15 @@ gen8_emit_wm_invariant(struct sna *sna) + OUT_BATCH(WM_PERSPECTIVE_PIXEL_BARYCENTRIC); + + #if SIM +- OUT_BATCH(GEN8_3DSTATE_WM_HZ_OP | (5 - 2)); ++ OUT_BATCH(GEN8_3DSTATE_WM_CHROMAKEY | (2 - 2)); + OUT_BATCH(0); ++#endif ++ ++#if 0 ++ OUT_BATCH(GEN8_3DSTATE_WM_HZ_OP | (5 - 2)); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); +- +- OUT_BATCH(GEN8_3DSTATE_WM_CHROMAKEY | (2 - 2)); + OUT_BATCH(0); + #endif + +@@ -834,6 +830,7 @@ gen8_emit_cc(struct sna *sna, uint32_t b + } else + OUT_BATCH(PS_BLEND_HAS_WRITEABLE_RT); + ++ assert(is_aligned(render->cc_blend + blend * GEN8_BLEND_STATE_PADDED_SIZE, 64)); + OUT_BATCH(GEN8_3DSTATE_BLEND_STATE_POINTERS | (2 - 2)); + OUT_BATCH((render->cc_blend + blend * GEN8_BLEND_STATE_PADDED_SIZE) | 1); + +@@ -896,6 +893,9 @@ gen8_emit_wm(struct sna *sna, int kernel +wm_kernels[kernel].name, +wm_kernels[kernel].num_surfaces, +kernels[0], kernels[1], kernels[2])); ++ assert(is_aligned(kernels[0], 64)); ++ assert(is_aligned(kernels[1], 64)); ++ assert(is_aligned(kernels[2], 64)); + + OUT_BATCH(GEN8_3DSTATE_PS | (12 - 2)); + OUT_BATCH64(kernels[0] ?: kernels[1] ?: kernels[2]); +@@ -1185,8 +1185,8 @@ static bool gen8_magic_ca_pass(struct sn + true, true, + op->is_affine)); + +- OUT_BATCH(GEN8_3DPRIMITIVE | (7- 2)); +- OUT_BATCH(RECTLIST); /* ignored, see VF_TOPOLOGY */ ++ OUT_BATCH(GEN8_3DPRIMITIVE | (7 - 2)); ++ OUT_BATCH(0); /* ignored, see VF_TOPOLOGY */ + OUT_BATCH(sna->render.vertex_index - sna->render.vertex_start); + OUT_BATCH(sna->render.vertex_start); + OUT_BATCH(1); /* single instance */ +@@ -1371,7 +1371,7 @@ static void gen8_emit_primitive(struct s + } + + OUT_BATCH(GEN8_3DPRIMITIVE | (7 - 2)); +- OUT_BATCH(RECTLIST); /* ignored, see VF_TOPOLOGY */ ++ OUT_BATCH(0); /* ignored, see VF_TOPOLOGY */ + sna->render.vertex_offset = sna->kgem.nbatch; + OUT_BATCH(0); /* vertex count, to be filled in later */ + OUT_BATCH(sna->render.vertex_index); +@@ -1712,6 +1712,7 @@ gen8_create_blend_state(struct sna_s
xserver-xorg-video-intel: Changes to 'ubuntu-trusty'
debian/changelog |7 debian/patches/series|1 debian/patches/sna-mark-the-chv-vsync-method-as-unknown.diff | 79 +++ 3 files changed, 87 insertions(+) New commits: commit 74fc25242ee851cddbd9f8281ca8ab0c855cdb2e Author: Timo Aaltonen Date: Fri Apr 17 08:02:56 2015 +0300 sna-mark-the-chv-vsync-method-as-unknown.diff: Fix video playback on CHV. (LP: #1445221) diff --git a/debian/changelog b/debian/changelog index 9173a6c..c451dc3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-video-intel (2:2.99.910-0ubuntu1.6) trusty-proposed; urgency=medium + + * sna-mark-the-chv-vsync-method-as-unknown.diff: Fix video playback +on CHV. (LP: #1445221) + + -- Timo Aaltonen Fri, 17 Apr 2015 08:00:47 +0300 + xserver-xorg-video-intel (2:2.99.910-0ubuntu1.5) trusty-proposed; urgency=medium * bdw-annotate-more-64bit-pointer-locations.diff diff --git a/debian/patches/series b/debian/patches/series index d59c64f..936f609 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -28,3 +28,4 @@ sna-add-more-checks-and-asserts-for-blt.diff fix-sna-external-slave-rotation.patch bdw-annotate-more-64bit-pointer-locations.diff bdw-clamp-urb-allocations-for-gt3.diff +sna-mark-the-chv-vsync-method-as-unknown.diff diff --git a/debian/patches/sna-mark-the-chv-vsync-method-as-unknown.diff b/debian/patches/sna-mark-the-chv-vsync-method-as-unknown.diff new file mode 100644 index 000..1e90381 --- /dev/null +++ b/debian/patches/sna-mark-the-chv-vsync-method-as-unknown.diff @@ -0,0 +1,79 @@ +commit 2afeef0c3ffeae768198fc08c9f365ccd28b7f5d +Author: Chris Wilson +Date: Thu May 15 11:28:48 2014 +0100 + +sna: Mark the CHV vsync method as unknown + +Similar to the story with Baytrail, vsync is a lost art. + +Signed-off-by: Chris Wilson + +--- a/src/sna/sna_display.c b/src/sna/sna_display.c +@@ -4209,52 +4209,6 @@ static bool sna_emit_wait_for_scanline_h + return true; + } + +-static bool sna_emit_wait_for_scanline_vlv(struct sna *sna, +- xf86CrtcPtr crtc, +- int pipe, int y1, int y2, +- bool full_height) +-{ +- uint32_t display_base = 0x18; +- uint32_t event; +- uint32_t *b; +- +- return false; /* synchronisation? I've heard of that */ +- +- if (!sna->kgem.has_secure_batches) +- return false; +- +- assert(y1 >= 0); +- assert(y2 > y1); +- assert(sna->kgem.mode); +- +- /* Always program one less than the desired value */ +- if (--y1 < 0) +- y1 = crtc->bounds.y2; +- y2--; +- +- b = kgem_get_batch(&sna->kgem); +- sna->kgem.nbatch += 4; +- +- if (pipe == 0) { +- if (full_height) +- event = MI_WAIT_FOR_PIPEA_SVBLANK; +- else +- event = MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW; +- } else { +- if (full_height) +- event = MI_WAIT_FOR_PIPEB_SVBLANK; +- else +- event = MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW; +- } +- b[0] = MI_LOAD_REGISTER_IMM | 1; +- b[1] = display_base + 0x70004 + 0x1000 * pipe; +- b[2] = (1 << 31) | (y1 << 16) | y2; +- b[3] = MI_WAIT_FOR_EVENT | event; +- +- sna->kgem.batch_flags |= I915_EXEC_SECURE; +- return true; +-} +- + static bool sna_emit_wait_for_scanline_ivb(struct sna *sna, + xf86CrtcPtr crtc, + int pipe, int y1, int y2, +@@ -4472,10 +4426,12 @@ sna_wait_for_scanline(struct sna *sna, + + if (sna->kgem.gen >= 0110) + ret = false; ++ else if (sna->kgem.gen == 0101) ++ ret = false; /* chv, vsync method unknown */ + else if (sna->kgem.gen >= 075) + ret = sna_emit_wait_for_scanline_hsw(sna, crtc, pipe, y1, y2, full_height); + else if (sna->kgem.gen == 071) +- ret = sna_emit_wait_for_scanline_vlv(sna, crtc, pipe, y1, y2, full_height); ++ ret = false; /* vlv, vsync method unknown */ + else if (sna->kgem.gen >= 070) + ret = sna_emit_wait_for_scanline_ivb(sna, crtc, pipe, y1, y2, full_height); + else if (sna->kgem.gen >= 060) -- 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/e1ykt4f-0001yd...@moszumanska.debian.org
xserver-xorg-video-intel: Changes to 'pristine-tar'
xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.delta |binary xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.id|1 + 2 files changed, 1 insertion(+) New commits: commit 93359e0b3ceb9a84de734f7120360cf32919fb12 Author: Timo Aaltonen Date: Fri Mar 20 10:59:16 2015 +0200 pristine-tar data for xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz diff --git a/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.delta b/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.delta new file mode 100644 index 000..37b4761 Binary files /dev/null and b/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.delta differ diff --git a/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.id b/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.id new file mode 100644 index 000..22c6a43 --- /dev/null +++ b/xserver-xorg-video-intel_2.99.917+git20150320.orig.tar.gz.id @@ -0,0 +1 @@ +825db7771ba6508686d4b96cbb3cc7b1a191beb3 -- 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/e1ykt4f-0001yl...@moszumanska.debian.org