1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgName 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org MESA_texture_signed_rgba 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgName Strings 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GL_MESA_texture_signed_rgba 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgContact 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNotice 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgIP Status 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org No known IP issues 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgStatus 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgVersion 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 0.3, 2009-03-24 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNumber 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Not assigned ? 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDependencies 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Written based on the wording of the OpenGL 2.0 specification. 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This extension trivially interacts with ARB_texture_float. 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This extension shares some language with ARB_texture_compression_rgtc 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org but does not depend on it. 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgOverview 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org OpenGL prior to 3.1 does not support any signed texture formats. 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org ARB_texture_compression_rgtc introduces some compressed red and 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org red_green signed formats but no uncompressed ones, which might 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org still be useful. NV_texture_shader adds signed texture formats, 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org but also a lot of functionality which has been superseded by fragment 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org shaders. 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org It is usually possible to get the same functionality 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org using a unsigned format by doing scale and bias in a shader, but this 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org is undesirable since modern hardware has direct support for this. 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This extension adds a signed 4-channel texture format by backporting 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org the relevant features from OpenGL 3.1, as a means to support this in 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org OpenGL implementations only supporting older versions. 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgIssues 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 1) What should this extension be called? 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: MESA_texture_signed_rgba seems reasonable. 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org The rgba part is there because only 4 channel format is supported. 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 2) Should the full set of signed formats (alpha, luminance, rgb, etc.) 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org be supported? 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: NO. To keep this extension simple, only add the most 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org universal format, rgba. alpha/luminance can't be trivially supported 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org since OpenGL 3.1 does not support them any longer, and there is some 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org implied dependency on ARB_texture_rg for red/red_green formats so 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org avoid all this. Likewise, only 8 bits per channel is supported. 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 3) Should this extension use new enums for the texture formats? 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: NO. Same enums as those used in OpenGL 3.1. 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 4) How are signed integer values mapped to floating-point values? 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: Same as described in issue 5) of 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org ARB_texture_compression_rgtc (quote): 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org A signed 8-bit two's complement value X is computed to 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org a floating-point value Xf with the formula: 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { X / 127.0, X > -128 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Xf = { 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { -1.0, X == -128 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This conversion means -1, 0, and +1 are all exactly representable, 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org however -128 and -127 both map to -1.0. Mapping -128 to -1.0 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org avoids the numerical awkwardness of have a representable value 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org slightly more negative than -1.0. 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This conversion is intentionally NOT the "byte" conversion listed 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org in Table 2.9 for component conversions. That conversion says: 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Xf = (2*X + 1) / 255.0 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org The Table 2.9 conversion is incapable of exactly representing 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org zero. 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Difference to ARB_texture_compression_rgtc): 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This is the same mapping as OpenGL 3.1 uses. 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This is also different to what NV_texture_shader used. 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org The above mapping should be considered the reference, but there 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org is some leeway so other mappings are allowed for implementations which 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org cannot do this. Particularly the mapping given in NV_texture_shader or 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org the standard OpenGL byte/float mapping is considered acceptable too, as 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org might be a mapping which represents -1.0 by -128, 0.0 by 0 and 1.0 by 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 127 (that is, uses different scale factors for negative and positive 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org numbers). 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Also, it is ok to store incoming GL_BYTE user data as-is, without 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org converting to GL_FLOAT (using the standard OpenGL float/byte mapping) 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org and converting back (using the mapping described here). 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Other than those subtle issues there are no other non-standard 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org conversions used, so when using for instance CopyTexImage2D with 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org a framebuffer clamped to [0,1] all converted numbers will be in the range 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org [0, 127] (and not scaled and biased). 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 5) How will signed components resulting from RGBA8_SNORM texture 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fetches interact with fragment coloring? 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: Same as described in issue 6) of 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org ARB_texture_compression_rgtc (quote): 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org The specification language for this extension is silent 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org about clamping behavior leaving this to the core specification 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org and other extensions. The clamping or lack of clamping is left 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org to the core specification and other extensions. 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org For assembly program extensions supporting texture fetches 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (ARB_fragment_program, NV_fragment_program, NV_vertex_program3, 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org etc.) or the OpenGL Shading Language, these signed formats will 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org appear as expected with unclamped signed components as a result 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org of a texture fetch instruction. 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org If ARB_color_buffer_float is supported, its clamping controls 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org will apply. 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV_texture_shader extension, if supported, adds support for 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fixed-point textures with signed components and relaxed the 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org fixed-function texture environment clamping appropriately. If the 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org NV_texture_shader extension is supported, its specified behavior 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org for the texture environment applies where intermediate values 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org are clamped to [-1,1] unless stated otherwise as in the case 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org of explicitly clamped to [0,1] for GL_COMBINE. or clamping the 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org linear interpolation weight to [0,1] for GL_DECAL and GL_BLEND. 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Otherwise, the conventional core texture environment clamps 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org incoming, intermediate, and output color components to [0,1]. 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org This implies that the conventional texture environment 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org functionality of unextended OpenGL 1.5 or OpenGL 2.0 without 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org using GLSL (and with none of the extensions referred to above) 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org is unable to make proper use of the signed texture formats added 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org by this extension because the conventional texture environment 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org requires texture source colors to be clamped to [0,1]. Texture 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org filtering of these signed formats would be still signed, but 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org negative values generated post-filtering would be clamped to 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org zero by the core texture environment functionality. The 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org expectation is clearly that this extension would be co-implemented 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org with one of the previously referred to extensions or used with 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org GLSL for the new signed formats to be useful. 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 6) Should the RGBA_SNORM tokens also be accepted by CopyTexImage 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org functions? 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: YES. 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 7) What to do with GetTexParameter if ARB_texture_float is supported, 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org in particular what datatype should this return for TEXTURE_RED_TYPE_ARB, 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB, TEXTURE_ALPHA_TYPE_ARB? 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RESOLVED: ARB_texture_float states type is either NONE, 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org UNSIGNED_NORMALIZED_ARB, or FLOAT. This extension adds a new enum, 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SIGNED_NORMALIZED, which will be returned accordingly. This is the 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org same behaviour as in OpenGL 3.1. 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgNew Tokens 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Accepted by the <internalformat> parameter of 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, and CopyTexImage2D: 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RGBA_SNORM 0x8F93 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RGBA8_SNORM 0x8F97 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Returned by the <params> parameter of GetTexLevelParameter: 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SIGNED_NORMALIZED 0x8F9C 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization): 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org -- Section 3.8.1, Texture Image Specification 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Add to Table 3.16 (page 154): Sized internal formats 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Sized Base R G B A L I D 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org Internal Format Internal Format bits bits bits bits bits bits bits 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org --------------- --------------- ---- ---- ---- ---- ---- ---- ---- 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org RGBA8_SNORM RGBA 8 8 8 8 0 0 0 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDependencies on ARB_texture_float extension: 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org If ARB_texture_float is supported, GetTexParameter queries with <value> 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org of TEXTURE_RED_TYPE_ARB, TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB or 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TEXTURE_ALPHA_TYPE_ARB return SIGNED_NORMALIZED if 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org the base internal format is RGBA_SNORM. 215