From: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Subject: [igt-dev] [PATCH i-g-t v10 25/31] lib/intel_batchbuffer: Use relocations in intel-bb up to gen12
Date: Fri, 20 Nov 2020 12:31:25 +0100 [thread overview]
Message-ID: <20201120113131.67971-26-zbigniew.kempczynski@intel.com> (raw)
In-Reply-To: <20201120113131.67971-1-zbigniew.kempczynski@intel.com>
We want to use relocations as long as we can so change intel-bb
strategy to use it as default up to gen12. For gen12 we have
to use softpinning in ccs aux tables so there we enforce using
allocator instead of relocations.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/intel_batchbuffer.c | 34 +++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index 64c3e09a..e4bc31b2 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -1270,25 +1270,25 @@ __intel_bb_create(int i915, uint32_t ctx, uint32_t size, bool do_relocs,
igt_assert(ibb);
ibb->uses_full_ppgtt = gem_uses_full_ppgtt(i915);
+ ibb->devid = intel_get_drm_devid(i915);
+ ibb->gen = intel_gen(ibb->devid);
/*
* If we don't have full ppgtt driver can change our addresses
* so allocator is useless in this case. Just enforce relocations
* for such gens and don't use allocator at all.
*/
- if (!ibb->uses_full_ppgtt) {
+ if (!ibb->uses_full_ppgtt)
do_relocs = true;
- allocator_type = INTEL_ALLOCATOR_NONE;
- }
- if (!do_relocs)
- ibb->allocator_handle = intel_allocator_open(i915, ctx, allocator_type);
+ /* if relocs are set we won't use an allocator */
+ if (do_relocs)
+ allocator_type = INTEL_ALLOCATOR_NONE;
else
- igt_assert(allocator_type == INTEL_ALLOCATOR_NONE);
+ ibb->allocator_handle = intel_allocator_open(i915, ctx, allocator_type);
+
ibb->allocator_type = allocator_type;
ibb->i915 = i915;
- ibb->devid = intel_get_drm_devid(i915);
- ibb->gen = intel_gen(ibb->devid);
ibb->enforce_relocs = do_relocs;
ibb->handle = gem_create(i915, size);
ibb->size = size;
@@ -1324,7 +1324,7 @@ __intel_bb_create(int i915, uint32_t ctx, uint32_t size, bool do_relocs,
*
* Creates bb with context passed in @ctx, size in @size and allocator type
* in @allocator_type. Relocations are set to false because IGT allocator
- * is not used in that case.
+ * is used in that case.
*
* Returns:
*
@@ -1349,7 +1349,11 @@ struct intel_bb *intel_bb_create_full(int i915, uint32_t ctx, uint32_t size,
*/
struct intel_bb *intel_bb_create(int i915, uint32_t size)
{
- return __intel_bb_create(i915, 0, size, false, INTEL_ALLOCATOR_SIMPLE);
+ bool relocs = gem_has_relocations(i915);
+ unsigned int gen = intel_gen(intel_get_drm_devid(i915));
+
+ return __intel_bb_create(i915, 0, size, relocs && gen < 12,
+ INTEL_ALLOCATOR_SIMPLE);
}
/**
@@ -1367,7 +1371,11 @@ struct intel_bb *intel_bb_create(int i915, uint32_t size)
struct intel_bb *
intel_bb_create_with_context(int i915, uint32_t ctx, uint32_t size)
{
- return __intel_bb_create(i915, ctx, size, false, INTEL_ALLOCATOR_SIMPLE);
+ bool relocs = gem_has_relocations(i915);
+ unsigned int gen = intel_gen(intel_get_drm_devid(i915));
+
+ return __intel_bb_create(i915, ctx, size, relocs && gen < 12,
+ INTEL_ALLOCATOR_SIMPLE);
}
/**
@@ -1384,6 +1392,8 @@ intel_bb_create_with_context(int i915, uint32_t ctx, uint32_t size)
*/
struct intel_bb *intel_bb_create_with_relocs(int i915, uint32_t size)
{
+ igt_require(gem_has_relocations(i915));
+
return __intel_bb_create(i915, 0, size, true, INTEL_ALLOCATOR_NONE);
}
@@ -1403,6 +1413,8 @@ struct intel_bb *intel_bb_create_with_relocs(int i915, uint32_t size)
struct intel_bb *
intel_bb_create_with_relocs_and_context(int i915, uint32_t ctx, uint32_t size)
{
+ igt_require(gem_has_relocations(i915));
+
return __intel_bb_create(i915, ctx, size, true, INTEL_ALLOCATOR_NONE);
}
--
2.26.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2020-11-20 11:32 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-20 11:31 [igt-dev] [PATCH i-g-t v10 00/31] Introduce IGT allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 01/31] lib/igt_list: igt_hlist implementation Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 02/31] lib/igt_map: Introduce igt_map Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 03/31] lib/igt_core: Track child process pid and tid Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 04/31] lib/intel_allocator_simple: Add simple allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 05/31] lib/intel_allocator_random: Add random allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 06/31] lib/intel_allocator: Add intel_allocator core Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 07/31] lib/intel_allocator: Try to stop smoothly instead of deinit Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 08/31] lib/intel_allocator_msgchannel: Scale to 4k of parallel clients Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 09/31] lib/intel_bufops: Removes handle from allocator, change size Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 10/31] lib/intel_bufops: Add init with handle and size function Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 11/31] lib/intel_batchbuffer: Integrate intel_bb with allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 12/31] lib/intel_batchbuffer: Add tracking intel_buf to intel_bb Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 13/31] lib/intel_aux_pgtable: Get addresses for aux table from an allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 14/31] lib/igt_fb: Initialize intel_buf with same size as fb Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 15/31] tests/api_intel_bb: Modify test to verify intel_bb with allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 16/31] tests/api_intel_bb: Add compressed->compressed copy Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 17/31] tests/api_intel_allocator: Simple allocator test suite Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 18/31] tests/gem|kms: Remove intel_bb from fixture Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 19/31] tests/gem_mmap_offset: Use intel_buf wrapper code instead direct Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 20/31] tests/gem_ppgtt: Adopt test to use intel_bb with allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 21/31] tests/gem_render_copy_redux: Adopt to use with intel_bb and allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 22/31] tests/perf.c: Remove buffer from batch Zbigniew Kempczyński
2020-11-20 12:06 ` Lionel Landwerlin
2020-11-20 12:17 ` Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 23/31] tests/gem_linear_blits: Use intel allocator Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 24/31] lib/ioctl_wrappers: Add gem_has_relocations() check Zbigniew Kempczyński
2020-11-20 11:31 ` Zbigniew Kempczyński [this message]
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 26/31] tests/api_intel_*: Adopt to use relocations as default up to gen12 Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 27/31] tests/gem_ppgtt: Migrate memory check out of render blits Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 28/31] tests/api_intel_bb: Remove check-canonical test Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 29/31] tests/api_intel_bb: Use allocator in delta-check test Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 30/31] lib/intel_allocator: Separate allocator multiprocess start Zbigniew Kempczyński
2020-11-20 11:31 ` [igt-dev] [PATCH i-g-t v10 31/31] tests/api_intel_allocator: Prepare to run with sanitizer Zbigniew Kempczyński
2020-11-20 13:28 ` [igt-dev] ✗ Fi.CI.BAT: failure for Introduce IGT allocator (rev11) Patchwork
2020-11-20 17:34 ` Zbigniew Kempczyński
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201120113131.67971-26-zbigniew.kempczynski@intel.com \
--to=zbigniew.kempczynski@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox