summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/i915/api_intel_bb.c41
1 files changed, 22 insertions, 19 deletions
diff --git a/tests/i915/api_intel_bb.c b/tests/i915/api_intel_bb.c
index d423b627..cc1d1be6 100644
--- a/tests/i915/api_intel_bb.c
+++ b/tests/i915/api_intel_bb.c
@@ -485,25 +485,6 @@ static void blit(struct buf_ops *bops,
igt_debug("bb2 presumed offset: 0x%"PRIx64"\n", poff2_bb);
igt_debug("src2 presumed offset: 0x%"PRIx64"\n", poff2_src);
igt_debug("dst2 presumed offset: 0x%"PRIx64"\n", poff2_dst);
- if (purge_cache) {
- if (do_relocs) {
- igt_assert(poff2_bb == 0);
- igt_assert(poff2_src == 0);
- igt_assert(poff2_dst == 0);
- } else {
- igt_assert(poff_bb != poff2_bb);
- igt_assert(poff_src == poff2_src);
- igt_assert(poff_dst == poff2_dst);
- }
- } else {
- igt_assert(poff_bb == poff2_bb);
- igt_assert(poff_src == poff2_src);
- igt_assert(poff_dst == poff2_dst);
- }
-
- intel_bb_emit_bbe(ibb);
- intel_bb_exec(ibb, intel_bb_offset(ibb), flags, true);
- check_buf(dst, COLOR_77);
/*
* Since we let the objects idle, if the GTT is shared, another client
@@ -515,6 +496,28 @@ static void blit(struct buf_ops *bops,
* we are in full control of our own GTT.
*/
if (gem_uses_full_ppgtt(i915)) {
+ if (purge_cache) {
+ if (do_relocs) {
+ igt_assert_eq_u64(poff2_bb, 0);
+ igt_assert_eq_u64(poff2_src, 0);
+ igt_assert_eq_u64(poff2_dst, 0);
+ } else {
+ igt_assert_neq_u64(poff_bb, poff2_bb);
+ igt_assert_eq_u64(poff_src, poff2_src);
+ igt_assert_eq_u64(poff_dst, poff2_dst);
+ }
+ } else {
+ igt_assert_eq_u64(poff_bb, poff2_bb);
+ igt_assert_eq_u64(poff_src, poff2_src);
+ igt_assert_eq_u64(poff_dst, poff2_dst);
+ }
+ }
+
+ intel_bb_emit_bbe(ibb);
+ intel_bb_exec(ibb, intel_bb_offset(ibb), flags, true);
+ check_buf(dst, COLOR_77);
+
+ if (gem_uses_full_ppgtt(i915)) {
igt_assert_eq_u64(intel_bb_get_object_offset(ibb, src->handle),
poff_src);
igt_assert_eq_u64(intel_bb_get_object_offset(ibb, dst->handle),