<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 5, 2015 at 2:38 PM, Chad Versace <span dir="ltr"><<a href="mailto:chad.versace@intel.com" target="_blank">chad.versace@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 01/03/2015 11:54 AM, Jason Ekstrand wrote:<br>
> From: Sisinty Sasmita Patra <<a href="mailto:sisinty.patra@intel.com">sisinty.patra@intel.com</a>><br>
><br>
> This commit refactors the tiled_memcpy code in intel_tex_subimage.c and<br>
> moves it into its own file intel_tiled_memcpy files.  Also, xtile_copy and<br>
> ytile_copy are renamed to linear_to_xtiled and linear_to_ytiled<br>
> respectively.  The *_faster functions are similarly renamed.<br>
><br>
> There was also a bit of logic to select between the the libc provided<br>
> memcpy function and our custom memcpy that does an RGBA -> BGRA swizzle.<br>
> This was moved into an intel_get_memcpy function so that rgba8_copy can<br>
> live (and be inlined) in intel_tiled_memcpy.c.<br>
><br>
> v2: Jason Ekstrand <<a href="mailto:jason.ekstrand@intel.com">jason.ekstrand@intel.com</a>><br>
>    - Better commit message<br>
>    - Fix up the copyright on the intel_tiled_memcpy files<br>
>    - Various whitespace fixes<br>
>    - Moved a bunch of stuff that did not need to be exposed from<br>
>      intel_tiled_memcpy.h to intel_tiled_memcpy.c<br>
>    - Added proper documentation for intel_get_memcpy<br>
>    - Incorperated the ptrdiff_t tweaks from commit 225a09790<br>
><br>
> Signed-off-by: Jason Ekstrand <<a href="mailto:jason.ekstrand@intel.com">jason.ekstrand@intel.com</a>><br>
> ---<br>
>  src/mesa/drivers/dri/i965/Makefile.sources     |   2 +<br>
>  src/mesa/drivers/dri/i965/intel_tex_subimage.c | 394 +---------------------<br>
>  src/mesa/drivers/dri/i965/intel_tiled_memcpy.c | 439 +++++++++++++++++++++++++<br>
>  src/mesa/drivers/dri/i965/intel_tiled_memcpy.h |  63 ++++<br>
>  4 files changed, 506 insertions(+), 392 deletions(-)<br>
>  create mode 100644 src/mesa/drivers/dri/i965/intel_tiled_memcpy.c<br>
>  create mode 100644 src/mesa/drivers/dri/i965/intel_tiled_memcpy.h<br>
<br>
<br>
</div></div><span class="">> +/**<br>
> + * Copy texture data from linear to X tile layout, faster.<br>
> + *<br>
> + * Same as \ref xtile_copy but faster, because it passes constant parameters<br>
</span>                   ^^^^^^^^^^<br>
Function name needs updating.<br>
<span class=""><br>
> + * for common cases, allowing the compiler to inline code optimized for those<br>
> + * cases.<br>
> + *<br>
> + * \copydoc tile_copy_fn<br>
> + */<br>
> +static FLATTEN void<br>
> +linear_to_xtiled_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3,<br>
> +                        uint32_t y0, uint32_t y1,<br>
> +                        char *dst, const char *src,<br>
> +                        uint32_t src_pitch,<br>
> +                        uint32_t swizzle_bit,<br>
> +                        mem_copy_fn mem_copy)<br>
<br>
<br>
<br>
</span><span class="">> +/**<br>
> + * Copy texture data from linear to Y tile layout, faster.<br>
> + *<br>
> + * Same as \ref ytile_copy but faster, because it passes constant parameters<br>
</span>                   ^^^^^^^^^^<br>
Again, function name needs updating.<br></blockquote><div><br></div><div>Will do.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
> + * for common cases, allowing the compiler to inline code optimized for those<br>
> + * cases.<br>
> + *<br>
> + * \copydoc tile_copy_fn<br>
> + */<br>
> +static FLATTEN void<br>
> +linear_to_ytiled_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3,<br>
> +                        uint32_t y0, uint32_t y1,<br>
> +                        char *dst, const char *src,<br>
> +                        uint32_t src_pitch,<br>
> +                        uint32_t swizzle_bit,<br>
> +                        mem_copy_fn mem_copy)<br>
<br>
<br>
</span>> diff --git a/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h b/src/mesa/drivers/dri/i965/intel_tiled_memcpy.h<br>
<span class=""><br>
<br>
> +/* Tile dimensions.  Width and span are in bytes, height is in pixels (i.e.<br>
> + * unitless).  A "span" is the most number of bytes we can copy from linear<br>
> + * to tiled without needing to calculate a new destination address.<br>
> + */<br>
> +static const uint32_t xtile_width = 512;<br>
> +static const uint32_t xtile_height = 8;<br>
> +static const uint32_t xtile_span = 64;<br>
> +static const uint32_t ytile_width = 128;<br>
> +static const uint32_t ytile_height = 32;<br>
> +static const uint32_t ytile_span = 16;<br>
<br>
</span>These constants should be moved to .c file if possible. Are they in the<br>
header for a reason I don't see?<br>
<br>
</blockquote></div><br></div><div class="gmail_extra">Nope<br></div></div>