xf86-video-intel: 4 commits - src/i915_render.c src/intel_uxa.c test/dri2.c uxa/uxa-accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu Aug 16 13:02:46 PDT 2012
src/i915_render.c | 8 --
src/intel_uxa.c | 3
test/dri2.c | 4 -
uxa/uxa-accel.c | 163 +++++++++++++++++++++++++++++-------------------------
4 files changed, 96 insertions(+), 82 deletions(-)
New commits:
commit b8bc56c12c6fdc559354fbbf96b6e043a491aa8f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Aug 16 21:00:57 2012 +0100
uxa/gen3: Simply simple fill shader generation
Suggested-by: Zdenek Kabelac <zkabelac at redhat.com>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/i915_render.c b/src/i915_render.c
index acbd82c..6d3400e 100644
--- a/src/i915_render.c
+++ b/src/i915_render.c
@@ -779,12 +779,8 @@ i915_composite_emit_shader(intel_screen_private *intel, CARD8 op)
else
i915_fs_texldp(src_reg, FS_S0, FS_T0);
- if (src_reg != FS_OC) {
- if (dest_is_alpha)
- i915_fs_mov(FS_OC, i915_fs_operand(src_reg, W, W, W, W));
- else
- i915_fs_mov(FS_OC, i915_fs_operand_reg(src_reg));
- }
+ if (src_reg != FS_OC)
+ i915_fs_mov(FS_OC, i915_fs_operand(src_reg, W, W, W, W));
} else {
i915_fs_dcl(FS_T1);
i915_fs_dcl(FS_S1);
commit 182581edde356a21a0681de526f83884e1a0de5d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Aug 16 20:59:09 2012 +0100
uxa/glamor: Check for failed prepares
Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
index 4e5bac3..76425fe 100644
--- a/uxa/uxa-accel.c
+++ b/uxa/uxa-accel.c
@@ -52,12 +52,13 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
int off_x, off_y;
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_fill_spans_nf(pDrawable,
- pGC, n, ppt, pwidth, fSorted);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_fill_spans_nf(pDrawable,
+ pGC, n, ppt, pwidth, fSorted);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
@@ -213,14 +214,14 @@ uxa_put_image(DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y,
uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
-
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_put_image_nf(pDrawable,
- pGC, depth, x, y, w, h,
- leftPad, format, bits);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ int ok = 0;
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_put_image_nf(pDrawable,
+ pGC, depth, x, y, w, h,
+ leftPad, format, bits);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
@@ -375,16 +376,18 @@ uxa_copy_n_to_n(DrawablePtr pSrcDrawable,
PixmapPtr pSrcPixmap, pDstPixmap;
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
-
- uxa_prepare_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO);
- uxa_prepare_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_copy_n_to_n_nf(pSrcDrawable, pDstDrawable,
- pGC, pbox, nbox, dx, dy,
- reverse, upsidedown, bitplane,
- closure);
- uxa_finish_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW);
- uxa_finish_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO);
+ int ok = 0;
+
+ if (uxa_prepare_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO)) {
+ if (uxa_prepare_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_copy_n_to_n_nf(pSrcDrawable, pDstDrawable,
+ pGC, pbox, nbox, dx, dy,
+ reverse, upsidedown, bitplane,
+ closure);
+ uxa_finish_access(pDstDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
+ uxa_finish_access(pSrcDrawable, UXA_GLAMOR_ACCESS_RO);
+ }
if (!ok)
goto fallback;
@@ -561,11 +564,12 @@ uxa_poly_point(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_poly_point_nf(pDrawable, pGC, mode, npt, ppt);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_poly_point_nf(pDrawable, pGC, mode, npt, ppt);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (ok)
return;
@@ -611,11 +615,12 @@ uxa_poly_lines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_poly_lines_nf(pDrawable, pGC, mode, npt, ppt);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_poly_lines_nf(pDrawable, pGC, mode, npt, ppt);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (ok)
return;
@@ -684,11 +689,12 @@ uxa_poly_segment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg)
uxa_screen_t *uxa_screen = uxa_get_screen(pDrawable->pScreen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_poly_segment_nf(pDrawable, pGC, nseg, pSeg);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_poly_segment_nf(pDrawable, pGC, nseg, pSeg);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (ok)
return;
@@ -758,11 +764,12 @@ uxa_poly_fill_rect(DrawablePtr pDrawable,
int n;
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_poly_fill_rect_nf(pDrawable, pGC, nrect, prect);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_poly_fill_rect_nf(pDrawable, pGC, nrect, prect);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
uxa_check_poly_fill_rect(pDrawable, pGC, nrect, prect);
@@ -883,12 +890,13 @@ uxa_get_spans(DrawablePtr pDrawable,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_get_spans_nf(pDrawable, wMax, ppt,
- pwidth, nspans, pdstStart);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_get_spans_nf(pDrawable, wMax, ppt,
+ pwidth, nspans, pdstStart);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
@@ -908,12 +916,13 @@ uxa_set_spans(DrawablePtr pDrawable, GCPtr gc, char *src,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_set_spans_nf(pDrawable, gc, src,
- points, widths, n, sorted);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_set_spans_nf(pDrawable, gc, src,
+ points, widths, n, sorted);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
@@ -934,15 +943,17 @@ uxa_copy_plane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
RegionPtr region;
- uxa_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW);
- uxa_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO);
- ok = glamor_copy_plane_nf(pSrc, pDst, pGC, srcx, srcy, w, h,
- dstx, dsty, bitPlane, ®ion);
- uxa_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO);
- uxa_finish_access(pDst, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDst, UXA_GLAMOR_ACCESS_RW)) {
+ if (uxa_prepare_access(pSrc, UXA_GLAMOR_ACCESS_RO)) {
+ ok = glamor_copy_plane_nf(pSrc, pDst, pGC, srcx, srcy, w, h,
+ dstx, dsty, bitPlane, ®ion);
+ uxa_finish_access(pSrc, UXA_GLAMOR_ACCESS_RO);
+ }
+ uxa_finish_access(pDst, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
return region;
@@ -962,11 +973,12 @@ uxa_image_glyph_blt(DrawablePtr pDrawable, GCPtr pGC,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_image_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_image_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
return;
@@ -985,11 +997,12 @@ uxa_poly_glyph_blt(DrawablePtr pDrawable, GCPtr pGC,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_poly_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_poly_glyph_blt_nf(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
return;
@@ -1007,13 +1020,15 @@ uxa_push_pixels(GCPtr pGC, PixmapPtr pBitmap,
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- int ok;
+ int ok = 0;
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- uxa_prepare_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO);
- ok = glamor_push_pixels_nf(pGC, pBitmap, pDrawable, w, h, x, y);
- uxa_finish_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO);
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ if (uxa_prepare_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO)) {
+ ok = glamor_push_pixels_nf(pGC, pBitmap, pDrawable, w, h, x, y);
+ uxa_finish_access(&pBitmap->drawable, UXA_GLAMOR_ACCESS_RO);
+ }
+ uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
return;
@@ -1231,10 +1246,12 @@ uxa_get_image(DrawablePtr pDrawable, int x, int y, int w, int h,
Box.y2 = Box.y1 + h;
if (uxa_screen->info->flags & UXA_USE_GLAMOR) {
- uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
- ok = glamor_get_image_nf(pDrawable, x, y, w, h,
- format, planeMask, d);
- uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ ok = 0;
+ if (uxa_prepare_access(pDrawable, UXA_GLAMOR_ACCESS_RW)) {
+ ok = glamor_get_image_nf(pDrawable, x, y, w, h,
+ format, planeMask, d);
+ uxa_finish_access(pDrawable, UXA_GLAMOR_ACCESS_RW);
+ }
if (!ok)
goto fallback;
commit c289b607d1526d8d3625fa84c093552a9f3ea168
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Aug 16 20:54:40 2012 +0100
uxa: Check for failed mmapping of the scanout
Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_uxa.c b/src/intel_uxa.c
index 5aad062..3745ff0 100644
--- a/src/intel_uxa.c
+++ b/src/intel_uxa.c
@@ -1145,7 +1145,8 @@ Bool intel_uxa_create_screen_resources(ScreenPtr screen)
if (!uxa_resources_init(screen))
return FALSE;
- drm_intel_gem_bo_map_gtt(bo);
+ if (drm_intel_gem_bo_map_gtt(bo))
+ return FALSE;
pixmap = screen->GetScreenPixmap(screen);
intel_set_pixmap_bo(pixmap, bo);
commit 32ec8b979bc8cf7d8ce351ca752b806d42bc1c0f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Aug 16 20:53:08 2012 +0100
test/dri2: Discard error returns from _XReply
This is only test code, so keep the static analyser quiet
Reported-by: Zdenek Kabelac <zkabelac at redhat.com>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/test/dri2.c b/test/dri2.c
index 86a0a74..0e2003c 100644
--- a/test/dri2.c
+++ b/test/dri2.c
@@ -475,7 +475,7 @@ DRI2CopyRegion(Display * dpy, XID drawable, XserverRegion region,
req->dest = dest;
req->src = src;
- _XReply(dpy, (xReply *) & rep, 0, xFalse);
+ (void) _XReply(dpy, (xReply *) & rep, 0, xFalse);
UnlockDisplay(dpy);
SyncHandle();
@@ -517,7 +517,7 @@ uint64_t DRI2SwapBuffers(Display *dpy, XID drawable,
req->drawable = drawable;
load_swap_req(req, target_msc, divisor, remainder);
- _XReply(dpy, (xReply *)&rep, 0, xFalse);
+ (void) _XReply(dpy, (xReply *)&rep, 0, xFalse);
count = vals_to_card64(rep.swap_lo, rep.swap_hi);
More information about the xorg-commit
mailing list