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