1Name 2 3 ANGLE_memory_size 4 5Name Strings 6 7 GL_ANGLE_memory_size 8 9Contributors 10 11 Geoff Lang 12 13Contact 14 15 Geoff Lang (geofflang 'at' google.com) 16 17Notice 18 19 Copyright (c) 2018 The Khronos Group Inc. Copyright terms at 20 http://www.khronos.org/registry/speccopyright.html 21 22Status 23 24 Draft 25 26Version 27 28 Version 1, November 1, 2018 29 30Number 31 32 OpenGL ES Extension #?? 33 34Dependencies 35 36 Requires OpenGL ES 2.0 37 38 Written against the OpenGL ES 3.1 specification. 39 40Overview 41 42 This extension allows the user to query the estimated memory internally 43 allocated for an OpenGL resource. This information can be useful for 44 determining which resources should be deleted under memory pressure. 45 46New Procedures and Functions 47 48 None 49 50New Tokens 51 52 Accepted by the <name> parameter of GetTexParameter*, 53 GetTexLevelParameter*, GetBufferParameter* and GetRenderbufferParameter* 54 functions: 55 56 GL_MEMORY_SIZE_ANGLE 0x93AD 57 58Additions to the OpenGL ES 3.1 Specification 59 60 Add an entry to Table 6.2, Buffer object parameters and their values: 61 62 Name Type Initial Value Legal Values 63 ----------------- ----- ------------- ------------------------ 64 MEMORY_SIZE_ANGLE int64 0 any non-negative integer 65 66 Change the last sentence of the first paragraph of section 8.10.2, 67 Texture Parameter Queries: 68 69 - pname must be IMAGE_FORMAT_COMPATIBILITY_TYPE, TEXTURE_- 70 - IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, or one of the symbolic 71 - values in table 8.20. 72 + pname must be IMAGE_FORMAT_COMPATIBILITY_TYPE, TEXTURE_- 73 + IMMUTABLE_FORMAT, TEXTURE_IMMUTABLE_LEVELS, MEMORY_SIZE_ANGLE, 74 + or one of the symbolic values in table 8.20. 75 76 Add to the end of the fifth paragraph of section 8.10.3, Texture Level 77 Parameter Queries: 78 79 + queries of pname MEMORY_SIZE_ANGLE return the estimated number of bytes 80 + allocated for level of the texture bound to target. 81 82 Add a new paragraph after paragraph 3 in section 9.2.6, Renderbuffer 83 Object Queries: 84 85 If pname is MEMORY_SIZE_ANGLE, then params will contain the esimated 86 number of bytes allocated for the renderbuffer bound to target. 87 88New State 89 90 Add to Table 20.4: Buffer Object State 91 92 Get value Type Get Cmd Min Value Description Sec. 93 ------------------- ---- --------------------- --------- ------------------------- ---- 94 MEMORY_SIZE_ANGLE Z+ GetBufferParameter64v - Estimated bytes allocated 6 95 96 Add to Table 20.9: Textures (state per texture object) 97 98 Get value Type Get Cmd Min Value Description Sec. 99 ------------------- ---- -------------------- --------- ------------------------- ----- 100 MEMORY_SIZE_ANGLE Z+ GetTexParameter - Estimated bytes allocated 6.1.3 101 GetTexLevelParameter 102 103 Add to Table 20.16: Renderbuffer (state per renderbuffer object) 104 105 Get value Type Get Cmd Min Value Description Sec. 106 ------------------- ---- -------------------------- --------- ------------------------- ----- 107 MEMORY_SIZE_ANGLE Z+ GetRenderbufferParameteriv - Estimated bytes allocated 9.2.6 108 109 110Interactions with the OpenGL ES 2.0 and 3.0 specifications: 111 112 Remove all references to GetTexLevelParameter and replace references to 113 GetBufferParameter64v with GetBufferParameteriv. 114 115Issues 116 117 (1) Could the estimated number of bytes be specified more tightly to an 118 upper or lower bound? 119 120 RESOLVED: Implementations should attempt to return the lower bound on 121 the allocated memory if exact numbers are not known. The lower bound is 122 the most actionable value for making decisions when caching. 123 124Revision History 125 126 Rev. Date Author Changes 127 ---- ------------- --------- ---------------------------------------- 128 1 Nov 1, 2018 geofflang Initial version 129