On 11/09/2015 04:10 PM, Ian Romanick wrote: > On 11/04/2015 03:26 PM, Ryan Houdek wrote: >> 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. > > I think all of the drivers that support ARB_buffer_storage also support > ARB_texture_barrier. At the very least I think you'd need to require > GL_MAP_CHOERENT_BIT with GL_MAP_PERSISTENT_BIT. > > Also... Mesa is really close to getting OpenGL ES 3.1. Are there any > drivers with which you want to use this extension that won't have GLES 3.1? > >> 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 > > I think I'd just change the above to replace the current "required" line > with > > OpenGL ES 3.0 is required. > > and leave the rest alone. > > I think the rest of the edits look good.
Follow-up question... should the actual requirement be OpenGL ES 3.0 or GL_EXT_map_buffer_range is required. Also... you should add yourself to the "Contributors" section. That creates a mapping between rhoudek in the history and an actual human. :) >> + >> + 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 >> > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev