ericmckean / angleproject

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

Indexed and generic transform feedback buffer bindings should be tracked per-XFB object. #763

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
We currently use the same transform feedback buffer bindings for all objects, 
but according to the ES 3.0.4 spec, a new transform feedback object " is a new 
state vector, comprising all the state and with the same initial values listed 
in table 6.24." This state table includes the indexed buffer binding points for 
XFB objects, as well as the generic transform feedback buffer binding. This is 
spelled out more explicitly on the OpenGL wiki 
(https://www.opengl.org/wiki/Transform_Feedback) and in the specification for 
ARB_transform_feedback2 
(https://www.opengl.org/registry/specs/ARB/transform_feedback2.txt), which 
introduced transform feedback objects to the GL ecosystem.

Also to be considered during this fix-- while the ES 3.0 core spec does not 
explicitly address whether a single buffer can be bound to multiple XFB 
objects, saying only "Buffers should not be bound or in use for both transform 
feedback and other purposes in the GL. Specifically, if a buffer object is 
simultaneously bound to a transform feedback buffer binding point and elsewhere 
in the GL, any writes to or reads from the buffer generate undefined values," 
it is more explicitly stated in the issue list for ARB_transform_feedback2 that 
the specification language intends binding a single buffer object to multiple 
XFB objects to be allowable (see issue 14 of the extension spec, linked above). 
No language to contradict this was introduced in the ES 3.0 spec, so we can 
assume that the same intention holds.

Original issue reported on code.google.com by shannonw...@chromium.org on 29 Sep 2014 at 10:43

GoogleCodeExporter commented 9 years ago

Original comment by shannonw...@chromium.org on 29 Sep 2014 at 10:44