[Mesa-dev] Potential spec change request for EXT_buffer_storage
Ian Romanick
idr at freedesktop.org
Mon Nov 9 16:10:18 PST 2015
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.
> +
> + 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
>
More information about the mesa-dev
mailing list