mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 01:46:14 +00:00
kms_frontbuffer_tracking: print the status when it's not what we expect
Printing the status on an unexpected failure is always the first thing I do. So do this always. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
parent
a07d0a47be
commit
71b85f9713
@ -717,6 +717,14 @@ static bool fbc_is_enabled(void)
|
||||
return strstr(buf, "FBC enabled\n");
|
||||
}
|
||||
|
||||
static void fbc_print_status(void)
|
||||
{
|
||||
char buf[128];
|
||||
|
||||
igt_debugfs_read("i915_fbc_status", buf);
|
||||
printf("FBC status:\n%s\n", buf);
|
||||
}
|
||||
|
||||
static bool psr_is_enabled(void)
|
||||
{
|
||||
char buf[256];
|
||||
@ -726,6 +734,14 @@ static bool psr_is_enabled(void)
|
||||
strstr(buf, "\nHW Enabled & Active bit: yes\n");
|
||||
}
|
||||
|
||||
static void psr_print_status(void)
|
||||
{
|
||||
char buf[256];
|
||||
|
||||
igt_debugfs_read("i915_edp_psr_status", buf);
|
||||
printf("PSR status:\n%s\n", buf);
|
||||
}
|
||||
|
||||
static struct timespec fbc_get_last_action(void)
|
||||
{
|
||||
struct timespec ret = { 0, 0 };
|
||||
@ -1540,6 +1556,37 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
|
||||
assert_sink_crc_equal(&crc_.sink, &wanted_crc->sink); \
|
||||
} while (0)
|
||||
|
||||
#define do_status_assertions(flags_) do { \
|
||||
if (!opt.check_status) { \
|
||||
/* Make sure we settle before continuing. */ \
|
||||
sleep(1); \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
if (flags_ & ASSERT_FBC_ENABLED) { \
|
||||
igt_require(!fbc_not_enough_stolen()); \
|
||||
if (!fbc_wait_until_enabled()) { \
|
||||
fbc_print_status(); \
|
||||
igt_assert_f(false, "FBC disabled\n"); \
|
||||
} \
|
||||
\
|
||||
if (fbc.supports_compressing && \
|
||||
opt.fbc_check_compression) \
|
||||
igt_assert(fbc_wait_for_compression()); \
|
||||
} else if (flags_ & ASSERT_FBC_DISABLED) { \
|
||||
igt_assert(!fbc_wait_until_enabled()); \
|
||||
} \
|
||||
\
|
||||
if (flags_ & ASSERT_PSR_ENABLED) { \
|
||||
if (!psr_wait_until_enabled()) { \
|
||||
psr_print_status(); \
|
||||
igt_assert_f(false, "PSR disabled\n"); \
|
||||
} \
|
||||
} else if (flags_ & ASSERT_PSR_DISABLED) { \
|
||||
igt_assert(!psr_wait_until_enabled()); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define do_assertions(flags) do { \
|
||||
int flags_ = adjust_assertion_flags(t, (flags)); \
|
||||
\
|
||||
@ -1552,26 +1599,7 @@ static int adjust_assertion_flags(const struct test_mode *t, int flags)
|
||||
/* Now we can flush things to make the test faster. */ \
|
||||
do_flush(t); \
|
||||
\
|
||||
if (opt.check_status) { \
|
||||
if (flags_ & ASSERT_FBC_ENABLED) { \
|
||||
igt_require(!fbc_not_enough_stolen()); \
|
||||
igt_assert(fbc_wait_until_enabled()); \
|
||||
\
|
||||
if (fbc.supports_compressing && \
|
||||
opt.fbc_check_compression) \
|
||||
igt_assert(fbc_wait_for_compression()); \
|
||||
} else if (flags_ & ASSERT_FBC_DISABLED) { \
|
||||
igt_assert(!fbc_wait_until_enabled()); \
|
||||
} \
|
||||
\
|
||||
if (flags_ & ASSERT_PSR_ENABLED) \
|
||||
igt_assert(psr_wait_until_enabled()); \
|
||||
else if (flags_ & ASSERT_PSR_DISABLED) \
|
||||
igt_assert(!psr_wait_until_enabled()); \
|
||||
} else { \
|
||||
/* Make sure we settle before continuing. */ \
|
||||
sleep(1); \
|
||||
} \
|
||||
do_status_assertions(flags_); \
|
||||
\
|
||||
/* Check CRC again to make sure the compressed screen is ok, \
|
||||
* except if we're not drawing on the primary screen. On this \
|
||||
|
Loading…
x
Reference in New Issue
Block a user