[igt-dev] [PATCH i-g-t 2/9] lib/i915: wire up optional flags for gem_create_ext
Matthew Auld
matthew.auld at intel.com
Wed May 25 18:36:55 UTC 2022
For now limit to direct callers.
Signed-off-by: Matthew Auld <matthew.auld at intel.com>
Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
---
lib/i915/gem_create.c | 9 ++++++---
lib/i915/gem_create.h | 5 +++--
lib/i915/intel_memory_region.c | 2 +-
tests/i915/gem_create.c | 24 ++++++++++++------------
tests/i915/gem_pxp.c | 2 +-
5 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/lib/i915/gem_create.c b/lib/i915/gem_create.c
index 605c4513..1f9b7fcc 100644
--- a/lib/i915/gem_create.c
+++ b/lib/i915/gem_create.c
@@ -61,11 +61,12 @@ uint32_t gem_create(int fd, uint64_t size)
return handle;
}
-int __gem_create_ext(int fd, uint64_t *size, uint32_t *handle,
+int __gem_create_ext(int fd, uint64_t *size, uint32_t flags, uint32_t *handle,
struct i915_user_extension *ext)
{
struct drm_i915_gem_create_ext create = {
.size = *size,
+ .flags = flags,
.extensions = to_user_pointer(ext),
};
int err = 0;
@@ -86,6 +87,7 @@ int __gem_create_ext(int fd, uint64_t *size, uint32_t *handle,
* gem_create_ext:
* @fd: open i915 drm file descriptor
* @size: desired size of the buffer
+ * @flags: optional flags
* @ext: optional extensions chain
*
* This wraps the GEM_CREATE_EXT ioctl, which allocates a new gem buffer object
@@ -93,11 +95,12 @@ int __gem_create_ext(int fd, uint64_t *size, uint32_t *handle,
*
* Returns: The file-private handle of the created buffer object
*/
-uint32_t gem_create_ext(int fd, uint64_t size, struct i915_user_extension *ext)
+uint32_t gem_create_ext(int fd, uint64_t size, uint32_t flags,
+ struct i915_user_extension *ext)
{
uint32_t handle;
- igt_assert_eq(__gem_create_ext(fd, &size, &handle, ext), 0);
+ igt_assert_eq(__gem_create_ext(fd, &size, flags, &handle, ext), 0);
return handle;
}
diff --git a/lib/i915/gem_create.h b/lib/i915/gem_create.h
index c32a815d..47a9a16d 100644
--- a/lib/i915/gem_create.h
+++ b/lib/i915/gem_create.h
@@ -12,9 +12,10 @@
int __gem_create(int fd, uint64_t *size, uint32_t *handle);
uint32_t gem_create(int fd, uint64_t size);
-int __gem_create_ext(int fd, uint64_t *size, uint32_t *handle,
+int __gem_create_ext(int fd, uint64_t *size, uint32_t flags, uint32_t *handle,
struct i915_user_extension *ext);
-uint32_t gem_create_ext(int fd, uint64_t size, struct i915_user_extension *ext);
+uint32_t gem_create_ext(int fd, uint64_t size, uint32_t flags,
+ struct i915_user_extension *ext);
void gem_pool_init(void);
void gem_pool_dump(void);
diff --git a/lib/i915/intel_memory_region.c b/lib/i915/intel_memory_region.c
index 6bf6aab1..f0589e98 100644
--- a/lib/i915/intel_memory_region.c
+++ b/lib/i915/intel_memory_region.c
@@ -208,7 +208,7 @@ int __gem_create_in_memory_region_list(int fd, uint32_t *handle, uint64_t *size,
};
int ret;
- ret = __gem_create_ext(fd, size, handle, &ext_regions.base);
+ ret = __gem_create_ext(fd, size, 0, handle, &ext_regions.base);
/*
* Provide fallback for stable kernels if region passed in the array
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index 31fd6526..f8ae7804 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -330,38 +330,38 @@ static void create_ext_placement_sanity_check(int fd)
* behaviour.
*/
size = PAGE_SIZE;
- igt_assert_eq(__gem_create_ext(fd, &size, &handle, 0), 0);
+ igt_assert_eq(__gem_create_ext(fd, &size, 0, &handle, 0), 0);
gem_close(fd, handle);
/* Try some uncreative invalid combinations */
setparam_region.regions = to_user_pointer(®ion_smem);
setparam_region.num_regions = 0;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
setparam_region.regions = to_user_pointer(®ion_smem);
setparam_region.num_regions = regions->num_regions + 1;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
setparam_region.regions = to_user_pointer(®ion_smem);
setparam_region.num_regions = -1;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
setparam_region.regions = to_user_pointer(®ion_invalid);
setparam_region.num_regions = 1;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
setparam_region.regions = to_user_pointer(®ion_invalid);
setparam_region.num_regions = 0;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
uregions = calloc(regions->num_regions + 1, sizeof(uint32_t));
@@ -372,7 +372,7 @@ static void create_ext_placement_sanity_check(int fd)
setparam_region.regions = to_user_pointer(uregions);
setparam_region.num_regions = regions->num_regions + 1;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
if (regions->num_regions > 1) {
@@ -385,7 +385,7 @@ static void create_ext_placement_sanity_check(int fd)
setparam_region.regions = to_user_pointer(dups);
setparam_region.num_regions = 2;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
}
}
@@ -395,7 +395,7 @@ static void create_ext_placement_sanity_check(int fd)
setparam_region.regions = to_user_pointer(uregions);
setparam_region.num_regions = regions->num_regions;
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
free(uregions);
@@ -411,7 +411,7 @@ static void create_ext_placement_sanity_check(int fd)
to_user_pointer(&setparam_region_next);
size = PAGE_SIZE;
- igt_assert_neq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_neq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
setparam_region.base.next_extension = 0;
}
@@ -443,7 +443,7 @@ static void create_ext_placement_all(int fd)
setparam_region.num_regions = regions->num_regions;
size = PAGE_SIZE;
- igt_assert_eq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_eq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
gem_close(fd, handle);
free(uregions);
@@ -472,7 +472,7 @@ static void create_ext_placement_each(int fd)
setparam_region.num_regions = 1;
size = PAGE_SIZE;
- igt_assert_eq(__gem_create_ext(fd, &size, &handle,
+ igt_assert_eq(__gem_create_ext(fd, &size, 0, &handle,
&setparam_region.base), 0);
gem_close(fd, handle);
}
diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
index 5f269bab..65618556 100644
--- a/tests/i915/gem_pxp.c
+++ b/tests/i915/gem_pxp.c
@@ -40,7 +40,7 @@ static int create_bo_ext(int i915, uint32_t size, bool protected_is_true, uint32
ext = &protected_ext.base;
*bo_out = 0;
- ret = __gem_create_ext(i915, &size64, bo_out, ext);
+ ret = __gem_create_ext(i915, &size64, 0, bo_out, ext);
return ret;
}
--
2.34.3
More information about the igt-dev
mailing list