[igt-dev] [PATCH i-g-t] lib/intel_batchbuffer: Move batch functions from media/render/gpgpu libs
Katarzyna Dec
katarzyna.dec at intel.com
Mon Apr 16 08:13:26 UTC 2018
On Fri, Apr 13, 2018 at 05:13:36PM +0200, Lukasz Kalamarz wrote:
> Batch functions were copy/pasted across several libs.
> With moving it into intel_batchbuffer lib test can now be
> easly maintained without worrying that we forgot to modify
> older version of lib.
Please add more info in commit msg about what has changed.
>
> Signed-off-by: Lukasz Kalamarz <lukasz.kalamarz at intel.com>
> Cc: Katarzyna Dec <katarzyna.dec at intel.com>
> Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg at intel.com>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> ---
> lib/gpgpu_fill.c | 6 ++--
> lib/gpu_fill.c | 68 +++++++++++-----------------------------
> lib/gpu_fill.h | 15 ---------
> lib/intel_batchbuffer.c | 58 ++++++++++++++++++++++++++++++----
> lib/intel_batchbuffer.h | 18 +++++++++--
> lib/media_fill_gen7.c | 2 +-
> lib/media_fill_gen8.c | 2 +-
> lib/media_fill_gen9.c | 2 +-
> lib/media_spin.c | 63 +++++++++----------------------------
> lib/rendercopy_gen6.c | 75 ++++++++++----------------------------------
> lib/rendercopy_gen7.c | 65 ++++++++++-----------------------------
> lib/rendercopy_gen8.c | 82 +++++++++++++++----------------------------------
> lib/rendercopy_gen9.c | 82 +++++++++++++++----------------------------------
> 13 files changed, 188 insertions(+), 350 deletions(-)
>
> diff --git a/lib/gpgpu_fill.c b/lib/gpgpu_fill.c
> index 72a1445..010dde0 100644
> --- a/lib/gpgpu_fill.c
> +++ b/lib/gpgpu_fill.c
> @@ -137,7 +137,7 @@ gen7_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> @@ -185,7 +185,7 @@ gen8_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> @@ -234,7 +234,7 @@ gen9_gpgpu_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> diff --git a/lib/gpu_fill.c b/lib/gpu_fill.c
> index f1fe5b3..5c1e217 100644
> --- a/lib/gpu_fill.c
> +++ b/lib/gpu_fill.c
> @@ -24,41 +24,6 @@
>
> #include "gpu_fill.h"
>
> -uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->ptr - batch->buffer;
> -}
> -
> -uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->ptr += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> void
> gen7_render_flush(struct intel_batchbuffer *batch, uint32_t batch_end)
> {
> @@ -78,8 +43,10 @@ gen7_fill_curbe_buffer_data(struct intel_batchbuffer *batch,
> uint8_t *curbe_buffer;
> uint32_t offset;
>
> - curbe_buffer = batch_alloc(batch, sizeof(uint32_t) * 8, 64);
> - offset = batch_offset(batch, curbe_buffer);
> + curbe_buffer = intel_batchbuffer_subdata_alloc(batch,
> + sizeof(uint32_t) * 8,
> + 64);
> + offset = intel_batchbuffer_subdata_offset(batch, curbe_buffer);
> *curbe_buffer = color;
>
> return offset;
> @@ -102,8 +69,8 @@ gen7_fill_surface_state(struct intel_batchbuffer *batch,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
>
> ss->ss0.surface_type = GEN7_SURFACE_2D;
> ss->ss0.surface_format = format;
> @@ -116,7 +83,7 @@ gen7_fill_surface_state(struct intel_batchbuffer *batch,
>
> ss->ss1.base_addr = buf->bo->offset;
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 4,
> + intel_batchbuffer_subdata_offset(batch, ss) + 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert(ret == 0);
> @@ -140,8 +107,8 @@ gen7_fill_binding_table(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table, offset;
>
> - binding_table = batch_alloc(batch, 32, 64);
> - offset = batch_offset(batch, binding_table);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 32, 64);
> + offset = intel_batchbuffer_subdata_offset(batch, binding_table);
> if (IS_GEN7(batch->devid))
> binding_table[0] = gen7_fill_surface_state(batch, dst,
> GEN7_SURFACEFORMAT_R8_UNORM, 1);
> @@ -159,7 +126,7 @@ gen7_fill_kernel(struct intel_batchbuffer *batch,
> {
> uint32_t offset;
>
> - offset = batch_copy(batch, kernel, size, 64);
> + offset = intel_batchbuffer_copy_data(batch, kernel, size, 64);
>
> return offset;
> }
> @@ -175,8 +142,8 @@ gen7_fill_interface_descriptor(struct intel_batchbuffer *batch, struct igt_buf *
> binding_table_offset = gen7_fill_binding_table(batch, dst);
> kernel_offset = gen7_fill_kernel(batch, kernel, size);
>
> - idd = batch_alloc(batch, sizeof(*idd), 64);
> - offset = batch_offset(batch, idd);
> + idd = intel_batchbuffer_subdata_alloc(batch, sizeof(*idd), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, idd);
>
> idd->desc0.kernel_start_pointer = (kernel_offset >> 6);
>
> @@ -401,8 +368,8 @@ gen8_fill_surface_state(struct intel_batchbuffer *batch,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
>
> ss->ss0.surface_type = GEN8_SURFACE_2D;
> ss->ss0.surface_format = format;
> @@ -418,7 +385,8 @@ gen8_fill_surface_state(struct intel_batchbuffer *batch,
> ss->ss8.base_addr = buf->bo->offset;
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 8 * 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 8 * 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert(ret == 0);
> @@ -445,8 +413,8 @@ gen8_fill_interface_descriptor(struct intel_batchbuffer *batch, struct igt_buf *
> binding_table_offset = gen7_fill_binding_table(batch, dst);
> kernel_offset = gen7_fill_kernel(batch, kernel, size);
>
> - idd = batch_alloc(batch, sizeof(*idd), 64);
> - offset = batch_offset(batch, idd);
> + idd = intel_batchbuffer_subdata_alloc(batch, sizeof(*idd), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, idd);
>
> idd->desc0.kernel_start_pointer = (kernel_offset >> 6);
>
> diff --git a/lib/gpu_fill.h b/lib/gpu_fill.h
> index 072e9f7..067d498 100644
> --- a/lib/gpu_fill.h
> +++ b/lib/gpu_fill.h
> @@ -37,21 +37,6 @@
> #include "intel_chipset.h"
> #include <assert.h>
>
> -uint32_t
> -batch_used(struct intel_batchbuffer *batch);
> -
> -uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align);
> -
> -void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align);
> -
> -uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr);
> -
> -uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align);
> -
> void
> gen7_render_flush(struct intel_batchbuffer *batch, uint32_t batch_end);
>
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 10d4dce..ec7ef98 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -66,6 +66,49 @@
> */
>
> /**
> + * intel_batchbuffer_align:
> + * @batch: batchbuffer object
> + * @align: value in bytes to which we want to align
> + *
> + * Align batchbuffer offset to given value and then return it
> + */
> +uint32_t
> +intel_batchbuffer_align(struct intel_batchbuffer *batch, uint32_t align)
> +{
> + uint32_t offset = batch->ptr - batch->buffer;
> +
> + offset = ALIGN(offset, align);
> + batch->ptr = batch->buffer + offset;
> + return offset;
> +}
> +
> +uint32_t
> +batch_round_upto(struct intel_batchbuffer *batch, uint32_t divisor)
All functions are staring with intel_* in this lib, maybe this one also should?
> +{
> + uint32_t offset = batch->ptr - batch->buffer;
> +
> + offset = (offset + divisor-1) / divisor * divisor;
> + batch->ptr = batch->buffer + offset;
> + return offset;
> +}
> +
Please add documentation to all new added functions (almost all in the lib
have one)
> +void *
> +intel_batchbuffer_subdata_alloc(struct intel_batchbuffer *batch, uint32_t size,
> + uint32_t align)
> +{
> + uint32_t offset = intel_batchbuffer_align(batch, align);
> +
> + batch->ptr += size;
> + return memset(batch->buffer + offset, 0, size);
> +}
> +
> +uint32_t
> +intel_batchbuffer_subdata_offset(struct intel_batchbuffer *batch, void *ptr)
> +{
> + return (uint8_t *)ptr - batch->buffer;
> +}
> +
> +/**
> * intel_batchbuffer_reset:
> * @batch: batchbuffer object
> *
> @@ -288,7 +331,7 @@ intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
> }
>
> /**
> - * intel_batchbuffer_data:
> + * intel_batchbuffer_copy_data:
> * @batch: batchbuffer object
> * @data: pointer to the data to write into the batchbuffer
> * @bytes: number of bytes to write into the batchbuffer
> @@ -296,14 +339,17 @@ intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
> * This transfers the given @data into the batchbuffer. Note that the length
> * must be DWORD aligned, i.e. multiples of 32bits.
> */
> -void
> -intel_batchbuffer_data(struct intel_batchbuffer *batch,
> - const void *data, unsigned int bytes)
> +uint32_t
> +intel_batchbuffer_copy_data(struct intel_batchbuffer *batch,
> + const void *data, unsigned int bytes,
> + uint32_t align)
> {
> + uint32_t *subdata, *copied_data;
Checkpatch is not mentioning this place, but there should be newline after
this declarations.
Kasia
> igt_assert((bytes & 3) == 0);
> intel_batchbuffer_require_space(batch, bytes);
> - memcpy(batch->ptr, data, bytes);
> - batch->ptr += bytes;
> + subdata = intel_batchbuffer_subdata_alloc(batch, bytes, align);
> + copied_data = memcpy(subdata, data, bytes);
> + return intel_batchbuffer_subdata_offset(batch, copied_data);
> }
>
> /**
> diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
> index 2c262d7..7468eaf 100644
> --- a/lib/intel_batchbuffer.h
> +++ b/lib/intel_batchbuffer.h
> @@ -41,8 +41,9 @@ void intel_batchbuffer_flush_with_context(struct intel_batchbuffer *batch,
>
> void intel_batchbuffer_reset(struct intel_batchbuffer *batch);
>
> -void intel_batchbuffer_data(struct intel_batchbuffer *batch,
> - const void *data, unsigned int bytes);
> +uint32_t intel_batchbuffer_copy_data(struct intel_batchbuffer *batch,
> + const void *data, unsigned int bytes,
> + uint32_t align);
>
> void intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
> drm_intel_bo *buffer,
> @@ -51,6 +52,19 @@ void intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch,
> uint32_t write_domain,
> int fenced);
>
> +uint32_t
> +intel_batchbuffer_align(struct intel_batchbuffer *batch, uint32_t align);
> +
> +uint32_t
> +batch_round_upto(struct intel_batchbuffer *batch, uint32_t divisor);
> +
> +void *
> +intel_batchbuffer_subdata_alloc(struct intel_batchbuffer *batch,
> + uint32_t size, uint32_t align);
> +
> +uint32_t
> +intel_batchbuffer_subdata_offset(struct intel_batchbuffer *batch, void *ptr);
> +
> /* Inline functions - might actually be better off with these
> * non-inlined. Certainly better off switching all command packets to
> * be passed as structs rather than dwords, but that's a little bit of
> diff --git a/lib/media_fill_gen7.c b/lib/media_fill_gen7.c
> index 5a8c32f..3dc5617 100644
> --- a/lib/media_fill_gen7.c
> +++ b/lib/media_fill_gen7.c
> @@ -79,7 +79,7 @@ gen7_media_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> diff --git a/lib/media_fill_gen8.c b/lib/media_fill_gen8.c
> index d6dd741..63fe72e 100644
> --- a/lib/media_fill_gen8.c
> +++ b/lib/media_fill_gen8.c
> @@ -82,7 +82,7 @@ gen8_media_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> diff --git a/lib/media_fill_gen9.c b/lib/media_fill_gen9.c
> index a9a829f..78e892f 100644
> --- a/lib/media_fill_gen9.c
> +++ b/lib/media_fill_gen9.c
> @@ -91,7 +91,7 @@ gen9_media_fillfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> assert(batch_end < BATCH_STATE_SPLIT);
>
> gen7_render_flush(batch, batch_end);
> diff --git a/lib/media_spin.c b/lib/media_spin.c
> index 580c109..20af549 100644
> --- a/lib/media_spin.c
> +++ b/lib/media_spin.c
> @@ -45,42 +45,6 @@ static const uint32_t spin_kernel[][4] = {
> { 0x07800031, 0x20000a40, 0x0e000e00, 0x82000010 }, /* send.ts (16)null<1> r112<0;1;0>:d 0x82000010 */
> };
>
> -static uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -static void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->ptr += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -static uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size,
> - uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> static void
> gen8_render_flush(struct intel_batchbuffer *batch, uint32_t batch_end)
> {
> @@ -100,8 +64,8 @@ gen8_spin_curbe_buffer_data(struct intel_batchbuffer *batch,
> uint32_t *curbe_buffer;
> uint32_t offset;
>
> - curbe_buffer = batch_alloc(batch, 64, 64);
> - offset = batch_offset(batch, curbe_buffer);
> + curbe_buffer = intel_batchbuffer_subdata_alloc(batch, 64, 64);
> + offset = intel_batchbuffer_subdata_offset(batch, curbe_buffer);
> *curbe_buffer = iters;
>
> return offset;
> @@ -124,8 +88,8 @@ gen8_spin_surface_state(struct intel_batchbuffer *batch,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
>
> ss->ss0.surface_type = GEN8_SURFACE_2D;
> ss->ss0.surface_format = format;
> @@ -141,7 +105,8 @@ gen8_spin_surface_state(struct intel_batchbuffer *batch,
> ss->ss8.base_addr = buf->bo->offset;
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 8 * 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 8 * 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert_eq(ret, 0);
> @@ -164,8 +129,8 @@ gen8_spin_binding_table(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table, offset;
>
> - binding_table = batch_alloc(batch, 32, 64);
> - offset = batch_offset(batch, binding_table);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 32, 64);
> + offset = intel_batchbuffer_subdata_offset(batch, binding_table);
>
> binding_table[0] = gen8_spin_surface_state(batch, dst,
> GEN8_SURFACEFORMAT_R8_UNORM, 1);
> @@ -180,7 +145,7 @@ gen8_spin_media_kernel(struct intel_batchbuffer *batch,
> {
> uint32_t offset;
>
> - offset = batch_copy(batch, kernel, size, 64);
> + offset = intel_batchbuffer_copy_data(batch, kernel, size, 64);
>
> return offset;
> }
> @@ -197,8 +162,8 @@ gen8_spin_interface_descriptor(struct intel_batchbuffer *batch,
> kernel_offset = gen8_spin_media_kernel(batch, spin_kernel,
> sizeof(spin_kernel));
>
> - idd = batch_alloc(batch, sizeof(*idd), 64);
> - offset = batch_offset(batch, idd);
> + idd = intel_batchbuffer_subdata_alloc(batch, sizeof(*idd), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, idd);
>
> idd->desc0.kernel_start_pointer = (kernel_offset >> 6);
>
> @@ -444,7 +409,7 @@ gen8_media_spinfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen8_render_flush(batch, batch_end);
> @@ -482,7 +447,7 @@ gen8lp_media_spinfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen8_render_flush(batch, batch_end);
> @@ -532,7 +497,7 @@ gen9_media_spinfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
>
> gen8_render_flush(batch, batch_end);
> diff --git a/lib/rendercopy_gen6.c b/lib/rendercopy_gen6.c
> index 8c24cf8..ddc9e7a 100644
> --- a/lib/rendercopy_gen6.c
> +++ b/lib/rendercopy_gen6.c
> @@ -48,50 +48,6 @@ static const uint32_t ps_kernel_nomask_affine[][4] = {
> { 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
> };
>
> -static uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -static uint32_t
> -batch_round_upto(struct intel_batchbuffer *batch, uint32_t divisor)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = (offset + divisor-1) / divisor * divisor;
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -static void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->ptr += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -static uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> static void
> gen6_render_flush(struct intel_batchbuffer *batch,
> drm_intel_context *context, uint32_t batch_end)
> @@ -120,7 +76,7 @@ gen6_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 32);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 32);
> ss->ss0.surface_type = GEN6_SURFACE_2D;
> ss->ss0.surface_format = format;
>
> @@ -129,7 +85,8 @@ gen6_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
> ss->ss1.base_addr = buf->bo->offset;
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert(ret == 0);
> @@ -140,7 +97,7 @@ gen6_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
> ss->ss3.tiled_surface = buf->tiling != I915_TILING_NONE;
> ss->ss3.tile_walk = buf->tiling == I915_TILING_Y;
>
> - return batch_offset(batch, ss);
> + return intel_batchbuffer_subdata_offset(batch, ss);
> }
>
> static uint32_t
> @@ -150,14 +107,14 @@ gen6_bind_surfaces(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table;
>
> - binding_table = batch_alloc(batch, 32, 32);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 32, 32);
>
> binding_table[0] =
> gen6_bind_buf(batch, dst, GEN6_SURFACEFORMAT_B8G8R8A8_UNORM, 1);
> binding_table[1] =
> gen6_bind_buf(batch, src, GEN6_SURFACEFORMAT_B8G8R8A8_UNORM, 0);
>
> - return batch_offset(batch, binding_table);
> + return intel_batchbuffer_subdata_offset(batch, binding_table);
> }
>
> static void
> @@ -427,12 +384,12 @@ gen6_create_cc_viewport(struct intel_batchbuffer *batch)
> {
> struct gen6_cc_viewport *vp;
>
> - vp = batch_alloc(batch, sizeof(*vp), 32);
> + vp = intel_batchbuffer_subdata_alloc(batch, sizeof(*vp), 32);
>
> vp->min_depth = -1.e35;
> vp->max_depth = 1.e35;
>
> - return batch_offset(batch, vp);
> + return intel_batchbuffer_subdata_offset(batch, vp);
> }
>
> static uint32_t
> @@ -440,7 +397,7 @@ gen6_create_cc_blend(struct intel_batchbuffer *batch)
> {
> struct gen6_blend_state *blend;
>
> - blend = batch_alloc(batch, sizeof(*blend), 64);
> + blend = intel_batchbuffer_subdata_alloc(batch, sizeof(*blend), 64);
>
> blend->blend0.dest_blend_factor = GEN6_BLENDFACTOR_ZERO;
> blend->blend0.source_blend_factor = GEN6_BLENDFACTOR_ONE;
> @@ -450,13 +407,13 @@ gen6_create_cc_blend(struct intel_batchbuffer *batch)
> blend->blend1.post_blend_clamp_enable = 1;
> blend->blend1.pre_blend_clamp_enable = 1;
>
> - return batch_offset(batch, blend);
> + return intel_batchbuffer_subdata_offset(batch, blend);
> }
>
> static uint32_t
> gen6_create_kernel(struct intel_batchbuffer *batch)
> {
> - return batch_copy(batch, ps_kernel_nomask_affine,
> + return intel_batchbuffer_copy_data(batch, ps_kernel_nomask_affine,
> sizeof(ps_kernel_nomask_affine),
> 64);
> }
> @@ -468,7 +425,7 @@ gen6_create_sampler(struct intel_batchbuffer *batch,
> {
> struct gen6_sampler_state *ss;
>
> - ss = batch_alloc(batch, sizeof(*ss), 32);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 32);
> ss->ss0.lod_preclamp = 1; /* GL mode */
>
> /* We use the legacy mode to get the semantics specified by
> @@ -511,7 +468,7 @@ gen6_create_sampler(struct intel_batchbuffer *batch,
> break;
> }
>
> - return batch_offset(batch, ss);
> + return intel_batchbuffer_subdata_offset(batch, ss);
> }
>
> static void gen6_emit_vertex_buffer(struct intel_batchbuffer *batch)
> @@ -535,7 +492,7 @@ static uint32_t gen6_emit_primitive(struct intel_batchbuffer *batch)
> 0 << 9 |
> 4);
> OUT_BATCH(3); /* vertex count */
> - offset = batch_used(batch);
> + offset = batch->ptr - batch->buffer;
> OUT_BATCH(0); /* vertex_index */
> OUT_BATCH(1); /* single instance */
> OUT_BATCH(0); /* start instance location */
> @@ -557,7 +514,7 @@ void gen6_render_copyfunc(struct intel_batchbuffer *batch,
> intel_batchbuffer_flush_with_context(batch, context);
>
> batch->ptr = batch->buffer + 1024;
> - batch_alloc(batch, 64, 64);
> + intel_batchbuffer_subdata_alloc(batch, 64, 64);
> wm_table = gen6_bind_surfaces(batch, src, dst);
> wm_kernel = gen6_create_kernel(batch);
> wm_state = gen6_create_sampler(batch,
> @@ -594,7 +551,7 @@ void gen6_render_copyfunc(struct intel_batchbuffer *batch,
> offset = gen6_emit_primitive(batch);
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
>
> *(uint32_t*)(batch->buffer + offset) =
> batch_round_upto(batch, VERTEX_SIZE)/VERTEX_SIZE;
> diff --git a/lib/rendercopy_gen7.c b/lib/rendercopy_gen7.c
> index 3b92406..eb7b9a5 100644
> --- a/lib/rendercopy_gen7.c
> +++ b/lib/rendercopy_gen7.c
> @@ -32,41 +32,6 @@ static const uint32_t ps_kernel[][4] = {
> { 0x05800031, 0x20001fa8, 0x008d0e20, 0x90031000 },
> };
>
> -static uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->state - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->state = batch->buffer + offset;
> - return offset;
> -}
> -
> -static void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->state += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -static uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> static void
> gen7_render_flush(struct intel_batchbuffer *batch,
> drm_intel_context *context, uint32_t batch_end)
> @@ -108,7 +73,7 @@ gen7_bind_buf(struct intel_batchbuffer *batch,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, 8 * sizeof(*ss), 32);
> + ss = intel_batchbuffer_subdata_alloc(batch, 8 * sizeof(*ss), 32);
>
> ss[0] = (GEN7_SURFACE_2D << GEN7_SURFACE_TYPE_SHIFT |
> gen7_tiling_bits(buf->tiling) |
> @@ -125,12 +90,13 @@ gen7_bind_buf(struct intel_batchbuffer *batch,
> ss[7] |= HSW_SURFACE_SWIZZLE(RED, GREEN, BLUE, ALPHA);
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert(ret == 0);
>
> - return batch_offset(batch, ss);
> + return intel_batchbuffer_subdata_offset(batch, ss);
> }
>
> static void
> @@ -175,7 +141,7 @@ gen7_create_vertex_buffer(struct intel_batchbuffer *batch,
> {
> uint16_t *v;
>
> - v = batch_alloc(batch, 12*sizeof(*v), 8);
> + v = intel_batchbuffer_subdata_alloc(batch, 12*sizeof(*v), 8);
>
> v[0] = dst_x + width;
> v[1] = dst_y + height;
> @@ -192,7 +158,7 @@ gen7_create_vertex_buffer(struct intel_batchbuffer *batch,
> v[10] = src_x;
> v[11] = src_y;
>
> - return batch_offset(batch, v);
> + return intel_batchbuffer_subdata_offset(batch, v);
> }
>
> static void gen7_emit_vertex_buffer(struct intel_batchbuffer *batch,
> @@ -225,14 +191,14 @@ gen7_bind_surfaces(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table;
>
> - binding_table = batch_alloc(batch, 8, 32);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 8, 32);
>
> binding_table[0] =
> gen7_bind_buf(batch, dst, GEN7_SURFACEFORMAT_B8G8R8A8_UNORM, 1);
> binding_table[1] =
> gen7_bind_buf(batch, src, GEN7_SURFACEFORMAT_B8G8R8A8_UNORM, 0);
>
> - return batch_offset(batch, binding_table);
> + return intel_batchbuffer_subdata_offset(batch, binding_table);
> }
>
> static void
> @@ -258,7 +224,7 @@ gen7_create_blend_state(struct intel_batchbuffer *batch)
> {
> struct gen7_blend_state *blend;
>
> - blend = batch_alloc(batch, sizeof(*blend), 64);
> + blend = intel_batchbuffer_subdata_alloc(batch, sizeof(*blend), 64);
>
> blend->blend0.dest_blend_factor = GEN7_BLENDFACTOR_ZERO;
> blend->blend0.source_blend_factor = GEN7_BLENDFACTOR_ONE;
> @@ -266,7 +232,7 @@ gen7_create_blend_state(struct intel_batchbuffer *batch)
> blend->blend1.post_blend_clamp_enable = 1;
> blend->blend1.pre_blend_clamp_enable = 1;
>
> - return batch_offset(batch, blend);
> + return intel_batchbuffer_subdata_offset(batch, blend);
> }
>
> static void
> @@ -290,11 +256,11 @@ gen7_create_cc_viewport(struct intel_batchbuffer *batch)
> {
> struct gen7_cc_viewport *vp;
>
> - vp = batch_alloc(batch, sizeof(*vp), 32);
> + vp = intel_batchbuffer_subdata_alloc(batch, sizeof(*vp), 32);
> vp->min_depth = -1.e35;
> vp->max_depth = 1.e35;
>
> - return batch_offset(batch, vp);
> + return intel_batchbuffer_subdata_offset(batch, vp);
> }
>
> static void
> @@ -312,7 +278,7 @@ gen7_create_sampler(struct intel_batchbuffer *batch)
> {
> struct gen7_sampler_state *ss;
>
> - ss = batch_alloc(batch, sizeof(*ss), 32);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 32);
>
> ss->ss0.min_filter = GEN7_MAPFILTER_NEAREST;
> ss->ss0.mag_filter = GEN7_MAPFILTER_NEAREST;
> @@ -323,7 +289,7 @@ gen7_create_sampler(struct intel_batchbuffer *batch)
>
> ss->ss3.non_normalized_coord = 1;
>
> - return batch_offset(batch, ss);
> + return intel_batchbuffer_subdata_offset(batch, ss);
> }
>
> static void
> @@ -478,7 +444,8 @@ gen7_emit_ps(struct intel_batchbuffer *batch)
> threads = 40 << IVB_PS_MAX_THREADS_SHIFT;
>
> OUT_BATCH(GEN7_3DSTATE_PS | (8 - 2));
> - OUT_BATCH(batch_copy(batch, ps_kernel, sizeof(ps_kernel), 64));
> + OUT_BATCH(intel_batchbuffer_copy_data(batch, ps_kernel,
> + sizeof(ps_kernel), 64));
> OUT_BATCH(1 << GEN7_PS_SAMPLER_COUNT_SHIFT |
> 2 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT);
> OUT_BATCH(0); /* scratch address */
> diff --git a/lib/rendercopy_gen8.c b/lib/rendercopy_gen8.c
> index fe3fedf..fbf049f 100644
> --- a/lib/rendercopy_gen8.c
> +++ b/lib/rendercopy_gen8.c
> @@ -129,41 +129,6 @@ static void annotation_flush(struct annotations_context *aub,
> aub->index);
> }
>
> -static uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -static void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->ptr += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -static uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> static void
> gen6_render_flush(struct intel_batchbuffer *batch,
> drm_intel_context *context, uint32_t batch_end)
> @@ -195,8 +160,8 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
> annotation_add_state(aub, AUB_TRACE_SURFACE_STATE, offset, sizeof(*ss));
>
> ss->ss0.surface_type = GEN6_SURFACE_2D;
> @@ -212,7 +177,8 @@ gen8_bind_buf(struct intel_batchbuffer *batch,
> ss->ss8.base_addr = buf->bo->offset;
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 8 * 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 8 * 4,
> buf->bo, 0,
> read_domain, write_domain);
> igt_assert(ret == 0);
> @@ -237,8 +203,8 @@ gen8_bind_surfaces(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table, offset;
>
> - binding_table = batch_alloc(batch, 8, 32);
> - offset = batch_offset(batch, binding_table);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 8, 32);
> + offset = intel_batchbuffer_subdata_offset(batch, binding_table);
> annotation_add_state(aub, AUB_TRACE_BINDING_TABLE, offset, 8);
>
> binding_table[0] =
> @@ -259,8 +225,8 @@ gen8_create_sampler(struct intel_batchbuffer *batch,
> struct gen8_sampler_state *ss;
> uint32_t offset;
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
> annotation_add_state(aub, AUB_TRACE_SAMPLER_STATE,
> offset, sizeof(*ss));
>
> @@ -285,7 +251,7 @@ gen8_fill_ps(struct intel_batchbuffer *batch,
> {
> uint32_t offset;
>
> - offset = batch_copy(batch, kernel, size, 64);
> + offset = intel_batchbuffer_copy_data(batch, kernel, size, 64);
> annotation_add_state(aub, AUB_TRACE_KERNEL_INSTRUCTIONS, offset, size);
>
> return offset;
> @@ -312,7 +278,7 @@ gen7_fill_vertex_buffer_data(struct intel_batchbuffer *batch,
> void *start;
> uint32_t offset;
>
> - batch_align(batch, 8);
> + intel_batchbuffer_align(batch, 8);
> start = batch->ptr;
>
> emit_vertex_2s(batch, dst_x + width, dst_y + height);
> @@ -327,7 +293,7 @@ gen7_fill_vertex_buffer_data(struct intel_batchbuffer *batch,
> emit_vertex_normalized(batch, src_x, igt_buf_width(src));
> emit_vertex_normalized(batch, src_y, igt_buf_height(src));
>
> - offset = batch_offset(batch, start);
> + offset = intel_batchbuffer_subdata_offset(batch, start);
> annotation_add_state(aub, AUB_TRACE_VERTEX_BUFFER,
> offset, 3 * VERTEX_SIZE);
> return offset;
> @@ -413,8 +379,9 @@ gen6_create_cc_state(struct intel_batchbuffer *batch,
> struct gen6_color_calc_state *cc_state;
> uint32_t offset;
>
> - cc_state = batch_alloc(batch, sizeof(*cc_state), 64);
> - offset = batch_offset(batch, cc_state);
> + cc_state = intel_batchbuffer_subdata_alloc(batch,
> + sizeof(*cc_state), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, cc_state);
> annotation_add_state(aub, AUB_TRACE_CC_STATE,
> offset, sizeof(*cc_state));
>
> @@ -429,8 +396,8 @@ gen8_create_blend_state(struct intel_batchbuffer *batch,
> int i;
> uint32_t offset;
>
> - blend = batch_alloc(batch, sizeof(*blend), 64);
> - offset = batch_offset(batch, blend);
> + blend = intel_batchbuffer_subdata_alloc(batch, sizeof(*blend), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, blend);
> annotation_add_state(aub, AUB_TRACE_BLEND_STATE,
> offset, sizeof(*blend));
>
> @@ -452,8 +419,8 @@ gen6_create_cc_viewport(struct intel_batchbuffer *batch,
> struct gen6_cc_viewport *vp;
> uint32_t offset;
>
> - vp = batch_alloc(batch, sizeof(*vp), 32);
> - offset = batch_offset(batch, vp);
> + vp = intel_batchbuffer_subdata_alloc(batch, sizeof(*vp), 32);
> + offset = intel_batchbuffer_subdata_offset(batch, vp);
> annotation_add_state(aub, AUB_TRACE_CC_VP_STATE,
> offset, sizeof(*vp));
>
> @@ -472,8 +439,9 @@ gen7_create_sf_clip_viewport(struct intel_batchbuffer *batch,
> struct gen7_sf_clip_viewport *scv_state;
> uint32_t offset;
>
> - scv_state = batch_alloc(batch, sizeof(*scv_state), 64);
> - offset = batch_offset(batch, scv_state);
> + scv_state = intel_batchbuffer_subdata_alloc(batch,
> + sizeof(*scv_state), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, scv_state);
> annotation_add_state(aub, AUB_TRACE_CLIP_VP_STATE,
> offset, sizeof(*scv_state));
>
> @@ -492,8 +460,8 @@ gen6_create_scissor_rect(struct intel_batchbuffer *batch,
> struct gen6_scissor_rect *scissor;
> uint32_t offset;
>
> - scissor = batch_alloc(batch, sizeof(*scissor), 64);
> - offset = batch_offset(batch, scissor);
> + scissor = intel_batchbuffer_subdata_alloc(batch, sizeof(*scissor), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, scissor);
> annotation_add_state(aub, AUB_TRACE_SCISSOR_STATE,
> offset, sizeof(*scissor));
>
> @@ -934,7 +902,7 @@ void gen8_render_copyfunc(struct intel_batchbuffer *batch,
>
> intel_batchbuffer_flush_with_context(batch, context);
>
> - batch_align(batch, 8);
> + intel_batchbuffer_align(batch, 8);
>
> batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
>
> @@ -1019,7 +987,7 @@ void gen8_render_copyfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> igt_assert(batch_end < BATCH_STATE_SPLIT);
> annotation_add_batch(&aub_annotations, batch_end);
>
> diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
> index e646e97..9bd1cbb 100644
> --- a/lib/rendercopy_gen9.c
> +++ b/lib/rendercopy_gen9.c
> @@ -130,41 +130,6 @@ static void annotation_flush(struct annotations_context *ctx,
> ctx->index);
> }
>
> -static uint32_t
> -batch_used(struct intel_batchbuffer *batch)
> -{
> - return batch->ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_align(struct intel_batchbuffer *batch, uint32_t align)
> -{
> - uint32_t offset = batch_used(batch);
> - offset = ALIGN(offset, align);
> - batch->ptr = batch->buffer + offset;
> - return offset;
> -}
> -
> -static void *
> -batch_alloc(struct intel_batchbuffer *batch, uint32_t size, uint32_t align)
> -{
> - uint32_t offset = batch_align(batch, align);
> - batch->ptr += size;
> - return memset(batch->buffer + offset, 0, size);
> -}
> -
> -static uint32_t
> -batch_offset(struct intel_batchbuffer *batch, void *ptr)
> -{
> - return (uint8_t *)ptr - batch->buffer;
> -}
> -
> -static uint32_t
> -batch_copy(struct intel_batchbuffer *batch, const void *ptr, uint32_t size, uint32_t align)
> -{
> - return batch_offset(batch, memcpy(batch_alloc(batch, size, align), ptr, size));
> -}
> -
> static void
> gen6_render_flush(struct intel_batchbuffer *batch,
> drm_intel_context *context, uint32_t batch_end)
> @@ -193,8 +158,8 @@ gen8_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
> read_domain = I915_GEM_DOMAIN_SAMPLER;
> }
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
> annotation_add_state(&aub_annotations, AUB_TRACE_SURFACE_STATE,
> offset, sizeof(*ss));
>
> @@ -211,7 +176,8 @@ gen8_bind_buf(struct intel_batchbuffer *batch, struct igt_buf *buf,
> ss->ss8.base_addr = buf->bo->offset;
>
> ret = drm_intel_bo_emit_reloc(batch->bo,
> - batch_offset(batch, ss) + 8 * 4,
> + intel_batchbuffer_subdata_offset(batch,
> + ss) + 8 * 4,
> buf->bo, 0,
> read_domain, write_domain);
> assert(ret == 0);
> @@ -235,8 +201,8 @@ gen8_bind_surfaces(struct intel_batchbuffer *batch,
> {
> uint32_t *binding_table, offset;
>
> - binding_table = batch_alloc(batch, 8, 32);
> - offset = batch_offset(batch, binding_table);
> + binding_table = intel_batchbuffer_subdata_alloc(batch, 8, 32);
> + offset = intel_batchbuffer_subdata_offset(batch, binding_table);
> annotation_add_state(&aub_annotations, AUB_TRACE_BINDING_TABLE,
> offset, 8);
>
> @@ -254,8 +220,8 @@ gen8_create_sampler(struct intel_batchbuffer *batch) {
> struct gen8_sampler_state *ss;
> uint32_t offset;
>
> - ss = batch_alloc(batch, sizeof(*ss), 64);
> - offset = batch_offset(batch, ss);
> + ss = intel_batchbuffer_subdata_alloc(batch, sizeof(*ss), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, ss);
> annotation_add_state(&aub_annotations, AUB_TRACE_SAMPLER_STATE,
> offset, sizeof(*ss));
>
> @@ -279,7 +245,7 @@ gen8_fill_ps(struct intel_batchbuffer *batch,
> {
> uint32_t offset;
>
> - offset = batch_copy(batch, kernel, size, 64);
> + offset = intel_batchbuffer_copy_data(batch, kernel, size, 64);
> annotation_add_state(&aub_annotations, AUB_TRACE_KERNEL_INSTRUCTIONS,
> offset, size);
>
> @@ -306,7 +272,7 @@ gen7_fill_vertex_buffer_data(struct intel_batchbuffer *batch,
> void *start;
> uint32_t offset;
>
> - batch_align(batch, 8);
> + intel_batchbuffer_align(batch, 8);
> start = batch->ptr;
>
> emit_vertex_2s(batch, dst_x + width, dst_y + height);
> @@ -321,7 +287,7 @@ gen7_fill_vertex_buffer_data(struct intel_batchbuffer *batch,
> emit_vertex_normalized(batch, src_x, igt_buf_width(src));
> emit_vertex_normalized(batch, src_y, igt_buf_height(src));
>
> - offset = batch_offset(batch, start);
> + offset = intel_batchbuffer_subdata_offset(batch, start);
> annotation_add_state(&aub_annotations, AUB_TRACE_VERTEX_BUFFER,
> offset, 3 * VERTEX_SIZE);
> return offset;
> @@ -406,8 +372,9 @@ gen6_create_cc_state(struct intel_batchbuffer *batch)
> struct gen6_color_calc_state *cc_state;
> uint32_t offset;
>
> - cc_state = batch_alloc(batch, sizeof(*cc_state), 64);
> - offset = batch_offset(batch, cc_state);
> + cc_state = intel_batchbuffer_subdata_alloc(batch,
> + sizeof(*cc_state), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, cc_state);
> annotation_add_state(&aub_annotations, AUB_TRACE_CC_STATE,
> offset, sizeof(*cc_state));
>
> @@ -421,8 +388,8 @@ gen8_create_blend_state(struct intel_batchbuffer *batch)
> int i;
> uint32_t offset;
>
> - blend = batch_alloc(batch, sizeof(*blend), 64);
> - offset = batch_offset(batch, blend);
> + blend = intel_batchbuffer_subdata_alloc(batch, sizeof(*blend), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, blend);
> annotation_add_state(&aub_annotations, AUB_TRACE_BLEND_STATE,
> offset, sizeof(*blend));
>
> @@ -443,8 +410,8 @@ gen6_create_cc_viewport(struct intel_batchbuffer *batch)
> struct gen6_cc_viewport *vp;
> uint32_t offset;
>
> - vp = batch_alloc(batch, sizeof(*vp), 32);
> - offset = batch_offset(batch, vp);
> + vp = intel_batchbuffer_subdata_alloc(batch, sizeof(*vp), 32);
> + offset = intel_batchbuffer_subdata_offset(batch, vp);
> annotation_add_state(&aub_annotations, AUB_TRACE_CC_VP_STATE,
> offset, sizeof(*vp));
>
> @@ -461,8 +428,9 @@ gen7_create_sf_clip_viewport(struct intel_batchbuffer *batch) {
> struct gen7_sf_clip_viewport *scv_state;
> uint32_t offset;
>
> - scv_state = batch_alloc(batch, sizeof(*scv_state), 64);
> - offset = batch_offset(batch, scv_state);
> + scv_state = intel_batchbuffer_subdata_alloc(batch,
> + sizeof(*scv_state), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, scv_state);
> annotation_add_state(&aub_annotations, AUB_TRACE_CLIP_VP_STATE,
> offset, sizeof(*scv_state));
>
> @@ -480,8 +448,8 @@ gen6_create_scissor_rect(struct intel_batchbuffer *batch)
> struct gen6_scissor_rect *scissor;
> uint32_t offset;
>
> - scissor = batch_alloc(batch, sizeof(*scissor), 64);
> - offset = batch_offset(batch, scissor);
> + scissor = intel_batchbuffer_subdata_alloc(batch, sizeof(*scissor), 64);
> + offset = intel_batchbuffer_subdata_offset(batch, scissor);
> annotation_add_state(&aub_annotations, AUB_TRACE_SCISSOR_STATE,
> offset, sizeof(*scissor));
>
> @@ -940,7 +908,7 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
>
> intel_batchbuffer_flush_with_context(batch, context);
>
> - batch_align(batch, 8);
> + intel_batchbuffer_align(batch, 8);
>
> batch->ptr = &batch->buffer[BATCH_STATE_SPLIT];
>
> @@ -1023,7 +991,7 @@ void gen9_render_copyfunc(struct intel_batchbuffer *batch,
>
> OUT_BATCH(MI_BATCH_BUFFER_END);
>
> - batch_end = batch_align(batch, 8);
> + batch_end = intel_batchbuffer_align(batch, 8);
> assert(batch_end < BATCH_STATE_SPLIT);
> annotation_add_batch(&aub_annotations, batch_end);
>
> --
> 2.9.5
>
More information about the igt-dev
mailing list