On 07/12/2019 01:08, Chris Wilson wrote:
This reverts commit 343aae776a58a67fa153825385e6fe90e3185c5b.

__for_each_physical_engine() reprograms the context, invalidating the
use of e->flags to select engines, necessitating e->index instead.
Withot also fixing up the engine selection, the result is that random
engines were being used to read registers from the intended engine.
This does not end well.

Argh, an oversight.. test(s) needs to be looked at in detail and converted fully. On a cursory glance a sprinkle of gem_context_set_all_engines on internally created contexts is needed to align with the passed in e and e->flags.

Acked-by: Tvrtko Ursulin <[email protected]>

Regards,

Tvrtko

Signed-off-by: Chris Wilson <[email protected]>
Cc: Stuart Summers <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
---
  tests/i915/gem_ctx_isolation.c   | 4 ++--
  tests/i915/gem_ctx_persistence.c | 2 +-
  2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 9435209e9..6aa27133c 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -856,7 +856,6 @@ static unsigned int __has_context_isolation(int fd)
igt_main
  {
-       struct intel_execution_engine2 *e;
        unsigned int has_context_isolation = 0;
        int fd = -1;
@@ -877,7 +876,8 @@ igt_main
                igt_skip_on(gen > LAST_KNOWN_GEN);
        }
- __for_each_physical_engine(fd, e) {
+       for (const struct intel_execution_engine2 *e = intel_execution_engines2;
+            e->name; e++) {
                igt_subtest_group {
                        igt_fixture {
                                igt_require(has_context_isolation & (1 << 
e->class));
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 30772159b..d68431ae0 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -727,7 +727,7 @@ igt_main
        igt_subtest("hangcheck")
                test_nohangcheck_hostile(i915);
- __for_each_physical_engine(i915, e) {
+       __for_each_static_engine(e) {
                igt_subtest_group {
                        igt_fixture {
                                gem_require_ring(i915, e->flags);

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to