[Mesa-dev] [PATCH 2/6] i965: Fix comments about blit constraints
Ben Widawsky
benjamin.widawsky at intel.com
Mon Aug 10 16:15:06 PDT 2015
The spec does say that the blitter is capable of transferring 64k scanlines in a
single blit operation. Perhaps this was true, or is still true on some
operations, but for all commands that we use, we are restricted to 16b signed:
For example, from the XY_SRC_COPY_CHROMA_BLT definition:
> Destination Y2 Coordinate (Bottom)
> 16 bit signed number.
v2: Rebase; conflicts resolved with wiggle
Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
Reviewed-by: Neil Roberts <neil at linux.intel.com>
---
src/mesa/drivers/dri/i965/intel_blit.c | 8 ++++++--
src/mesa/drivers/dri/i965/intel_copy_image.c | 8 ++++++--
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 6d92580..4a76ba9 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -298,11 +298,15 @@ intel_miptree_blit(struct brw_context *brw,
* The BLT engine is capable of transferring very large quantities of
* graphics data. Any graphics data read from and written to the
* destination is permitted to represent a number of pixels that
- * occupies up to 65,536 scan lines and up to 32,768 bytes per scan line
- * at the destination. The maximum number of pixels that may be
+ * occupies up to 65,536 [sic] scan lines and up to 32,768 bytes per scan
+ * line at the destination. The maximum number of pixels that may be
* represented per scan line’s worth of graphics data depends on the
* color depth.
*
+ * XXX: The spec is likely incorrect. The number of scanlines is represented
+ * in the blit command as a 16b signed number, thus 32,767 as the max number
+ * of scanlines.
+ *
* Furthermore, intelEmitCopyBlit (which is called below) uses a signed
* 16-bit integer to represent buffer pitch, so it can only handle buffer
* pitches < 32k. However, the pitch is measured in bytes for linear buffers
diff --git a/src/mesa/drivers/dri/i965/intel_copy_image.c b/src/mesa/drivers/dri/i965/intel_copy_image.c
index 3706704..c12decc 100644
--- a/src/mesa/drivers/dri/i965/intel_copy_image.c
+++ b/src/mesa/drivers/dri/i965/intel_copy_image.c
@@ -53,11 +53,15 @@ copy_image_with_blitter(struct brw_context *brw,
* The BLT engine is capable of transferring very large quantities of
* graphics data. Any graphics data read from and written to the
* destination is permitted to represent a number of pixels that
- * occupies up to 65,536 scan lines and up to 32,768 bytes per scan line
- * at the destination. The maximum number of pixels that may be
+ * occupies up to 65,536 [sic] scan lines and up to 32,768 bytes per scan
+ * line at the destination. The maximum number of pixels that may be
* represented per scan line’s worth of graphics data depends on the
* color depth.
*
+ * XXX: The spec is likely incorrect. The number of scanlines is represented
+ * in the blit command as a 16b signed number, thus 32,767 as the max number
+ * of scanlines.
+ *
* Furthermore, intelEmitCopyBlit (which is called below) uses a signed
* 16-bit integer to represent buffer pitch, so it can only handle buffer
* pitches < 32k.
--
2.5.0
More information about the mesa-dev
mailing list