ValhallaTeam / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

Draw failure when using disabled vertex attribute array #355

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Create the following vertex shader:

    attribute vec4 vPosition;
    attribute vec4 vDisabled;
    void main() {
        gl_Position = vPosition + vDisabled;
    }

2. Configure as:

    glBindAttribLocation(program, 0, "vPosition");
    glBindAttribLocation(program, 1, "vDisabled");

    // Leave vDisabled disabled
    glVertexAttrib4f(1, 0.0, 0.0, 0.0, 0.0);

3. Issue two or more calls to glDrawArrays / glDrawElements between calls to 
swapBuffers.

What is the expected output? What do you see instead?

This code should draw without issue, and works fine on Linux/mesa.

Instead, the first draw call succeeds, the drawn figure stays onscreen for a 
few seconds, and then all subsequent drawing operations except glClear appear 
to have no effect.

What version of the product are you using? On what operating system?

SVN r1243, Windows 7 x86.

Please provide any additional information below.

The same behavior occurs when access to the disabled attribute is prevented by 
a uniform set to false [though not when guarded by if (false)]), and regardless 
of whether glVertexAttrib4f is invoked.  Switching the attribute location 
bindings around prevents the issue.  No GL error is generated.

Attached is a modified version of the Hello_Triangle example that triggers the 
bug.

Original issue reported on code.google.com by chao...@gmail.com on 31 Jul 2012 at 9:51

Attachments:

GoogleCodeExporter commented 9 years ago
Tested locally, this appears to be fixed now.

Original comment by geofflang@chromium.org on 29 Apr 2015 at 6:06