Bug 104690

Summary: [G33] regression: piglit.spec.!opengl 1_4.draw-batch and gl-1_4-dlist-multidrawarrays
Product: Mesa Reporter: Clayton Craft <clayton.a.craft>
Component: Drivers/DRI/i965Assignee: Brian Paul <brianp>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: idr
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 104757    

Description Clayton Craft 2018-01-18 21:37:48 UTC
Mesa 8e4efdc895eacca931b94a0c1fa01aae5c34463b introduced a regression on G33 for the following tests:

piglit.spec.!opengl 1_4.draw-batch
piglit.spec.!opengl 1_4.gl-1_4-dlist-multidrawarrays

commit 8e4efdc895eacca931b94a0c1fa01aae5c34463b
Author: Brian Paul <brianp@vmware.com>
Date:   Fri Jan 12 13:18:25 2018 -0700

    vbo: optimize some display list drawing (v2)

    The vbo_save_vertex_list structure records one or more glBegin/End
    primitives which all have the same vertex format.


    To draw these primitives, we setup the vertex array state, then
    issue the drawing command.  Before, the 'start' vertex was typically
    zero and we used the vertex array pointer to indicate where the
    vertex data starts.

    This patch checks if the vertex buffer offset is an exact multiple of
    the vertex size.  If so, that means we can use zero-based vertex array
    pointers and use the draw's start value to indicate where the vertex
    data starts.

    This means a series of display list drawing commands may have
    identical vertex array state.  This will get filtered out by the
    Gallium CSO module so we can issue a tight series of drawing commands
    without state changes to the device.

    Note that this also works for a series of glCallList commands (not
    just one list that contains multiple glBegin/End pairs).

    No Piglit or conform changes.

    v2: minor fixes suggested by Ian.

    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Comment 1 Brian Paul 2018-01-18 22:10:28 UTC
Can you please re-test with ToT code?

Commit 9e6efdd1776cb76386d8aa774926c77aa2db7804 (just pushed) has a bug fix.
Comment 2 Clayton Craft 2018-01-19 00:34:42 UTC
I'm still seeing failures on these two tests even with commit 9e6efdd1776cb76386d8aa774926c77aa2db7804

Here's the output from both tests:


/tmp/build_root/m64/lib/piglit/bin/draw-batch -auto -fbo
From bottom to top:
DrawElements
DrawArrays
Begin/End
CallList
Probe color at (35,105)
  Expected: 1.000000 0.200000 0.200000
  Observed: 0.000000 0.000000 0.000000


/tmp/build_root/m64/lib/piglit/bin/gl-1.4-dlist-multidrawarrays -auto -fbo
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Probe color at (0,0)
  Expected: 255 255 255
  Observed: 0 0 0
Comment 3 Brian Paul 2018-01-19 17:12:24 UTC
Hmm, both gl-1.4-dlist-multidrawarrays and draw-batch pass for me both with and without 9e6efdd1776cb76386d8aa774926c77aa2db7804.  I'm testing with llvmpipe and the VMware driver.
Comment 4 Brian Paul 2018-01-23 18:43:25 UTC
I'm posting a patch to mesa-dev which should fix this.  Can you test and let me know?
Comment 5 Brian Paul 2018-01-24 17:19:54 UTC
Fixed with commit 365a48abddcabf6596c2e34a784d91c8ab929918

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.