[Bug 102855] [OpenGL CTS] Multiple crashes in enhanced layout tests due to incorrect vue setup

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Sep 19 09:32:09 UTC 2017


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

            Bug ID: 102855
           Summary: [OpenGL CTS] Multiple crashes in enhanced layout tests
                    due to incorrect vue setup
           Product: Mesa
           Version: git
          Hardware: Other
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/i965
          Assignee: intel-3d-bugs at lists.freedesktop.org
          Reporter: itoral at igalia.com
        QA Contact: intel-3d-bugs at lists.freedesktop.org

The following tests are affected:

KHR-GL45.enhanced_layouts.varying_array_components
KHR-GL45.enhanced_layouts.varying_array_locations
KHR-GL45.enhanced_layouts.varying_components
KHR-GL45.enhanced_layouts.varying_locations

The crash is a consequence of this commit:

commit 99df02ca26f6127c8fa24d38a8a069ac6159356a
Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Sep 9 16:21:56 2015 -0700

    i965: Don't re-layout varyings for separate shader programs.

That commit changed the VUE setup so we use fixed layouts for SSO. For that,
slots in the VUE are not assigned consecutively, but instead are assigned based
on their location:

slot = first_generic_slot + varying - VARYING_SLOT_VAR0;

Where first_generic_slot is the first slot available for user varyings after
assigning builtins.

The crash happens because with this method it is possible to assign slots
outside the valid range (0..31). For example, shaders can assign location=31,
which is valid, but since that will be offset by the number of builtin slots,
we end up with a slot >= 32, and we trigger in assertion later on.

The crashes go away if we assign locations consecutively of course, but the
tests still fail, so there are probably more issues to fix besides this.

Specifically for the crashes, I think we only have two options:

1. Revert the commit.

2. Reduce the number of varyings exposed by the driver to account for the
maximum number of builtin slots we can have so we ensure we never run into this
problem.

I think that 2) would be the worst option. Ken, what are your thoughts?

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20170919/d0a3e28c/attachment-0001.html>


More information about the intel-3d-bugs mailing list