<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - [REGRESSION] [BISECTED] Segmentation fault in si_bind_blend_state after removal of the blend state NULL check"
href="https://bugs.freedesktop.org/show_bug.cgi?id=111414">111414</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>[REGRESSION] [BISECTED] Segmentation fault in si_bind_blend_state after removal of the blend state NULL check
</td>
</tr>
<tr>
<th>Product</th>
<td>Mesa
</td>
</tr>
<tr>
<th>Version</th>
<td>git
</td>
</tr>
<tr>
<th>Hardware</th>
<td>x86-64 (AMD64)
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux (All)
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>Drivers/Gallium/radeonsi
</td>
</tr>
<tr>
<th>Assignee</th>
<td>dri-devel@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>edmondo.tommasina@gmail.com
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>dri-devel@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=145084" name="attach_145084" title="Backtrace">attachment 145084</a> <a href="attachment.cgi?id=145084&action=edit" title="Backtrace">[details]</a></span>
Backtrace
vlc using vdpau received signal SIGSEGV after the removal of the blend state
NULL check.
Bisected to:
<a href="https://gitlab.freedesktop.org/mesa/mesa/commit/b758eed9c373db14a5acc04d9522ec9d74e51f1b">https://gitlab.freedesktop.org/mesa/mesa/commit/b758eed9c373db14a5acc04d9522ec9d74e51f1b</a>
commit b758eed9c373db14a5acc04d9522ec9d74e51f1b (HEAD, refs/bisect/bad)
Author: Marek Olšák <<a href="mailto:marek.olsak@amd.com">marek.olsak@amd.com</a>>
Date: Tue Jul 30 17:43:41 2019 -0400
radeonsi: make sure that blend state != NULL and remove all NULL checking
Reviewed-by: Pierre-Eric Pelloux-Prayer
<<a href="mailto:pierre-eric.pelloux-prayer@amd.com">pierre-eric.pelloux-prayer@amd.com</a>>
The backtrace shows old_blend = 0x0 where the new code doesn't check old_blend
anymore:
+ if (old_blend->cb_target_mask != blend->cb_target_mask ||
Full backtrace attached, here an extract:
0x00007fff60e6497b in si_bind_blend_state (ctx=0x7fff58468f20, state=<optimized
out>) at ../mesa-9999/src/gallium/drivers/radeonsi/si_state.c:686
686 ../mesa-9999/src/gallium/drivers/radeonsi/si_state.c: No such file or
directory.
(gdb) bt full
#0 0x00007fff60e6497b in si_bind_blend_state (ctx=0x7fff58468f20,
state=<optimized out>) at
../mesa-9999/src/gallium/drivers/radeonsi/si_state.c:686
sctx = 0x7fff58468f20
old_blend = 0x0
blend = 0x7fff584f2220
#1 0x00007fff60cea216 in draw_layers (dirty=0x7fff584099b8, s=0x7fff584fbf60,
c=0x7fff58409788) at
../mesa-9999/src/gallium/auxiliary/vl/vl_compositor_gfx.c:662
layer = 0x7fff584fbf98
samplers = 0x7fff584fbfe8
num_sampler_views = 1
blend = <optimized out>
vb_index = 0
i = 0
vb_index = <optimized out>
i = <optimized out>
layer = <optimized out>
samplers = <optimized out>
num_sampler_views = <optimized out>
blend = <optimized out>
drawn = <optimized out>
#2 vl_compositor_gfx_render (s=s@entry=0x7fff584fbf60,
c=c@entry=0x7fff58409788, dst_surface=dst_surface@entry=0x7fff58530980,
dirty_area=0x7fff584099b8, dirty_area@entry=0x1, clear_dirty=<optimized out>)
at ../mesa-9999/src/gallium/auxiliary/vl/vl_compositor_gfx.c:725
No locals.
#3 0x00007fff60ce462c in vl_compositor_render (clear_dirty=true,
dirty_area=0x1, dst_surface=0x7fff58530980, c=0x7fff58409788, s=0x7fff584fbf60)
at ../mesa-9999/src/gallium/auxiliary/vl/vl_compositor.c:755
No locals.
#4 vl_compositor_render (s=s@entry=0x7fff584fbf60, c=c@entry=0x7fff58409788,
dst_surface=dst_surface@entry=0x7fff5866b060,
dirty_area=dirty_area@entry=0x7fff584099b8, clear_dirty=clear_dirty@entry=true)
at ../mesa-9999/src/gallium/auxiliary/vl/vl_compositor.c:744
No locals.
#5 0x00007fff60cda6ae in vlVdpPresentationQueueDisplay
(presentation_queue=<optimized out>, surface=4, clip_width=<optimized out>,
clip_height=0, earliest_presentation_time=36232721127000)
at ../mesa-9999/src/gallium/state_trackers/vdpau/presentation.c:262
dump_window = -1
pq = 0x7fff584fbf50
surf = 0x7fff585043d0
pipe = 0x7fff58468f20
tex = 0x7fff58530980
surf_templ = {reference = {count = 0}, format =
PIPE_FORMAT_B8G8R8X8_UNORM, writable = 0, texture = 0x0, context = 0x0, width =
0, height = 0, nr_samples = 0, u = {tex = {level = 0, first_layer = 0,
last_layer = 0}, buf = {
first_element = 0, last_element = 0}}}
surf_draw = 0x7fff5866b060
src_rect = {x0 = 0, x1 = 1658, y0 = 0, y1 = 933}
dst_clip = {x0 = 0, x1 = 1658, y0 = 0, y1 = 933}
dirty_area = 0x7fff584099b8
compositor = 0x7fff58409788
cstate = 0x7fff584fbf60
vscreen = 0x7fff58409900</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>