Bug 71492 - Regression with clearview
Summary: Regression with clearview
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Mesa core (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Fredrik Höglund
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-11 14:01 UTC by Jose Fonseca
Modified: 2013-12-22 23:56 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Screenshot at call 20022 (846.05 KB, image/png)
2013-11-11 14:05 UTC, Jose Fonseca
Details
patch (2.17 KB, patch)
2013-11-11 18:43 UTC, Fredrik Höglund
Details | Splinter Review

Description Jose Fonseca 2013-11-11 14:01:11 UTC
Mesa started to show bogus vertices with the trace http://people.freedesktop.org/~jrfonseca/traces/clearview-5.30b.trace (see attached screenshot).

After bisecting 59b01ca252bd6706f08cd80a864819d71dfe741c is the first bad commit:

commit 59b01ca252bd6706f08cd80a864819d71dfe741c
Author: Fredrik Höglund <fredrik@kde.org>
Date:   Tue Apr 9 20:54:25 2013 +0200

    mesa: Add ARB_vertex_attrib_binding
    
    update_array() and update_array_format() are changed to update the new
    attrib and binding states, and the client arrays become derived state.
    
    Reviewed-by: Eric Anholt <eric@anholt.net>
Comment 1 Jose Fonseca 2013-11-11 14:05:34 UTC
Created attachment 89027 [details]
Screenshot at call 20022

Screenshot at call  20022
Comment 2 Jose Fonseca 2013-11-11 14:07:24 UTC
BTW, this was with llvmpipe.

I haven't tested with other Mesa drivers, but given the change is in mesa core, I strongly suspect it would affect all drivers the same.
Comment 3 Jose Fonseca 2013-11-11 14:30:26 UTC
I now verified that the regression can also be seen with softpipe and the non-gallium swrast.
Comment 4 Fredrik Höglund 2013-11-11 18:43:25 UTC
Created attachment 89044 [details] [review]
patch

This patch fixes the problem for me, but I'm not sure if it's the right way to fix it.

The real problem might be that _ae_invalidate_state() isn't being called somewhere where it should be.
Comment 5 Jose Fonseca 2013-11-12 14:37:47 UTC
(In reply to comment #4)
> This patch fixes the problem for me, but I'm not sure if it's the right way
> to fix it.
> 
> The real problem might be that _ae_invalidate_state() isn't being called
> somewhere where it should be.

Thanks for looking into this.

I confess I'm not very familiar with this code myself, so I'm not sure what to make of this...

If it fixes the problem, then I'm all for submitting the patch you attached.

If you feel that there might be an underlying problem, maybe that situation could be trapped by sprinkling a few more asserts?
Comment 6 Brian Paul 2013-11-12 15:41:58 UTC
Looks OK to me too.
Reviewed-by: Brian Paul <brianp@vmware.com>
Comment 7 Jose Fonseca 2013-11-15 15:42:28 UTC
Pushed the fix now.
Comment 8 Barto 2013-12-22 23:56:42 UTC
Are we sure that this bug is fixed ?

because this game "clearview" can not even run with wine, it crash immediately at startup with my radeon HD4650 pcie ( r600 driver, mesa 10.0.1 )

and I notice similarities with bug 72895, it's the same commit ( 59b01ca252bd6706f08cd80a864819d71dfe741c ) who trigger a similar bug ( graphic corruption in flightgear ) :

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


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.