You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think I've encountered a cleanup bug in which attributes are not disabled so that subsequent, unrelated commands expect attributes used by previous commands to be available forever.
Reproduction code is listed at the bottom. The timeouts help make the sequence clear but are not required. The logs look like:
invoke command with two attributes
destroy color buffer
invoke command with one attribute
(unknown) WebGL: INVALID_OPERATION: drawArrays: no buffer is bound to enabled attribute
Solutions that cause the second command to succeed:
don't call the first command
don't destroy the color buffer used by the first command
add a second attribute to the second command
This suggests to me that the first command binds an attribute but that the second command does not disable it. This is fine if, for example, you haven't destroyed the attribute, but if you destroy it, then the second command expects it to be available even if it's not used.
/cc @mikolalysenko and maybe @dy if interested (though maybe you're using your gl-utils library at the moment? 😄)
The text was updated successfully, but these errors were encountered:
rreusser
changed the title
Attributes not cleaned up properly
Unused attributes not cleaned up properly
May 13, 2018
rreusser
changed the title
Unused attributes not cleaned up properly
Unused attributes not disabled
May 13, 2018
rreusser
changed the title
Unused attributes not disabled
Command fails if unrelated attributes are destroyed
May 13, 2018
rreusser
changed the title
Command fails if unrelated attributes are destroyed
Command fails if unrelated buffers are destroyed
May 13, 2018
rreusser
changed the title
Command fails if unrelated buffers are destroyed
Command fails if unrelated attribute buffers are destroyed
May 13, 2018
rreusser
changed the title
Command fails if unrelated attribute buffers are destroyed
Command fails if buffers for unrelated attributes are destroyed
May 13, 2018
I think I've encountered a cleanup bug in which attributes are not disabled so that subsequent, unrelated commands expect attributes used by previous commands to be available forever.
Reproduction: https://codepen.io/rsreusser/pen/QrxQzj
Reproduction code is listed at the bottom. The timeouts help make the sequence clear but are not required. The logs look like:
Solutions that cause the second command to succeed:
This suggests to me that the first command binds an attribute but that the second command does not disable it. This is fine if, for example, you haven't destroyed the attribute, but if you destroy it, then the second command expects it to be available even if it's not used.
/cc @mikolalysenko and maybe @dy if interested (though maybe you're using your gl-utils library at the moment? 😄)
The text was updated successfully, but these errors were encountered: