[Mesa-dev] Potential spec change request for EXT_buffer_storage

Ryan Houdek sonicadvance1 at gmail.com
Wed Nov 4 15:26:59 PST 2015


I'm hoping to potentially convince about lowering the minimum requirement
of EXT_buffer_storage from ES 3.1 to ES 3.0.
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.
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.
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.

diff --git a/EXT_buffer_storage.txt b/EXT_buffer_storage.txt
index 03fcd6e..ea16fae 100644
--- a/EXT_buffer_storage.txt
+++ b/EXT_buffer_storage.txt
@@ -30,8 +30,8 @@ Status

 Version

-    Last Modified Date:   May 1, 2015
-    Author Revision:      3
+    Last Modified Date:   November 4, 2015
+    Author Revision:      4

 Number

@@ -39,10 +39,12 @@ Number

 Dependencies

-    OpenGL ES 3.1 is required.
-
     This extension is written against the OpenGL ES 3.1 (June 4, 2014)
-    Specification.
+    Specification, but can apply to prior specifications
+
+    Requires OpenGL ES 3.0
+
+    This extension interacts with OpenGL ES 3.1.

     The definition of this extension is affected by the presence of
     GL_EXT_direct_state_access.
@@ -350,6 +352,50 @@ Additions to Chapter 7 of the OpenGL ES 3.1
Specification,
           by shaders prior to the barrier. Note that this may cause
additional
           synchronization operations.

+Dependencies on OpenGL ES 3.1
+
+    If OpenGL ES 3.1 is not supported apply the following modifications to
the
+    OpenGL ES 3.0.4 specification:
+
+    Append to the first paragraph of Section 2.10, "Buffer Objects", p. 32:
+
+    Under certain circumstances, the data store of a buffer object may
+    be shared between the client and server and accessed simultaneously
+    by both.
+
+    Modify Section 2.10.1 (Creating and Binding Buffer Objects)
+
+    Append to Table 2.7, "Buffer object parameters and their values", p.34:
+
+
 +------------------------------+---------+---------+------------------+
+        |                              |         | Initial | Legal
   |
+        | Name                         | Type    | Value   | Values
    |
+
 +------------------------------+---------+---------+------------------+
+        | BUFFER_IMMUTABLE_STORAGE_EXT | boolean | FALSE   | TRUE, FALSE
   |
+        | BUFFER_STORAGE_FLAGS_EXT     | int     | 0       | See section
6.2  |
+
 +------------------------------+---------+---------+------------------+
+
+    Edits to section 6.2 "Creating and Modifying Buffer Object Data
Stores" in
+    ES 3.1 become edits to section 2.10.2 "Creating Buffer Object Data
Stores"
+    in ES 3.0.4.
+
+    Edits to section 6.3, "Mapping and Unmapping Buffer Data" in ES 3.1
become
+    edits in section 2.10.3 "Mapping and Unmapping Buffer Data" in ES 3.0.4
+
+    Edits to p.56, FlushMappedBufferRange, in ES 3.1 become edits in p.40
+    in ES 3.0.4
+
+    Edits to section 6.3.2, "Effects of Mapping Buffers on Other GL
Commands"
+    in ES 3.1 become edits in p.41 in ES 3.0.4
+
+    Edits in section 6.7, "Buffer Object State" in ES 3.1 become edits in
+    section 2.10.8 "Buffer Object State" in ES 3.0.4
+
+    Edits in section 20.4, "Buffer Object State", p.355 become edits in
+    section 6.4, "Buffer Object State", p.247 in ES 3.0.4
+
+    If OpenGL ES 3.1 is not supported, ignore all references to
MemoryBarrier
+
 New State

     Append to Table 20.4, "Buffer Object State", p.355:
@@ -521,3 +567,5 @@ Revision History
                               to make CPU writes visible to the GPU in
                               this case without an explicit flush (Bug
                               13578, sync w/ ARB_buffer_storage v.25).
+
+    4    04/11/15  rhoudek    Lower minimum dependency to ES 3.0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151104/86b7a8be/attachment.html>


More information about the mesa-dev mailing list