[panfrost] midgard compute shader regression
Compute shaders broke on midgard, all 3.1 compute tests crash, even dEQP-GLES31.functional.compute.basic.empty
.
Bisecting reveals ff3eada7 as the culprit.
cfg.bound_min_x
is ~0
and causes an assertion to fail when packing MALI_MULTI_TARGET_FRAMEBUFFER_PARAMETERS.
I tried fixing it but couldn't.
Here's the backtrace for completeness:
deqp-gles31: src/panfrost/lib/midgard_pack.h:30: __gen_uint: Assertion `v <= max' failed.
Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) backtrace
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000fffff7ae1ea0 in __GI_abort () at abort.c:79
#2 0x0000fffff7aee878 in __assert_fail_base (fmt=0xfffff7bec298 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0xfffff7359950 "v <= max",
file=file@entry=0xfffff7359930 "src/panfrost/lib/midgard_pack.h", line=line@entry=30, function=function@entry=0xfffff735a040 <__PRETTY_FUNCTION__.16> "__gen_uint") at assert.c:92
#3 0x0000fffff7aee8dc in __GI___assert_fail (assertion=0xfffff7359950 "v <= max", file=0xfffff7359930 "src/panfrost/lib/midgard_pack.h", line=30,
function=0xfffff735a040 <__PRETTY_FUNCTION__.16> "__gen_uint") at assert.c:101
#4 0x0000fffff707bac4 in __gen_uint (v=4294967295, start=0, end=15) at src/panfrost/lib/midgard_pack.h:30
#5 0x0000fffff707cabc in MALI_MULTI_TARGET_FRAMEBUFFER_PARAMETERS_pack (cl=0xfffff0424160, values=0xffffffffe558) at src/panfrost/lib/midgard_pack.h:4903
#6 0x0000fffff7080c7c in pan_emit_mfbd (dev=0xaaaaab59a718, fb=0xffffffffe8b8, tls=0xffffffffe670, tiler_ctx=0xaaaaabbbe7b8, out=0xfffff0424140) at ../src/panfrost/lib/pan_cs.c:692
#7 0x0000fffff70814a0 in pan_emit_fbd (dev=0xaaaaab59a718, fb=0xffffffffe8b8, tls=0xffffffffe670, tiler_ctx=0xaaaaabbbe7b8, out=0xfffff0424140) at ../src/panfrost/lib/pan_cs.c:887
#8 0x0000fffff70505e8 in panfrost_emit_fbd (batch=0xaaaaabbbe5e0, fb=0xffffffffe8b8) at ../src/gallium/drivers/panfrost/pan_cmdstream.c:2302
#9 0x0000fffff7042e1c in panfrost_batch_submit (batch=0xaaaaabbbe5e0, in_sync=1, out_sync=1) at ../src/gallium/drivers/panfrost/pan_job.c:1141
#10 0x0000fffff7042f5c in panfrost_flush_all_batches (ctx=0xaaaaab5b3150) at ../src/gallium/drivers/panfrost/pan_job.c:1177
#11 0x0000fffff705178c in panfrost_launch_grid (pipe=0xaaaaab5b3150, info=0xffffffffec88) at ../src/gallium/drivers/panfrost/pan_compute.c:162
#12 0x0000fffff660ac20 in st_dispatch_compute_common (ctx=0xfffff0537010, num_groups=0xffffffffed48, group_size=0x0, indirect=0x0, indirect_offset=0)
at ../src/mesa/state_tracker/st_cb_compute.c:71
#13 0x0000fffff660ac54 in st_dispatch_compute (ctx=0xfffff0537010, num_groups=0xffffffffed48) at ../src/mesa/state_tracker/st_cb_compute.c:77
#14 0x0000fffff6aacd00 in dispatch_compute (no_error=false, num_groups_z=4, num_groups_y=4, num_groups_x=4) at ../src/mesa/main/compute.c:300
#15 _mesa_DispatchCompute (num_groups_x=4, num_groups_y=4, num_groups_z=4) at ../src/mesa/main/compute.c:315
#16 0x0000fffff7a1cd18 in shared_dispatch_stub_878 (num_groups_x=4, num_groups_y=4, num_groups_z=4) at /home/debian/mesa/newbuild/src/mapi/shared-glapi/glapi_mapi_tmp.h:26215
#17 0x0000aaaaaac2ad7c in deqp::gles31::Functional::ShaderAtomicOpCase::iterate() ()
#18 0x0000aaaaaab2e2cc in deqp::gles31::TestCaseWrapper::iterate(tcu::TestCase*) ()
#19 0x0000aaaaab251b68 in tcu::TestSessionExecutor::iterateTestCase(tcu::TestCase*) ()
#20 0x0000aaaaab2529f4 in tcu::TestSessionExecutor::iterate() ()
#21 0x0000aaaaab22a568 in tcu::App::iterate() ()
#22 0x0000aaaaaab2ab80 in main ()