Commit c0312721 by Qin Jiajia Committed by Commit Bot

Add ES 3.1 version and enum to support dEQP ES 3.1 tests on Win

Change supported ES version to 3.1 on win. Without GL_TEXTURE_2D_MULTISAMPLE enum, it will reach UNREACHABLE() when running dEQP ES 3.1 tests on Win. BUG=angleproject:1442 Change-Id: I55114854c4e9cba1caac10d3da5b416ef66a0d3e Reviewed-on: https://chromium-review.googlesource.com/414606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent f1a2aefc
......@@ -82,6 +82,9 @@ TextureImpl *Context11::createTexture(const gl::TextureState &state)
return new TextureD3D_2DArray(state, mRenderer);
case GL_TEXTURE_EXTERNAL_OES:
return new TextureD3D_External(state, mRenderer);
case GL_TEXTURE_2D_MULTISAMPLE:
UNIMPLEMENTED();
break;
default:
UNREACHABLE();
}
......
......@@ -4248,7 +4248,7 @@ gl::Error Renderer11::blitRenderbufferRect(const gl::Rectangle &readRectIn,
bool Renderer11::isES3Capable() const
{
return (d3d11_gl::GetMaximumClientVersion(mRenderer11DeviceCaps.featureLevel) > 2);
return (d3d11_gl::GetMaximumClientVersion(mRenderer11DeviceCaps.featureLevel).major > 2);
};
void Renderer11::onSwap()
......@@ -4577,7 +4577,7 @@ gl::Error Renderer11::getScratchMemoryBuffer(size_t requestedSize, MemoryBuffer
gl::Version Renderer11::getMaxSupportedESVersion() const
{
return gl::Version(d3d11_gl::GetMaximumClientVersion(mRenderer11DeviceCaps.featureLevel), 0);
return d3d11_gl::GetMaximumClientVersion(mRenderer11DeviceCaps.featureLevel);
}
gl::DebugAnnotator *Renderer11::getAnnotator()
......
......@@ -72,7 +72,7 @@ class DXGISupportHelper : angle::NonCopyable
D3D_FEATURE_LEVEL mFeatureLevel;
};
gl::TextureCaps GenerateTextureFormatCaps(GLint maxClientVersion,
gl::TextureCaps GenerateTextureFormatCaps(gl::Version maxClientVersion,
GLenum internalFormat,
ID3D11Device *device,
const Renderer11DeviceCaps &renderer11DeviceCaps)
......@@ -88,7 +88,7 @@ gl::TextureCaps GenerateTextureFormatCaps(GLint maxClientVersion,
if (internalFormatInfo.depthBits == 0 && internalFormatInfo.stencilBits == 0)
{
texSupportMask |= D3D11_FORMAT_SUPPORT_TEXTURECUBE;
if (maxClientVersion > 2)
if (maxClientVersion.major > 2)
{
texSupportMask |= D3D11_FORMAT_SUPPORT_TEXTURE3D;
}
......@@ -1023,24 +1023,25 @@ unsigned int GetReservedFragmentUniformVectors(D3D_FEATURE_LEVEL featureLevel)
}
}
GLint GetMaximumClientVersion(D3D_FEATURE_LEVEL featureLevel)
gl::Version GetMaximumClientVersion(D3D_FEATURE_LEVEL featureLevel)
{
switch (featureLevel)
{
case D3D_FEATURE_LEVEL_11_1:
case D3D_FEATURE_LEVEL_11_0:
return gl::Version(3, 1);
case D3D_FEATURE_LEVEL_10_1:
return 3;
return gl::Version(3, 0);
case D3D_FEATURE_LEVEL_10_0:
case D3D_FEATURE_LEVEL_9_3:
case D3D_FEATURE_LEVEL_9_2:
case D3D_FEATURE_LEVEL_9_1:
return 2;
return gl::Version(2, 0);
default:
UNREACHABLE();
return 0;
return gl::Version(0, 0);
}
}
......@@ -1052,7 +1053,8 @@ void GenerateCaps(ID3D11Device *device, ID3D11DeviceContext *deviceContext, cons
const gl::FormatSet &allFormats = gl::GetAllSizedInternalFormats();
for (gl::FormatSet::const_iterator internalFormat = allFormats.begin(); internalFormat != allFormats.end(); ++internalFormat)
{
gl::TextureCaps textureCaps = GenerateTextureFormatCaps(GetMaximumClientVersion(featureLevel), *internalFormat, device, renderer11DeviceCaps);
gl::TextureCaps textureCaps = GenerateTextureFormatCaps(
GetMaximumClientVersion(featureLevel), *internalFormat, device, renderer11DeviceCaps);
textureCapsMap->insert(*internalFormat, textureCaps);
maxSamples = std::max(maxSamples, textureCaps.getMaxSamples());
......
......@@ -65,7 +65,7 @@ unsigned int GetReservedVertexUniformVectors(D3D_FEATURE_LEVEL featureLevel);
unsigned int GetReservedFragmentUniformVectors(D3D_FEATURE_LEVEL featureLevel);
GLint GetMaximumClientVersion(D3D_FEATURE_LEVEL featureLevel);
gl::Version GetMaximumClientVersion(D3D_FEATURE_LEVEL featureLevel);
void GenerateCaps(ID3D11Device *device, ID3D11DeviceContext *deviceContext, const Renderer11DeviceCaps &renderer11DeviceCaps, gl::Caps *caps,
gl::TextureCapsMap *textureCapsMap, gl::Extensions *extensions, gl::Limitations *limitations);
......
......@@ -35,7 +35,7 @@ inline bool SupportsFormat(DXGI_FORMAT format, const Renderer11DeviceCaps &devic
D3D11_FORMAT_SUPPORT_SHADER_SAMPLE | D3D11_FORMAT_SUPPORT_MIP |
D3D11_FORMAT_SUPPORT_RENDER_TARGET;
if (d3d11_gl::GetMaximumClientVersion(deviceCaps.featureLevel) > 2)
if (d3d11_gl::GetMaximumClientVersion(deviceCaps.featureLevel).major > 2)
{
mustSupport |= D3D11_FORMAT_SUPPORT_TEXTURE3D;
}
......
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