[igt-dev] [PATCH i-g-t v2 1/2] lib/intel_bufops: Introduce buffer operations
Ville Syrjälä
ville.syrjala at linux.intel.com
Tue Dec 3 17:46:45 UTC 2019
On Tue, Dec 03, 2019 at 06:05:58PM +0100, Zbigniew KempczyÅski wrote:
> On Tue, Dec 03, 2019 at 10:25:29AM +0100, Katarzyna Dec wrote:
>
> <cut>
> > > +static void *x_ptr(void *ptr,
> > > + unsigned int x, unsigned int y,
> > > + unsigned int stride, unsigned int cpp)
> > > +{
> > > + const int tile_width = 512;
> > > + const int tile_height = 8;
> > It can be really silly question - are these ^ values always the same?
>
> Yes.
If you ignore gen2.
>
> > > + const int tile_size = tile_width * tile_height;
> > > + int tile_x, tile_y;
> > > + int offset_x, offset_y, pos;
> > > +
> > > + x *= cpp;
> > > + tile_x = x / tile_width;
> > > + tile_y = y / tile_height;
> > > + offset_x = (tile_x * tile_size);
> > > + offset_y = (tile_y * stride * tile_height);
> > > +
> > > + pos = offset_y + offset_x +
> > > + (y % tile_height * tile_width) + (x % tile_width);
> > > +
> > > + return ptr + pos;
> > > +}
> > > +
> > > +static void *y_ptr(void *ptr,
> > > + unsigned int x, unsigned int y,
> > > + unsigned int stride, unsigned int cpp)
> > > +{
> > > + const int tile_width = 128;
> > > + const int tile_height = 32;
> > > + const int owords = 16;
> > Similar question. I guess this is something specific either to Intel Gen or to
> > testcases.
>
> Tile-n where n is X/Y/Yf/Ys/... describe data placement algorithms
> to be CPU/GPU cache-friendly.
These numbers also only work for i945+.
--
Ville Syrjälä
Intel
More information about the igt-dev
mailing list