<div dir="ltr">I'm hoping to potentially convince about lowering the minimum requirement of EXT_buffer_storage from ES 3.1 to ES 3.0.<div>The only thing that causes it to require ES 3.1 is glMemoryBarrier, which shouldn't really be a hard requirement since the extension can be used without it.</div><div>This is also a similar situation with ARB_buffer_storage which Mesa currently exposes to all GL versions even though it should require GL 4.2.</div><div>I have my attempt at a change to the spec as follows. I've never tried changing a spec page before so it's a bit new to me.</div><div><br></div><div><div>diff --git a/EXT_buffer_storage.txt b/EXT_buffer_storage.txt</div><div>index 03fcd6e..ea16fae 100644</div><div>--- a/EXT_buffer_storage.txt</div><div>+++ b/EXT_buffer_storage.txt</div><div>@@ -30,8 +30,8 @@ Status</div><div> </div><div> Version</div><div> </div><div>-    Last Modified Date:   May 1, 2015</div><div>-    Author Revision:      3</div><div>+    Last Modified Date:   November 4, 2015</div><div>+    Author Revision:      4</div><div> </div><div> Number</div><div> </div><div>@@ -39,10 +39,12 @@ Number</div><div> </div><div> Dependencies</div><div> </div><div>-    OpenGL ES 3.1 is required.</div><div>-</div><div>     This extension is written against the OpenGL ES 3.1 (June 4, 2014)</div><div>-    Specification.</div><div>+    Specification, but can apply to prior specifications</div><div>+</div><div>+    Requires OpenGL ES 3.0</div><div>+</div><div>+    This extension interacts with OpenGL ES 3.1.</div><div> </div><div>     The definition of this extension is affected by the presence of</div><div>     GL_EXT_direct_state_access.</div><div>@@ -350,6 +352,50 @@ Additions to Chapter 7 of the OpenGL ES 3.1 Specification,</div><div>           by shaders prior to the barrier. Note that this may cause additional</div><div>           synchronization operations.</div><div> </div><div>+Dependencies on OpenGL ES 3.1</div><div>+</div><div>+    If OpenGL ES 3.1 is not supported apply the following modifications to the</div><div>+    OpenGL ES 3.0.4 specification:</div><div>+</div><div>+    Append to the first paragraph of Section 2.10, "Buffer Objects", p. 32:</div><div>+</div><div>+    Under certain circumstances, the data store of a buffer object may</div><div>+    be shared between the client and server and accessed simultaneously</div><div>+    by both.</div><div>+</div><div>+    Modify Section 2.10.1 (Creating and Binding Buffer Objects)</div><div>+</div><div>+    Append to Table 2.7, "Buffer object parameters and their values", p.34:</div><div>+</div><div>+        +------------------------------+---------+---------+------------------+</div><div>+        |                              |         | Initial | Legal            |</div><div>+        | Name                         | Type    | Value   | Values           |</div><div>+        +------------------------------+---------+---------+------------------+</div><div>+        | BUFFER_IMMUTABLE_STORAGE_EXT | boolean | FALSE   | TRUE, FALSE      |</div><div>+        | BUFFER_STORAGE_FLAGS_EXT     | int     | 0       | See section 6.2  |</div><div>+        +------------------------------+---------+---------+------------------+</div><div>+</div><div>+    Edits to section 6.2 "Creating and Modifying Buffer Object Data Stores" in</div><div>+    ES 3.1 become edits to section 2.10.2 "Creating Buffer Object Data Stores"</div><div>+    in ES 3.0.4.</div><div>+</div><div>+    Edits to section 6.3, "Mapping and Unmapping Buffer Data" in ES 3.1 become</div><div>+    edits in section 2.10.3 "Mapping and Unmapping Buffer Data" in ES 3.0.4</div><div>+</div><div>+    Edits to p.56, FlushMappedBufferRange, in ES 3.1 become edits in p.40</div><div>+    in ES 3.0.4</div><div>+</div><div>+    Edits to section 6.3.2, "Effects of Mapping Buffers on Other GL Commands"</div><div>+    in ES 3.1 become edits in p.41 in ES 3.0.4</div><div>+</div><div>+    Edits in section 6.7, "Buffer Object State" in ES 3.1 become edits in</div><div>+    section 2.10.8 "Buffer Object State" in ES 3.0.4</div><div>+</div><div>+    Edits in section 20.4, "Buffer Object State", p.355 become edits in</div><div>+    section 6.4, "Buffer Object State", p.247 in ES 3.0.4</div><div>+</div><div>+    If OpenGL ES 3.1 is not supported, ignore all references to MemoryBarrier</div><div>+</div><div> New State</div><div> </div><div>     Append to Table 20.4, "Buffer Object State", p.355:</div><div>@@ -521,3 +567,5 @@ Revision History</div><div>                               to make CPU writes visible to the GPU in</div><div>                               this case without an explicit flush (Bug</div><div>                               13578, sync w/ ARB_buffer_storage v.25).</div><div>+</div><div>+    4    04/11/15  rhoudek    Lower minimum dependency to ES 3.0</div></div><div><br></div></div>