<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi all,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
This is my first message to the list and I don't know if that's the place to report the error I'm facing...</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I'm using an old mesa 20.3.1 version and sometimes I get a SIGSEGV doing swap buffer. The traces I get on GDB are:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Thread 1 (Thread 0x7f6d1737e700 (LWP 2448)):
<div>#0  0x00007f6d0aed85a5 in amdgpu_fence_wait (fence=0x7f6cb8abdf5d, timeout=0, absolute=<optimized out>) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:204</div>
<div>#1  0x00007f6d0aedb339 in amdgpu_add_bo_fence_dependencies (buffer=0x7f6c9b88f0d0, buffer=0x7f6c9b88f0d0, acs=0x7f6d015564c0) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1290</div>
<div>#2  amdgpu_add_fence_dependencies_bo_list (acs=acs@entry=0x7f6d015564c0, fence=<optimized out>, num_buffers=<optimized out>, buffers=<optimized out>) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1357</div>
<div>#3  0x00007f6d0aedb7ff in amdgpu_add_fence_dependencies_bo_lists (acs=0x7f6d015564c0) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1371</div>
<div>#4  amdgpu_cs_flush (rcs=0x7f6d015564c0, flags=2147483656, fence=<optimized out>) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1831</div>
<div>#5  0x00007f6d0aec4cf3 in si_flush_gfx_cs (ctx=0x7f6d014fc680, flags=2147483656, fence=0x0) at ../src/gallium/drivers/radeonsi/si_gfx_cs.c:234</div>
<div>#6  0x00007f6d0aeaa515 in si_buffer_map_sync_with_rings (usage=513, resource=0x7f6d173f9740, sctx=0x7f6d014fc680) at ../src/gallium/drivers/radeonsi/si_buffer.c:66</div>
<div>#7  si_buffer_map_sync_with_rings (sctx=0x7f6d014fc680, resource=0x7f6d173f9740, usage=513) at ../src/gallium/drivers/radeonsi/si_buffer.c:46</div>
<div>#8  0x00007f6d0ae58305 in si_query_hw_get_result (sctx=0x7f6d014fc680, squery=0x7f6d01312780, wait=<optimized out>, result=0x7f6d1737bdd0) at ../src/gallium/drivers/radeonsi/si_query.c:1418</div>
<div>#9  0x00007f6d0b1315f9 in tc_get_query_result (_pipe=<optimized out>, query=0x7f6d01312780, wait=<optimized out>, result=<optimized out>) at ../src/gallium/auxiliary/util/u_threaded_context.c:499</div>
<div>#10 0x00007f6d0abecdaa in query_new_value_normal (pipe=0x7f6d17e31e40, info=0x7f6d175ee580) at ../src/gallium/auxiliary/hud/hud_driver_query.c:245</div>
<div>#11 query_new_value (gr=0x7f6d175f3200, pipe=0x7f6d17e31e40) at ../src/gallium/auxiliary/hud/hud_driver_query.c:312</div>
<div>#12 0x00007f6d0abe70ec in hud_stop_queries (hud=0x7f6d1ccc6f80, pipe=0x7f6d17e31e40) at ../src/gallium/auxiliary/hud/hud_context.c:676</div>
<div>#13 0x00007f6d0abe7fc5 in hud_run (hud=0x7f6d1ccc6f80, cso=0x7f6d0133c000, tex=0x7f6cfaf18600) at ../src/gallium/auxiliary/hud/hud_context.c:722</div>
<div>#14 0x00007f6d0a632c32 in notify_before_flush_cb (_args=_args@entry=0x7f6d1737c0e0) at ../src/gallium/frontends/dri/dri_drawable.c:450</div>
<div>#15 0x00007f6d0a63fc5c in st_context_flush (stctxi=0x7f6d0133dc00, flags=3, fence=0x7f6d1737c0d8, before_flush_cb=0x7f6d0a632b80 <notify_before_flush_cb>, args=0x7f6d1737c0e0) at ../src/mesa/state_tracker/st_manager.c:673</div>
<div>#16 0x00007f6d0a633682 in dri_flush (cPriv=<optimized out>, dPriv=<optimized out>, flags=3, reason=<optimized out>) at ../src/gallium/frontends/dri/dri_drawable.c:526</div>
<div>#17 0x00007f6d18380ac3 in loader_dri3_swap_buffers_msc (draw=0x7f6d1cc884b8, target_msc=0, divisor=0, remainder=0, flush_flags=<optimized out>, rects=rects@entry=0x0, n_rects=0, force_copy=false) at ../src/loader/loader_dri3_helper.c:959</div>
<div>#18 0x00007f6d183738a1 in dri3_swap_buffers (pdraw=<optimized out>, target_msc=<optimized out>, divisor=<optimized out>, remainder=<optimized out>, flush=<optimized out>) at ../src/glx/dri3_glx.c:594</div>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
Printing the fence var in adgpu_fence_wait I see:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
(gdb) print *(struct amdgpu_fence*)fence
<div>$7 = {reference = {count = 0}, syncobj = 0, ws = 0x0, ctx = 0x0, fence = {context = 0x0, ip_type = 67108864, ip_instance = 1442840582, ring = 1140850688, fence = 6196953087261802496}, user_fence_cpu_address = 0x44000000,
</div>
<div>  submitted = {val = 0}, signalled = 0}</div>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
then the line <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
      if (amdgpu_cs_syncobj_wait(afence->ws->dev, &afence->syncobj, 1,
<div>                                 abs_timeout, 0, NULL))</div>
<div>         return false;</div>
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
is throwing a SIGSEGV because afence->ws is a NULL pointer.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Is it a know bug already reported and solved? I need to update to a more recent Mesa3d version?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Thanks a lot</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Jorge<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
</body>
</html>