Bug 50980

Summary: [r300g, bisected] WebGL cars demo crash (r300_emit.c:865:r300_emit_vertex_arrays: Assertion `(buf)' failed)
Product: Mesa Reporter: Pavel Ondračka <pavel.ondracka>
Component: Drivers/Gallium/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: maraeo
Version: gitKeywords: regression
Hardware: Other   
OS: All   
URL: http://www.chromeexperiments.com/detail/webgl-cars/?f=webgl
Whiteboard:
i915 platform: i915 features:
Attachments: backtrace
gl-max-texture-dimensions webgl test backtrace

Description Pavel Ondračka 2012-06-11 13:31:59 UTC
Created attachment 62902 [details]
backtrace

WebGL cars demo crash with r300_emit.c:865:r300_emit_vertex_arrays: Assertion `(buf)' failed, full backtrace attached.

784dd51198433e5c299da4a7742c68d21d68d1c1 is the first bad commit
commit 784dd51198433e5c299da4a7742c68d21d68d1c1
Author: Marek Olšák <maraeo@gmail.com>
Date:   Mon Apr 16 03:34:22 2012 +0200

    mesa,vbo: properly detect when vertex arrays need to be recalculated
    
    This moves the RebindArrays flag into the vbo module, consolidates the code,
    and adds missing vbo_draw_method calls.
    
    Also with this change, the vertex arrays are not needlessly recalculated twice.
    The issue with the old code was:
    - If recalculate_input_bindings updates vp_varying_inputs, _NEW_ARRAY is set.
    - _mesa_update_state is called and the vp_varying_inputs change causes
      regeneration of the fixed-function shaders, which also sets _NEW_PROGRAM.
    - The occurence of either _NEW_ARRAY or _NEW_PROGRAM sets
      the recalculate_inputs flag to TRUE again.
    - The new code sets the flag to FALSE after the second _mesa_update_state,
      because there can't possibly be any change which would require recalculating
      the arrays.
    
    Reviewed-by: Brian Paul <brianp@vmware.com>
    Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de>


GPU:RV530
Kernel: 3.4.0-1.fc17.i686
Firefox 13.0
Comment 1 Pavel Ondračka 2012-06-12 12:26:19 UTC
Created attachment 62942 [details]
gl-max-texture-dimensions webgl test backtrace

Another variation of this crash can be seen with conformance/limits/gl-max-texture-dimensions.html test from webgl conformance test suite. The backtrace is different, but regression test showed the same commit.
Comment 2 Pavel Ondračka 2012-07-23 10:14:10 UTC
Works fine in latest git.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.