[Bug 111414] [REGRESSION] [BISECTED] Segmentation fault in si_bind_blend_state after removal of the blend state NULL check

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Aug 17 20:59:33 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=111414

            Bug ID: 111414
           Summary: [REGRESSION] [BISECTED] Segmentation fault in
                    si_bind_blend_state after removal of the blend state
                    NULL check
           Product: Mesa
           Version: git
          Hardware: x86-64 (AMD64)
                OS: Linux (All)
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/Gallium/radeonsi
          Assignee: dri-devel at lists.freedesktop.org
          Reporter: edmondo.tommasina at gmail.com
        QA Contact: dri-devel at lists.freedesktop.org

Created attachment 145084
  --> https://bugs.freedesktop.org/attachment.cgi?id=145084&action=edit
Backtrace

vlc using vdpau received signal SIGSEGV after the removal of the blend state
NULL check.

Bisected to:

https://gitlab.freedesktop.org/mesa/mesa/commit/b758eed9c373db14a5acc04d9522ec9d74e51f1b

commit b758eed9c373db14a5acc04d9522ec9d74e51f1b (HEAD, refs/bisect/bad)
Author: Marek Olšák <marek.olsak at amd.com>
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
<pierre-eric.pelloux-prayer at amd.com>




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 at entry=0x7fff584fbf60,
c=c at entry=0x7fff58409788, dst_surface=dst_surface at entry=0x7fff58530980,
dirty_area=0x7fff584099b8, dirty_area at 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 at entry=0x7fff584fbf60, c=c at entry=0x7fff58409788,
dst_surface=dst_surface at entry=0x7fff5866b060,
dirty_area=dirty_area at entry=0x7fff584099b8, clear_dirty=clear_dirty at 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

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20190817/b7a8b499/attachment.html>


More information about the dri-devel mailing list