xf86-video-intel/uxa
Chris Wilson 0ff4d42a42 uxa: Review uxa_prepare_access() to remove potential nesting
Around a call to uxa_put_image() it is possible to mix both accelerated
and fallback paths, with the fallback code making the presumed
optimisation of only trying to call uxa_prepare_access() once. This
fails if the accelerated path also uses prepare/finish access on the
same drawable and then later fallback to the fallback path. This can
happen currently if an error is reported whilst attempting to accelerate
PutImage.

  #0  memcpy () at ../sysdeps/x86_64/memcpy.S:162
  #1  0x00007ffff43ce4bd in fbBlt (srcLine=<value optimized out>, srcStride=40, srcX=<value optimized out>, dstLine=0xffffffffffffffff, dstStride=64, dstX=0, width=<value optimized out>, height=8, alu=3, pm=4294967295, bpp=8, reverse=0, upsidedown=0) at fbblt.c:93
  #2  0x00007ffff43ce740 in fbBltStip (src=0xffffffffffffffff, srcStride=156555204, srcX=34, dst=0xfffffffc, dstStride=64, dstX=40, width=304, height=8, alu=3, pm=4294967295, bpp=8) at fbblt.c:944
  #3  0x00007ffff4c32c53 in uxa_do_put_image (pDrawable=0x246aa410, pGC=0x2c0a4f0, depth=8, x=0, y=0, w=38, h=8, leftPad=0, format=2, bits=0x954d7c4 "") at uxa-accel.c:196 #4  uxa_do_shm_put_image (pDrawable=0x246aa410, pGC=0x2c0a4f0, depth=8, x=0, y=0, w=38, h=8, leftPad=0, format=2, bits=0x954d7c4 "") at uxa-accel.c:223
  #5  uxa_put_image (pDrawable=0x246aa410, pGC=0x2c0a4f0, depth=8, x=0, y=0, w=38, h=8, leftPad=0, format=2, bits=0x954d7c4 "") at uxa-accel.c:289
  #6  0x00000000004d574f in damagePutImage (pDrawable=0x246aa410, pGC=0x2c0a4f0, depth=8, x=0, y=0, w=38, h=8, leftPad=0, format=2, pImage=0x954d7c4 "") at damage.c:905
  #7  0x00000000004287db in ProcPutImage (client=0x47ca72d0) at dispatch.c:2073
  #8  0x000000000042bd94 in Dispatch () at dispatch.c:445
  #9  0x000000000042513a in main (argc=4, argv=0x7fffffffe2a8, envp=<value optimized out>) at main.c:285

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-02 12:23:58 +00:00
..
Makefile.am configure: use CWARNFLAGS from xorg-macros.m4 2009-11-05 16:58:35 +01:00
uxa-accel.c uxa: Review uxa_prepare_access() to remove potential nesting 2009-12-02 12:23:58 +00:00
uxa-glyphs.c uxa-glyphs: Enable TILING_X on glyph caches. 2009-11-30 00:58:05 +00:00
uxa-priv.h Move to kernel coding style. 2009-10-06 17:10:31 -07:00
uxa-render.c i915: Derive the correct target color from the pixmap by checking its format 2009-11-13 20:20:52 +00:00
uxa-unaccel.c Move to kernel coding style. 2009-10-06 17:10:31 -07:00
uxa.c Move to kernel coding style. 2009-10-06 17:10:31 -07:00
uxa.h i915: Derive the correct target color from the pixmap by checking its format 2009-11-13 20:20:52 +00:00