[ANNOUNCE] xf86-video-intel 2.12.0

Carl Worth cworth at cworth.org
Thu Jun 24 14:22:51 PDT 2010

We are pleased to announce this major release of the xf86-video-intel
2D driver. It contains many correctness and performance improvements
compared to the 2.11 releases. We encourage everyone using 2.11 to
upgrade to 2.12.

This release contains several bug fixes since the earlier 2.11.901
release candidate---see below for details.


carl.d.worth at intel.com
Where to obtain xf86-video-intel 2.12.0
git tag: 2.12.0

MD5: 8314def847dcdc4f2970e2d193054f96  xf86-video-intel-2.12.0.tar.bz2
SHA1: b1642e634a05f4ec28716e44c3192d62febc8843  xf86-video-intel-2.12.0.tar.bz2

MD5: 6d3788f3d13c7b3f790fee625b90b1e0  xf86-video-intel-2.12.0.tar.gz
SHA1: 354d0465d60120cbe1261576dbb6dc582ac9e3f1  xf86-video-intel-2.12.0.tar.gz

Notable changes in 2.12.0 compared to 2.11
New requirements compared to 2.11
 * Libdrm >= 2.4.21

Major performance improvements
There have been many performance improvements targeting the
915G/945G/Pineview graphics chipsets (thank to Chris Wilson!). Areas
improved include:

 * Major improvements to glyph rendering

 * Avoid software fallback when using extended desktops, (for example,
   video playback)

 * Better performance when using large windows, (for example with
   firefox scrolling)

 * Avoiding migration ping-pong with gigantic drawing

The following speedups (measured with cairo-perf-trace/cairo-traces)
capture some of the improvements. These were measured on a Pineview
system with X server 1.8.1. This compares how this 2.12 release
improves performance compared to 2.11.0:

	Trace			Speedup
	-----			-------
	ocitysmap		5.41x speedup
	firefox-talos-gfx       2.41x speedup
	gnome-terminal-vim      2.15x speedup
	poppler                 1.86x speedup
	firefox-planet-gnome	1.43x speedup
	midori-zoomed		1.39x speedup
	swfdec-giant-steps      1.36x speedup
	xfce4-terminal-a1	1.17x speedup
	evolution		1.09x speedup
	swfdec-youtube		1.06x speedup

Other improvements
Daniel Vetter improved Xvmc and overlay, adding GEM support.

Bug fixes
There have been many conformance improvements targeting the
915G/945G/Pineview graphics chipsets. The rendercheck test suite
passes once again and there has been a significant reduction in the
number of errors detected by the cairo test suite (notably center
sampling and EXTEND_NONE behaviors are fixed).

Other notable bug fixes include:

 * Fix for bug 28446 Garbled fonts with Mathematica

 * Fixes for page-flipping and other DRI2-handling bugs, (Thanks Jesse
   Barnes, and Kristian Høgsberg)

 * Avoid corruption when using extended desktops, (for example, video

(The bug fixes below are new since the 2.11.901 release candidate)

 * Fix corrupted output when screen rotated

 * Fix corrupted rendering in KDE due to missing flush.

 * Fixes i830_uxa_put_image for the following issues:

      Bug 28569 - [i965] IGN's flash-based video player crashes X
      Bug 28573 - [i965] Fullscreen flash and windowed SDL games fail to
                  update the screen

 * Fix visual corruption of scrollbar in Chromium

 * Fix tiling limits to resolve this issue:

      Bug 28497 - Graphics corruption after opening a specific website

All changes from 2.11.0 to 2.12.0
Carl Worth (5):
      Fix to require libdrm 2.4.19 or newer.
      NEWS: Add notes for 2.11.901
      Update version to 2.11.901
      NEWS: Add notes for the 2.12.0 release.
      Update version to 2.12.0

Chris Wilson (143):
      uxa: Add fallback warnings for PutImage.
      Review i830_pad_drawable_width()
      uxa: Try using put_image when copying from a memory buffer.
      Revert "uxa: Add fallback warnings for PutImage."
      i830: Use pixman_blt directly for performing the in-memory copy
      Revert "Revert "uxa: Try using put_image when copying from a memory buffer.""
      i830: Allocate bo's for glyphs larger than 32x32.
      uxa: Reuse in-flight bo
      i830: tidy in flight bo reuse.
      i830: if pixman_blt() fails fallback to fbCopyArea()
      i830: prepare the uxa pixmap for fbCopyArea.
      uxa: Extract sub-region from in-memory buffers.
      uxa: Transform composites with a simple translation into a blit
      uxa: Rearrange checking and preparing of composite textures.
      i915: Use 1x1R pixmap for solid drawables
      uxa,i915: Handle SourcePict through uxa_composite()
      i830: Update stride when swapping bo for PutImage
      i830: Minor cleanup
      uxa: Protect against valid SourcePict in uxa_acquire_mask()
      i915: Fix pixmap based masks.
      uxa: Recheck texture after acquiring pattern.
      i965: Add texformats mapping for additional pixman formats
      i830: Do not cache in-flight non-reusable buffers.
      i830: Use set_pixmap_bo() instead of open-coding.
      i830: Never create a bo for depth=1 pixmaps.
      drmmode: Reorder i830_set_pixmap_bo() so that the correct stride is used.
      xvmc: Build fix with -pedantic
      debug: Add names for operators
      uxa: solid rects
      uxa: Use accelerated PutImage for uploading pixman images.
      i830: Prevent allocation of bo larger than half the aperture
      uxa: Fallback when compositing to a !offscreen destination
      uxa: Avoid ping-pong with !offscreen destination and traps
      uxa: Avoid glyph ping-pong with !offscreen destination
      dri2: Handle reference counting across page flipping
      i915: Add a2r10g10b10 format and friends
      i915: Force output alpha to 1. if dst has no alpha channel.
      uxa: Fallback early if compositing with alphaMaps
      uxa: Replace source for CLEAR with a transparent solid
      uxa: Only use solid_fill for SRC.
      uxa: Convert 1x1R back to solid_fill
      dri: Hold reference to buffers across swap
      i830: Teardown batch entries on reset.
      drm: don't overwrite the old intel->front_buffer
      drm: Remove unused old_front parameter from drmmode_do_pageflip.
      drm: Remove pin(); unpin() sync
      uxa: enable solid rects for backends that require pixmaps
      i915: Don't force alpha=1 for RGB drawables in the shader.
      Split the prepare blitter functions into check + prepare.
      uxa: Parse BGRA pixel formats.
      i915: Remove a couple of unsupported 16bpp no-alpha tex formats
      uxa: Disable compatible src xrgb and dst argb
      i915: Load texture into directly into OC when possible.
      uxa: Call check_solid before running the solid blitter.
      uxa: Only use 1x1R as a solid with an opaque format or SRC
      uxa: Expand the range of compatible formats to cover all bpp.
      uxa: Fix order of conditionals to only run fill_region for SRC or opaque
      i830: Remove incorrectly mapped tex formats.
      i830: Remove xrgb conversion to argb, no longer required.
      uxa: Check the w-scaling component is 1 for an translation matrix
      uxa: Avoid using blits when with PictFilterConvolution
      uxa: Apply clip for solid rectangles.
      uxa: Force an alpha channel when rendering source fallbacks
      uxa: Patterns are acquired at 0,0
      uxa: Tidy uxa_solid_rects()
      i830: Encode surface bpp into format
      uxa: Replace solid planemask [0xffffffff] with FB_ALLONES
      dri: Check error code from GetScratchGC()
      i830: Remove vestigal debugging ALWAYS_FLUSH and ALWAYS_SYNC
      uxa: Spans! OMG!
      i915: amalgamate composite into a single primitive list
      i915: Emit composite primitive with specialised functions.
      Kill paranoid assertions on every write into the batchbuffer.
      Use pwrite to upload the batch buffer
      i915: Move vertices into a vertex buffer object.
      i915: Add special case primitive emitters for glyphs.
      uxa: translate the region in line for composites
      i915: compute normalized texcoords using a scale factor.
      uxa: Composite glyphs directly onto dst when possible.
      uxa: Use temporary dest when target is too large for compositor
      i915: Emit CA over using OutReverse + Add passes
      uxa: Apply the drawable offset to the solid rects
      i830: Skip an empty fill.
      uxa: Add PICT format mapping for depth 4 pixmaps.
      uxa: Use Composite rather than solid blitter for PolyRect
      uxa: Force the alpha value to 0xffff when treating Over as Src
      uxa: Perform manual damage for CompositeRects
      i965: Remove ATOMIC_BATCH.
      Add vertex bo to the list of buffers to be torn down.
      Decouple non-reusuable pixmaps from batch lists on unref.
      uxa: Use a glyph private rather than a hash table.
      uxa: Make the glyph caches' fixed size explicit.
      uxa: Skip the redundant miComputeCompositeRects() when adding to the mask
      i915: Don't re-emit vertex size unless it has changed.
      dri: Use size from backing pixmap when creating buffers.
      Revert "dri: Use size from backing pixmap when creating buffers."
      dri: Only flip if the front and back pixmaps match.
      dri: Compilation fix.
      i915: Support textured video on an extended desktop.
      uxa: Mega-Glyphs!
      Disable acceleration if we detect a hardware error.
      uxa: Sign reversal on early break from spans passing the YXband
      uxa: Spans, try again to get the early break correct.
      i915; Avoid the implicit flush on changing BUF_INFO
      i915: Centre sampling.
      i830: Remove unused coord-adjust.
      dri: Protect against NULL dereference following GPU hang.
      uxa: Force fallback for copies.
      Adapt glyphs for changes in devPrivates API
      Use the direct dixGevPrivate() API when available
      i915: Replace structure passing with macros for shader generation.
      i915: Remove screen size limit from video setup.
      i915: Fix typo from previous commit.
      uxa: Setup acceleration functions prior to the damage layer
      uxa: Handle all-clipped out case with destination glyphs.
      Revert "xp:trapezoids"
      Fallback implementation for trapezoids for hung GPUs.
      i830: Only emit the disabling GPU error message once.
      i830: Limit disabling acceleration following EIO to !i965
      uxa: Always clip glyphs to destination.
      Compile fix for alternate list.h from xserver-1.9
      i965: Sanity check ComponentAlpha status in prepare_composite
      configure: Bump drm requirement to 2.4.21
      drmmode: Use the tiled stride for the rotated pixmap.
      i915: Force the emission of BUF_INFO on every composite_setup
      i830: Tidy i830_uxa_put_image()
      i830: GetImage acceleration.
      i830: Remove domain tracking from pixmaps.
      uxa: Check for allocation failure.
      uxa: Match depth 30 to format.
      uxa: Use accelerated get_image for copying to !offscreen
      uxa: Enable SHM pixmaps
      uxa: Apply the source offsets to the pixmap source, not target.
      Emit the flush after a potential draw from the BlockHandler.
      Only append the pixmap to the flushing list if we are writing to it.
      Also submit any pending flush for *this* batch in the BlockHander.
      i965: Mark the render target as dirty within composite_setup()
      Do not clear need_mi_flush within the batch.
      i965: Compile fix.
      Limit maximum tiled stride to 8k and untiled to 32k.
      uxa: Fallback to pixman if source is out-of-bounds

Daniel Vetter (35):
      XvMC: everyone's using execbuffer!
      i915 XvMC: kill more subpict support remnants
      XvMC: merge *_hwmc.c into i830_hwmc.c
      XvMC: unify PutImage handling
      XvMC: unify subpicture functions
      i965 XvMC: don't create any surface state in the ddx
      XvMC: unify surface functions
      XvMC: clean up i830_hwmc.c
      XvMC: unify destroy context function
      XvMC: move i915 specific stuff to common context
      XvMC: move i965 specific stuff to common context
      XvMC: init driver in one function call
      XvMC: directly set driver type in context creation
      XvMC: dynamically allocate adaptor
      XvMC: kill intel_xvmc_command
      libXvMC: derive driver surfaces from struct intel_xvmc_surface
      libXvMC: move drm_intel_bo to common intel_xvmc_surface
      libXvMC: unify PutSurface
      libXvMC i915: rip out unneeded surface fields
      libXvMC i915: s/i915XvMCSurface/struct intel_xvmc_surface/
      libXvMC: drop get_surface_status driver callback
      libXvMC: unify DestroySurface
      libXvMC: derive driver context from struct intel_xvmc_context
      libXvMC i915: kill unused context private fields
      libXvMC: unify CreateSurface
      libXvMC: rip out debug stuff
      i965 Xv: fix chroma pitch
      Xv: fixup overlay stride confusion
      XvMC: fix memory overflow
      i830 render: use tiling bits where possible
      i915 render: use tiling bits where possible
      render: tell the kernel explicitly when fences are needed
      i830 render: check aperture space requirements
      i810: adjust the pitch for DRI rendering
      Fix "make dist"

Eric Anholt (8):
      Revert "uxa: Try using put_image when copying from a memory buffer."
      Remove remaining REG_DUMPER build stuff.
      Add a workaround for Ironlake errata regarding blits and other engines.
      Add a workaround for Ironlake errata relating to disabling the clipper.
      uxa: Fix prepare_solid being called without check_solid first.
      Use libc instead of deprecated libc wrappers for malloc/calloc/free.
      Allocate a correctly sized framebuffer when tiling by using libdrm's support.
      Allocate rotate shadow buffers using the usual framebuffer allocator.

Gaetan Nadon (1):
      COPYING: replace stub file with actual Copyright notices.

Jesse Barnes (1):
      DRI2: fix new buffer exchange check

Keith Packard (2):
      Must call ValidateGC in i830_uxa_put_image for scratch GC
      Adapt to DevPrivate API changes

Kristian Høgsberg (1):
      dri: Clean up DRI2 API #ifdefs a bit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/xorg-announce/attachments/20100624/e55f9dc4/attachment.pgp>

More information about the xorg-announce mailing list