Edit

kc3-lang/angle/src/libANGLE/renderer/load_functions_data.json

Branch :

  • Show log

    Commit

  • Author : Alexis Hetu
    Date : 2021-09-17 16:22:55
    Hash : c0aa6108
    Message : Add new GL_RGBX8_ANGLEX format Currently, IOSurface objects using {GL_RGB, GL_UNSIGNED_BYTE} are natively represented with GL_BGRX8_ANGLEX, which we use instead of other RGBA formats in order to avoid issues when a canvas uses 'no alpha': https://source.chromium.org/chromium/chromium/src/+/main:third_party/swiftshader/third_party/angle/angle/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm;l=44 This unfortunately causes some other issues because of the implicit RGB <-> BGR conversion like type mismatches in subresource updates. This CL adds a new type, RGBX8, which will be usable by IOSurface objects and which behaves exactly like the BGRX8 format with the B and R channels flipped. Bug: chromium:1209250 Change-Id: I345eadc8addd05a0964cae30d89c20005479e37b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3188910 Commit-Queue: Alexis Hétu <sugoi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>

  • src/libANGLE/renderer/load_functions_data.json
  • {
      "GL_RG8_SNORM": {
        "R8G8_SNORM": {
          "GL_BYTE": "LoadToNative<GLbyte, 2>"
        }
      },
      "GL_SRGB8": {
        "R8G8B8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
        },
        "R8G8B8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 3>"
        }
      },
      "GL_SR8_EXT": {
        "R8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 1>"
        }
      },
      "GL_SRG8_EXT": {
        "R8G8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 2>"
        }
      },
      "GL_RGBA8I": {
        "R8G8B8A8_SINT": {
          "GL_BYTE": "LoadToNative<GLbyte, 4>"
        }
      },
      "GL_R8_SNORM": {
        "R8_SNORM": {
          "GL_BYTE": "LoadToNative<GLbyte, 1>"
        }
      },
      "GL_RGBA8_SNORM": {
        "R8G8B8A8_SNORM": {
          "GL_BYTE": "LoadToNative<GLbyte, 4>"
        }
      },
      "GL_R16I": {
        "R16_SINT": {
          "GL_SHORT": "LoadToNative<GLshort, 1>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC": {
        "R8G8B8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadETC2SRGBA8ToSRGBA8"
        },
        "ETC2_R8G8B8A8_SRGB_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadETC2RGB8A1ToRGBA8"
        },
        "ETC2_R8G8B8A1_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_RGB32UI": {
        "R32G32B32A32_UINT": {
          "GL_UNSIGNED_INT": "LoadToNative3To4<GLuint, 0x00000001>"
        },
        "R32G32B32_UINT": {
          "GL_UNSIGNED_INT": "LoadToNative<GLuint, 3>"
        }
      },
      "GL_ALPHA32F_EXT": {
        "R32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 1>"
        },
        "NONE": {
          "GL_FLOAT": "LoadA32FToRGBA32F"
        }
      },
      "GL_R16UI": {
        "R16_UINT": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RGB9_E5": {
        "R9G9B9E5_SHAREDEXP": {
          "GL_HALF_FLOAT": "LoadRGB16FToRGB9E5",
          "GL_UNSIGNED_INT_5_9_9_9_REV": "LoadToNative<GLuint, 1>",
          "GL_FLOAT": "LoadRGB32FToRGB9E5",
          "GL_HALF_FLOAT_OES": "LoadRGB16FToRGB9E5"
        }
      },
      "GL_COMPRESSED_R11_EAC": {
        "R16_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadEACR11ToR16"
        },
        "R16_FLOAT": {
          "GL_UNSIGNED_BYTE": "LoadEACR11ToR16F"
        },
        "EAC_R11_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_RGBA32UI": {
        "R32G32B32A32_UINT": {
          "GL_UNSIGNED_INT": "LoadToNative<GLuint, 4>"
        }
      },
      "GL_RG8UI": {
        "R8G8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 2>"
        }
      },
      "GL_LUMINANCE32F_EXT": {
        "R32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 1>"
        },
        "NONE": {
          "GL_FLOAT": "LoadL32FToRGBA32F"
        }
      },
      "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2": {
        "R8G8B8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadETC2SRGB8A1ToRGBA8"
        },
        "ETC2_R8G8B8A1_SRGB_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_R16F": {
        "R16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 1>",
          "GL_FLOAT": "Load32FTo16F<1>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 1>"
        }
      },
      "GL_RGBA8UI": {
        "R8G8B8A8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_RGBA16F": {
        "R16G16B16A16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 4>",
          "GL_FLOAT": "Load32FTo16F<4>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 4>"
        }
      },
      "GL_LUMINANCE8_EXT": {
        "R8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadL8ToRGBA8"
        }
      },
      "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_RGB": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction",
          "GL_UNSIGNED_SHORT_5_6_5": "UnreachableLoadFunction"
        }
      },
      "GL_RGB5_A1": {
        "A1R5G5B5_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToBGR5A1",
          "GL_UNSIGNED_SHORT_5_5_5_1": "LoadRGB5A1ToA1RGB5",
          "GL_UNSIGNED_BYTE": "LoadRGBA8ToBGR5A1"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToRGBA8",
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>",
          "GL_UNSIGNED_SHORT_5_5_5_1": "LoadRGB5A1ToRGBA8"
        },
        "B5G5R5A1_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToBGR5A1",
          "GL_UNSIGNED_BYTE": "LoadRGBA8ToBGR5A1",
          "GL_UNSIGNED_SHORT_5_5_5_1": "LoadRGB5A1ToA1RGB5"
        },
        "R5G5B5A1_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToRGB5A1",
          "GL_UNSIGNED_BYTE": "LoadRGBA8ToRGB5A1",
          "GL_UNSIGNED_SHORT_5_5_5_1": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RGB16UI": {
        "R16G16B16A16_UINT": {
          "GL_UNSIGNED_SHORT": "LoadToNative3To4<GLushort, 0x0001>"
        },
        "R16G16B16_UINT": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 3>"
        }
      },
      "GL_BGRA_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_COMPRESSED_RGB8_ETC2": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadETC2RGB8ToRGBA8"
        },
        "ETC2_R8G8B8_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_RGBA32F": {
        "R32G32B32A32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 4>"
        }
      },
      "GL_RGBA32I": {
        "R32G32B32A32_SINT": {
          "GL_INT": "LoadToNative<GLint, 4>"
        }
      },
      "GL_LUMINANCE8_ALPHA8_EXT": {
        "R8G8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 2>"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadLA8ToRGBA8"
        }
      },
      "GL_RG8": {
        "R8G8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 2>"
        }
      },
      "GL_RGB10_A2": {
        "R10G10B10A2_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_RGB10_UNORM_ANGLEX": {
        "R10G10B10A2_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToRGB10X2"
        },
        "R10G10B10X2_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadRGB10A2ToRGB10X2"
        }
      },
      "GL_COMPRESSED_SIGNED_RG11_EAC": {
        "R16G16_SNORM": {
          "GL_UNSIGNED_BYTE": "LoadEACRG11SToRG16"
        },
        "R16G16_FLOAT": {
          "GL_UNSIGNED_BYTE": "LoadEACRG11SToRG16F"
        },
        "EAC_R11G11_SNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_DEPTH_COMPONENT16": {
        "D16_UNORM": {
          "GL_UNSIGNED_INT": "LoadR32ToR16",
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RGB32I": {
        "R32G32B32A32_SINT": {
          "GL_INT": "LoadToNative3To4<GLint, 0x00000001>"
        },
        "R32G32B32_SINT": {
          "GL_INT": "LoadToNative<GLint, 3>"
        }
      },
      "GL_R8": {
        "R8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        }
      },
      "GL_RGB32F": {
        "R32G32B32A32_FLOAT": {
          "GL_FLOAT": "LoadToNative3To4<GLfloat, gl::Float32One>"
        },
        "R32G32B32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 3>"
        }
      },
      "GL_R11F_G11F_B10F": {
        "R11G11B10_FLOAT": {
          "GL_UNSIGNED_INT_10F_11F_11F_REV": "LoadToNative<GLuint, 1>",
          "GL_HALF_FLOAT": "LoadRGB16FToRG11B10F",
          "GL_FLOAT": "LoadRGB32FToRG11B10F",
          "GL_HALF_FLOAT_OES": "LoadRGB16FToRG11B10F"
        }
      },
      "GL_RGB8": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>"
        },
        "R8G8B8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLbyte, 3>"
        }
      },
      "GL_LUMINANCE_ALPHA": {
        "R16G16B16A16_FLOAT": {
          "GL_HALF_FLOAT": "LoadLA16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadLA16FToRGBA16F"
        },
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        },
        "R32G32B32A32_FLOAT": {
          "GL_FLOAT": "LoadLA32FToRGBA32F"
        }
      },
      "GL_RGBA16I": {
        "R16G16B16A16_SINT": {
          "GL_SHORT": "LoadToNative<GLshort, 4>"
        }
      },
      "GL_R8I": {
        "R8_SINT": {
          "GL_BYTE": "LoadToNative<GLbyte, 1>"
        }
      },
      "GL_RGB8_SNORM": {
        "R8G8B8A8_SNORM": {
          "GL_BYTE": "LoadToNative3To4<GLbyte, 0x7F>"
        },
        "R8G8B8_SNORM": {
          "GL_BYTE": "LoadToNative<GLbyte, 3>"
        }
      },
      "GL_RG32F": {
        "R32G32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 2>"
        }
      },
      "GL_DEPTH_COMPONENT32F": {
        "D32_FLOAT": {
          "GL_FLOAT": "LoadD32FToD32F"
        }
      },
      "GL_RG32I": {
        "R32G32_SINT": {
          "GL_INT": "LoadToNative<GLint, 2>"
        }
      },
      "GL_ALPHA8_EXT": {
        "R8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        },
        "A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadA8ToRGBA8"
        }
      },
      "GL_RG32UI": {
        "R32G32_UINT": {
          "GL_UNSIGNED_INT": "LoadToNative<GLuint, 2>"
        }
      },
      "GL_RGBA16UI": {
        "R16G16B16A16_UINT": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 4>"
        }
      },
      "GL_COMPRESSED_RGBA8_ETC2_EAC": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadETC2RGBA8ToRGBA8"
        },
        "ETC2_R8G8B8A8_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_RGB8I": {
        "R8G8B8A8_SINT": {
          "GL_BYTE": "LoadToNative3To4<GLbyte, 0x01>"
        },
        "R8G8B8_SINT": {
          "GL_BYTE": "LoadToNative<GLbyte, 3>"
        }
      },
      "GL_COMPRESSED_SRGB8_ETC2": {
        "R8G8B8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadETC2SRGB8ToRGBA8"
        },
        "ETC2_R8G8B8_SRGB_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_DEPTH32F_STENCIL8": {
        "D32_FLOAT_S8X24_UINT": {
          "GL_FLOAT_32_UNSIGNED_INT_24_8_REV": "LoadD32FS8X24ToD32FS8X24"
        },
        "D24_UNORM_S8_UINT": {
          "GL_FLOAT_32_UNSIGNED_INT_24_8_REV": "LoadD32FS8X24ToD24S8"
        }
      },
      "GL_RG8I": {
        "R8G8_SINT": {
          "GL_BYTE": "LoadToNative<GLbyte, 2>"
        }
      },
      "GL_R32UI": {
        "R32_UINT": {
          "GL_UNSIGNED_INT": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_BGRX8_ANGLEX" : {
        "B8G8R8X8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        },
        "B8G8R8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_RGBX8_ANGLEX" : {
        "R8G8B8X8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_BGR565_ANGLEX": {
        "B5G6R5_UNORM": {
          "GL_UNSIGNED_SHORT_5_6_5": "LoadRGB565ToBGR565",
          "GL_UNSIGNED_BYTE": "LoadRGB8ToBGR565"
        }
      },
      "GL_BGRA4_ANGLEX": {
        "NONE": {
          "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT": "LoadRGBA4ToRGBA8",
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_BGR5_A1_ANGLEX": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadRGB5A1ToRGBA8",
          "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_BGR10_A2_ANGLEX": {
        "B10G10R10A2_UNORM": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_BGRA8_SRGB_ANGLEX" : {
         "B8G8R8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
         }
      },
      "GL_A1RGB5_ANGLEX" : {
        "A1R5G5B5_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadRGB5A1ToRGBA8",
          "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_R8_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RG8_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB8_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGBA8_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_R8_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RG8_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB8_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGBA8_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_R16_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RG16_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB16_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGBA16_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_R16_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RG16_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB16_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGBA16_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB10_A2_SINT_ANGLEX" : {
        "R10G10B10A2_SINT": {
          "GL_UNSIGNED_BYTE": "LoadRGB10A2ToRGBA8",
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_RGB10_A2_SNORM_ANGLEX" : {
        "R10G10B10A2_SNORM": {
          "GL_UNSIGNED_BYTE": "LoadRGB10A2ToRGBA8",
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_RGB10_A2_SSCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_RGB10_A2_USCALED_ANGLEX" : {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        }
      },
      "GL_COMPRESSED_RG11_EAC": {
        "R16G16_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadEACRG11ToRG16"
        },
        "R16G16_FLOAT": {
          "GL_UNSIGNED_BYTE": "LoadEACRG11ToRG16F"
        },
        "EAC_R11G11_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_SRGB8_ALPHA8": {
        "R8G8B8A8_UNORM_SRGB": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_LUMINANCE_ALPHA16F_EXT": {
        "R16G16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 2>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 2>"
        },
        "NONE": {
          "GL_HALF_FLOAT": "LoadLA16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadLA16FToRGBA16F"
        }
      },
      "GL_RGBA": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction",
          "GL_UNSIGNED_SHORT_4_4_4_4": "UnreachableLoadFunction",
          "GL_UNSIGNED_SHORT_5_5_5_1": "UnreachableLoadFunction"
        }
      },
      "GL_DEPTH24_STENCIL8": {
        "D24_UNORM_S8_UINT": {
          "GL_UNSIGNED_INT_24_8": "LoadR32ToR24G8"
        },
        "D32_FLOAT_S8X24_UINT": {
          "GL_UNSIGNED_INT_24_8": "LoadD24S8ToD32FS8X24"
        }
      },
      "GL_RGB16I": {
        "R16G16B16A16_SINT": {
          "GL_SHORT": "LoadToNative3To4<GLshort, 0x0001>"
        },
        "R16G16B16_SINT": {
          "GL_SHORT": "LoadToNative<GLshort, 3>"
        }
      },
      "GL_R8UI": {
        "R8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        }
      },
      "GL_ALPHA": {
        "R16G16B16A16_FLOAT": {
          "GL_HALF_FLOAT": "LoadA16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadA16FToRGBA16F"
        },
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        },
        "R32G32B32A32_FLOAT": {
          "GL_FLOAT": "LoadA32FToRGBA32F"
        }
      },
      "GL_RGB16F": {
        "R16G16B16A16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative3To4<GLhalf, gl::Float16One>",
          "GL_FLOAT": "LoadRGB32FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadToNative3To4<GLhalf, gl::Float16One>"
        },
        "R16G16B16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 3>",
          "GL_FLOAT": "LoadRGB32FToRGB16F",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 3>"
        }
      },
      "GL_COMPRESSED_SIGNED_R11_EAC": {
        "R16_SNORM": {
          "GL_UNSIGNED_BYTE": "LoadEACR11SToR16"
        },
        "R16_FLOAT": {
          "GL_UNSIGNED_BYTE": "LoadEACR11SToR16F"
        },
        "EAC_R11_SNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_RGB_S3TC_DXT1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_STENCIL_INDEX8": {
        "S8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 1>"
        },
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnimplementedLoadFunction"
        }
      },
      "GL_LUMINANCE_ALPHA32F_EXT": {
        "R32G32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 2>"
        },
        "NONE": {
          "GL_FLOAT": "LoadLA32FToRGBA32F"
        }
      },
      "GL_RGB8UI": {
        "R8G8B8A8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0x01>"
        },
        "R8G8B8_UINT": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 3>"
        }
      },
      "GL_DEPTH_COMPONENT24": {
        "D24_UNORM_X8_UINT": {
          "GL_UNSIGNED_INT": "LoadR32ToR24G8"
        },
        "D24_UNORM_S8_UINT": {
          "GL_UNSIGNED_INT": "LoadR32ToR24G8"
        },
        "D32_FLOAT_S8X24_UINT": {
          "GL_UNSIGNED_INT_24_8": "LoadD24S8ToD32FS8X24",
          "GL_UNSIGNED_INT": "LoadD32ToD32FX32"
        },
        "D32_FLOAT": {
          "GL_UNSIGNED_INT": "LoadD24S8ToD32F"
        }
      },
      "GL_R32I": {
        "R32_SINT": {
          "GL_INT": "LoadToNative<GLint, 1>"
        }
      },
      "GL_DEPTH_COMPONENT32_OES": {
        "D32_FLOAT": {
          "GL_UNSIGNED_INT": "LoadD32ToD32F"
        },
        "NONE": {
          "GL_UNSIGNED_INT": "LoadR32ToR24G8"
        }
      },
      "GL_R32F": {
        "R32_FLOAT": {
          "GL_FLOAT": "LoadToNative<GLfloat, 1>"
        }
      },
      "GL_RG16F": {
        "R16G16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 2>",
          "GL_FLOAT": "Load32FTo16F<2>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 2>"
        }
      },
      "GL_RGB565": {
        "R5G6B5_UNORM" : {
          "GL_UNSIGNED_BYTE": "LoadRGB8ToBGR565",
          "GL_UNSIGNED_SHORT_5_6_5": "LoadToNative<GLushort, 1>"
        },
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative3To4<GLubyte, 0xFF>",
          "GL_UNSIGNED_SHORT_5_6_5": "LoadR5G6B5ToRGBA8"
        },
        "B5G6R5_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadRGB8ToBGR565",
          "GL_UNSIGNED_SHORT_5_6_5": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_LUMINANCE16F_EXT": {
        "R16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 1>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 1>"
        },
        "NONE": {
          "GL_HALF_FLOAT": "LoadL16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadL16FToRGBA16F"
        }
      },
      "GL_RG16UI": {
        "R16G16_UINT": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 2>"
        }
      },
      "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_RG16I": {
        "R16G16_SINT": {
          "GL_SHORT": "LoadToNative<GLshort, 2>"
        }
      },
      "GL_BGRA8_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_ALPHA16F_EXT": {
        "R16_FLOAT": {
          "GL_HALF_FLOAT": "LoadToNative<GLhalf, 1>",
          "GL_HALF_FLOAT_OES": "LoadToNative<GLhalf, 1>"
        },
        "NONE": {
          "GL_HALF_FLOAT": "LoadA16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadA16FToRGBA16F"
        }
      },
      "GL_RGBA4": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>",
          "GL_UNSIGNED_SHORT_4_4_4_4": "LoadRGBA4ToRGBA8"
        },
        "B4G4R4A4_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadRGBA8ToBGRA4",
          "GL_UNSIGNED_SHORT_4_4_4_4": "LoadRGBA4ToARGB4"
        },
        "R4G4B4A4_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadRGBA8ToRGBA4",
          "GL_UNSIGNED_SHORT_4_4_4_4": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RGBA8": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadToNative<GLubyte, 4>"
        }
      },
      "GL_LUMINANCE": {
        "R16G16B16A16_FLOAT": {
          "GL_HALF_FLOAT": "LoadL16FToRGBA16F",
          "GL_HALF_FLOAT_OES": "LoadL16FToRGBA16F"
        },
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnreachableLoadFunction"
        },
        "R32G32B32A32_FLOAT": {
          "GL_FLOAT": "LoadL32FToRGBA32F"
        }
      },
      "GL_RGB10_A2UI": {
        "R10G10B10A2_UINT": {
          "GL_UNSIGNED_INT_2_10_10_10_REV": "LoadToNative<GLuint, 1>"
        }
      },
      "GL_ETC1_RGB8_OES": {
        "R8G8B8A8_UNORM": {
          "GL_UNSIGNED_BYTE": "LoadETC1RGB8ToRGBA8"
        },
        "ETC1_R8G8B8_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        },
        "ETC2_R8G8B8_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_ETC1_RGB8_LOSSY_DECODE_ANGLE": {
        "BC1_RGB_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadETC1RGB8ToBC1"
        }
      },
      "GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE": {
        "BC1_RGB_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadETC2RGB8ToBC1"
        }
      },
      "GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE": {
        "BC1_RGB_UNORM_SRGB_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadETC2SRGB8ToBC1"
        }
      },
      "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE": {
        "BC1_RGBA_UNORM_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadETC2RGB8A1ToBC1"
        }
      },
      "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE": {
        "BC1_RGBA_UNORM_SRGB_BLOCK": {
          "GL_UNSIGNED_BYTE": "LoadETC2SRGB8A1ToBC1"
        }
      },
      "GL_R16_EXT": {
        "R16_UNORM": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RG16_EXT": {
        "R16G16_UNORM": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 2>"
        }
      },
      "GL_RGB16_EXT": {
        "R16G16B16A16_UNORM": {
          "GL_UNSIGNED_SHORT": "LoadToNative3To4<GLushort, 0xFFFF>"
        },
        "R16G16B16_UNORM": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 3>"
        }
      },
      "GL_RGBA16_EXT": {
        "R16G16B16A16_UNORM": {
          "GL_UNSIGNED_SHORT": "LoadToNative<GLushort, 4>"
        }
      },
      "GL_R16_SNORM_EXT": {
        "R16_SNORM": {
          "GL_SHORT": "LoadToNative<GLushort, 1>"
        }
      },
      "GL_RG16_SNORM_EXT": {
        "R16G16_SNORM": {
          "GL_SHORT": "LoadToNative<GLushort, 2>"
        }
      },
      "GL_RGB16_SNORM_EXT": {
        "R16G16B16A16_SNORM": {
          "GL_SHORT": "LoadToNative3To4<GLushort, 0x7FFF>"
        },
        "R16G16B16_SNORM": {
          "GL_SHORT": "LoadToNative<GLushort, 3>"
        }
      },
      "GL_RGBA16_SNORM_EXT": {
        "R16G16B16A16_SNORM": {
          "GL_SHORT": "LoadToNative<GLushort, 4>"
        }
      },
      "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB_S3TC_DXT1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RED_RGTC1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_SIGNED_RED_RGTC1_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 8>"
        }
      },
      "GL_COMPRESSED_RED_GREEN_RGTC2_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_BPTC_UNORM_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_4x4_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_5x4_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_5x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_6x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_6x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_8x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_8x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_8x8_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 8, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_10x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_10x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_10x8_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 8, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_10x10_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 10, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_12x10_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<12, 10, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_12x12_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<12, 12, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 4, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<8, 8, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 5, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 6, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 8, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<10, 10, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<12, 10, 1, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<12, 12, 1, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_3x3x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<3, 3, 3, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_4x3x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 3, 3, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_4x4x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 3, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_4x4x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 4, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_5x4x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 4, 4, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_5x5x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 4, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_5x5x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 5, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_6x5x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 5, 5, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_6x6x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 5, 16>"
        }
      },
      "GL_COMPRESSED_RGBA_ASTC_6x6x6_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 6, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<3, 3, 3, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 3, 3, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 3, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<4, 4, 4, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 4, 4, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 4, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<5, 5, 5, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 5, 5, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 5, 16>"
        }
      },
      "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadCompressedToNative<6, 6, 6, 16>"
        }
      },
      "GL_G8_B8_R8_3PLANE_420_UNORM_ANGLE": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "UnimplementedLoadFunction"
        }
      },
      "GL_G8_B8R8_2PLANE_420_UNORM_ANGLE": {
        "NONE": {
          "GL_UNSIGNED_BYTE": "LoadYuvToNative"
        }
      }
    }