Commit f706901e by Olli Etuaho Committed by Commit Bot

D3D11: Associate ANGLE formats with GL internal formats

Add a corresponding GL internal format to ANGLE format set. This is one step on the way to removing the problematic DXGI format to GL format mapping. This will also make it possible to stop storing the DXGIFormat field in RenderTarget11. The DXGIFormat field in RenderTarget11 can currently carry either the DSV format, the RTV format or the texture storage format of the resource it is managing, which makes code using it hard to understand. Also fills in missing componentType for some compressed ANGLE formats in texture_format_data.json. BUG=angleproject:1244 TEST=angle_end2end_tests Change-Id: I87eedca8736aeface3fa6a0ec3c9d355cf006b24 Reviewed-on: https://chromium-review.googlesource.com/328961Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent 6ad07236
......@@ -475,8 +475,7 @@ gl::Error Framebuffer11::blit(const gl::Rectangle &sourceArea, const gl::Rectang
GLenum Framebuffer11::getRenderTargetImplementationFormat(RenderTargetD3D *renderTarget) const
{
RenderTarget11 *renderTarget11 = GetAs<RenderTarget11>(renderTarget);
const d3d11::DXGIFormat &dxgiFormatInfo = d3d11::GetDXGIFormatInfo(renderTarget11->getDXGIFormat());
return dxgiFormatInfo.internalFormat;
return d3d11::GetANGLEFormatSet(renderTarget11->getANGLEFormat()).glInternalFormat;
}
void Framebuffer11::updateColorRenderTarget(size_t colorIndex)
......
......@@ -3455,8 +3455,6 @@ bool Renderer11::supportsFastCopyBufferToTexture(GLenum internalFormat) const
const gl::InternalFormat &internalFormatInfo = gl::GetInternalFormatInfo(internalFormat);
const d3d11::TextureFormat &d3d11FormatInfo = d3d11::GetTextureFormatInfo(internalFormat, mRenderer11DeviceCaps);
const d3d11::DXGIFormat &dxgiFormatInfo =
d3d11::GetDXGIFormatInfo(d3d11FormatInfo.formatSet.texFormat);
// sRGB formats do not work with D3D11 buffer SRVs
if (internalFormatInfo.colorEncoding == GL_SRGB)
......@@ -3477,7 +3475,7 @@ bool Renderer11::supportsFastCopyBufferToTexture(GLenum internalFormat) const
}
// We don't support formats which we can't represent without conversion
if (dxgiFormatInfo.internalFormat != internalFormat)
if (d3d11FormatInfo.formatSet.glInternalFormat != internalFormat)
{
return false;
}
......
......@@ -137,6 +137,7 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps)
ANGLEFormatSet::ANGLEFormatSet()
: format(ANGLE_FORMAT_NONE),
glInternalFormat(GL_NONE),
texFormat(DXGI_FORMAT_UNKNOWN),
srvFormat(DXGI_FORMAT_UNKNOWN),
rtvFormat(DXGI_FORMAT_UNKNOWN),
......@@ -164,12 +165,14 @@ TextureFormat::TextureFormat(GLenum internalFormat,
}}
ANGLEFormatSet::ANGLEFormatSet(ANGLEFormat format,
GLenum glInternalFormat,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat,
ANGLEFormat swizzleFormat)
: format(format),
glInternalFormat(glInternalFormat),
texFormat(texFormat),
srvFormat(srvFormat),
rtvFormat(rtvFormat),
......@@ -390,6 +393,7 @@ def parse_json_into_switch_angle_format_string(json_data):
for angle_format_item in sorted(json_data.iteritems()):
table_data += ' case ' + angle_format_item[0] + ':\n'
angle_format = angle_format_item[1]
gl_internal_format = angle_format["glInternalFormat"] if "glInternalFormat" in angle_format else "GL_NONE"
tex_format = angle_format["texFormat"] if "texFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
srv_format = angle_format["srvFormat"] if "srvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
rtv_format = angle_format["rtvFormat"] if "rtvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
......@@ -397,6 +401,7 @@ def parse_json_into_switch_angle_format_string(json_data):
swizzle_format = get_swizzle_format_id(angle_format_item[0], angle_format)
table_data += ' {\n'
table_data += ' static const ANGLEFormatSet formatInfo(' + angle_format_item[0] + ',\n'
table_data += ' ' + gl_internal_format + ',\n'
table_data += ' ' + tex_format + ',\n'
table_data += ' ' + srv_format + ',\n'
table_data += ' ' + rtv_format + ',\n'
......
......@@ -8,7 +8,8 @@
"rtvFormat": "DXGI_FORMAT_A8_UNORM",
"channels": "a",
"componentType": "unorm",
"bits": { "alpha": 8 }
"bits": { "alpha": 8 },
"glInternalFormat": "GL_ALPHA8_EXT"
},
"ANGLE_FORMAT_R8G8B8A8_UNORM": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_UNORM",
......@@ -16,7 +17,8 @@
"rtvFormat": "DXGI_FORMAT_R8G8B8A8_UNORM",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_RGBA8"
},
"ANGLE_FORMAT_R16G16B16A16_UNORM": {
"texFormat": "DXGI_FORMAT_R16G16B16A16_UNORM",
......@@ -24,7 +26,7 @@
"rtvFormat": "DXGI_FORMAT_R16G16B16A16_UNORM",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 }
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 }
},
"ANGLE_FORMAT_R16G16B16A16_FLOAT": {
"texFormat": "DXGI_FORMAT_R16G16B16A16_FLOAT",
......@@ -32,7 +34,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16B16A16_FLOAT",
"channels": "rgba",
"componentType": "float",
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 }
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 },
"glInternalFormat": "GL_RGBA16F"
},
"ANGLE_FORMAT_R32G32B32A32_FLOAT": {
"texFormat": "DXGI_FORMAT_R32G32B32A32_FLOAT",
......@@ -40,7 +43,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32B32A32_FLOAT",
"channels": "rgba",
"componentType": "float",
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 }
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 },
"glInternalFormat": "GL_RGBA32F"
},
"ANGLE_FORMAT_B8G8R8A8_UNORM": {
"texFormat": "DXGI_FORMAT_B8G8R8A8_UNORM",
......@@ -48,73 +52,87 @@
"rtvFormat": "DXGI_FORMAT_B8G8R8A8_UNORM",
"channels": "bgra",
"componentType": "unorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_BGRA8_EXT"
},
"ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_UNORM",
"srvFormat": "DXGI_FORMAT_R8G8B8A8_UNORM",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_RGBA8"
},
"ANGLE_FORMAT_BC1_UNORM": {
"texFormat": "DXGI_FORMAT_BC1_UNORM",
"srvFormat": "DXGI_FORMAT_BC1_UNORM",
"channels": "rgba",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM"
"componentType": "unorm",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM",
"glInternalFormat": "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"
},
"ANGLE_FORMAT_BC2_UNORM": {
"texFormat": "DXGI_FORMAT_BC2_UNORM",
"srvFormat": "DXGI_FORMAT_BC2_UNORM",
"channels": "rgba",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM"
"componentType": "unorm",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM",
"glInternalFormat": "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"
},
"ANGLE_FORMAT_BC3_UNORM": {
"texFormat": "DXGI_FORMAT_BC3_UNORM",
"srvFormat": "DXGI_FORMAT_BC3_UNORM",
"channels": "rgba",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM"
"componentType": "unorm",
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM",
"glInternalFormat": "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"
},
"ANGLE_FORMAT_R8_SNORM_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8_SNORM",
"srvFormat": "DXGI_FORMAT_R8_SNORM",
"channels": "r",
"componentType": "snorm",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8_SNORM"
},
"ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8G8_SNORM",
"srvFormat": "DXGI_FORMAT_R8G8_SNORM",
"channels": "rg",
"componentType": "snorm",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8_SNORM"
},
"ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",
"srvFormat": "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_SRGB8_ALPHA8"
},
"ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10": {
"texFormat": "DXGI_FORMAT_R24G8_TYPELESS",
"srvFormat": "DXGI_FORMAT_R24_UNORM_X8_TYPELESS",
"dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"channels": "ds",
"bits": { "depth": 24, "stencil": 8 }
"bits": { "depth": 24, "stencil": 8 },
"glInternalFormat": "GL_DEPTH24_STENCIL8_OES"
},
"ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3": {
"texFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"channels": "ds",
"bits": { "depth": 24, "stencil": 8 }
"bits": { "depth": 24, "stencil": 8 },
"glInternalFormat": "GL_DEPTH24_STENCIL8_OES"
},
"ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10": {
"texFormat": "DXGI_FORMAT_R32G8X24_TYPELESS",
"srvFormat": "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS",
"dsvFormat": "DXGI_FORMAT_D32_FLOAT_S8X24_UINT",
"channels": "ds",
"bits": { "depth": 32, "stencil": 8 }
"bits": { "depth": 32, "stencil": 8 },
"glInternalFormat": "GL_DEPTH32F_STENCIL8"
},
"ANGLE_FORMAT_D16_UNORM_FL10": {
"texFormat": "DXGI_FORMAT_R16_TYPELESS",
......@@ -122,14 +140,16 @@
"dsvFormat": "DXGI_FORMAT_D16_UNORM",
"channels": "d",
"componentType": "unorm",
"bits": { "depth": 16 }
"bits": { "depth": 16 },
"glInternalFormat": "GL_DEPTH_COMPONENT16"
},
"ANGLE_FORMAT_D16_UNORM_FL9_3": {
"texFormat": "DXGI_FORMAT_D16_UNORM",
"dsvFormat": "DXGI_FORMAT_D16_UNORM",
"channels": "d",
"componentType": "unorm",
"bits": { "depth": 16 }
"bits": { "depth": 16 },
"glInternalFormat": "GL_DEPTH_COMPONENT16"
},
"ANGLE_FORMAT_D32_FLOAT": {
"texFormat": "DXGI_FORMAT_R32_TYPELESS",
......@@ -137,7 +157,8 @@
"dsvFormat": "DXGI_FORMAT_D32_FLOAT",
"channels": "d",
"componentType": "float",
"bits": { "depth": 32 }
"bits": { "depth": 32 },
"glInternalFormat": "GL_DEPTH_COMPONENT32F"
},
"ANGLE_FORMAT_R11G11B10_FLOAT": {
"texFormat": "DXGI_FORMAT_R11G11B10_FLOAT",
......@@ -145,7 +166,8 @@
"rtvFormat": "DXGI_FORMAT_R11G11B10_FLOAT",
"channels": "rgb",
"componentType": "float",
"bits": { "red": 11, "green": 11, "blue": 10 }
"bits": { "red": 11, "green": 11, "blue": 10 },
"glInternalFormat": "GL_R11F_G11F_B10F"
},
"ANGLE_FORMAT_R16_FLOAT": {
"texFormat": "DXGI_FORMAT_R16_FLOAT",
......@@ -153,7 +175,8 @@
"rtvFormat": "DXGI_FORMAT_R16_FLOAT",
"channels": "r",
"componentType": "float",
"bits": { "red": 16 }
"bits": { "red": 16 },
"glInternalFormat": "GL_R16F"
},
"ANGLE_FORMAT_R16_SINT": {
"texFormat": "DXGI_FORMAT_R16_SINT",
......@@ -161,7 +184,8 @@
"rtvFormat": "DXGI_FORMAT_R16_SINT",
"channels": "r",
"componentType": "int",
"bits": { "red": 16 }
"bits": { "red": 16 },
"glInternalFormat": "GL_R16I"
},
"ANGLE_FORMAT_R16_UINT": {
"texFormat": "DXGI_FORMAT_R16_UINT",
......@@ -169,7 +193,8 @@
"rtvFormat": "DXGI_FORMAT_R16_UINT",
"channels": "r",
"componentType": "uint",
"bits": { "red": 16 }
"bits": { "red": 16 },
"glInternalFormat": "GL_R16UI"
},
"ANGLE_FORMAT_R32_FLOAT": {
"texFormat": "DXGI_FORMAT_R32_FLOAT",
......@@ -177,7 +202,8 @@
"rtvFormat": "DXGI_FORMAT_R32_FLOAT",
"channels": "r",
"componentType": "float",
"bits": { "red": 32 }
"bits": { "red": 32 },
"glInternalFormat": "GL_R32F"
},
"ANGLE_FORMAT_R32_SINT": {
"texFormat": "DXGI_FORMAT_R32_SINT",
......@@ -185,7 +211,8 @@
"rtvFormat": "DXGI_FORMAT_R32_SINT",
"channels": "r",
"componentType": "int",
"bits": { "red": 32 }
"bits": { "red": 32 },
"glInternalFormat": "GL_R32I"
},
"ANGLE_FORMAT_R32_UINT": {
"texFormat": "DXGI_FORMAT_R32_UINT",
......@@ -193,14 +220,16 @@
"rtvFormat": "DXGI_FORMAT_R32_UINT",
"channels": "r",
"componentType": "uint",
"bits": { "red": 32 }
"bits": { "red": 32 },
"glInternalFormat": "GL_R32UI"
},
"ANGLE_FORMAT_R8_UNORM_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8_UNORM",
"srvFormat": "DXGI_FORMAT_R8_UNORM",
"channels": "r",
"componentType": "unorm",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8"
},
"ANGLE_FORMAT_R8_UNORM": {
"texFormat": "DXGI_FORMAT_R8_UNORM",
......@@ -208,7 +237,8 @@
"rtvFormat": "DXGI_FORMAT_R8_UNORM",
"channels": "r",
"componentType": "unorm",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8"
},
"ANGLE_FORMAT_R8_SINT": {
"texFormat": "DXGI_FORMAT_R8_SINT",
......@@ -216,7 +246,8 @@
"rtvFormat": "DXGI_FORMAT_R8_SINT",
"channels": "r",
"componentType": "int",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8I"
},
"ANGLE_FORMAT_R8_UINT": {
"texFormat": "DXGI_FORMAT_R8_UINT",
......@@ -224,14 +255,16 @@
"rtvFormat": "DXGI_FORMAT_R8_UINT",
"channels": "r",
"componentType": "uint",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8UI"
},
"ANGLE_FORMAT_R8_SNORM": {
"texFormat": "DXGI_FORMAT_R8_SNORM",
"srvFormat": "DXGI_FORMAT_R8_SNORM",
"channels": "r",
"componentType": "snorm",
"bits": { "red": 8 }
"bits": { "red": 8 },
"glInternalFormat": "GL_R8_SNORM"
},
"ANGLE_FORMAT_R16G16_FLOAT": {
"texFormat": "DXGI_FORMAT_R16G16_FLOAT",
......@@ -239,7 +272,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16_FLOAT",
"channels": "rg",
"componentType": "float",
"bits": { "red": 16, "green": 16 }
"bits": { "red": 16, "green": 16 },
"glInternalFormat": "GL_RG16F"
},
"ANGLE_FORMAT_R16G16_SINT": {
"texFormat": "DXGI_FORMAT_R16G16_SINT",
......@@ -247,7 +281,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16_SINT",
"channels": "rg",
"componentType": "int",
"bits": { "red": 16, "green": 16 }
"bits": { "red": 16, "green": 16 },
"glInternalFormat": "GL_RG16I"
},
"ANGLE_FORMAT_R16G16_UINT": {
"texFormat": "DXGI_FORMAT_R16G16_UINT",
......@@ -255,7 +290,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16_UINT",
"channels": "rg",
"componentType": "uint",
"bits": { "red": 16, "green": 16 }
"bits": { "red": 16, "green": 16 },
"glInternalFormat": "GL_RG16UI"
},
"ANGLE_FORMAT_R32G32_FLOAT": {
"texFormat": "DXGI_FORMAT_R32G32_FLOAT",
......@@ -263,7 +299,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32_FLOAT",
"channels": "rg",
"componentType": "float",
"bits": { "red": 32, "green": 32 }
"bits": { "red": 32, "green": 32 },
"glInternalFormat": "GL_RG32F"
},
"ANGLE_FORMAT_R32G32_SINT": {
"texFormat": "DXGI_FORMAT_R32G32_SINT",
......@@ -271,7 +308,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32_SINT",
"channels": "rg",
"componentType": "int",
"bits": { "red": 32, "green": 32 }
"bits": { "red": 32, "green": 32 },
"glInternalFormat": "GL_RG32I"
},
"ANGLE_FORMAT_R32G32_UINT": {
"texFormat": "DXGI_FORMAT_R32G32_UINT",
......@@ -279,7 +317,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32_UINT",
"channels": "rg",
"componentType": "uint",
"bits": { "red": 32, "green": 32 }
"bits": { "red": 32, "green": 32 },
"glInternalFormat": "GL_RG32UI"
},
"ANGLE_FORMAT_R8G8_UNORM": {
"texFormat": "DXGI_FORMAT_R8G8_UNORM",
......@@ -287,14 +326,16 @@
"rtvFormat": "DXGI_FORMAT_R8G8_UNORM",
"channels": "rg",
"componentType": "unorm",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8"
},
"ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE": {
"texFormat": "DXGI_FORMAT_R8G8_UNORM",
"srvFormat": "DXGI_FORMAT_R8G8_UNORM",
"channels": "rg",
"componentType": "unorm",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8"
},
"ANGLE_FORMAT_R8G8_SINT": {
"texFormat": "DXGI_FORMAT_R8G8_SINT",
......@@ -302,7 +343,8 @@
"rtvFormat": "DXGI_FORMAT_R8G8_SINT",
"channels": "rg",
"componentType": "int",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8I"
},
"ANGLE_FORMAT_R8G8_UINT": {
"texFormat": "DXGI_FORMAT_R8G8_UINT",
......@@ -310,14 +352,16 @@
"rtvFormat": "DXGI_FORMAT_R8G8_UINT",
"channels": "rg",
"componentType": "uint",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8UI"
},
"ANGLE_FORMAT_R8G8_SNORM": {
"texFormat": "DXGI_FORMAT_R8G8_SNORM",
"srvFormat": "DXGI_FORMAT_R8G8_SNORM",
"channels": "rg",
"componentType": "snorm",
"bits": { "red": 8, "green": 8 }
"bits": { "red": 8, "green": 8 },
"glInternalFormat": "GL_RG8_SNORM"
},
"ANGLE_FORMAT_R10G10B10A2_UNORM": {
"texFormat": "DXGI_FORMAT_R10G10B10A2_UNORM",
......@@ -325,7 +369,8 @@
"rtvFormat": "DXGI_FORMAT_R10G10B10A2_UNORM",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 10, "green": 10, "blue": 10, "alpha": 2 }
"bits": { "red": 10, "green": 10, "blue": 10, "alpha": 2 },
"glInternalFormat": "GL_RGB10_A2"
},
"ANGLE_FORMAT_R10G10B10A2_UINT": {
"texFormat": "DXGI_FORMAT_R10G10B10A2_UINT",
......@@ -333,7 +378,8 @@
"rtvFormat": "DXGI_FORMAT_R10G10B10A2_UINT",
"channels": "rgba",
"componentType": "uint",
"bits": { "red": 10, "green": 10, "blue": 10, "alpha": 2 }
"bits": { "red": 10, "green": 10, "blue": 10, "alpha": 2 },
"glInternalFormat": "GL_RGB10_A2UI"
},
"ANGLE_FORMAT_R16G16B16A16_SINT": {
"texFormat": "DXGI_FORMAT_R16G16B16A16_SINT",
......@@ -341,7 +387,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16B16A16_SINT",
"channels": "rgba",
"componentType": "int",
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 }
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 },
"glInternalFormat": "GL_RGBA16I"
},
"ANGLE_FORMAT_R16G16B16A16_UINT": {
"texFormat": "DXGI_FORMAT_R16G16B16A16_UINT",
......@@ -349,7 +396,8 @@
"rtvFormat": "DXGI_FORMAT_R16G16B16A16_UINT",
"channels": "rgba",
"componentType": "uint",
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 }
"bits": { "red": 16, "green": 16, "blue": 16, "alpha": 16 },
"glInternalFormat": "GL_RGBA16UI"
},
"ANGLE_FORMAT_R32G32B32A32_SINT": {
"texFormat": "DXGI_FORMAT_R32G32B32A32_SINT",
......@@ -357,7 +405,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32B32A32_SINT",
"channels": "rgba",
"componentType": "int",
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 }
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 },
"glInternalFormat": "GL_RGBA32I"
},
"ANGLE_FORMAT_R32G32B32A32_UINT": {
"texFormat": "DXGI_FORMAT_R32G32B32A32_UINT",
......@@ -365,7 +414,8 @@
"rtvFormat": "DXGI_FORMAT_R32G32B32A32_UINT",
"channels": "rgba",
"componentType": "uint",
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 }
"bits": { "red": 32, "green": 32, "blue": 32, "alpha": 32 },
"glInternalFormat": "GL_RGBA32UI"
},
"ANGLE_FORMAT_B5G6R5_UNORM": {
"texFormat": "DXGI_FORMAT_B5G6R5_UNORM",
......@@ -373,7 +423,8 @@
"rtvFormat": "DXGI_FORMAT_B5G6R5_UNORM",
"channels": "bgr",
"componentType": "unorm",
"bits": { "red": 5, "green": 6, "blue": 5 }
"bits": { "red": 5, "green": 6, "blue": 5 },
"glInternalFormat": "GL_RGB565"
},
"ANGLE_FORMAT_B5G5R5A1_UNORM": {
"texFormat": "DXGI_FORMAT_B5G5R5A1_UNORM",
......@@ -381,7 +432,8 @@
"rtvFormat": "DXGI_FORMAT_B5G5R5A1_UNORM",
"channels": "bgra",
"componentType": "unorm",
"bits": { "red": 5, "green": 5, "blue": 5, "alpha": 1 }
"bits": { "red": 5, "green": 5, "blue": 5, "alpha": 1 },
"glInternalFormat": "GL_RGB5_A1"
},
"ANGLE_FORMAT_R8G8B8A8_SINT": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_SINT",
......@@ -389,7 +441,8 @@
"rtvFormat": "DXGI_FORMAT_R8G8B8A8_SINT",
"channels": "rgba",
"componentType": "int",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_RGBA8I"
},
"ANGLE_FORMAT_R8G8B8A8_UINT": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_UINT",
......@@ -397,21 +450,24 @@
"rtvFormat": "DXGI_FORMAT_R8G8B8A8_UINT",
"channels": "rgba",
"componentType": "uint",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_RGBA8UI"
},
"ANGLE_FORMAT_R8G8B8A8_SNORM": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_SNORM",
"srvFormat": "DXGI_FORMAT_R8G8B8A8_SNORM",
"channels": "rgba",
"componentType": "snorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_RGBA8_SNORM"
},
"ANGLE_FORMAT_R9G9B9E5_SHAREDEXP": {
"texFormat": "DXGI_FORMAT_R9G9B9E5_SHAREDEXP",
"srvFormat": "DXGI_FORMAT_R9G9B9E5_SHAREDEXP",
"channels": "rgb",
"componentType": "float",
"bits": { "red": 9, "green": 9, "blue": 9, "shared": 5 }
"bits": { "red": 9, "green": 9, "blue": 9, "shared": 5 },
"glInternalFormat": "GL_RGB9_E5"
},
"ANGLE_FORMAT_B4G4R4A4_UNORM": {
"texFormat": "DXGI_FORMAT_B4G4R4A4_UNORM",
......@@ -419,7 +475,8 @@
"rtvFormat": "DXGI_FORMAT_B4G4R4A4_UNORM",
"channels": "bgra",
"componentType": "unorm",
"bits": { "red": 4, "green": 4, "blue": 4, "alpha": 4 }
"bits": { "red": 4, "green": 4, "blue": 4, "alpha": 4 },
"glInternalFormat": "GL_RGBA4"
},
"ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB": {
"texFormat": "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",
......@@ -427,13 +484,15 @@
"rtvFormat": "DXGI_FORMAT_R8G8B8A8_UNORM_SRGB",
"channels": "rgba",
"componentType": "unorm",
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 }
"bits": { "red": 8, "green": 8, "blue": 8, "alpha": 8 },
"glInternalFormat": "GL_SRGB8_ALPHA8"
},
"ANGLE_FORMAT_X24_TYPELESS_G8_UINT": {
"texFormat": "DXGI_FORMAT_R24G8_TYPELESS",
"srvFormat": "DXGI_FORMAT_X24_TYPELESS_G8_UINT",
"dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"channels": "ds",
"bits": { "depth": 24, "stencil": 8 }
"bits": { "depth": 24, "stencil": 8 },
"glInternalFormat": "GL_DEPTH24_STENCIL8_OES"
}
}
......@@ -39,6 +39,7 @@ struct ANGLEFormatSet
{
ANGLEFormatSet();
ANGLEFormatSet(ANGLEFormat format,
GLenum glInternalFormat,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
......@@ -49,6 +50,10 @@ struct ANGLEFormatSet
ANGLEFormat format;
// The closest matching GL internal format for the DXGI formats this format uses. Note that this
// may be a different internal format than the one this ANGLE format is used for.
GLenum glInternalFormat;
DXGI_FORMAT texFormat;
DXGI_FORMAT srvFormat;
DXGI_FORMAT rtvFormat;
......
......@@ -99,6 +99,7 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps)
ANGLEFormatSet::ANGLEFormatSet()
: format(ANGLE_FORMAT_NONE),
glInternalFormat(GL_NONE),
texFormat(DXGI_FORMAT_UNKNOWN),
srvFormat(DXGI_FORMAT_UNKNOWN),
rtvFormat(DXGI_FORMAT_UNKNOWN),
......@@ -126,12 +127,14 @@ TextureFormat::TextureFormat(GLenum internalFormat,
}
ANGLEFormatSet::ANGLEFormatSet(ANGLEFormat format,
GLenum glInternalFormat,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat,
ANGLEFormat swizzleFormat)
: format(format),
glInternalFormat(glInternalFormat),
texFormat(texFormat),
srvFormat(srvFormat),
rtvFormat(rtvFormat),
......@@ -148,6 +151,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_A8_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_A8_UNORM,
GL_ALPHA8_EXT,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
......@@ -158,6 +162,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_B4G4R4A4_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B4G4R4A4_UNORM,
GL_RGBA4,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
......@@ -168,6 +173,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_B5G5R5A1_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B5G5R5A1_UNORM,
GL_RGB5_A1,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
......@@ -178,6 +184,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_B5G6R5_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B5G6R5_UNORM,
GL_RGB565,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
......@@ -188,6 +195,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_B8G8R8A8_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B8G8R8A8_UNORM,
GL_BGRA8_EXT,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
......@@ -198,6 +206,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_BC1_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC1_UNORM,
GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -208,6 +217,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_BC2_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC2_UNORM,
GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -218,6 +228,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_BC3_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC3_UNORM,
GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -228,6 +239,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D16_UNORM_FL10:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D16_UNORM_FL10,
GL_DEPTH_COMPONENT16,
DXGI_FORMAT_R16_TYPELESS,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -238,6 +250,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D16_UNORM_FL9_3:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D16_UNORM_FL9_3,
GL_DEPTH_COMPONENT16,
DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
......@@ -248,6 +261,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
GL_DEPTH24_STENCIL8_OES,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
......@@ -258,6 +272,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
GL_DEPTH24_STENCIL8_OES,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
......@@ -268,6 +283,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D32_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D32_FLOAT,
GL_DEPTH_COMPONENT32F,
DXGI_FORMAT_R32_TYPELESS,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
......@@ -278,6 +294,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10,
GL_DEPTH32F_STENCIL8,
DXGI_FORMAT_R32G8X24_TYPELESS,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
DXGI_FORMAT_UNKNOWN,
......@@ -288,6 +305,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_NONE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_NONE,
GL_NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
......@@ -298,6 +316,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R10G10B10A2_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R10G10B10A2_UINT,
GL_RGB10_A2UI,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
......@@ -308,6 +327,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R10G10B10A2_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R10G10B10A2_UNORM,
GL_RGB10_A2,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
......@@ -318,6 +338,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R11G11B10_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R11G11B10_FLOAT,
GL_R11F_G11F_B10F,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
......@@ -328,6 +349,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16B16A16_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
......@@ -338,6 +360,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16B16A16_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_SINT,
GL_RGBA16I,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
......@@ -348,6 +371,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16B16A16_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_UINT,
GL_RGBA16UI,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
......@@ -358,6 +382,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16B16A16_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_UNORM,
GL_NONE,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
......@@ -368,6 +393,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_FLOAT,
GL_RG16F,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
......@@ -378,6 +404,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_SINT,
GL_RG16I,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
......@@ -388,6 +415,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16G16_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_UINT,
GL_RG16UI,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
......@@ -398,6 +426,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_FLOAT,
GL_R16F,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
......@@ -408,6 +437,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_SINT,
GL_R16I,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
......@@ -418,6 +448,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R16_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_UINT,
GL_R16UI,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
......@@ -428,6 +459,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32B32A32_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
......@@ -438,6 +470,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32B32A32_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_SINT,
GL_RGBA32I,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
......@@ -448,6 +481,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32B32A32_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_UINT,
GL_RGBA32UI,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
......@@ -458,6 +492,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_FLOAT,
GL_RG32F,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
......@@ -468,6 +503,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_SINT,
GL_RG32I,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
......@@ -478,6 +514,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32G32_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_UINT,
GL_RG32UI,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
......@@ -488,6 +525,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32_FLOAT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_FLOAT,
GL_R32F,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
......@@ -498,6 +536,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_SINT,
GL_R32I,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
......@@ -508,6 +547,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R32_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_UINT,
GL_R32UI,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
......@@ -518,6 +558,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_SINT,
GL_RGBA8I,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
......@@ -528,6 +569,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_SNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_SNORM,
GL_RGBA8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -538,6 +580,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UINT,
GL_RGBA8UI,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
......@@ -548,6 +591,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
......@@ -558,6 +602,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
GL_RGBA8,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -568,6 +613,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
......@@ -578,6 +624,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
GL_SRGB8_ALPHA8,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
......@@ -588,6 +635,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SINT,
GL_RG8I,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
......@@ -598,6 +646,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_SNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SNORM,
GL_RG8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -608,6 +657,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE,
GL_RG8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -618,6 +668,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UINT,
GL_RG8UI,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
......@@ -628,6 +679,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UNORM,
GL_RG8,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
......@@ -638,6 +690,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE,
GL_RG8,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -648,6 +701,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_SINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SINT,
GL_R8I,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
......@@ -658,6 +712,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_SNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SNORM,
GL_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -668,6 +723,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_SNORM_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SNORM_NONRENDERABLE,
GL_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -678,6 +734,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UINT,
GL_R8UI,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
......@@ -688,6 +745,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_UNORM:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UNORM,
GL_R8,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
......@@ -698,6 +756,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R8_UNORM_NONRENDERABLE:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UNORM_NONRENDERABLE,
GL_R8,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
......@@ -708,6 +767,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_R9G9B9E5_SHAREDEXP:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R9G9B9E5_SHAREDEXP,
GL_RGB9_E5,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_UNKNOWN,
......@@ -718,6 +778,7 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
case ANGLE_FORMAT_X24_TYPELESS_G8_UINT:
{
static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_X24_TYPELESS_G8_UINT,
GL_DEPTH24_STENCIL8_OES,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_X24_TYPELESS_G8_UINT,
DXGI_FORMAT_UNKNOWN,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment