[PATCH 03/12] glamor: Use the new upload/download interface for XV uploads.

2015-07-08 Thread Eric Anholt
We don't need any of its weird handling of picture formats, since our
XV pixmaps don't have any pictures attached.

Signed-off-by: Eric Anholt e...@anholt.net
---
 glamor/glamor_pixmap.c |  2 +-
 glamor/glamor_priv.h   |  4 
 glamor/glamor_xv.c | 38 --
 3 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
index 9a14527..5a09d32 100644
--- a/glamor/glamor_pixmap.c
+++ b/glamor/glamor_pixmap.c
@@ -931,7 +931,7 @@ glamor_put_bits(char *dst_bits, int dst_stride, char 
*src_bits,
 }
 }
 
-Bool
+static Bool
 glamor_upload_sub_pixmap_to_texture(PixmapPtr pixmap, int x, int y, int w,
 int h, int stride, void *bits, int pbo)
 {
diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
index d085ff2..1614b6f 100644
--- a/glamor/glamor_priv.h
+++ b/glamor/glamor_priv.h
@@ -708,10 +708,6 @@ Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum 
format, int flag);
  */
 enum glamor_pixmap_status glamor_upload_pixmap_to_texture(PixmapPtr pixmap);
 
-Bool glamor_upload_sub_pixmap_to_texture(PixmapPtr pixmap, int x, int y, int w,
- int h, int stride, void *bits,
- int pbo);
-
 glamor_pixmap_clipped_regions *
 glamor_compute_clipped_regions(PixmapPtr pixmap,
RegionPtr region, int *clipped_nbox,
diff --git a/glamor/glamor_xv.c b/glamor/glamor_xv.c
index 364104d..85e6528 100644
--- a/glamor/glamor_xv.c
+++ b/glamor/glamor_xv.c
@@ -37,6 +37,7 @@
 #endif
 
 #include glamor_priv.h
+#include glamor_transfer.h
 
 #include X11/extensions/Xv.h
 #include ../hw/xfree86/common/fourcc.h
@@ -410,6 +411,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
 int srcPitch, srcPitch2;
 int top, nlines;
 int s2offset, s3offset, tmp;
+BoxRec full_box, half_box;
 
 s2offset = s3offset = srcPitch2 = 0;
 
@@ -452,20 +454,28 @@ glamor_xv_put_image(glamor_port_private *port_priv,
 s2offset = s3offset;
 s3offset = tmp;
 }
-glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[0],
-0, 0, width, nlines,
-srcPitch,
-buf + (top * srcPitch), 0);
-
-glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[1],
-0, 0, width  1, (nlines + 1)  
1,
-srcPitch2,
-buf + s2offset, 0);
-
-glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[2],
-0, 0, width  1, (nlines + 1)  
1,
-srcPitch2,
-buf + s3offset, 0);
+
+full_box.x1 = 0;
+full_box.y1 = 0;
+full_box.x2 = width;
+full_box.y2 = nlines;
+
+half_box.x1 = 0;
+half_box.y1 = 0;
+half_box.x2 = width  1;
+half_box.y2 = (nlines + 1)  1;
+
+glamor_upload_boxes(port_priv-src_pix[0], full_box, 1,
+0, 0, 0, 0,
+buf + (top * srcPitch), srcPitch);
+
+glamor_upload_boxes(port_priv-src_pix[1], half_box, 1,
+0, 0, 0, 0,
+buf + s2offset, srcPitch2);
+
+glamor_upload_boxes(port_priv-src_pix[2], half_box, 1,
+0, 0, 0, 0,
+buf + s3offset, srcPitch2);
 break;
 default:
 return BadMatch;
-- 
2.1.4

___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Re: [PATCH 03/12] glamor: Use the new upload/download interface for XV uploads.

2015-07-08 Thread Dave Airlie
On 9 July 2015 at 05:45, Eric Anholt e...@anholt.net wrote:
 We don't need any of its weird handling of picture formats, since our
 XV pixmaps don't have any pictures attached.

 Signed-off-by: Eric Anholt e...@anholt.net

Reviewed-by: Dave Airlie airl...@redhat.com
 ---
  glamor/glamor_pixmap.c |  2 +-
  glamor/glamor_priv.h   |  4 
  glamor/glamor_xv.c | 38 --
  3 files changed, 25 insertions(+), 19 deletions(-)

 diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
 index 9a14527..5a09d32 100644
 --- a/glamor/glamor_pixmap.c
 +++ b/glamor/glamor_pixmap.c
 @@ -931,7 +931,7 @@ glamor_put_bits(char *dst_bits, int dst_stride, char 
 *src_bits,
  }
  }

 -Bool
 +static Bool
  glamor_upload_sub_pixmap_to_texture(PixmapPtr pixmap, int x, int y, int w,
  int h, int stride, void *bits, int pbo)
  {
 diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
 index d085ff2..1614b6f 100644
 --- a/glamor/glamor_priv.h
 +++ b/glamor/glamor_priv.h
 @@ -708,10 +708,6 @@ Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum 
 format, int flag);
   */
  enum glamor_pixmap_status glamor_upload_pixmap_to_texture(PixmapPtr pixmap);

 -Bool glamor_upload_sub_pixmap_to_texture(PixmapPtr pixmap, int x, int y, int 
 w,
 - int h, int stride, void *bits,
 - int pbo);
 -
  glamor_pixmap_clipped_regions *
  glamor_compute_clipped_regions(PixmapPtr pixmap,
 RegionPtr region, int *clipped_nbox,
 diff --git a/glamor/glamor_xv.c b/glamor/glamor_xv.c
 index 364104d..85e6528 100644
 --- a/glamor/glamor_xv.c
 +++ b/glamor/glamor_xv.c
 @@ -37,6 +37,7 @@
  #endif

  #include glamor_priv.h
 +#include glamor_transfer.h

  #include X11/extensions/Xv.h
  #include ../hw/xfree86/common/fourcc.h
 @@ -410,6 +411,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
  int srcPitch, srcPitch2;
  int top, nlines;
  int s2offset, s3offset, tmp;
 +BoxRec full_box, half_box;

  s2offset = s3offset = srcPitch2 = 0;

 @@ -452,20 +454,28 @@ glamor_xv_put_image(glamor_port_private *port_priv,
  s2offset = s3offset;
  s3offset = tmp;
  }
 -glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[0],
 -0, 0, width, nlines,
 -srcPitch,
 -buf + (top * srcPitch), 0);
 -
 -glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[1],
 -0, 0, width  1, (nlines + 1) 
  1,
 -srcPitch2,
 -buf + s2offset, 0);
 -
 -glamor_upload_sub_pixmap_to_texture(port_priv-src_pix[2],
 -0, 0, width  1, (nlines + 1) 
  1,
 -srcPitch2,
 -buf + s3offset, 0);
 +
 +full_box.x1 = 0;
 +full_box.y1 = 0;
 +full_box.x2 = width;
 +full_box.y2 = nlines;
 +
 +half_box.x1 = 0;
 +half_box.y1 = 0;
 +half_box.x2 = width  1;
 +half_box.y2 = (nlines + 1)  1;
 +
 +glamor_upload_boxes(port_priv-src_pix[0], full_box, 1,
 +0, 0, 0, 0,
 +buf + (top * srcPitch), srcPitch);
 +
 +glamor_upload_boxes(port_priv-src_pix[1], half_box, 1,
 +0, 0, 0, 0,
 +buf + s2offset, srcPitch2);
 +
 +glamor_upload_boxes(port_priv-src_pix[2], half_box, 1,
 +0, 0, 0, 0,
 +buf + s3offset, srcPitch2);
  break;
  default:
  return BadMatch;
 --
 2.1.4

 ___
 xorg-devel@lists.x.org: X.Org development
 Archives: http://lists.x.org/archives/xorg-devel
 Info: http://lists.x.org/mailman/listinfo/xorg-devel
___
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel