On Tue, Jun 2, 2015 at 4:04 PM, Anuj Phogat <anuj.pho...@gmail.com> wrote: > This patch enables using XY_FAST_COPY_BLT only for Yf/Ys tiled buffers. > It can be later turned on for other tiling patterns (X,Y) too. > > V3: Flush in between sequential fast copy blits. > Fix src/dst alignment requirements. > Make can_fast_copy_blit() helper. > Use ffs(), is_power_of_two() > Move overlap computation inside intel_miptree_blit(). > Use XY_FAST prefix for the macros. > > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> > Cc: Ben Widawsky <b...@bwidawsk.net> > --- > src/mesa/drivers/dri/i965/intel_blit.c | 306 > +++++++++++++++++++++++---- > src/mesa/drivers/dri/i965/intel_blit.h | 2 + > src/mesa/drivers/dri/i965/intel_copy_image.c | 2 + > src/mesa/drivers/dri/i965/intel_reg.h | 36 ++++ > 4 files changed, 299 insertions(+), 47 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/intel_blit.c > b/src/mesa/drivers/dri/i965/intel_blit.c > index cd89f9d..8f0b48b 100644 > --- a/src/mesa/drivers/dri/i965/intel_blit.c > +++ b/src/mesa/drivers/dri/i965/intel_blit.c > @@ -43,6 +43,23 @@ > > #define FILE_DEBUG_FLAG DEBUG_BLIT > > +#define SET_TILING_XY_FAST_COPY_BLT(tiling, tr_mode, type) \ > +({ \ > + switch (tiling) { \ > + case I915_TILING_X: \ > + CMD |= type ## _TILED_X; \ > + break; \ > + case I915_TILING_Y: \ > + if (tr_mode == INTEL_MIPTREE_TRMODE_YS) \ > + CMD |= type ## _TILED_64K; \ > + else \ > + CMD |= type ## _TILED_Y; \ > + break; \ > + default: \ > + unreachable("not reached"); \ > + } \ > +}) > + > static void > intel_miptree_set_alpha_to_one(struct brw_context *brw, > struct intel_mipmap_tree *mt, > @@ -75,6 +92,10 @@ static uint32_t > br13_for_cpp(int cpp) > { > switch (cpp) { > + case 16: > + return BR13_32323232; > + case 8: > + return BR13_16161616; > case 4: > return BR13_8888; > case 2: > @@ -86,6 +107,81 @@ br13_for_cpp(int cpp) > } > } > > +static uint32_t > +get_tr_horizontal_align(uint32_t tr_mode, uint32_t cpp, bool is_src) { > + /*Alignment tables for YF/YS tiled surfaces. */
Missing a space after /* _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev