Re: [igt-dev] [PATCH i-g-t 03/10] lib/igt_buf: Extend igt_buf to include two color surfaces

Kahola, Mika
2019-12-30T12:06:54Z

On Mon, 2019-12-30 at 05:40 +0200, Imre Deak wrote:
> UV FBs have two color surfaces so extend the igt_buf struct
> accordingly
> to support blitting such FBs.
>
> The patch is produced with the coccinelle patch below.
>
> No functional changes.

When applying this patch, the compiler started to nag about

[75/672] Compiling C object 'tests/59830eb@@kms_cursor_crc@exe/kms_curs
or_crc.c.o'.
FAILED: tests/59830eb@@kms_cursor_crc@exe/kms_cursor_crc.c.o
ccache cc -Itests/59830eb@@kms_cursor_crc@exe -Itests -I../tests
-I../include/drm-uapi -Ilib -I../lib -I../lib/stubs/syscalls -I. -I../
-I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-
gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/libdrm -I/usr/include/x86_64-
linux-gnu -I/usr/include/alsa -I/usr/include/libdrm/nouveau
-fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
-Winvalid-pch -Wextra -std=gnu11 -O2 -g -D_GNU_SOURCE -include config.h
-D_FORTIFY_SOURCE=2 -Wbad-function-cast -Wdeclaration-after-statement
-Wformat=2 -Wimplicit-fallthrough=0 -Wlogical-op -Wmissing-declarations
-Wmissing-format-attribute -Wmissing-noreturn -Wmissing-prototypes
-Wnested-externs -Wold-style-definition -Wpointer-arith -Wredundant-
decls -Wshadow -Wstrict-prototypes -Wuninitialized -Wunused -Wno-
clobbered -Wno-maybe-uninitialized -Wno-missing-field-initializers
-Wno-pointer-arith -Wno-sign-compare -Wno-type-limits -Wno-unused-
parameter -Wno-unused-result -Werror=address -Werror=array-bounds
-Werror=implicit -Werror=init-self -Werror=int-to-pointer-cast
-Werror=main -Werror=missing-braces -Werror=nonnull -Werror=pointer-to-
int-cast -Werror=return-type -Werror=sequence-point -Werror=trigraphs
-Werror=write-strings -fno-builtin-malloc -fno-builtin-calloc
-pthread -MD -MQ 'tests/59830eb@@kms_cursor_crc@exe/kms_cursor_crc.c.o
' -MF 'tests/59830eb@@kms_cursor_crc@exe/kms_cursor_crc.c.o.d' -o
'tests/59830eb@@kms_cursor_crc@exe/kms_cursor_crc.c.o' -c
../tests/kms_cursor_crc.c
../tests/kms_cursor_crc.c: In function ‘scratch_buf_init’:
../tests/kms_cursor_crc.c:388:21: error: ‘struct igt_buf’ has no member
named ‘stride’
data->igtbo[buffer].stride = data->primary_fb[buffer].strides[0];
^
../tests/kms_cursor_crc.c:390:21: error: ‘struct igt_buf’ has no member
named ‘size’
data->igtbo[buffer].size = data->primary_fb[buffer].size;
^
[84/672] Compiling C object 'tests/59830eb@@kms_cursor_legacy@exe/kms_c
ursor_legacy.c.o'.
ninja: build stopped: subcommand failed.

>
> @@
> @@
>
> struct igt_buf {
> ...
> - uint32_t stride;
> ...
> - uint32_t size;
> + struct {
> + uint32_t stride;
> + uint32_t size;
> + } surface[2];
> ...
> };
>
> @@
> struct igt_buf b;
> @@
>
> <...
> (
> - b.stride
> + b.surface[0].stride
> >
>
> - b.size
> + b.surface[0].size
> )
> ...>
>
> @@
> struct igt_buf *b;
> @@
>
> <...
> (
> - b->size
> + b->surface[0].size
> >
>
> - b->stride
> + b->surface[0].stride
> )
> ...>
>
> @@
> identifier I;
> expression E1;
> expression E2;
> @@
>
> (
> struct igt_buf I = {
> - .size = E1,
> - .stride = E2,
> + .surface[0] = {
> + .size = E1,
> + .stride = E2,
> + },
> };
> >
>
> struct igt_buf I = {
> - .size = E1,
> + .surface[0] = {
> + .size = E1,
> + },
> };
> >
>
> struct igt_buf I = {
> - .stride = E1,
> + .surface[0] = {
> + .stride = E1,
> + },
> };
> )
>
> Cc: Mika Kahola <mika.kahola@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> lib/gpu_cmds.c | 4 +-
> lib/igt_draw.c | 8 ++--
> lib/igt_fb.c | 4 +-
> lib/intel_aux_pgtable.c | 5 ++-
> lib/intel_batchbuffer.c | 8 ++--
> lib/intel_batchbuffer.h | 6 ++-
> lib/rendercopy_gen4.c | 4 +-
> lib/rendercopy_gen6.c | 4 +-
> lib/rendercopy_gen7.c | 4 +-
> lib/rendercopy_gen8.c | 4 +-
> lib/rendercopy_gen9.c | 4 +-
> lib/rendercopy_i830.c | 8 ++--
> lib/rendercopy_i915.c | 8 ++--
> lib/veboxcopy_gen12.c | 6 ++-
> tests/i915/gem_concurrent_all.c | 10 +++--
> tests/i915/gem_gpgpu_fill.c | 4 +-
> tests/i915/gem_media_fill.c | 4 +-
> tests/i915/gem_media_vme.c | 6 +--
> tests/i915/gem_ppgtt.c | 8 ++--
> tests/i915/gem_read_read_speed.c | 10 +++--
> tests/i915/gem_render_copy.c | 35 +++++++++--------
> tests/i915/gem_render_copy_redux.c | 4 +-
> tests/i915/gem_render_linear_blits.c | 24 +++++------
> tests/i915/gem_render_tiled_blits.c | 8 ++--
> tests/i915/gem_ring_sync_copy.c | 4 +-
> tests/i915/gem_stress.c | 59 +++++++++++++++-----------
> --
> tests/i915/i915_pm_sseu.c | 7 ++--
> tests/kms_big_fb.c | 10 +++--
> tests/kms_psr.c | 4 +-
> tests/perf.c | 4 +-
> 30 files changed, 149 insertions(+), 129 deletions(-)
>
> diff --git a/lib/gpu_cmds.c b/lib/gpu_cmds.c
> index 8d270ee8..79412725 100644
> --- a/lib/gpu_cmds.c
> +++ b/lib/gpu_cmds.c
> @@ -119,7 +119,7 @@ gen7_fill_surface_state(struct intel_batchbuffer
> *batch,
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
>
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
>
> ss->ss7.shader_chanel_select_r = 4;
> ss->ss7.shader_chanel_select_g = 5;
> @@ -422,7 +422,7 @@ gen8_fill_surface_state(struct intel_batchbuffer
> *batch,
>
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
>
> ss->ss7.shader_chanel_select_r = 4;
> ss->ss7.shader_chanel_select_g = 5;
> diff --git a/lib/igt_draw.c b/lib/igt_draw.c
> index 7e0edec1..6950bc49 100644
> --- a/lib/igt_draw.c
> +++ b/lib/igt_draw.c
> @@ -603,14 +603,14 @@ static void draw_rect_render(int fd, struct
> cmd_data *cmd_data,
> igt_assert(dst);
>
> src_buf.bo = src;
> - src_buf.stride = tmp.stride;
> + src_buf.surface[0].stride = tmp.stride;
> src_buf.tiling = I915_TILING_NONE;
> - src_buf.size = tmp.size;
> + src_buf.surface[0].size = tmp.size;
> src_buf.bpp = tmp.bpp;
> dst_buf.bo = dst;
> - dst_buf.stride = buf->stride;
> + dst_buf.surface[0].stride = buf->stride;
> dst_buf.tiling = tiling;
> - dst_buf.size = buf->size;
> + dst_buf.surface[0].size = buf->size;
> dst_buf.bpp = buf->bpp;
>
> batch = intel_batchbuffer_alloc(cmd_data->bufmgr, devid);
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 0e1b8493..cc0fb373 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -1977,9 +1977,9 @@ static void init_buf(struct fb_blit_upload
> *blit,
> buf->bo = gem_handle_to_libdrm_bo(blit->bufmgr, blit->fd,
> name, fb->gem_handle);
> buf->tiling = igt_fb_mod_to_tiling(fb->modifier);
> - buf->stride = fb->strides[0];
> + buf->surface[0].stride = fb->strides[0];
> buf->bpp = fb->plane_bpp[0];
> - buf->size = fb->size;
> + buf->surface[0].size = fb->size;
>
> if (is_ccs_modifier(fb->modifier)) {
> igt_assert_eq(fb->strides[0] & 127, 0);
> diff --git a/lib/intel_aux_pgtable.c b/lib/intel_aux_pgtable.c
> index dab83a9a..5addb2e2 100644
> --- a/lib/intel_aux_pgtable.c
> +++ b/lib/intel_aux_pgtable.c
> @@ -77,7 +77,8 @@ pgt_table_count(int address_bits, const struct
> igt_buf **bufs, int buf_count)
> /* Avoid double counting for overlapping aligned bufs.
> */
> start = max(start, end);
>
> - end = ALIGN(buf->bo->offset64 + buf->size, 1UL <<
> address_bits);
> + end = ALIGN(buf->bo->offset64 + buf->surface[0].size,
> + 1UL << address_bits);
> igt_assert(end >= start);
>
> count += (end - start) >> address_bits;
> @@ -255,7 +256,7 @@ pgt_populate_entries_for_buf(struct pgtable *pgt,
> uint64_t top_table)
> {
> uint64_t surface_addr = buf->bo->offset64;
> - uint64_t surface_end = surface_addr + buf->size;
> + uint64_t surface_end = surface_addr + buf->surface[0].size;
> uint64_t aux_addr = buf->bo->offset64 + buf->ccs[0].offset;
> uint64_t l1_flags = pgt_get_l1_flags(buf);
> uint64_t lx_flags = pgt_get_lx_flags();
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 51aae4dc..3dc89024 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -512,7 +512,7 @@ intel_copy_bo(struct intel_batchbuffer *batch,
> */
> unsigned igt_buf_width(const struct igt_buf *buf)
> {
> - return buf->stride/(buf->bpp / 8);
> + return buf->surface[0].stride/(buf->bpp / 8);
> }
>
> /**
> @@ -526,7 +526,7 @@ unsigned igt_buf_width(const struct igt_buf *buf)
> */
> unsigned igt_buf_height(const struct igt_buf *buf)
> {
> - return buf->size/buf->stride;
> + return buf->surface[0].size/buf->surface[0].stride;
> }
>
> /*
> @@ -785,8 +785,8 @@ void igt_blitter_fast_copy(struct
> intel_batchbuffer *batch,
>
> igt_assert(src->bpp == dst->bpp);
>
> - src_pitch = fast_copy_pitch(src->stride, src->tiling);
> - dst_pitch = fast_copy_pitch(dst->stride, src->tiling);
> + src_pitch = fast_copy_pitch(src->surface[0].stride, src-
> >tiling);
> + dst_pitch = fast_copy_pitch(dst->surface[0].stride, src-
> >tiling);
> dword0 = fast_copy_dword0(src->tiling, dst->tiling);
> dword1 = fast_copy_dword1(src->tiling, dst->tiling, dst->bpp);
>
> diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
> index 63d32188..69580839 100644
> --- a/lib/intel_batchbuffer.h
> +++ b/lib/intel_batchbuffer.h
> @@ -232,12 +232,14 @@ enum i915_compression {
> */
> struct igt_buf {
> drm_intel_bo *bo;
> - uint32_t stride;
> uint32_t tiling;
> enum i915_compression compression;
> uint32_t bpp;
> uint32_t *data;
> - uint32_t size;
> + struct {
> + uint32_t stride;
> + uint32_t size;
> + } surface[2];
> struct {
> uint32_t offset;
> uint32_t stride;
> diff --git a/lib/rendercopy_gen4.c b/lib/rendercopy_gen4.c
> index 42de77f9..d07b8e48 100644
> --- a/lib/rendercopy_gen4.c
> +++ b/lib/rendercopy_gen4.c
> @@ -142,7 +142,7 @@ gen4_bind_buf(struct intel_batchbuffer *batch,
> uint32_t write_domain, read_domain;
> int ret;
>
> - igt_assert_lte(buf->stride, 128*1024);
> + igt_assert_lte(buf->surface[0].stride, 128*1024);
> igt_assert_lte(igt_buf_width(buf), 8192);
> igt_assert_lte(igt_buf_height(buf), 8192);
>
> @@ -176,7 +176,7 @@ gen4_bind_buf(struct intel_batchbuffer *batch,
>
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
> ss->ss3.tiled_surface = buf->tiling != I915_TILING_NONE;
> ss->ss3.tile_walk = buf->tiling == I915_TILING_Y;
>
> diff --git a/lib/rendercopy_gen6.c b/lib/rendercopy_gen6.c
> index 83c7d694..87034774 100644
> --- a/lib/rendercopy_gen6.c
> +++ b/lib/rendercopy_gen6.c
> @@ -79,7 +79,7 @@ gen6_bind_buf(struct intel_batchbuffer *batch,
> const struct igt_buf *buf,
> uint32_t write_domain, read_domain;
> int ret;
>
> - igt_assert_lte(buf->stride, 128*1024);
> + igt_assert_lte(buf->surface[0].stride, 128*1024);
> igt_assert_lte(igt_buf_width(buf), 8192);
> igt_assert_lte(igt_buf_height(buf), 8192);
>
> @@ -113,7 +113,7 @@ gen6_bind_buf(struct intel_batchbuffer *batch,
> const struct igt_buf *buf,
>
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
> ss->ss3.tiled_surface = buf->tiling != I915_TILING_NONE;
> ss->ss3.tile_walk = buf->tiling == I915_TILING_Y;
>
> diff --git a/lib/rendercopy_gen7.c b/lib/rendercopy_gen7.c
> index a3c8b7f3..b88b75e9 100644
> --- a/lib/rendercopy_gen7.c
> +++ b/lib/rendercopy_gen7.c
> @@ -65,7 +65,7 @@ gen7_bind_buf(struct intel_batchbuffer *batch,
> uint32_t write_domain, read_domain;
> int ret;
>
> - igt_assert_lte(buf->stride, 256*1024);
> + igt_assert_lte(buf->surface[0].stride, 256*1024);
> igt_assert_lte(igt_buf_width(buf), 16384);
> igt_assert_lte(igt_buf_height(buf), 16384);
>
> @@ -92,7 +92,7 @@ gen7_bind_buf(struct intel_batchbuffer *batch,
> ss[1] = buf->bo->offset;
> ss[2] = ((igt_buf_width(buf) - 1) << GEN7_SURFACE_WIDTH_SHIFT
> |
> (igt_buf_height(buf) - 1) <<
> GEN7_SURFACE_HEIGHT_SHIFT);
> - ss[3] = (buf->stride - 1) << GEN7_SURFACE_PITCH_SHIFT;
> + ss[3] = (buf->surface[0].stride - 1) <<
> GEN7_SURFACE_PITCH_SHIFT;
> ss[4] = 0;
> if (IS_VALLEYVIEW(batch->devid))
> ss[5] = VLV_MOCS_L3 << 16;
> diff --git a/lib/rendercopy_gen8.c b/lib/rendercopy_gen8.c
> index e22d8501..8e02d846 100644
> --- a/lib/rendercopy_gen8.c
> +++ b/lib/rendercopy_gen8.c
> @@ -151,7 +151,7 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
> uint32_t write_domain, read_domain, offset;
> int ret;
>
> - igt_assert_lte(buf->stride, 256*1024);
> + igt_assert_lte(buf->surface[0].stride, 256*1024);
> igt_assert_lte(igt_buf_width(buf), 16384);
> igt_assert_lte(igt_buf_height(buf), 16384);
>
> @@ -199,7 +199,7 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
>
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
>
> ss->ss7.shader_chanel_select_r = 4;
> ss->ss7.shader_chanel_select_g = 5;
> diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
> index 4d4541e3..835c8d80 100644
> --- a/lib/rendercopy_gen9.c
> +++ b/lib/rendercopy_gen9.c
> @@ -199,7 +199,7 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
> const struct igt_buf *buf,
> uint32_t write_domain, read_domain, offset;
> int ret;
>
> - igt_assert_lte(buf->stride, 256*1024);
> + igt_assert_lte(buf->surface[0].stride, 256*1024);
> igt_assert_lte(igt_buf_width(buf), 16384);
> igt_assert_lte(igt_buf_height(buf), 16384);
>
> @@ -250,7 +250,7 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
> const struct igt_buf *buf,
>
> ss->ss2.height = igt_buf_height(buf) - 1;
> ss->ss2.width = igt_buf_width(buf) - 1;
> - ss->ss3.pitch = buf->stride - 1;
> + ss->ss3.pitch = buf->surface[0].stride - 1;
>
> ss->ss7.skl.shader_chanel_select_r = 4;
> ss->ss7.skl.shader_chanel_select_g = 5;
> diff --git a/lib/rendercopy_i830.c b/lib/rendercopy_i830.c
> index e8c04718..ca815122 100644
> --- a/lib/rendercopy_i830.c
> +++ b/lib/rendercopy_i830.c
> @@ -138,7 +138,7 @@ static void gen2_emit_target(struct
> intel_batchbuffer *batch,
> uint32_t tiling;
> uint32_t format;
>
> - igt_assert_lte(dst->stride, 8192);
> + igt_assert_lte(dst->surface[0].stride, 8192);
> igt_assert_lte(igt_buf_width(dst), 2048);
> igt_assert_lte(igt_buf_height(dst), 2048);
>
> @@ -156,7 +156,7 @@ static void gen2_emit_target(struct
> intel_batchbuffer *batch,
> tiling |= BUF_3D_TILE_WALK_Y;
>
> OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
> - OUT_BATCH(BUF_3D_ID_COLOR_BACK | tiling | BUF_3D_PITCH(dst-
> >stride));
> + OUT_BATCH(BUF_3D_ID_COLOR_BACK | tiling | BUF_3D_PITCH(dst-
> >surface[0].stride));
> OUT_RELOC(dst->bo, I915_GEM_DOMAIN_RENDER,
> I915_GEM_DOMAIN_RENDER, 0);
>
> OUT_BATCH(_3DSTATE_DST_BUF_VARS_CMD);
> @@ -179,7 +179,7 @@ static void gen2_emit_texture(struct
> intel_batchbuffer *batch,
> uint32_t tiling;
> uint32_t format;
>
> - igt_assert_lte(src->stride, 8192);
> + igt_assert_lte(src->surface[0].stride, 8192);
> igt_assert_lte(igt_buf_width(src), 2048);
> igt_assert_lte(igt_buf_height(src), 2048);
>
> @@ -201,7 +201,7 @@ static void gen2_emit_texture(struct
> intel_batchbuffer *batch,
> OUT_BATCH((igt_buf_height(src) - 1) << TM0S1_HEIGHT_SHIFT |
> (igt_buf_width(src) - 1) << TM0S1_WIDTH_SHIFT |
> format | tiling);
> - OUT_BATCH((src->stride / 4 - 1) << TM0S2_PITCH_SHIFT |
> TM0S2_MAP_2D);
> + OUT_BATCH((src->surface[0].stride / 4 - 1) << TM0S2_PITCH_SHIFT
> | TM0S2_MAP_2D);
> OUT_BATCH(FILTER_NEAREST << TM0S3_MAG_FILTER_SHIFT |
> FILTER_NEAREST << TM0S3_MIN_FILTER_SHIFT |
> MIPFILTER_NONE << TM0S3_MIP_FILTER_SHIFT);
> diff --git a/lib/rendercopy_i915.c b/lib/rendercopy_i915.c
> index 1baa7a1b..56e1863e 100644
> --- a/lib/rendercopy_i915.c
> +++ b/lib/rendercopy_i915.c
> @@ -88,7 +88,7 @@ void gen3_render_copyfunc(struct intel_batchbuffer
> *batch,
> #define TEX_COUNT 1
> uint32_t format_bits, tiling_bits = 0;
>
> - igt_assert_lte(src->stride, 8192);
> + igt_assert_lte(src->surface[0].stride, 8192);
> igt_assert_lte(igt_buf_width(src), 2048);
> igt_assert_lte(igt_buf_height(src), 2048);
>
> @@ -110,7 +110,7 @@ void gen3_render_copyfunc(struct
> intel_batchbuffer *batch,
> OUT_BATCH(format_bits | tiling_bits |
> (igt_buf_height(src) - 1) << MS3_HEIGHT_SHIFT
> |
> (igt_buf_width(src) - 1) << MS3_WIDTH_SHIFT);
> - OUT_BATCH((src->stride/4-1) << MS4_PITCH_SHIFT);
> + OUT_BATCH((src->surface[0].stride/4-1) <<
> MS4_PITCH_SHIFT);
>
> OUT_BATCH(_3DSTATE_SAMPLER_STATE | (3 * TEX_COUNT));
> OUT_BATCH((1 << TEX_COUNT) - 1);
> @@ -128,7 +128,7 @@ void gen3_render_copyfunc(struct
> intel_batchbuffer *batch,
> uint32_t tiling_bits = 0;
> uint32_t format_bits;
>
> - igt_assert_lte(dst->stride, 8192);
> + igt_assert_lte(dst->surface[0].stride, 8192);
> igt_assert_lte(igt_buf_width(dst), 2048);
> igt_assert_lte(igt_buf_height(dst), 2048);
>
> @@ -146,7 +146,7 @@ void gen3_render_copyfunc(struct
> intel_batchbuffer *batch,
>
> OUT_BATCH(_3DSTATE_BUF_INFO_CMD);
> OUT_BATCH(BUF_3D_ID_COLOR_BACK | tiling_bits |
> - BUF_3D_PITCH(dst->stride));
> + BUF_3D_PITCH(dst->surface[0].stride));
> OUT_RELOC(dst->bo, I915_GEM_DOMAIN_RENDER,
> I915_GEM_DOMAIN_RENDER, 0);
>
> OUT_BATCH(_3DSTATE_DST_BUF_VARS_CMD);
> diff --git a/lib/veboxcopy_gen12.c b/lib/veboxcopy_gen12.c
> index 87800941..2f017514 100644
> --- a/lib/veboxcopy_gen12.c
> +++ b/lib/veboxcopy_gen12.c
> @@ -248,12 +248,14 @@ void gen12_vebox_copyfunc(struct
> intel_batchbuffer *batch,
> /* TODO: add support for more formats */
> igt_assert(src->bpp == 32);
> emit_surface_state_cmd(batch, VEBOX_SURFACE_INPUT,
> - width, height, src->bpp, src->stride,
> + width, height, src->bpp,
> + src->surface[0].stride,
> src->tiling, R8G8B8A8_UNORM);
>
> igt_assert(dst->bpp == 32);
> emit_surface_state_cmd(batch, VEBOX_SURFACE_OUTPUT,
> - width, height, dst->bpp, dst->stride,
> + width, height, dst->bpp,
> + dst->surface[0].stride,
> dst->tiling, R8G8B8A8_UNORM);
>
> emit_tiling_convert_cmd(batch,
> diff --git a/tests/i915/gem_concurrent_all.c
> b/tests/i915/gem_concurrent_all.c
> index 6486bebf..f1be4a85 100644
> --- a/tests/i915/gem_concurrent_all.c
> +++ b/tests/i915/gem_concurrent_all.c
> @@ -851,15 +851,17 @@ static void render_copy_bo(struct buffers *b,
> drm_intel_bo *dst, drm_intel_bo *s
> {
> struct igt_buf d = {
> .bo = dst,
> - .size = b->npixels * 4,
> .num_tiles = b->npixels * 4,
> - .stride = b->width * 4,
> + .surface[0] = {
> + .size = b->npixels * 4, .stride = b->width * 4,
> + },
> .bpp = 32,
> }, s = {
> .bo = src,
> - .size = b->npixels * 4,
> .num_tiles = b->npixels * 4,
> - .stride = b->width * 4,
> + .surface[0] = {
> + .size = b->npixels * 4, .stride = b->width * 4,
> + },
> .bpp = 32,
> };
> uint32_t swizzle;
> diff --git a/tests/i915/gem_gpgpu_fill.c
> b/tests/i915/gem_gpgpu_fill.c
> index 68918c3e..b2d401d6 100644
> --- a/tests/i915/gem_gpgpu_fill.c
> +++ b/tests/i915/gem_gpgpu_fill.c
> @@ -75,9 +75,9 @@ static void scratch_buf_init(data_t *data, struct
> igt_buf *buf,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = stride;
> + buf->surface[0].stride = stride;
> buf->tiling = I915_TILING_NONE;
> - buf->size = SIZE;
> + buf->surface[0].size = SIZE;
> buf->bpp = 32;
> }
>
> diff --git a/tests/i915/gem_media_fill.c
> b/tests/i915/gem_media_fill.c
> index a7d7708c..c880bae9 100644
> --- a/tests/i915/gem_media_fill.c
> +++ b/tests/i915/gem_media_fill.c
> @@ -78,9 +78,9 @@ static void scratch_buf_init(data_t *data, struct
> igt_buf *buf,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = stride;
> + buf->surface[0].stride = stride;
> buf->tiling = I915_TILING_NONE;
> - buf->size = SIZE;
> + buf->surface[0].size = SIZE;
> buf->bpp = 32;
> }
>
> diff --git a/tests/i915/gem_media_vme.c b/tests/i915/gem_media_vme.c
> index d5045ad1..20f5ca35 100644
> --- a/tests/i915/gem_media_vme.c
> +++ b/tests/i915/gem_media_vme.c
> @@ -58,7 +58,7 @@ scratch_buf_init(drm_intel_bufmgr *bufmgr,
>
> buf->bo = bo;
> buf->tiling = I915_TILING_NONE;
> - buf->size = size;
> + buf->surface[0].size = size;
> }
>
> static void scratch_buf_init_src(drm_intel_bufmgr *bufmgr, struct
> igt_buf *buf)
> @@ -71,14 +71,14 @@ static void scratch_buf_init_src(drm_intel_bufmgr
> *bufmgr, struct igt_buf *buf)
> * with this vme kernel.
> */
>
> - buf->stride = STRIDE;
> + buf->surface[0].stride = STRIDE;
> }
>
> static void scratch_buf_init_dst(drm_intel_bufmgr *bufmgr, struct
> igt_buf *buf)
> {
> scratch_buf_init(bufmgr, buf, OUTPUT_SIZE);
>
> - buf->stride = 1;
> + buf->surface[0].stride = 1;
> }
>
> static uint64_t switch_off_n_bits(uint64_t mask, unsigned int n)
> diff --git a/tests/i915/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
> index 89cdc4db..4c7d3ba2 100644
> --- a/tests/i915/gem_ppgtt.c
> +++ b/tests/i915/gem_ppgtt.c
> @@ -73,9 +73,9 @@ static void scratch_buf_init(struct igt_buf *buf,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = create_bo(bufmgr, pixel);
> - buf->stride = STRIDE;
> + buf->surface[0].stride = STRIDE;
> buf->tiling = I915_TILING_NONE;
> - buf->size = SIZE;
> + buf->surface[0].size = SIZE;
> buf->bpp = 32;
> }
>
> @@ -140,9 +140,9 @@ static void fork_rcs_copy(int timeout, uint32_t
> final,
> }
>
> buf.bo = dst[child];
> - buf.stride = STRIDE;
> + buf.surface[0].stride = STRIDE;
> buf.tiling = I915_TILING_NONE;
> - buf.size = SIZE;
> + buf.surface[0].size = SIZE;
> buf.bpp = 32;
>
> i = 0;
> diff --git a/tests/i915/gem_read_read_speed.c
> b/tests/i915/gem_read_read_speed.c
> index 8b5ba8f7..2aab2204 100644
> --- a/tests/i915/gem_read_read_speed.c
> +++ b/tests/i915/gem_read_read_speed.c
> @@ -53,15 +53,17 @@ static drm_intel_bo *rcs_copy_bo(drm_intel_bo
> *dst, drm_intel_bo *src)
> {
> struct igt_buf d = {
> .bo = dst,
> - .size = width * height * 4,
> .num_tiles = width * height * 4,
> - .stride = width * 4,
> + .surface[0] = {
> + .size = width * height * 4, .stride = width *
> 4,
> + },
> .bpp = 32,
> }, s = {
> .bo = src,
> - .size = width * height * 4,
> .num_tiles = width * height * 4,
> - .stride = width * 4,
> + .surface[0] = {
> + .size = width * height * 4, .stride = width *
> 4,
> + },
> .bpp = 32,
> };
> uint32_t swizzle;
> diff --git a/tests/i915/gem_render_copy.c
> b/tests/i915/gem_render_copy.c
> index df0d045e..5abb2036 100644
> --- a/tests/i915/gem_render_copy.c
> +++ b/tests/i915/gem_render_copy.c
> @@ -118,7 +118,8 @@ static void copy_linear_to_yf(data_t *data,
> struct igt_buf *buf,
> for (int y = 0; y < height; y++) {
> for (int x = 0; x < width; x++) {
> uint32_t *ptr = yf_ptr(map, x, y,
> - buf->stride, buf->bpp /
> 8);
> + buf->surface[0].stride,
> + buf->bpp / 8);
>
> *ptr = linear[y * width + x];
> }
> @@ -142,7 +143,8 @@ static void copy_yf_to_linear(data_t *data,
> struct igt_buf *buf,
> for (int y = 0; y < height; y++) {
> for (int x = 0; x < width; x++) {
> uint32_t *ptr = yf_ptr(map, x, y,
> - buf->stride, buf->bpp /
> 8);
> + buf->surface[0].stride,
> + buf->bpp / 8);
>
> linear[y * width + x] = *ptr;
> }
> @@ -231,7 +233,7 @@ static void scratch_buf_write_to_png(data_t
> *data, struct igt_buf *buf,
> CAIRO_FORMAT_RGB2
> 4,
> igt_buf_width(buf
> ),
> igt_buf_height(bu
> f),
> - buf->stride);
> + buf-
> >surface[0].stride);
> ret = cairo_surface_write_to_png(surface,
> make_filename(filename));
> igt_assert(ret == CAIRO_STATUS_SUCCESS);
> cairo_surface_destroy(surface);
> @@ -324,7 +326,7 @@ static void scratch_buf_draw_pattern(data_t
> *data, struct igt_buf *buf,
> CAIRO_FORMAT_RGB2
> 4,
> igt_buf_width(buf
> ),
> igt_buf_height(bu
> f),
> - buf->stride);
> + buf-
> >surface[0].stride);
>
> cr = cairo_create(surface);
>
> @@ -403,7 +405,7 @@ scratch_buf_copy(data_t *data,
> for (int y = 0; y < h; y++) {
> for (int x = 0; x < w; x++) {
> const uint32_t *ptr = yf_ptr(map, sx+x,
> sy+y,
> - src-
> >stride,
> + src-
> >surface[0].stride,
> src->bpp /
> 8);
>
> linear_dst[(dy+y) * width + dx+x] =
> *ptr;
> @@ -458,14 +460,14 @@ static void scratch_buf_init(data_t *data,
> struct igt_buf *buf,
> * turn mapped by one L1 AUX page table entry.
> */
> if (intel_gen(data->devid) >= 12)
> - buf->stride = ALIGN(width * (bpp / 8), 128 *
> 4);
> + buf->surface[0].stride = ALIGN(width * (bpp /
> 8), 128 * 4);
> else
> - buf->stride = ALIGN(width * (bpp / 8), 128);
> + buf->surface[0].stride = ALIGN(width * (bpp /
> 8), 128);
>
> if (intel_gen(data->devid) >= 12)
> height = ALIGN(height, 4 * 32);
>
> - buf->size = buf->stride * height;
> + buf->surface[0].size = buf->surface[0].stride * height;
> buf->tiling = tiling;
> buf->bpp = bpp;
>
> @@ -473,7 +475,7 @@ static void scratch_buf_init(data_t *data, struct
> igt_buf *buf,
> aux_height = scratch_buf_aux_height(data->devid, buf);
>
> buf->compression = compression;
> - buf->ccs[0].offset = buf->stride * ALIGN(height, 32);
> + buf->ccs[0].offset = buf->surface[0].stride *
> ALIGN(height, 32);
> buf->ccs[0].stride = aux_width;
>
> size = buf->ccs[0].offset + aux_width * aux_height;
> @@ -481,18 +483,19 @@ static void scratch_buf_init(data_t *data,
> struct igt_buf *buf,
> buf->bo = drm_intel_bo_alloc(data->bufmgr, "", size,
> 4096);
>
> if (tiling == I915_TILING_Y) {
> - drm_intel_bo_set_tiling(buf->bo, &tiling, buf-
> >stride);
> + drm_intel_bo_set_tiling(buf->bo, &tiling,
> + buf-
> >surface[0].stride);
> igt_assert_eq(tiling, req_tiling);
> }
> } else if (req_tiling == I915_TILING_Yf) {
> int size;
>
> - buf->stride = ALIGN(width * (bpp / 8), 128);
> - buf->size = buf->stride * height;
> + buf->surface[0].stride = ALIGN(width * (bpp / 8), 128);
> + buf->surface[0].size = buf->surface[0].stride * height;
> buf->tiling = tiling;
> buf->bpp = bpp;
>
> - size = buf->stride * ALIGN(height, 32);
> + size = buf->surface[0].stride * ALIGN(height, 32);
>
> buf->bo = drm_intel_bo_alloc(data->bufmgr, "", size,
> 4096);
> } else {
> @@ -501,9 +504,9 @@ static void scratch_buf_init(data_t *data, struct
> igt_buf *buf,
> &tiling, &pitch, 0);
> igt_assert_eq(tiling, req_tiling);
>
> - buf->stride = pitch;
> + buf->surface[0].stride = pitch;
> buf->tiling = tiling;
> - buf->size = pitch * height;
> + buf->surface[0].size = pitch * height;
> buf->bpp = bpp;
> }
>
> @@ -806,7 +809,7 @@ static void test(data_t *data, uint32_t
> src_tiling, uint32_t dst_tiling,
> 0, 0,
> igt_buf_width(&dst),
> igt_buf_height(&dst),
> AUB_DUMP_BMP_FORMAT_ARGB_
> 8888,
> - dst.stride, 0);
> + dst.surface[0].stride,
> 0);
> drm_intel_bufmgr_gem_set_aub_dump(data->bufmgr, false);
> } else if (check_all_pixels) {
> scratch_buf_check_all(data, &dst, &ref);
> diff --git a/tests/i915/gem_render_copy_redux.c
> b/tests/i915/gem_render_copy_redux.c
> index ef601c22..2388fc24 100644
> --- a/tests/i915/gem_render_copy_redux.c
> +++ b/tests/i915/gem_render_copy_redux.c
> @@ -106,9 +106,9 @@ static void scratch_buf_init(data_t *data, struct
> igt_buf *buf,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = stride;
> + buf->surface[0].stride = stride;
> buf->tiling = I915_TILING_NONE;
> - buf->size = SIZE;
> + buf->surface[0].size = SIZE;
> buf->bpp = 32;
> }
>
> diff --git a/tests/i915/gem_render_linear_blits.c
> b/tests/i915/gem_render_linear_blits.c
> index a726652b..666a43cd 100644
> --- a/tests/i915/gem_render_linear_blits.c
> +++ b/tests/i915/gem_render_linear_blits.c
> @@ -108,15 +108,15 @@ static void run_test (int fd, int count)
> struct igt_buf src = {}, dst = {};
>
> src.bo = bo[i % count];
> - src.stride = STRIDE;
> + src.surface[0].stride = STRIDE;
> src.tiling = I915_TILING_NONE;
> - src.size = SIZE;
> + src.surface[0].size = SIZE;
> src.bpp = 32;
>
> dst.bo = bo[(i + 1) % count];
> - dst.stride = STRIDE;
> + dst.surface[0].stride = STRIDE;
> dst.tiling = I915_TILING_NONE;
> - dst.size = SIZE;
> + dst.surface[0].size = SIZE;
> dst.bpp = 32;
>
> render_copy(batch, NULL, &src, 0, 0, WIDTH, HEIGHT,
> &dst, 0, 0);
> @@ -133,15 +133,15 @@ static void run_test (int fd, int count)
> struct igt_buf src = {}, dst = {};
>
> src.bo = bo[(i + 1) % count];
> - src.stride = STRIDE;
> + src.surface[0].stride = STRIDE;
> src.tiling = I915_TILING_NONE;
> - src.size = SIZE;
> + src.surface[0].size = SIZE;
> src.bpp = 32;
>
> dst.bo = bo[i % count];
> - dst.stride = STRIDE;
> + dst.surface[0].stride = STRIDE;
> dst.tiling = I915_TILING_NONE;
> - dst.size = SIZE;
> + dst.surface[0].size = SIZE;
> dst.bpp = 32;
>
> render_copy(batch, NULL, &src, 0, 0, WIDTH, HEIGHT,
> &dst, 0, 0);
> @@ -160,15 +160,15 @@ static void run_test (int fd, int count)
> continue;
>
> src.bo = bo[s];
> - src.stride = STRIDE;
> + src.surface[0].stride = STRIDE;
> src.tiling = I915_TILING_NONE;
> - src.size = SIZE;
> + src.surface[0].size = SIZE;
> src.bpp = 32;
>
> dst.bo = bo[d];
> - dst.stride = STRIDE;
> + dst.surface[0].stride = STRIDE;
> dst.tiling = I915_TILING_NONE;
> - dst.size = SIZE;
> + dst.surface[0].size = SIZE;
> dst.bpp = 32;
>
> render_copy(batch, NULL, &src, 0, 0, WIDTH, HEIGHT,
> &dst, 0, 0);
> diff --git a/tests/i915/gem_render_tiled_blits.c
> b/tests/i915/gem_render_tiled_blits.c
> index 14018329..1de1b72c 100644
> --- a/tests/i915/gem_render_tiled_blits.c
> +++ b/tests/i915/gem_render_tiled_blits.c
> @@ -66,9 +66,9 @@ check_bo(struct intel_batchbuffer *batch, struct
> igt_buf *buf, uint32_t val)
> int i;
>
> tmp.bo = linear;
> - tmp.stride = STRIDE;
> + tmp.surface[0].stride = STRIDE;
> tmp.tiling = I915_TILING_NONE;
> - tmp.size = SIZE;
> + tmp.surface[0].size = SIZE;
> tmp.bpp = 32;
>
> render_copy(batch, NULL, buf, 0, 0, WIDTH, HEIGHT, &tmp, 0, 0);
> @@ -132,9 +132,9 @@ static void run_test (int fd, int count)
> buf[i].bo = drm_intel_bo_alloc_tiled(bufmgr, "",
> WIDTH, HEIGHT, 4,
> &tiling, &pitch,
> 0);
> - buf[i].stride = pitch;
> + buf[i].surface[0].stride = pitch;
> buf[i].tiling = tiling;
> - buf[i].size = SIZE;
> + buf[i].surface[0].size = SIZE;
> buf[i].bpp = 32;
>
> start_val[i] = start;
> diff --git a/tests/i915/gem_ring_sync_copy.c
> b/tests/i915/gem_ring_sync_copy.c
> index 1e5728bc..ddf5f750 100644
> --- a/tests/i915/gem_ring_sync_copy.c
> +++ b/tests/i915/gem_ring_sync_copy.c
> @@ -134,9 +134,9 @@ static void scratch_buf_init_from_bo(struct
> igt_buf *buf, drm_intel_bo *bo)
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = 4 * WIDTH;
> + buf->surface[0].stride = 4 * WIDTH;
> buf->tiling = I915_TILING_NONE;
> - buf->size = 4 * WIDTH * HEIGHT;
> + buf->surface[0].size = 4 * WIDTH * HEIGHT;
> buf->bpp = 32;
> }
>
> diff --git a/tests/i915/gem_stress.c b/tests/i915/gem_stress.c
> index 57e2909c..50245b93 100644
> --- a/tests/i915/gem_stress.c
> +++ b/tests/i915/gem_stress.c
> @@ -155,8 +155,8 @@ struct {
> static void tile2xy(struct igt_buf *buf, unsigned tile, unsigned *x,
> unsigned *y)
> {
> igt_assert(tile < buf->num_tiles);
> - *x = (tile*options.tile_size) % (buf->stride/sizeof(uint32_t));
> - *y = ((tile*options.tile_size) / (buf-
> >stride/sizeof(uint32_t))) * options.tile_size;
> + *x = (tile*options.tile_size) % (buf-
> >surface[0].stride/sizeof(uint32_t));
> + *y = ((tile*options.tile_size) / (buf-
> >surface[0].stride/sizeof(uint32_t))) * options.tile_size;
> }
>
> static void emit_blt(drm_intel_bo *src_bo, uint32_t src_tiling,
> unsigned src_pitch,
> @@ -268,8 +268,10 @@ static void cpu_copyfunc(struct igt_buf *src,
> unsigned src_x, unsigned src_y,
> set_to_cpu_domain(dst, 1);
> }
>
> - cpucpy2d(src->data, src->stride/sizeof(uint32_t), src_x, src_y,
> - dst->data, dst->stride/sizeof(uint32_t), dst_x, dst_y,
> + cpucpy2d(src->data, src->surface[0].stride/sizeof(uint32_t),
> src_x,
> + src_y,
> + dst->data, dst->surface[0].stride/sizeof(uint32_t),
> dst_x,
> + dst_y,
> logical_tile_no);
> }
>
> @@ -287,7 +289,7 @@ static void prw_copyfunc(struct igt_buf *src,
> unsigned src_x, unsigned src_y,
>
> if (src->tiling == I915_TILING_NONE) {
> for (i = 0; i < options.tile_size; i++) {
> - unsigned ofs = src_x*sizeof(uint32_t) + src-
> >stride*(src_y + i);
> + unsigned ofs = src_x*sizeof(uint32_t) + src-
> >surface[0].stride*(src_y + i);
> drm_intel_bo_get_subdata(src->bo, ofs,
> options.tile_size*size
> of(uint32_t),
> tmp_tile +
> options.tile_size*i);
> @@ -296,13 +298,14 @@ static void prw_copyfunc(struct igt_buf *src,
> unsigned src_x, unsigned src_y,
> if (options.use_cpu_maps)
> set_to_cpu_domain(src, 0);
>
> - cpucpy2d(src->data, src->stride/sizeof(uint32_t),
> src_x, src_y,
> + cpucpy2d(src->data, src-
> >surface[0].stride/sizeof(uint32_t),
> + src_x, src_y,
> tmp_tile, options.tile_size, 0, 0,
> logical_tile_no);
> }
>
> if (dst->tiling == I915_TILING_NONE) {
> for (i = 0; i < options.tile_size; i++) {
> - unsigned ofs = dst_x*sizeof(uint32_t) + dst-
> >stride*(dst_y + i);
> + unsigned ofs = dst_x*sizeof(uint32_t) + dst-
> >surface[0].stride*(dst_y + i);
> drm_intel_bo_subdata(dst->bo, ofs,
> options.tile_size*sizeof(u
> int32_t),
> tmp_tile +
> options.tile_size*i);
> @@ -312,7 +315,8 @@ static void prw_copyfunc(struct igt_buf *src,
> unsigned src_x, unsigned src_y,
> set_to_cpu_domain(dst, 1);
>
> cpucpy2d(tmp_tile, options.tile_size, 0, 0,
> - dst->data, dst->stride/sizeof(uint32_t),
> dst_x, dst_y,
> + dst->data, dst-
> >surface[0].stride/sizeof(uint32_t),
> + dst_x, dst_y,
> logical_tile_no);
> }
> }
> @@ -327,9 +331,9 @@ static void blitter_copyfunc(struct igt_buf *src,
> unsigned src_x, unsigned src_y
> if (keep_gpu_busy_counter & 1 && !fence_storm)
> keep_gpu_busy();
>
> - emit_blt(src->bo, src->tiling, src->stride, src_x, src_y,
> + emit_blt(src->bo, src->tiling, src->surface[0].stride, src_x,
> src_y,
> options.tile_size, options.tile_size,
> - dst->bo, dst->tiling, dst->stride, dst_x, dst_y);
> + dst->bo, dst->tiling, dst->surface[0].stride, dst_x,
> dst_y);
>
> if (!(keep_gpu_busy_counter & 1) && !fence_storm)
> keep_gpu_busy();
> @@ -441,7 +445,7 @@ static void fan_out(void)
>
> cpucpy2d(tmp_tile, options.tile_size, 0, 0,
> buffers[current_set][buf_idx].data,
> - buffers[current_set][buf_idx].stride /
> sizeof(uint32_t),
> + buffers[current_set][buf_idx].surface[0].strid
> e / sizeof(uint32_t),
> x, y, i);
> }
>
> @@ -465,7 +469,7 @@ static void fan_in_and_check(void)
> set_to_cpu_domain(&buffers[current_set][buf_idx
> ], 0);
>
> cpucpy2d(buffers[current_set][buf_idx].data,
> - buffers[current_set][buf_idx].stride /
> sizeof(uint32_t),
> + buffers[current_set][buf_idx].surface[0].strid
> e / sizeof(uint32_t),
> x, y,
> tmp_tile, options.tile_size, 0, 0,
> i);
> @@ -476,15 +480,15 @@ static void sanitize_stride(struct igt_buf
> *buf)
> {
>
> if (igt_buf_height(buf) > options.max_dimension)
> - buf->stride = buf->size / options.max_dimension;
> + buf->surface[0].stride = buf->surface[0].size /
> options.max_dimension;
>
> if (igt_buf_height(buf) < options.tile_size)
> - buf->stride = buf->size / options.tile_size;
> + buf->surface[0].stride = buf->surface[0].size /
> options.tile_size;
>
> if (igt_buf_width(buf) < options.tile_size)
> - buf->stride = options.tile_size * sizeof(uint32_t);
> + buf->surface[0].stride = options.tile_size *
> sizeof(uint32_t);
>
> - igt_assert(buf->stride <= 8192);
> + igt_assert(buf->surface[0].stride <= 8192);
> igt_assert(igt_buf_width(buf) <= options.max_dimension);
> igt_assert(igt_buf_height(buf) <= options.max_dimension);
>
> @@ -498,10 +502,10 @@ static void init_buffer(struct igt_buf *buf,
> unsigned size)
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = drm_intel_bo_alloc(bufmgr, "tiled bo", size, 4096);
> - buf->size = size;
> + buf->surface[0].size = size;
> igt_assert(buf->bo);
> buf->tiling = I915_TILING_NONE;
> - buf->stride = 4096;
> + buf->surface[0].stride = 4096;
> buf->bpp = 32;
>
> sanitize_stride(buf);
> @@ -560,25 +564,26 @@ static void init_set(unsigned set)
> if (buffers[set][i].tiling == I915_TILING_NONE) {
> /* min 64 byte stride */
> r %= 8;
> - buffers[set][i].stride = 64 * (1 << r);
> + buffers[set][i].surface[0].stride = 64 * (1 <<
> r);
> } else if (IS_GEN2(devid)) {
> /* min 128 byte stride */
> r %= 7;
> - buffers[set][i].stride = 128 * (1 << r);
> + buffers[set][i].surface[0].stride = 128 * (1 <<
> r);
> } else {
> /* min 512 byte stride */
> r %= 5;
> - buffers[set][i].stride = 512 * (1 << r);
> + buffers[set][i].surface[0].stride = 512 * (1 <<
> r);
> }
>
> sanitize_stride(&buffers[set][i]);
>
> gem_set_tiling(drm_fd, buffers[set][i].bo->handle,
> buffers[set][i].tiling,
> - buffers[set][i].stride);
> + buffers[set][i].surface[0].stride);
>
> if (options.trace_tile != -1 && i ==
> options.trace_tile/options.tiles_per_buf)
> - igt_info("changing buffer %i containing tile
> %i: tiling %i, stride %i\n", i, options.trace_tile,
> buffers[set][i].tiling, buffers[set][i].stride);
> + igt_info("changing buffer %i containing tile
> %i: tiling %i, stride %i\n", i, options.trace_tile,
> buffers[set][i].tiling,
> + buffers[set][i].surface[0].stride);
> }
> }
>
> @@ -616,10 +621,10 @@ static void copy_tiles(unsigned *permutation)
>
> if (options.no_hw) {
> cpucpy2d(src_buf->data,
> - src_buf->stride / sizeof(uint32_t),
> + src_buf->surface[0].stride /
> sizeof(uint32_t),
> src_x, src_y,
> dst_buf->data,
> - dst_buf->stride / sizeof(uint32_t),
> + dst_buf->surface[0].stride /
> sizeof(uint32_t),
> dst_x, dst_y,
> i);
> } else {
> @@ -808,7 +813,7 @@ static void check_render_copyfunc(void)
>
> memset(src.data, 0xff, options.scratch_buf_size);
> for (j = 0; j < options.tile_size; j++) {
> - ptr = (uint32_t*)((char *)src.data + sx*4 +
> (sy+j) * src.stride);
> + ptr = (uint32_t*)((char *)src.data + sx*4 +
> (sy+j) * src.surface[0].stride);
> for (i = 0; i < options.tile_size; i++)
> ptr[i] = j * options.tile_size + i;
> }
> @@ -819,7 +824,7 @@ static void check_render_copyfunc(void)
> set_to_cpu_domain(&dst, 0);
>
> for (j = 0; j < options.tile_size; j++) {
> - ptr = (uint32_t*)((char *)dst.data + dx*4 +
> (dy+j) * dst.stride);
> + ptr = (uint32_t*)((char *)dst.data + dx*4 +
> (dy+j) * dst.surface[0].stride);
> for (i = 0; i < options.tile_size; i++)
> if (ptr[i] != j * options.tile_size +
> i) {
> igt_info("render copyfunc
> mismatch at (%d, %d): found %d, expected %d\n", i, j, ptr[i], j *
> options.tile_size + i);
> diff --git a/tests/i915/i915_pm_sseu.c b/tests/i915/i915_pm_sseu.c
> index e671e190..c2dee118 100644
> --- a/tests/i915/i915_pm_sseu.c
> +++ b/tests/i915/i915_pm_sseu.c
> @@ -299,10 +299,11 @@ gem_init(void)
> igt_assert(gem.batch);
> gem.init = 3;
>
> - gem.buf.stride = sizeof(uint32_t);
> + gem.buf.surface[0].stride = sizeof(uint32_t);
> gem.buf.tiling = I915_TILING_NONE;
> - gem.buf.size = gem.buf.stride;
> - gem.buf.bo = drm_intel_bo_alloc(gem.bufmgr, "", gem.buf.size,
> 4096);
> + gem.buf.surface[0].size = gem.buf.surface[0].stride;
> + gem.buf.bo = drm_intel_bo_alloc(gem.bufmgr, "",
> + gem.buf.surface[0].size, 4096);
> gem.buf.bpp = 32;
> igt_assert(gem.buf.bo);
> gem.init = 4;
> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
> index c5d002ca..eb144da9 100644
> --- a/tests/kms_big_fb.c
> +++ b/tests/kms_big_fb.c
> @@ -60,9 +60,9 @@ static void init_buf(data_t *data,
> buf->bo = gem_handle_to_libdrm_bo(data->bufmgr, data->drm_fd,
> name, fb->gem_handle);
> buf->tiling = igt_fb_mod_to_tiling(fb->modifier);
> - buf->stride = fb->strides[0];
> + buf->surface[0].stride = fb->strides[0];
> buf->bpp = fb->plane_bpp[0];
> - buf->size = fb->size;
> + buf->surface[0].size = fb->size;
> }
>
> static void fini_buf(struct igt_buf *buf)
> @@ -99,8 +99,10 @@ static void copy_pattern(data_t *data,
> h = min(h, src_fb->height - sy);
> h = min(h, dst_fb->height - dy);
>
> - intel_blt_copy(data->batch, src.bo, sx, sy, src.stride,
> - dst.bo, dx, dy, dst.stride, w, h,
> dst.bpp);
> + intel_blt_copy(data->batch, src.bo, sx, sy,
> + src.surface[0].stride,
> + dst.bo, dx, dy, dst.surface[0].stride,
> w, h,
> + dst.bpp);
> }
>
> fini_buf(&dst);
> diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> index 232c80aa..d9be87d9 100644
> --- a/tests/kms_psr.c
> +++ b/tests/kms_psr.c
> @@ -153,9 +153,9 @@ static void scratch_buf_init(struct igt_buf *buf,
> drm_intel_bo *bo,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = stride;
> + buf->surface[0].stride = stride;
> buf->tiling = I915_TILING_X;
> - buf->size = size;
> + buf->surface[0].size = size;
> buf->bpp = 32;
> }
>
> diff --git a/tests/perf.c b/tests/perf.c
> index f5dd6051..982277df 100644
> --- a/tests/perf.c
> +++ b/tests/perf.c
> @@ -506,9 +506,9 @@ scratch_buf_init(drm_intel_bufmgr *bufmgr,
> memset(buf, 0, sizeof(*buf));
>
> buf->bo = bo;
> - buf->stride = stride;
> + buf->surface[0].stride = stride;
> buf->tiling = I915_TILING_NONE;
> - buf->size = size;
> + buf->surface[0].size = size;
> buf->bpp = 32;
> }
>