[Bug 75224] New: GLSL: vectorize optimization goes wrong on dot products

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Feb 19 11:01:49 PST 2014


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

          Priority: medium
            Bug ID: 75224
          Assignee: idr at freedesktop.org
           Summary: GLSL: vectorize optimization goes wrong on dot
                    products
        QA Contact: intel-3d-bugs at lists.freedesktop.org
          Severity: normal
    Classification: Unclassified
                OS: All
          Reporter: aras at unity3d.com
          Hardware: All
            Status: NEW
           Version: git
         Component: glsl-compiler
           Product: Mesa

"Vectorize multiple scalar assignments" optimization (added in 4bd6e0d7c69 on
master) goes wrong on dot products.

For example, on a fragment shader like this:

varying vec3 inA;
varying vec2 inB;
void main()
{
    vec2 v;
    v.x = dot(inA.xy, inB);
    v.y = dot(inA.yz, inB);
    gl_FragColor = vec4(v.x, v.y, 0.0, 1.0);
}

It produces two problems:

1) tries to vectorize both dots into a v=dot(inA.xy,inB), which is different
result.
2) in the result it ends up with an expression node of vec2 type, but a
ir_binop_dot operation. asserts in ir_validate in debug build.

It feels like these kinds of "horizontal" operations (probably only dot?)
shouldn't be attempted to vectorize.

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


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