isl_aux_info unit test fails
At least on debug builds (-O0
) I'm hitting this 100% reliably on my Broadwell laptop. I'm not hitting it on release builds on my shader-db runner or on the CI.
Results of the bisect:
58d4749e5683857d57b8b432559c9d837544ad88 is the first bad commit
commit 58d4749e5683857d57b8b432559c9d837544ad88
Author: Nanley Chery <nanley.g.chery@intel.com>
Date: Thu Nov 21 09:00:02 2019 -0800
isl: Add a module which manages aux resolves
Provide a generic interface which manages aux resolves in ISL. The
feature differences between this and what's in iris is:
* Support for media compression. ISL_AUX_USAGE_MC behaves differently
from many other usages of CCS, so it was useful to implement this
support upfront, while designing the interfaces.
* Optimizations for full-surface writes. For example, after a
full-surface write occurs with ISL_AUX_USAGE_CCS_E in the PARTIAL_CLEAR
state, isl_aux_state_transition_write() returns COMPRESSED_NO_CLEAR
instead of COMPRESSED_CLEAR.
A performance suggestion for main-surface-invalidating/replacing writes
is given as a comment instead of adding a boolean to
isl_aux_prepare_access(). This avoids extra validation and should be
simple enough for the caller to handle.
v2. Add assertions. (Jason)
v3. Use switches in 2 more functions. (Jason)
Store aux metadata in a static table. (Jason)
Change prepare and finish function signatures. (Jason)
Keep isl_aux_state_transition_* functions separate.
v4. (Jason)
Assert against resolving in AUX_INVALID.
Rename aux_info struct to aux_usage_info.
Drop the justification for each aux_usage_info field.
Split out the NONE case in write function.
Restructure tests to more easily confirm coverage.
Rename access_compressed field to compressed.
Make write behavior less ambiguous.
v5. (Jason)
Add more detail above WRITES_RESOLVE_AMBIGUATE.
Add ISL_AUX_USAGE_MC to WritesResolveAmbiguate.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2957>
:040000 040000 d3bb9feee9e5954bed699bf4727a5ea249008919 f29a8dee60bc4d1a556f8e16e12130f7a83fd7c7 M src
Output of the ninja test
failure:
The output from the failed tests:
55/89 mesa:intel / isl_aux_info TIMEOUT 30.01 s
--- command ---
/home/idr/devel/graphics/Mesa/BUILD/debug-64.build/src/intel/isl/isl_aux_info_test
--- stdout ---
Running main() from gtest_main.cc
[==========] Running 13 tests from 3 test cases.
[----------] Global test environment set-up.
[----------] 5 tests from PrepareAccess
[ RUN ] PrepareAccess.CompressedFalseFastClearFalsePartialResolveFalse
[ OK ] PrepareAccess.CompressedFalseFastClearFalsePartialResolveFalse (3309 ms)
[ RUN ] PrepareAccess.CompressedFalseFastClearTruePartialResolveFalse
[ OK ] PrepareAccess.CompressedFalseFastClearTruePartialResolveFalse (0 ms)
[ RUN ] PrepareAccess.CompressedTrueFastClearFalsePartialResolveFalse
[ OK ] PrepareAccess.CompressedTrueFastClearFalsePartialResolveFalse (3744 ms)
[ RUN ] PrepareAccess.CompressedTrueFastClearTruePartialResolveFalse
[ OK ] PrepareAccess.CompressedTrueFastClearTruePartialResolveFalse (0 ms)
[ RUN ] PrepareAccess.CompressedTrueFastClearTruePartialResolveTrue
[ OK ] PrepareAccess.CompressedTrueFastClearTruePartialResolveTrue (0 ms)
[----------] 5 tests from PrepareAccess (7054 ms total)
[----------] 5 tests from StateTransitionAuxOp
[ RUN ] StateTransitionAuxOp.None
[ OK ] StateTransitionAuxOp.None (2244 ms)
[ RUN ] StateTransitionAuxOp.FastClear
[ OK ] StateTransitionAuxOp.FastClear (4189 ms)
[ RUN ] StateTransitionAuxOp.PartialResolve
[ OK ] StateTransitionAuxOp.PartialResolve (6456 ms)
[ RUN ] StateTransitionAuxOp.FullResolve
[ OK ] StateTransitionAuxOp.FullResolve (3847 ms)
[ RUN ] StateTransitionAuxOp.Ambiguate
[ OK ] StateTransitionAuxOp.Ambiguate (2939 ms)
[----------] 5 tests from StateTransitionAuxOp (19675 ms total)
[----------] 3 tests from StateTransitionWrite
[ RUN ] StateTransitionWrite.WritesOnlyTouchMain
[ OK ] StateTransitionWrite.WritesOnlyTouchMain (1152 ms)
[ RUN ] StateTransitionWrite.WritesCompress
[ OK ] StateTransitionWrite.WritesCompress (576 ms)
[ RUN ] StateTransitionWrite.WritesResolveAmbiguate
-------
Full log written to /home/idr/devel/graphics/Mesa/BUILD/debug-64.build/meson-logs/testlog.txt