| Name |
| |
| ANGLE_memory_size |
| |
| Name Strings |
| |
| GL_ANGLE_memory_size |
| |
| Contributors |
| |
| Geoff Lang |
| |
| Contact |
| |
| Geoff Lang (geofflang 'at' google.com) |
| |
| Notice |
| |
| Copyright (c) 2018 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Draft |
| |
| Version |
| |
| Version 1, November 1, 2018 |
| |
| Number |
| |
| OpenGL ES Extension #?? |
| |
| Dependencies |
| |
| Requires OpenGL ES 2.0 |
| |
| Written against the OpenGL ES 3.1 specification. |
| |
| Overview |
| |
| This extension allows the user to query the estimated memory internally |
| allocated for an OpenGL resource. This information can be useful for |
| determining which resources should be deleted under memory pressure. |
| |
| New Procedures and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <name> parameter of GetTexParameter*, |
| GetTexLevelParameter*, GetBufferParameter* and GetRenderbufferParameter* |
| functions: |
| |
| GL_MEMORY_SIZE_ANGLE 0x93AD |
| |
| Additions to the OpenGL ES 3.1 Specification |
| |
| Add an entry to Table 6.2, Buffer object parameters and their values: |
| |
| Name Type Initial Value Legal Values |
| ----------------- ----- ------------- ------------------------ |
| MEMORY_SIZE_ANGLE int64 0 any non-negative integer |
| |
| Change the last sentence of the first paragraph of section 8.10.2, |
| Texture Parameter Queries: |
| |
| - pname must be IMAGE_FORMAT_COMPATIBILITY_TYPE, TEXTURE_- |
| - IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, or one of the symbolic |
| - values in table 8.20. |
| + pname must be IMAGE_FORMAT_COMPATIBILITY_TYPE, TEXTURE_- |
| + IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, MEMORY_SIZE_ANGLE, |
| + or one of the symbolic values in table 8.20. |
| |
| Add to the end of the fifth paragraph of section 8.10.3, Texture Level |
| Parameter Queries: |
| |
| + queries of pname MEMORY_SIZE_ANGLE return the estimated number of bytes |
| + allocated for level of the texture bound to target. |
| |
| Add a new paragraph after paragraph 3 in section 9.2.6, Renderbuffer |
| Object Queries: |
| |
| If pname is MEMORY_SIZE_ANGLE, then params will contain the esimated |
| number of bytes allocated for the renderbuffer bound to target. |
| |
| New State |
| |
| Add to Table 20.4: Buffer Object State |
| |
| Get value Type Get Cmd Min Value Description Sec. |
| ------------------- ---- --------------------- --------- ------------------------- ---- |
| MEMORY_SIZE_ANGLE Z+ GetBufferParameter64v - Estimated bytes allocated 6 |
| |
| Add to Table 20.9: Textures (state per texture object) |
| |
| Get value Type Get Cmd Min Value Description Sec. |
| ------------------- ---- -------------------- --------- ------------------------- ----- |
| MEMORY_SIZE_ANGLE Z+ GetTexParameter - Estimated bytes allocated 6.1.3 |
| GetTexLevelParameter |
| |
| Add to Table 20.16: Renderbuffer (state per renderbuffer object) |
| |
| Get value Type Get Cmd Min Value Description Sec. |
| ------------------- ---- -------------------------- --------- ------------------------- ----- |
| MEMORY_SIZE_ANGLE Z+ GetRenderbufferParameteriv - Estimated bytes allocated 9.2.6 |
| |
| |
| Interactions with the OpenGL ES 2.0 and 3.0 specifications: |
| |
| Remove all references to GetTexLevelParameter and replace references to |
| GetBufferParameter64v with GetBufferParameteriv. |
| |
| Issues |
| |
| (1) Could the estimated number of bytes be specified more tightly to an |
| upper or lower bound? |
| |
| RESOLVED: Implementations should attempt to return the lower bound on |
| the allocated memory if exact numbers are not known. The lower bound is |
| the most actionable value for making decisions when caching. |
| |
| Revision History |
| |
| Rev. Date Author Changes |
| ---- ------------- --------- ---------------------------------------- |
| 1 Nov 1, 2018 geofflang Initial version |