KhronosGroup / OpenGL-API

OpenGL and OpenGL ES API Issue Tracker
34 stars 5 forks source link

Binding layout qualifier not mentioned for initial value of uniform buffer binding in ES 3.1 and ES 3.2 [OpenGL ES] #56

Closed tsuoranta closed 4 years ago

tsuoranta commented 5 years ago

OpenGL ES 3.1 and 3.2 specifications do not contain language about layout qualifier for initial value of uniform buffer bindings. That language is present in OpenGL 4.6 section 7.6.3:

The binding is established when a program is linked or re-linked, and the initial value of the binding is specified by a layout qualifier (if present), or zero otherwise.

Meanwhile, OpenGL ES 3.1 and 3.2 section 7.6.3 just say initial value is always zero:

When a program object is linked or re-linked, the uniform buffer object binding point assigned to each of its active uniform blocks is reset to zero.

pdaniell-nv commented 5 years ago

Discussed in the OpenGL/ES meeting today. We agreed to copy the OpenGL 4.6 language to the OpenGL ES 3.2 spec. Assigned to @oddhack to make the change.

tsuoranta commented 5 years ago

That sounds great, thanks! What about OpenGL ES 3.1? According to https://developer.android.com/about/dashboards OpenGL ES 3.1 has market share around 13.6%. Is it reasonable for a developer to expect also OpenGL ES 3.1 to behave in this matter the same as OpenGL ES 3.2 / OpenGL 4.6?

pdaniell-nv commented 5 years ago

We always apply bug fixes to the latest API version and don't typically back port them to older versions. Yes it's reasonable for developers to expect OpenGL ES 3.1 to behave like this since this was a spec bug.

oddhack commented 4 years ago

Fixed in the 2019-10-22 spec updates.