15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_texture_buffer 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_texture_buffer 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Jon Leech (oddhack 'at' sonic.net) 125bd8deadSopenharmony_ci Daniel Koch, NVIDIA (dkoch 'at' nvidia.com) 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciContributors 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Pat Brown, NVIDIA 175bd8deadSopenharmony_ci James Helferty, NVIDIA 185bd8deadSopenharmony_ci Graham Connor, Imagination 195bd8deadSopenharmony_ci Ben Bowman, Imagination 205bd8deadSopenharmony_ci Jonathan Putsman, Imagination 215bd8deadSopenharmony_ci Piotr Czubak, Intel 225bd8deadSopenharmony_ci Marcin Kantoch, Mobica 235bd8deadSopenharmony_ci Contributors to ARB_texture_buffer_object 245bd8deadSopenharmony_ci Contributors to ARB_texture_buffer_range 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ciNotice 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci Copyright (c) 2008-2013 The Khronos Group Inc. Copyright terms at 295bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci Portions Copyright (c) 2013-2014 NVIDIA Corporation. 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ciStatus 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci Complete. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ciVersion 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci Last Modified Date: July 14, 2014 405bd8deadSopenharmony_ci Revision: 14 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ciNumber 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci OpenGL ES Extension #183 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ciDependencies 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci OpenGL ES 3.1 and OpenGL ES Shading Language 3.10 are required. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci This specification is written against the OpenGL ES 3.1 (March 17, 515bd8deadSopenharmony_ci 2014) and OpenGL ES 3.10 Shading Language (March 17, 2014) 525bd8deadSopenharmony_ci Specifications. 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci This extension interacts with OES_shader_image_atomic. 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ciOverview 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci This extension provides a new texture type, called a buffer texture. 595bd8deadSopenharmony_ci Buffer textures are one-dimensional arrays of texels whose storage comes 605bd8deadSopenharmony_ci from an attached buffer object. When a buffer object is bound to a 615bd8deadSopenharmony_ci buffer texture, a format is specified, and the data in the buffer object 625bd8deadSopenharmony_ci is treated as an array of texels of the specified format. 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci The use of a buffer object to provide storage allows the texture data to 655bd8deadSopenharmony_ci be specified in a number of different ways: via buffer object loads 665bd8deadSopenharmony_ci (BufferData), direct CPU writes (MapBuffer), or framebuffer readbacks to 675bd8deadSopenharmony_ci pixel buffer objects (ReadPixels). A buffer object can also be loaded by 685bd8deadSopenharmony_ci transform feedback, which captures 695bd8deadSopenharmony_ci selected transformed attributes of vertices processed by the GL. Several 705bd8deadSopenharmony_ci of these mechanisms do not require an extra data copy, which would be 715bd8deadSopenharmony_ci required when using conventional TexImage-like entry points. 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci Buffer textures do not support mipmapping, texture lookups with 745bd8deadSopenharmony_ci normalized floating-point texture coordinates, and texture filtering of 755bd8deadSopenharmony_ci any sort. 765bd8deadSopenharmony_ci They can be accessed via single texel fetch operations in programmable 775bd8deadSopenharmony_ci shaders, using a new sampler type and texel fetch function, and 785bd8deadSopenharmony_ci access can be controlled using the same memory barrier operations 795bd8deadSopenharmony_ci as for other texture types. 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci Buffer textures are treated as (potentially large) one-dimensional 825bd8deadSopenharmony_ci textures; the maximum texture size supported for buffer textures in the 835bd8deadSopenharmony_ci initial implementation of this extension is 2^27 texels (note that this 845bd8deadSopenharmony_ci extension only guarantees support for buffer textures with 2^16 texels, 855bd8deadSopenharmony_ci but we expect most implementations to exceed that substantially). When a 865bd8deadSopenharmony_ci buffer object is attached to a buffer texture, a size is not specified; 875bd8deadSopenharmony_ci rather, the number of texels in the texture is taken by dividing the size 885bd8deadSopenharmony_ci of the buffer object by the size of each texel. 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci This extension also allows a sub-range of the buffer's data store to 915bd8deadSopenharmony_ci be attached to a texture. This can be used, for example, to allow multiple 925bd8deadSopenharmony_ci buffer textures to be backed by independent sub-ranges of the same buffer 935bd8deadSopenharmony_ci object, or for different sub-ranges of a single buffer object to be used 945bd8deadSopenharmony_ci for different purposes. 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ciNew Procedures and Functions 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci void TexBufferEXT(enum target, enum internalformat, uint buffer); 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci void TexBufferRangeEXT(enum target, enum internalformat, uint buffer, 1015bd8deadSopenharmony_ci intptr offset, sizeiptr size); 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ciNew Tokens 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci Accepted by the <target> parameter of BindBuffer, BufferData, 1065bd8deadSopenharmony_ci BufferSubData, MapBufferRange, BindTexture, UnmapBuffer, 1075bd8deadSopenharmony_ci GetBufferParameteriv, GetBufferPointerv, TexBufferEXT, and 1085bd8deadSopenharmony_ci TexBufferRangeEXT: 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci TEXTURE_BUFFER_EXT 0x8C2A 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetBooleanv, GetFloatv, and 1135bd8deadSopenharmony_ci GetIntegerv: 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci TEXTURE_BUFFER_BINDING_EXT 0x8C2A 1165bd8deadSopenharmony_ci (note that this token name is an alias for TEXTURE_BUFFER_EXT, 1175bd8deadSopenharmony_ci and is used for naming consistency with queries for the buffers 1185bd8deadSopenharmony_ci bound to other buffer binding points). 1195bd8deadSopenharmony_ci MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B 1205bd8deadSopenharmony_ci TEXTURE_BINDING_BUFFER_EXT 0x8C2C 1215bd8deadSopenharmony_ci TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT 0x919F 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci Returned in the <type> parameter of GetActiveUniform, the <params> 1245bd8deadSopenharmony_ci parameter of GetActiveUniformsiv, and the <params> parameter of 1255bd8deadSopenharmony_ci GetProgramResourceiv when the TYPE property is queried on the 1265bd8deadSopenharmony_ci UNIFORM interface: 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci SAMPLER_BUFFER_EXT 0x8DC2 1295bd8deadSopenharmony_ci INT_SAMPLER_BUFFER_EXT 0x8DD0 1305bd8deadSopenharmony_ci UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 1315bd8deadSopenharmony_ci IMAGE_BUFFER_EXT 0x9051 1325bd8deadSopenharmony_ci INT_IMAGE_BUFFER_EXT 0x905C 1335bd8deadSopenharmony_ci UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetTexLevelParameter: 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D 1385bd8deadSopenharmony_ci TEXTURE_BUFFER_OFFSET_EXT 0x919D 1395bd8deadSopenharmony_ci TEXTURE_BUFFER_SIZE_EXT 0x919E 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ciAdditions to the OpenGL ES 3.1 Specification 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci Modify section 6.1 "Creating and Binding Buffer Objects" 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci Add to table 6.1 "Buffer object binding targets": 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci Target Name Purpose Described in section(s) 1485bd8deadSopenharmony_ci ------------------ ------------------- ----------------------- 1495bd8deadSopenharmony_ci TEXTURE_BUFFER_EXT Texture data buffer 8.8tbo 1505bd8deadSopenharmony_ci 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci Modify section 7.3 "Program Objects" 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci Add to table 7.3 "OpenGL ES Shading Language type tokens...": 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci Type Name Token Keyword 1575bd8deadSopenharmony_ci --------------------------------------- --------------------------- 1585bd8deadSopenharmony_ci SAMPLER_BUFFER_EXT samplerBuffer 1595bd8deadSopenharmony_ci INT_SAMPLER_BUFFER_EXT isamplerBuffer 1605bd8deadSopenharmony_ci UNSIGNED_INT_SAMPLER_BUFFER_EXT usamplerBuffer 1615bd8deadSopenharmony_ci IMAGE_BUFFER_EXT imageBuffer 1625bd8deadSopenharmony_ci INT_IMAGE_BUFFER_EXT iimageBuffer 1635bd8deadSopenharmony_ci UNSIGNED_INT_IMAGE_BUFFER_EXT uimageBuffer 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ci 1665bd8deadSopenharmony_ci Modify section 7.11 "Shader Memory Access" 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ci Change the description of TEXTURE_FETCH_BARRIER_BIT for MemoryBarrier on 1695bd8deadSopenharmony_ci p. 116: 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci * TEXTURE_FETCH_BARRIER_BIT: Texture fetches from shaders, including 1725bd8deadSopenharmony_ci fetches from buffer object memory via buffer textures, after the 1735bd8deadSopenharmony_ci barrier will reflect data written by shaders prior to the barrier. 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ci 1765bd8deadSopenharmony_ci Modify chapter 8 "Textures and Samplers" 1775bd8deadSopenharmony_ci 1785bd8deadSopenharmony_ci Add to the fourth paragraph of the section, on p. 128: 1795bd8deadSopenharmony_ci 1805bd8deadSopenharmony_ci ... six faces of the cube. Buffer textures are special one-dimensional 1815bd8deadSopenharmony_ci textures whose texel arrays are stored in separate buffer objects. 1825bd8deadSopenharmony_ci 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci Modify section 8.1 "Texture Objects" 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ci Change the first paragraph of the section on p. 129: 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci ... The default texture object is bound to each of the TEXTURE_2D, 1895bd8deadSopenharmony_ci TEXTURE_3D, TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP, TEXTURE_2D_MULTISAMPLE, 1905bd8deadSopenharmony_ci and TEXTURE_BUFFER_EXT targets ... 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci Change the paragaph following the description of IsTexture on p. 131: 1945bd8deadSopenharmony_ci 1955bd8deadSopenharmony_ci The texture object name space, including the initial two-, and three- 1965bd8deadSopenharmony_ci dimensional, two-dimensional array, cube map, two-dimensional 1975bd8deadSopenharmony_ci multisample, and buffer texture objects, is shared among all texture 1985bd8deadSopenharmony_ci units. ... 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci Add new section 8.8tbo following section 8.8 "Multisample Textures": 2025bd8deadSopenharmony_ci 2035bd8deadSopenharmony_ci 8.8tbo Buffer Textures 2045bd8deadSopenharmony_ci 2055bd8deadSopenharmony_ci In addition to the types of textures described in previous sections, one 2065bd8deadSopenharmony_ci additional type of texture is supported. A <buffer texture> is a 2075bd8deadSopenharmony_ci one-dimensional texture, consisting of a one-dimensional texel array. 2085bd8deadSopenharmony_ci Unlike other texture types, the texel array is not stored as part of the 2095bd8deadSopenharmony_ci texture. Instead, a buffer object is attached to a buffer texture and 2105bd8deadSopenharmony_ci the texel array is taken from that buffer object's data store. When the 2115bd8deadSopenharmony_ci contents of a buffer object's data store are modified, those changes are 2125bd8deadSopenharmony_ci reflected in the contents of any buffer texture to which the buffer 2135bd8deadSopenharmony_ci object is attached. Buffer textures do not have multiple image levels; 2145bd8deadSopenharmony_ci only a single data store is available. 2155bd8deadSopenharmony_ci 2165bd8deadSopenharmony_ci The command 2175bd8deadSopenharmony_ci 2185bd8deadSopenharmony_ci void TexBufferRangeEXT(enum target, enum internalformat, uint buffer, 2195bd8deadSopenharmony_ci intptr offset, sizeiptr size); 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ci attaches the range of the storage for the buffer object named <buffer> 2225bd8deadSopenharmony_ci for <size> basic machine units, starting at <offset> (also in basic 2235bd8deadSopenharmony_ci machine units) to the active buffer texture, and specifies an internal 2245bd8deadSopenharmony_ci format for the texel array found in the range of the attached buffer 2255bd8deadSopenharmony_ci object. If <buffer> is zero, then any buffer object attached to the 2265bd8deadSopenharmony_ci buffer texture is detached, the values <offset> and <size> are ignored 2275bd8deadSopenharmony_ci and the state for <offset> and <size> for the buffer texture are reset 2285bd8deadSopenharmony_ci to zero. <target> must be TEXTURE_BUFFER_EXT. <internalformat> specifies 2295bd8deadSopenharmony_ci the storage format and must be one of the sized internal formats found 2305bd8deadSopenharmony_ci in Table texbo.1. 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci Errors 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci An INVALID_ENUM error is generated if <target> is not 2355bd8deadSopenharmony_ci TEXTURE_BUFFER_EXT. 2365bd8deadSopenharmony_ci 2375bd8deadSopenharmony_ci An INVALID_ENUM error is generated if <internalformat> is not one of the 2385bd8deadSopenharmony_ci sized internal formats found in Table texbo.1. 2395bd8deadSopenharmony_ci 2405bd8deadSopenharmony_ci An INVALID_OPERATION error is generated if <buffer> is non-zero, but is 2415bd8deadSopenharmony_ci not the name of an existing buffer object. 2425bd8deadSopenharmony_ci 2435bd8deadSopenharmony_ci An INVALID_VALUE error is generated if <offset> is negative, if <size> 2445bd8deadSopenharmony_ci is less than or equal to zero, or if <offset> + <size> is greater than 2455bd8deadSopenharmony_ci the value of BUFFER_SIZE for the buffer bound to <target>. 2465bd8deadSopenharmony_ci 2475bd8deadSopenharmony_ci An INVALID_VALUE error is generated if <offset> is not an integer 2485bd8deadSopenharmony_ci multiple of the value of TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT. 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci 2515bd8deadSopenharmony_ci The command 2525bd8deadSopenharmony_ci 2535bd8deadSopenharmony_ci void TexBufferEXT(enum target, enum internalformat, uint buffer); 2545bd8deadSopenharmony_ci 2555bd8deadSopenharmony_ci is equivalent to 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ci TexBufferRangeEXT(target, internalformat, buffer, 0, size); 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci with <size> set to the value of BUFFER_SIZE for <buffer>. 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci When a range of the storage of a buffer object is attached to a buffer 2625bd8deadSopenharmony_ci texture, the range of the buffer's data store is taken as the texture's 2635bd8deadSopenharmony_ci texel array. The number of texels in the buffer texture's texel array is 2645bd8deadSopenharmony_ci given by 2655bd8deadSopenharmony_ci 2665bd8deadSopenharmony_ci floor(<size> / (<components> * sizeof(<base_type>)), 2675bd8deadSopenharmony_ci 2685bd8deadSopenharmony_ci where <components> and <base_type> are the element count and base data 2695bd8deadSopenharmony_ci type for elements, as specified in Table texbo.1. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci The number of texels in the texel array is then clamped to the value of 2725bd8deadSopenharmony_ci the implementation-dependent limit MAX_TEXTURE_BUFFER_SIZE_EXT. When a 2735bd8deadSopenharmony_ci buffer texture is accessed in a shader, the results of a texel fetch are 2745bd8deadSopenharmony_ci undefined if the specified texel coordinate is negative, or greater than 2755bd8deadSopenharmony_ci or equal to the clamped number of texels in the texel array. 2765bd8deadSopenharmony_ci 2775bd8deadSopenharmony_ci When a buffer texture is accessed in a shader, an integer is provided to 2785bd8deadSopenharmony_ci indicate the texel coordinate being accessed. If no buffer object is 2795bd8deadSopenharmony_ci bound to the buffer texture, the results of the texel access are 2805bd8deadSopenharmony_ci undefined. Otherwise, the attached buffer object's data store is 2815bd8deadSopenharmony_ci interpreted as an array of elements of the GL data type corresponding to 2825bd8deadSopenharmony_ci <internalformat>. Each texel consists of one to four elements that are 2835bd8deadSopenharmony_ci mapped to texture components (R, G, B, and A). Element <m> of the texel 2845bd8deadSopenharmony_ci numbered <n> is taken from element <n> * <components> + <m> of the 2855bd8deadSopenharmony_ci attached buffer object's data store. Elements and texels are both 2865bd8deadSopenharmony_ci numbered starting with zero. For texture formats with signed or unsigned 2875bd8deadSopenharmony_ci normalized fixed-point components, the extracted values are converted to 2885bd8deadSopenharmony_ci floating-point values using equations 2.2 or 2.1 respectively. The 2895bd8deadSopenharmony_ci components of the texture are then converted to an (R,G,B,A) vector 2905bd8deadSopenharmony_ci according to Table texbo.1, and returned to the shader as a 2915bd8deadSopenharmony_ci four-component result vector with components of the appropriate data 2925bd8deadSopenharmony_ci type for the texture's internal format. The base data type, component 2935bd8deadSopenharmony_ci count, normalized component information, and mapping of data store 2945bd8deadSopenharmony_ci elements to texture components is specified in Table texbo.1. 2955bd8deadSopenharmony_ci 2965bd8deadSopenharmony_ci Component 2975bd8deadSopenharmony_ci Sized Internal Format Base Type Components Norm 0 1 2 3 2985bd8deadSopenharmony_ci --------------------- --------- ---------- ---- --------- 2995bd8deadSopenharmony_ci R8 ubyte 1 Yes R 0 0 1 3005bd8deadSopenharmony_ci R16F half 1 No R 0 0 1 3015bd8deadSopenharmony_ci R32F float 1 No R 0 0 1 3025bd8deadSopenharmony_ci R8I byte 1 No R 0 0 1 3035bd8deadSopenharmony_ci R16I short 1 No R 0 0 1 3045bd8deadSopenharmony_ci R32I int 1 No R 0 0 1 3055bd8deadSopenharmony_ci R8UI ubyte 1 No R 0 0 1 3065bd8deadSopenharmony_ci R16UI ushort 1 No R 0 0 1 3075bd8deadSopenharmony_ci R32UI uint 1 No R 0 0 1 3085bd8deadSopenharmony_ci RG8 ubyte 2 Yes R G 0 1 3095bd8deadSopenharmony_ci RG16F half 2 No R G 0 1 3105bd8deadSopenharmony_ci RG32F float 2 No R G 0 1 3115bd8deadSopenharmony_ci RG8I byte 2 No R G 0 1 3125bd8deadSopenharmony_ci RG16I short 2 No R G 0 1 3135bd8deadSopenharmony_ci RG32I int 2 No R G 0 1 3145bd8deadSopenharmony_ci RG8UI ubyte 2 No R G 0 1 3155bd8deadSopenharmony_ci RG16UI ushort 2 No R G 0 1 3165bd8deadSopenharmony_ci RG32UI uint 2 No R G 0 1 3175bd8deadSopenharmony_ci RGB32F float 3 No R G B 1 3185bd8deadSopenharmony_ci RGB32I int 3 No R G B 1 3195bd8deadSopenharmony_ci RGB32UI uint 3 No R G B 1 3205bd8deadSopenharmony_ci RGBA8 ubyte 4 Yes R G B A 3215bd8deadSopenharmony_ci RGBA16F half 4 No R G B A 3225bd8deadSopenharmony_ci RGBA32F float 4 No R G B A 3235bd8deadSopenharmony_ci RGBA8I byte 4 No R G B A 3245bd8deadSopenharmony_ci RGBA16I short 4 No R G B A 3255bd8deadSopenharmony_ci RGBA32I int 4 No R G B A 3265bd8deadSopenharmony_ci RGBA8UI ubyte 4 No R G B A 3275bd8deadSopenharmony_ci RGBA16UI ushort 4 No R G B A 3285bd8deadSopenharmony_ci RGBA32UI uint 4 No R G B A 3295bd8deadSopenharmony_ci Table texbo.1, Internal Formats for Buffer Textures. For each 3305bd8deadSopenharmony_ci format, the data type of each element is indicated in the "Base 3315bd8deadSopenharmony_ci Type" column and the element count is in the "Components" column. 3325bd8deadSopenharmony_ci The "Norm" column indicates whether components should be treated as 3335bd8deadSopenharmony_ci normalized floating-point values. The "Component 0, 1, 2, and 3" 3345bd8deadSopenharmony_ci columns indicate the mapping of each element of a texel to texture 3355bd8deadSopenharmony_ci components. 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ci In addition to attaching buffer objects to textures, buffer objects can 3385bd8deadSopenharmony_ci be bound to the buffer object target named TEXTURE_BUFFER_EXT, in order 3395bd8deadSopenharmony_ci to specify, modify, or read the buffer object's data store. The buffer 3405bd8deadSopenharmony_ci object bound to TEXTURE_BUFFER_EXT has no effect on rendering. A buffer 3415bd8deadSopenharmony_ci object is bound to TEXTURE_BUFFER_EXT by calling BindBuffer with 3425bd8deadSopenharmony_ci <target> set to TEXTURE_BUFFER_EXT, as described in chapter 6. 3435bd8deadSopenharmony_ci 3445bd8deadSopenharmony_ci 3455bd8deadSopenharmony_ci Modify section 8.10.3 "Texture Level Parameter Queries" 3465bd8deadSopenharmony_ci 3475bd8deadSopenharmony_ci Modify the second and third paragraphs in the description of 3485bd8deadSopenharmony_ci GetTexLevelParameter*, on p. 173: 3495bd8deadSopenharmony_ci 3505bd8deadSopenharmony_ci "<target> may be ... TEXTURE_2D_ARRAY, TEXTURE_BUFFER_EXT, one of the 3515bd8deadSopenharmony_ci cube map face ... indicating the ... two-dimensional array texture, 3525bd8deadSopenharmony_ci buffer texture, one of the six distinct ... 3535bd8deadSopenharmony_ci 3545bd8deadSopenharmony_ci <lod> determines which level-of-detail's state is returned. If <target> 3555bd8deadSopenharmony_ci is TEXTURE_BUFFER_EXT, <lod> must be zero." 3565bd8deadSopenharmony_ci 3575bd8deadSopenharmony_ci 3585bd8deadSopenharmony_ci Modify section 8.18 "Texture State" 3595bd8deadSopenharmony_ci 3605bd8deadSopenharmony_ci Change the first paragraph of the section on p. 191: 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci ... Each array has associated with it a width, height (except for buffer 3635bd8deadSopenharmony_ci textures), and depth ... a boolean describing whether the image is 3645bd8deadSopenharmony_ci compressed or not, an integer size of a compressed image, and an integer 3655bd8deadSopenharmony_ci containing the name of a buffer object bound as the data store of the 3665bd8deadSopenharmony_ci image. 3675bd8deadSopenharmony_ci 3685bd8deadSopenharmony_ci Each inital texel array is null ... the compressed flag set to FALSE, a 3695bd8deadSopenharmony_ci zero compressed size, and the bound buffer object name is zero. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci Buffer textures also contain two pointer sized integers containing the 3725bd8deadSopenharmony_ci offset and range of the buffer object's data store. 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci 3755bd8deadSopenharmony_ci Modify section 8.22 "Texture Image Loads and Stores" 3765bd8deadSopenharmony_ci 3775bd8deadSopenharmony_ci On p. 197 in the errors section for BindImageTexture, replace the 3785bd8deadSopenharmony_ci last error with the following: 3795bd8deadSopenharmony_ci 3805bd8deadSopenharmony_ci An INVALID_OPERATION error is generated if <texture> is neither the 3815bd8deadSopenharmony_ci name of a buffer texture, nor the name of an immutable texture object. 3825bd8deadSopenharmony_ci 3835bd8deadSopenharmony_ci Add to table 8.26 "Mapping of image load, store..." 3845bd8deadSopenharmony_ci 3855bd8deadSopenharmony_ci Texture target face/ 3865bd8deadSopenharmony_ci i j k layer 3875bd8deadSopenharmony_ci -------------------------- -- -- -- ----- 3885bd8deadSopenharmony_ci TEXTURE_BUFFER_EXT x - - - 3895bd8deadSopenharmony_ci 3905bd8deadSopenharmony_ci 3915bd8deadSopenharmony_ciNew State 3925bd8deadSopenharmony_ci 3935bd8deadSopenharmony_ci Add to table 20.8 "Textures (selector, state per texture unit)" 3945bd8deadSopenharmony_ci 3955bd8deadSopenharmony_ci Initial 3965bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 3975bd8deadSopenharmony_ci ---------------------------------- -------- ----------- ---------- ---------------------------- ----- 3985bd8deadSopenharmony_ci TEXTURE_BINDING_BUFFER_EXT 48* x Z+ GetIntegerv 0 Texture object bound 8.1 3995bd8deadSopenharmony_ci to TEXTURE_BUFFER_EXT 4005bd8deadSopenharmony_ci 4015bd8deadSopenharmony_ci Add to table 20.10 "Textures (state per texture image)" 4025bd8deadSopenharmony_ci 4035bd8deadSopenharmony_ci Initial 4045bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 4055bd8deadSopenharmony_ci ------------------------------------- ----- -------------------- ------- --------------------------- -------- 4065bd8deadSopenharmony_ci TEXTURE_BUFFER_DATA_STORE_BINDING_EXT Z+ GetTexLevelParameter 0 Buffer object bound to the 8.8tbo 4075bd8deadSopenharmony_ci data store for the active 4085bd8deadSopenharmony_ci image unit's buffer texture 4095bd8deadSopenharmony_ci TEXTURE_BUFFER_OFFSET_EXT n x Z GetTexLevelParameter 0 Offset into buffer's data 8.8tbo 4105bd8deadSopenharmony_ci store used for the active 4115bd8deadSopenharmony_ci image unit's buffer texture 4125bd8deadSopenharmony_ci TEXTURE_BUFFER_SIZE_EXT n x Z GetTexLevelParameter 0 Size of the buffer's data 8.8tbo 4135bd8deadSopenharmony_ci store used for the active 4145bd8deadSopenharmony_ci image unit's buffer texture 4155bd8deadSopenharmony_ci 4165bd8deadSopenharmony_ci Modify the TEXTURE_INTERNAL_FORMAT entry in table 20.10 4175bd8deadSopenharmony_ci 4185bd8deadSopenharmony_ci Initial 4195bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 4205bd8deadSopenharmony_ci ---------------------- ---- -------------------- ------- --------------------------- ------ 4215bd8deadSopenharmony_ci TEXTURE_INTERNAL_FORMAT E GetTexLevelParameter RGBA Internal format[fn1] 8 4225bd8deadSopenharmony_ci or R8 4235bd8deadSopenharmony_ci [fn1] The initial internal format is R8 for texture buffer object 4245bd8deadSopenharmony_ci images, RGBA for all other texture images. 4255bd8deadSopenharmony_ci 4265bd8deadSopenharmony_ci 4275bd8deadSopenharmony_ci Add to table 20.50 "Miscellaneous" 4285bd8deadSopenharmony_ci 4295bd8deadSopenharmony_ci Initial 4305bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 4315bd8deadSopenharmony_ci -------------------------- ---- ----------- ------- --------------------------- ---- 4325bd8deadSopenharmony_ci TEXTURE_BUFFER_BINDING_EXT Z+ GetIntegerv 0 Buffer object bound to 6.1 4335bd8deadSopenharmony_ci generic buffer texture 4345bd8deadSopenharmony_ci binding point 4355bd8deadSopenharmony_ci 4365bd8deadSopenharmony_ci 4375bd8deadSopenharmony_ciNew Implementation Dependent State 4385bd8deadSopenharmony_ci 4395bd8deadSopenharmony_ci Add to table 20.41 "Implementation Dependent Values (cont.)" 4405bd8deadSopenharmony_ci 4415bd8deadSopenharmony_ci Minimum 4425bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. 4435bd8deadSopenharmony_ci ----------------------------------- ---- ----------- ------- --------------------- -------- 4445bd8deadSopenharmony_ci MAX_TEXTURE_BUFFER_SIZE_EXT Z+ GetIntegerv 65536 No. of addressable 8.8tbo 4455bd8deadSopenharmony_ci texels for buffer 4465bd8deadSopenharmony_ci textures 4475bd8deadSopenharmony_ci TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT Z+ GetIntegerv 256 (**) Minimum required 8.8tbo 4485bd8deadSopenharmony_ci alignment for texture 4495bd8deadSopenharmony_ci buffer offsets 4505bd8deadSopenharmony_ci 4515bd8deadSopenharmony_ci (**) the value of TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT is the largest 4525bd8deadSopenharmony_ci allowed value. Smaller values are permitted. 4535bd8deadSopenharmony_ci 4545bd8deadSopenharmony_ciModifications to the OpenGL ES Shading Language Specification, Version 3.10 4555bd8deadSopenharmony_ci 4565bd8deadSopenharmony_ci #extension GL_EXT_texture_buffer: <behavior> 4575bd8deadSopenharmony_ci 4585bd8deadSopenharmony_ci The above line is needed to control the GLSL features described in 4595bd8deadSopenharmony_ci this section. 4605bd8deadSopenharmony_ci 4615bd8deadSopenharmony_ci 4625bd8deadSopenharmony_ci A new preprocessor #define is added to the OpenGL ES Shading Language: 4635bd8deadSopenharmony_ci 4645bd8deadSopenharmony_ci #define GL_EXT_texture_buffer 1 4655bd8deadSopenharmony_ci 4665bd8deadSopenharmony_ci 4675bd8deadSopenharmony_ci Add the following keywords to section 3.7 "Keywords" on p. 14 and 4685bd8deadSopenharmony_ci remove them from the list of reserved keywords on p. 15: 4695bd8deadSopenharmony_ci 4705bd8deadSopenharmony_ci samplerBuffer 4715bd8deadSopenharmony_ci isamplerBuffer 4725bd8deadSopenharmony_ci usamplerBuffer 4735bd8deadSopenharmony_ci imageBuffer 4745bd8deadSopenharmony_ci iimageBuffer 4755bd8deadSopenharmony_ci uimageBuffer 4765bd8deadSopenharmony_ci 4775bd8deadSopenharmony_ci 4785bd8deadSopenharmony_ci Add to section 4.1 "Basic Types" 4795bd8deadSopenharmony_ci 4805bd8deadSopenharmony_ci Add to table "Floating Point Sampler Types (opaque)" on p. 20: 4815bd8deadSopenharmony_ci 4825bd8deadSopenharmony_ci Type Meaning 4835bd8deadSopenharmony_ci ---------------------- --------------------------------------- 4845bd8deadSopenharmony_ci samplerBuffer a handle for accessing a buffer texture 4855bd8deadSopenharmony_ci imageBuffer 4865bd8deadSopenharmony_ci 4875bd8deadSopenharmony_ci Add to table "Signed Integer Sampler Types (opaque)" on p. 21: 4885bd8deadSopenharmony_ci 4895bd8deadSopenharmony_ci Type Meaning 4905bd8deadSopenharmony_ci ----------------------- ---------------------------------------- 4915bd8deadSopenharmony_ci isamplerBuffer a handle for accessing an integer buffer 4925bd8deadSopenharmony_ci iimageBuffer texture 4935bd8deadSopenharmony_ci 4945bd8deadSopenharmony_ci Add to table "Unsigned Integer Sampler Types (opaque)" on p. 21: 4955bd8deadSopenharmony_ci 4965bd8deadSopenharmony_ci Type Meaning 4975bd8deadSopenharmony_ci ----------------------- ------------------------------------------ 4985bd8deadSopenharmony_ci usamplerBuffer a handle for accessing an unsigned integer 4995bd8deadSopenharmony_ci uimageBuffer buffer texture 5005bd8deadSopenharmony_ci 5015bd8deadSopenharmony_ci 5025bd8deadSopenharmony_ci Modify section 4.7.4 "Default Precision Qualifiers" 5035bd8deadSopenharmony_ci 5045bd8deadSopenharmony_ci Add the following types to the list of types which have no default 5055bd8deadSopenharmony_ci precision qualifiers at the top of p. 65: 5065bd8deadSopenharmony_ci 5075bd8deadSopenharmony_ci samplerBuffer 5085bd8deadSopenharmony_ci isamplerBuffer 5095bd8deadSopenharmony_ci usamplerBuffer 5105bd8deadSopenharmony_ci imageBuffer 5115bd8deadSopenharmony_ci iimageBuffer 5125bd8deadSopenharmony_ci uimageBuffer 5135bd8deadSopenharmony_ci 5145bd8deadSopenharmony_ci 5155bd8deadSopenharmony_ci Modify section 8.9 "Texture Functions" 5165bd8deadSopenharmony_ci 5175bd8deadSopenharmony_ci Add at the end of the paragraph starting "In all functions below" on p. 5185bd8deadSopenharmony_ci 119: 5195bd8deadSopenharmony_ci 5205bd8deadSopenharmony_ci ... performing the texture access operation. No <bias> or <lod> 5215bd8deadSopenharmony_ci parameters for multisample textures or texture buffers are supported, 5225bd8deadSopenharmony_ci because mipmaps are not allowed for these types of textures. 5235bd8deadSopenharmony_ci 5245bd8deadSopenharmony_ci 5255bd8deadSopenharmony_ci Add to the table of Texture Query Functions in section 8.9.1 on p. 120: 5265bd8deadSopenharmony_ci 5275bd8deadSopenharmony_ci highp int textureSize(gsamplerBuffer sampler) 5285bd8deadSopenharmony_ci 5295bd8deadSopenharmony_ci 5305bd8deadSopenharmony_ci Add to the table of Texel Lookup Functions in section 8.9.2 on p. 121: 5315bd8deadSopenharmony_ci 5325bd8deadSopenharmony_ci gvec4 texelFetch(gsamplerBuffer sampler, int P) 5335bd8deadSopenharmony_ci 5345bd8deadSopenharmony_ci 5355bd8deadSopenharmony_ci Modify section 8.14 "Image Functions": 5365bd8deadSopenharmony_ci 5375bd8deadSopenharmony_ci Add to the description of the IMAGE_INFO placeholder in the fourth 5385bd8deadSopenharmony_ci paragraph of the section, on p. 132: 5395bd8deadSopenharmony_ci 5405bd8deadSopenharmony_ci The "IMAGE_INFO" in the prototypes below is a placeholder ... 5415bd8deadSopenharmony_ci 5425bd8deadSopenharmony_ci gimage2DArray image, ivec3 coord 5435bd8deadSopenharmony_ci gimageBuffer image, int P 5445bd8deadSopenharmony_ci 5455bd8deadSopenharmony_ci 5465bd8deadSopenharmony_ci Add to the table of image functions on p. 133: 5475bd8deadSopenharmony_ci 5485bd8deadSopenharmony_ci highp int imageSize(readonly writeonly gimageBuffer image) 5495bd8deadSopenharmony_ci 5505bd8deadSopenharmony_ci 5515bd8deadSopenharmony_ci Change the introduction of section 8.16 "Shader Memory Control 5525bd8deadSopenharmony_ci Functions": 5535bd8deadSopenharmony_ci 5545bd8deadSopenharmony_ci Shaders of all types may read and write the contents of textures and 5555bd8deadSopenharmony_ci buffer objects using image variables. While the order of reads ... 5565bd8deadSopenharmony_ci 5575bd8deadSopenharmony_ci 5585bd8deadSopenharmony_ciDependencies on OES_shader_image_atomic 5595bd8deadSopenharmony_ci 5605bd8deadSopenharmony_ci When OES_shader_image_atomic is supported, all the imageAtomic* functions 5615bd8deadSopenharmony_ci are supported on image buffers. 5625bd8deadSopenharmony_ci 5635bd8deadSopenharmony_ci 5645bd8deadSopenharmony_ciIssues 5655bd8deadSopenharmony_ci 5665bd8deadSopenharmony_ci Note: These issues apply specifically to the definition of the 5675bd8deadSopenharmony_ci EXT_texture_buffer specification, which is based on the OpenGL 5685bd8deadSopenharmony_ci extension ARB_texture_buffer_object as updated in OpenGL 4.x. Resolved 5695bd8deadSopenharmony_ci issues from ARB_texture_buffer_object have been removed (with the 5705bd8deadSopenharmony_ci exception of issue 6, which is copied from issue 12 of the ARB 5715bd8deadSopenharmony_ci extension), but remain largely applicable to this extension. 5725bd8deadSopenharmony_ci ARB_texture_buffer_object can be found in the OpenGL Registry. 5735bd8deadSopenharmony_ci 5745bd8deadSopenharmony_ci (1) What functionality was removed from ARB_texture_buffer_object? 5755bd8deadSopenharmony_ci 5765bd8deadSopenharmony_ci - Support for sized buffer formats R16, RG16, and RGBA16, and for 5775bd8deadSopenharmony_ci MapBuffer and GetBufferSubData is removed since they do not exist 5785bd8deadSopenharmony_ci in ES 3.0. 5795bd8deadSopenharmony_ci - Support for ALPHA and LUMINANCE buffer textures is removed since 5805bd8deadSopenharmony_ci they are legacy formats in ES 3.0, and there are no sized ALPHA or 5815bd8deadSopenharmony_ci LUMINANCE formats. 5825bd8deadSopenharmony_ci - GL 4.4 extended support for buffer textures to the 5835bd8deadSopenharmony_ci GetInternalformativ query <target>, but that command in ES 3.0 is 5845bd8deadSopenharmony_ci restricted to returning multisampling information, which is 5855bd8deadSopenharmony_ci irrelevant to buffer textures. 5865bd8deadSopenharmony_ci - Support for TEXTURE_BUFFER_FORMAT is removed. Use the 5875bd8deadSopenharmony_ci GetTexLevelParameter* TEXTURE_INTERNAL_FORMAT query instead. 5885bd8deadSopenharmony_ci 5895bd8deadSopenharmony_ci (2) What functionality was changed and added relative to 5905bd8deadSopenharmony_ci ARB_texture_buffer_object? 5915bd8deadSopenharmony_ci 5925bd8deadSopenharmony_ci - EXT_texture_buffer more closely matches OpenGL 4.4 language, 5935bd8deadSopenharmony_ci rather than ARB_texture_buffer_object language. 5945bd8deadSopenharmony_ci * Support for querying buffer texture state with 5955bd8deadSopenharmony_ci GetTexLevelParameter* is added 5965bd8deadSopenharmony_ci * Support for sized R, RG, and RGB formats is added. Per issue (2) 5975bd8deadSopenharmony_ci of ARB_texture_buffer_object, some formats supported by ES 3.0 but 5985bd8deadSopenharmony_ci which may present hardware difficulties are not supported, 5995bd8deadSopenharmony_ci including R*8_SNORM and all RGB formats other than RGB32*. 6005bd8deadSopenharmony_ci - Interactions were added with OpenGL ES 3.1 and other EXT extension 6015bd8deadSopenharmony_ci functionality, primarily shader memory access as well as texture 6025bd8deadSopenharmony_ci level parameter queries. 6035bd8deadSopenharmony_ci - incorporates the ability to bind a sub-range of a buffer from 6045bd8deadSopenharmony_ci ARB_texture_buffer_range. 6055bd8deadSopenharmony_ci 6065bd8deadSopenharmony_ci (3) What should the rules on GLSL suffixing be? 6075bd8deadSopenharmony_ci 6085bd8deadSopenharmony_ci RESOLVED: The new sampler and image types are reserved keywords in 6095bd8deadSopenharmony_ci ESSL 3.00 so they can be use without prefix/suffixes. 6105bd8deadSopenharmony_ci 6115bd8deadSopenharmony_ci (4) Do we want the ARB_texture_buffer_range functionality present in GL 6125bd8deadSopenharmony_ci 4.4? This adds useful functionality (backing the buffer texture with 6135bd8deadSopenharmony_ci a selected part of a buffer object) at low increase in complexity of 6145bd8deadSopenharmony_ci the spec. 6155bd8deadSopenharmony_ci 6165bd8deadSopenharmony_ci RESOLVED: Yes, this functionality is included in this extension. 6175bd8deadSopenharmony_ci 6185bd8deadSopenharmony_ci (5) How is the various buffer texture-related state queried? 6195bd8deadSopenharmony_ci 6205bd8deadSopenharmony_ci There are three pieces of state that can be queried: 6215bd8deadSopenharmony_ci (a) the texture object bound to buffer texture binding point for 6225bd8deadSopenharmony_ci the active texture image unit (TEXTURE_BINDING_BUFFER_EXT). 6235bd8deadSopenharmony_ci (b) the buffer object whose data store was used by that texture 6245bd8deadSopenharmony_ci object (TEXTURE_BUFFER_DATA_STORE_BINDING_EXT). 6255bd8deadSopenharmony_ci (c) the buffer object bound to the TEXTURE_BUFFER_EXT binding 6265bd8deadSopenharmony_ci point (TEXTURE_BUFFER_BINDING_EXT). 6275bd8deadSopenharmony_ci 6285bd8deadSopenharmony_ci The first and last are queried with GetIntegerv, but the second is 6295bd8deadSopenharmony_ci queried with GetTexLevelParameter. Note that for (a) and (b), the 6305bd8deadSopenharmony_ci texture queried is the one bound to TEXTURE_BUFFER_EXT on the active 6315bd8deadSopenharmony_ci texture image unit. 6325bd8deadSopenharmony_ci 6335bd8deadSopenharmony_ci (6) Should the R16, RG16 and RGBA16 texture formats be supported? 6345bd8deadSopenharmony_ci 6355bd8deadSopenharmony_ci RESOLVED. No. OpenGL ES 3.0 does not support these formats. They were 6365bd8deadSopenharmony_ci considered for late addition to OpenGL ES 3.1 in Bug 11366, but didn't 6375bd8deadSopenharmony_ci make the cut. In the absence of another extension to add them, they 6385bd8deadSopenharmony_ci are not supported here either. 6395bd8deadSopenharmony_ci 6405bd8deadSopenharmony_ci (7) OpenGL ES 3.1 does not allow images to be created from mutable 6415bd8deadSopenharmony_ci textures (ie those created with TexImage). How does this affect 6425bd8deadSopenharmony_ci this extension? 6435bd8deadSopenharmony_ci 6445bd8deadSopenharmony_ci RESOLVED. Buffer textures would technically be considered mutable 6455bd8deadSopenharmony_ci since they are not defined by a TexStorage command and it is possible 6465bd8deadSopenharmony_ci to redefine the buffer storage which backs them. However there is 6475bd8deadSopenharmony_ci currently no ES API for creating immutable buffers 6485bd8deadSopenharmony_ci (ARB_buffer_storage does this for GL) and thus we must allow mutable 6495bd8deadSopenharmony_ci buffers to back buffer textures. 6505bd8deadSopenharmony_ci 6515bd8deadSopenharmony_ci (8) This extension is called EXT_texture_buffer, but the desktop name 6525bd8deadSopenharmony_ci is {EXT,ARB}_texture_buffer_object. Is the name change intentional? 6535bd8deadSopenharmony_ci 6545bd8deadSopenharmony_ci RESOLVED. Yes. We want to avoid extensions in ES and GL that have the 6555bd8deadSopenharmony_ci same name, but not the same functionality (except as a subset). 6565bd8deadSopenharmony_ci 6575bd8deadSopenharmony_ci EXT_texture_buffer includes the functionality of ARB_texture_buffer_object, 6585bd8deadSopenharmony_ci ARB_texture_buffer_range, and ARB_texture_buffer_rgb32, along with some 6595bd8deadSopenharmony_ci changes that were made with how those operate GL 4.4. It would have been 6605bd8deadSopenharmony_ci too messy and confusing to try to incorporate all these into the existing 6615bd8deadSopenharmony_ci EXT_texture_buffer_object spec from GL as interactions with ES. 6625bd8deadSopenharmony_ci 6635bd8deadSopenharmony_ci 6645bd8deadSopenharmony_ciRevision History 6655bd8deadSopenharmony_ci 6665bd8deadSopenharmony_ci Rev. Date Author Changes 6675bd8deadSopenharmony_ci ---- -------- --------- --------------------------------------------- 6685bd8deadSopenharmony_ci 14 07/14/14 dkoch Clarify that TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 6695bd8deadSopenharmony_ci is queried with GetTexLevelParameter not 6705bd8deadSopenharmony_ci GetIntegerv (Bug 12343). Fix types in unsigned 6715bd8deadSopenharmony_ci sampler types table (Bug 12356) 6725bd8deadSopenharmony_ci 13 05/14/14 dkoch Add issue 8. 6735bd8deadSopenharmony_ci 12 05/05/14 dkoch Clarify OFFSET_ALIGNMENT (Bug 11962) 6745bd8deadSopenharmony_ci 11 03/28/14 dkoch Correct texture function prototypes 6755bd8deadSopenharmony_ci 10 03/26/14 Jon Leech Sync with released ES 3.1 specs. Reflow text. 6765bd8deadSopenharmony_ci 9 03/26/14 dkoch Update contributors, clarify no default precision 6775bd8deadSopenharmony_ci Allow mutable buffer images (Issue 7). 6785bd8deadSopenharmony_ci 8 03/10/14 Jon Leech Rebase on OpenGL ES 3.1 specs and change 6795bd8deadSopenharmony_ci extension suffix to EXT. 6805bd8deadSopenharmony_ci 7 02/24/14 dkoch Interactions with OES_shader_image_atomic 6815bd8deadSopenharmony_ci Added missing entry-point modifications 6825bd8deadSopenharmony_ci Clarified overview. Fix typo. 6835bd8deadSopenharmony_ci 6 02/12/14 dkoch Resolved issue 7. 6845bd8deadSopenharmony_ci 5 12/16/13 dkoch Add TexBufferRange functionality 6855bd8deadSopenharmony_ci Minor changes for consistency with GL 4.4 6865bd8deadSopenharmony_ci Resolved Issue 5, add issue 7. 6875bd8deadSopenharmony_ci 4 11/21/13 dkoch Remove mention of a few features not in ES 6885bd8deadSopenharmony_ci A few typographical fixes. 6895bd8deadSopenharmony_ci 3 11/15/13 dkoch Rename to texture_buffer 6905bd8deadSopenharmony_ci Correct issue 4 and keyword use. 6915bd8deadSopenharmony_ci 2 11/20/13 Jon Leech Minor updates 6925bd8deadSopenharmony_ci - Explain default TEXTURE_INTERNAL_FORMAT for texbos (see Bug 6935bd8deadSopenharmony_ci 10185). 6945bd8deadSopenharmony_ci - Sync with XXX spec language update. 6955bd8deadSopenharmony_ci - Refer to ES 3.1 instead of ES 3plus. 6965bd8deadSopenharmony_ci 6975bd8deadSopenharmony_ci 1 11/12/13 Jon Leech Initial version based on 6985bd8deadSopenharmony_ci ARB_texture_buffer_object. 699