[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