diff options
author | Apoorva Singh <apoorva1.singh@intel.com> | 2021-09-01 21:18:46 +0530 |
---|---|---|
committer | Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> | 2021-09-13 19:46:55 +0200 |
commit | 0f2635295c20396c1d9b976c39d23c9d12b8659e (patch) | |
tree | 8a4ed3f4ceea37a8a7252d00d143d7f18f6b9078 | |
parent | 8759c4a3020ce4aaa55b3c3eaa7cd53901b3287a (diff) |
i915/gem_render_copy: Add support for local memory
Add support for local memory region (Device memory)
Signed-off-by: Apoorva Singh <apoorva1.singh@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Melkaveri, Arjun <arjun.melkaveri@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
-rw-r--r-- | tests/i915/gem_render_copy.c | 61 |
1 files changed, 42 insertions, 19 deletions
diff --git a/tests/i915/gem_render_copy.c b/tests/i915/gem_render_copy.c index e48b5b99..3aac1628 100644 --- a/tests/i915/gem_render_copy.c +++ b/tests/i915/gem_render_copy.c @@ -213,12 +213,13 @@ scratch_buf_copy(data_t *data, static void scratch_buf_init(data_t *data, struct intel_buf *buf, int width, int height, uint32_t req_tiling, - enum i915_compression compression) + enum i915_compression compression, + uint32_t region) { int bpp = 32; - intel_buf_init(data->bops, buf, width, height, bpp, 0, - req_tiling, compression); + intel_buf_init_in_region(data->bops, buf, width, height, bpp, 0, + req_tiling, compression, region); igt_assert(intel_buf_width(buf) == width); igt_assert(intel_buf_height(buf) == height); @@ -338,7 +339,8 @@ dump_intel_buf_to_file(data_t *data, struct intel_buf *buf, const char *filename static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling, enum i915_compression src_compression, enum i915_compression dst_compression, - int flags) + int flags, + struct igt_collection *memregion_set) { struct intel_bb *ibb; struct intel_buf ref, src_tiled, src_ccs, dst_ccs, dst; @@ -370,6 +372,7 @@ static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling, }, }; int num_src = ARRAY_SIZE(src); + uint32_t region = igt_collection_get_value(memregion_set, 0); const bool src_mixed_tiled = flags & SOURCE_MIXED_TILED; const bool src_compressed = src_compression != I915_COMPRESSION_NONE; const bool dst_compressed = dst_compression != I915_COMPRESSION_NONE; @@ -401,21 +404,21 @@ static void test(data_t *data, uint32_t src_tiling, uint32_t dst_tiling, for (int i = 0; i < num_src; i++) scratch_buf_init(data, &src[i].buf, WIDTH, HEIGHT, src[i].tiling, - I915_COMPRESSION_NONE); + I915_COMPRESSION_NONE, region); if (!src_mixed_tiled) scratch_buf_init(data, &src_tiled, WIDTH, HEIGHT, src_tiling, - I915_COMPRESSION_NONE); + I915_COMPRESSION_NONE, region); scratch_buf_init(data, &dst, WIDTH, HEIGHT, dst_tiling, - I915_COMPRESSION_NONE); + I915_COMPRESSION_NONE, region); if (src_compressed) scratch_buf_init(data, &src_ccs, WIDTH, HEIGHT, - src_tiling, src_compression); + src_tiling, src_compression, region); if (dst_compressed) scratch_buf_init(data, &dst_ccs, WIDTH, HEIGHT, - dst_tiling, dst_compression); + dst_tiling, dst_compression, region); scratch_buf_init(data, &ref, WIDTH, HEIGHT, I915_TILING_NONE, - I915_COMPRESSION_NONE); + I915_COMPRESSION_NONE, region); for (int i = 0; i < num_src; i++) scratch_buf_draw_pattern(data, &src[i].buf, @@ -782,6 +785,8 @@ igt_main_args("dac", NULL, help_str, opt_handler, NULL) 0, }, }; int i; + struct drm_i915_query_memory_regions *regions; + struct igt_collection *set, *region_set; data_t data = {0, }; @@ -798,11 +803,19 @@ igt_main_args("dac", NULL, help_str, opt_handler, NULL) data.bops = buf_ops_create(data.drm_fd); + regions = gem_get_query_memory_regions(data.drm_fd); + igt_assert(regions); + + set = get_memory_region_set(regions, + I915_SYSTEM_MEMORY, + I915_DEVICE_MEMORY); + igt_fork_hang_detector(data.drm_fd); } for (i = 0; i < ARRAY_SIZE(tests); i++) { const struct test_desc *t = &tests[i]; + char name[128]; char src_mode[32]; char dst_mode[32]; const bool src_mixed_tiled = t->flags & SOURCE_MIXED_TILED; @@ -832,23 +845,33 @@ igt_main_args("dac", NULL, help_str, opt_handler, NULL) t->dst_compression == I915_COMPRESSION_NONE) src_mode[0] = '\0'; - igt_subtest_f("%s%s%s%s", - src_mode, - src_mode[0] ? "-to-" : "", - force_vebox_dst_copy ? "vebox-" : "", - dst_mode) { + snprintf(name, sizeof(name), + "%s%s%s%s", + src_mode, + src_mode[0] ? "-to-" : "", + force_vebox_dst_copy ? "vebox-" : "", + dst_mode); + igt_subtest_with_dynamic(name) { igt_require_f(data.vebox_copy || !vebox_copy_used, "no vebox-copy function\n"); + for_each_combination(region_set, 1, set) { + char *sub_name = memregion_dynamic_subtest_name(region_set); - test(&data, - t->src_tiling, t->dst_tiling, - t->src_compression, t->dst_compression, - t->flags); + igt_dynamic_f("%s", sub_name) + test(&data, + t->src_tiling, t->dst_tiling, + t->src_compression, t->dst_compression, + t->flags, + region_set); + + free(sub_name); + } } } igt_fixture { igt_stop_hang_detector(); buf_ops_destroy(data.bops); + igt_collection_destroy(set); } } |