Commit 43341b7a by Jamie Madill Committed by Commit Bot

D3D11: Merge FL10 and 9_3 ANGLE formats.

This will let us use ANGLE formats to describe a format layout rather than a Renderer-specific usage. This in turn will let us use ANGLE formats for other Renderers, as a universal thing. BUG=angleproject:1455 Change-Id: I56492cb809d4ef6ac4b962cb12affbc853bbdaa0 Reviewed-on: https://chromium-review.googlesource.com/365269Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 509a1d46
...@@ -1984,8 +1984,9 @@ gl::Error Blit11::initResolveDepthStencil(const gl::Extents &extents) ...@@ -1984,8 +1984,9 @@ gl::Error Blit11::initResolveDepthStencil(const gl::Extents &extents)
releaseResolveDepthStencilResources(); releaseResolveDepthStencilResources();
} }
auto resolvedFormat = d3d11::ANGLE_FORMAT_R32G32_FLOAT; auto resolvedFormat = d3d11::ANGLE_FORMAT_R32G32_FLOAT;
const auto &formatSet = d3d11::GetANGLEFormatSet(resolvedFormat); const auto &formatSet =
d3d11::GetANGLEFormatSet(resolvedFormat, mRenderer->getRenderer11DeviceCaps());
D3D11_TEXTURE2D_DESC textureDesc; D3D11_TEXTURE2D_DESC textureDesc;
textureDesc.Width = extents.width; textureDesc.Width = extents.width;
......
...@@ -3280,7 +3280,8 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G ...@@ -3280,7 +3280,8 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G
{ {
*outRT = new TextureRenderTarget11( *outRT = new TextureRenderTarget11(
static_cast<ID3D11RenderTargetView *>(nullptr), nullptr, nullptr, nullptr, format, static_cast<ID3D11RenderTargetView *>(nullptr), nullptr, nullptr, nullptr, format,
d3d11::GetANGLEFormatSet(d3d11::ANGLE_FORMAT_NONE), width, height, 1, supportedSamples); d3d11::GetANGLEFormatSet(d3d11::ANGLE_FORMAT_NONE, mRenderer11DeviceCaps), width,
height, 1, supportedSamples);
} }
return gl::Error(GL_NO_ERROR); return gl::Error(GL_NO_ERROR);
......
...@@ -1569,7 +1569,8 @@ TextureStorage11_EGLImage::TextureStorage11_EGLImage(Renderer11 *renderer, EGLIm ...@@ -1569,7 +1569,8 @@ TextureStorage11_EGLImage::TextureStorage11_EGLImage(Renderer11 *renderer, EGLIm
mMipLevels = 1; mMipLevels = 1;
mTextureFormatSet = &renderTarget11->getFormatSet(); mTextureFormatSet = &renderTarget11->getFormatSet();
mSwizzleFormatSet = &d3d11::GetANGLEFormatSet(mTextureFormatSet->swizzleFormat); mSwizzleFormatSet = &d3d11::GetANGLEFormatSet(mTextureFormatSet->swizzleFormat,
renderer->getRenderer11DeviceCaps());
mTextureWidth = renderTarget11->getWidth(); mTextureWidth = renderTarget11->getWidth();
mTextureHeight = renderTarget11->getHeight(); mTextureHeight = renderTarget11->getHeight();
mTextureDepth = 1; mTextureDepth = 1;
......
...@@ -80,22 +80,20 @@ ...@@ -80,22 +80,20 @@
"swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM", "swizzleFormat": "ANGLE_FORMAT_R8G8B8A8_UNORM",
"glInternalFormat": "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE" "glInternalFormat": "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"
}, },
"ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10": { "ANGLE_FORMAT_D24_UNORM_S8_UINT": {
"texFormat": "DXGI_FORMAT_R24G8_TYPELESS", "FL10Plus": {
"srvFormat": "DXGI_FORMAT_R24_UNORM_X8_TYPELESS", "texFormat": "DXGI_FORMAT_R24G8_TYPELESS",
"srvFormat": "DXGI_FORMAT_R24_UNORM_X8_TYPELESS"
},
"FL9_3": {
"texFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT"
},
"dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT", "dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"channels": "ds", "channels": "ds",
"bits": { "depth": 24, "stencil": 8 }, "bits": { "depth": 24, "stencil": 8 },
"glInternalFormat": "GL_DEPTH24_STENCIL8_OES" "glInternalFormat": "GL_DEPTH24_STENCIL8_OES"
}, },
"ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3": { "ANGLE_FORMAT_D32_FLOAT_S8X24_UINT": {
"texFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"dsvFormat": "DXGI_FORMAT_D24_UNORM_S8_UINT",
"channels": "ds",
"bits": { "depth": 24, "stencil": 8 },
"glInternalFormat": "GL_DEPTH24_STENCIL8_OES"
},
"ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10": {
"texFormat": "DXGI_FORMAT_R32G8X24_TYPELESS", "texFormat": "DXGI_FORMAT_R32G8X24_TYPELESS",
"srvFormat": "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS", "srvFormat": "DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS",
"dsvFormat": "DXGI_FORMAT_D32_FLOAT_S8X24_UINT", "dsvFormat": "DXGI_FORMAT_D32_FLOAT_S8X24_UINT",
...@@ -103,17 +101,14 @@ ...@@ -103,17 +101,14 @@
"bits": { "depth": 32, "stencil": 8 }, "bits": { "depth": 32, "stencil": 8 },
"glInternalFormat": "GL_DEPTH32F_STENCIL8" "glInternalFormat": "GL_DEPTH32F_STENCIL8"
}, },
"ANGLE_FORMAT_D16_UNORM_FL10": { "ANGLE_FORMAT_D16_UNORM": {
"texFormat": "DXGI_FORMAT_R16_TYPELESS", "FL10Plus": {
"srvFormat": "DXGI_FORMAT_R16_UNORM", "texFormat": "DXGI_FORMAT_R16_TYPELESS",
"dsvFormat": "DXGI_FORMAT_D16_UNORM", "srvFormat": "DXGI_FORMAT_R16_UNORM"
"channels": "d", },
"componentType": "unorm", "FL9_3": {
"bits": { "depth": 16 }, "texFormat": "DXGI_FORMAT_D16_UNORM"
"glInternalFormat": "GL_DEPTH_COMPONENT16" },
},
"ANGLE_FORMAT_D16_UNORM_FL9_3": {
"texFormat": "DXGI_FORMAT_D16_UNORM",
"dsvFormat": "DXGI_FORMAT_D16_UNORM", "dsvFormat": "DXGI_FORMAT_D16_UNORM",
"channels": "d", "channels": "d",
"componentType": "unorm", "componentType": "unorm",
......
...@@ -77,27 +77,25 @@ ...@@ -77,27 +77,25 @@
"OnlyFL10Plus": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB" "OnlyFL10Plus": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB"
}, },
"GL_DEPTH24_STENCIL8": { "GL_DEPTH24_STENCIL8": {
"OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10", "OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT",
"OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3" "OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT"
}, },
"GL_DEPTH32F_STENCIL8": { "GL_DEPTH32F_STENCIL8": {
"OnlyFL10Plus": "ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10", "OnlyFL10Plus": "ANGLE_FORMAT_D32_FLOAT_S8X24_UINT"
"OnlyFL9_3": "ANGLE_FORMAT_NONE"
}, },
"GL_DEPTH_COMPONENT16": { "GL_DEPTH_COMPONENT16": {
"OnlyFL10Plus": "ANGLE_FORMAT_D16_UNORM_FL10", "OnlyFL10Plus": "ANGLE_FORMAT_D16_UNORM",
"OnlyFL9_3": "ANGLE_FORMAT_D16_UNORM_FL9_3" "OnlyFL9_3": "ANGLE_FORMAT_D16_UNORM"
}, },
"GL_DEPTH_COMPONENT24": { "GL_DEPTH_COMPONENT24": {
"OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10", "OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT",
"OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3" "OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT"
}, },
"GL_DEPTH_COMPONENT32F": { "GL_DEPTH_COMPONENT32F": {
"OnlyFL10Plus": "ANGLE_FORMAT_D32_FLOAT", "OnlyFL10Plus": "ANGLE_FORMAT_D32_FLOAT"
"OnlyFL9_3": "ANGLE_FORMAT_NONE"
}, },
"GL_DEPTH_COMPONENT32_OES": { "GL_DEPTH_COMPONENT32_OES": {
"OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10" "OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT"
}, },
"GL_ETC1_RGB8_OES": "ANGLE_FORMAT_R8G8B8A8_UNORM", "GL_ETC1_RGB8_OES": "ANGLE_FORMAT_R8G8B8A8_UNORM",
"GL_ETC1_RGB8_LOSSY_DECODE_ANGLE": "ANGLE_FORMAT_BC1_UNORM", "GL_ETC1_RGB8_LOSSY_DECODE_ANGLE": "ANGLE_FORMAT_BC1_UNORM",
...@@ -171,8 +169,8 @@ ...@@ -171,8 +169,8 @@
"GL_SRGB8": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB", "GL_SRGB8": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB",
"GL_SRGB8_ALPHA8": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB", "GL_SRGB8_ALPHA8": "ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB",
"GL_STENCIL_INDEX8": { "GL_STENCIL_INDEX8": {
"OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10", "OnlyFL10Plus": "ANGLE_FORMAT_D24_UNORM_S8_UINT",
"OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3" "OnlyFL9_3": "ANGLE_FORMAT_D24_UNORM_S8_UINT"
}, },
"GL_R16_EXT": "ANGLE_FORMAT_R16_UNORM", "GL_R16_EXT": "ANGLE_FORMAT_R16_UNORM",
"GL_RG16_EXT": "ANGLE_FORMAT_R16G16_UNORM", "GL_RG16_EXT": "ANGLE_FORMAT_R16G16_UNORM",
......
...@@ -81,7 +81,8 @@ struct TextureFormat : public angle::NonCopyable ...@@ -81,7 +81,8 @@ struct TextureFormat : public angle::NonCopyable
{ {
TextureFormat(GLenum internalFormat, TextureFormat(GLenum internalFormat,
const ANGLEFormat angleFormat, const ANGLEFormat angleFormat,
InitializeTextureDataFunction internalFormatInitializer); InitializeTextureDataFunction internalFormatInitializer,
const Renderer11DeviceCaps &deviceCaps);
const ANGLEFormatSet *formatSet; const ANGLEFormatSet *formatSet;
const ANGLEFormatSet *swizzleFormatSet; const ANGLEFormatSet *swizzleFormatSet;
...@@ -92,7 +93,8 @@ struct TextureFormat : public angle::NonCopyable ...@@ -92,7 +93,8 @@ struct TextureFormat : public angle::NonCopyable
LoadFunctionMap loadFunctions; LoadFunctionMap loadFunctions;
}; };
const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat); const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat,
const Renderer11DeviceCaps &deviceCaps);
const TextureFormat &GetTextureFormatInfo(GLenum internalformat, const TextureFormat &GetTextureFormatInfo(GLenum internalformat,
const Renderer11DeviceCaps &renderer11DeviceCaps); const Renderer11DeviceCaps &renderer11DeviceCaps);
......
...@@ -22,12 +22,10 @@ enum ANGLEFormat ...@@ -22,12 +22,10 @@ enum ANGLEFormat
ANGLE_FORMAT_BC1_UNORM, ANGLE_FORMAT_BC1_UNORM,
ANGLE_FORMAT_BC2_UNORM, ANGLE_FORMAT_BC2_UNORM,
ANGLE_FORMAT_BC3_UNORM, ANGLE_FORMAT_BC3_UNORM,
ANGLE_FORMAT_D16_UNORM_FL10, ANGLE_FORMAT_D16_UNORM,
ANGLE_FORMAT_D16_UNORM_FL9_3, ANGLE_FORMAT_D24_UNORM_S8_UINT,
ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
ANGLE_FORMAT_D32_FLOAT, ANGLE_FORMAT_D32_FLOAT,
ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10, ANGLE_FORMAT_D32_FLOAT_S8X24_UINT,
ANGLE_FORMAT_NONE, ANGLE_FORMAT_NONE,
ANGLE_FORMAT_R10G10B10A2_UINT, ANGLE_FORMAT_R10G10B10A2_UINT,
ANGLE_FORMAT_R10G10B10A2_UNORM, ANGLE_FORMAT_R10G10B10A2_UNORM,
......
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