[igt-dev] [PATCH i-g-t 2/7] lib/intel_batchbuffer: Detect and use kernel alignment capability
Dixit, Ashutosh
ashutosh.dixit at intel.com
Thu Oct 14 02:37:22 UTC 2021
On Thu, 07 Oct 2021 23:54:27 -0700, Zbigniew Kempczyński wrote:
>
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 9c26fe207..ed7c25015 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -1335,6 +1335,7 @@ __intel_bb_create(int i915, uint32_t ctx, uint32_t size, bool do_relocs,
>
> igt_assert(ibb);
>
> + ibb->allows_passing_alignment = gem_allows_passing_alignment(i915);
> ibb->uses_full_ppgtt = gem_uses_full_ppgtt(i915);
> ibb->devid = intel_get_drm_devid(i915);
> ibb->gen = intel_gen(ibb->devid);
> @@ -1783,6 +1784,7 @@ __add_to_cache(struct intel_bb *ibb, uint32_t handle)
> igt_assert(object);
>
> object->handle = handle;
> + object->alignment = 0;
> found = tsearch((void *) object, &ibb->root, __compare_objects);
>
> if (*found == object) {
> @@ -1905,7 +1907,7 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t handle, uint64_t size,
> || ALIGN(offset, alignment) == offset);
>
> object = __add_to_cache(ibb, handle);
> - object->alignment = alignment ?: 4096;
> + alignment = alignment ?: 4096;
Can't we do:
if (ibb->allows_passing_alignment)
object->alignment = alignment ?: 4096;
So we don't need further changes in this function? Or it breaks something?
> __add_to_objects(ibb, object);
>
> /*
> @@ -1917,7 +1919,7 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t handle, uint64_t size,
> if (INVALID_ADDR(object->offset)) {
> if (INVALID_ADDR(offset)) {
> offset = __intel_bb_get_offset(ibb, handle, size,
> - object->alignment);
> + alignment);
> } else {
> offset = offset & (ibb->gtt_size - 1);
>
> @@ -1962,6 +1964,9 @@ intel_bb_add_object(struct intel_bb *ibb, uint32_t handle, uint64_t size,
> if (ibb->uses_full_ppgtt && !ibb->enforce_relocs)
> object->flags |= EXEC_OBJECT_PINNED;
>
> + if (ibb->allows_passing_alignment)
> + object->alignment = alignment;
> +
> return object;
> }
More information about the igt-dev
mailing list