Commit 9f09037b by Geoff Lang Committed by Commit Bot

Change dEQP ES 3.1 expectations from FAIL to SKIP.

UNIMPLEMENTED debug spam was causing the tests time time out. We can mark them as FAIL again once the dEQP test setup/tear down code doesn't emmit so many messages. Implement a couple validation cases for ES 3.1 to greatly reduce the spam. BUG=angleproject:1647 BUG=angleproject:1442 Change-Id: Ie7b4ac8737a2df1c0ada6ad53154ddf2f37d9c3c Reviewed-on: https://chromium-review.googlesource.com/415520 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 922cbfcb
...@@ -3630,16 +3630,32 @@ void Context::bindBuffer(GLenum target, GLuint buffer) ...@@ -3630,16 +3630,32 @@ void Context::bindBuffer(GLenum target, GLuint buffer)
bindGenericTransformFeedbackBuffer(buffer); bindGenericTransformFeedbackBuffer(buffer);
break; break;
case GL_ATOMIC_COUNTER_BUFFER: case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
case GL_SHADER_STORAGE_BUFFER: case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
case GL_DRAW_INDIRECT_BUFFER: case GL_DRAW_INDIRECT_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
case GL_DISPATCH_INDIRECT_BUFFER: case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
default: default:
......
...@@ -637,7 +637,11 @@ void State::setEnableFeature(GLenum feature, bool enabled) ...@@ -637,7 +637,11 @@ void State::setEnableFeature(GLenum feature, bool enabled)
case GL_PRIMITIVE_RESTART_FIXED_INDEX: setPrimitiveRestart(enabled); break; case GL_PRIMITIVE_RESTART_FIXED_INDEX: setPrimitiveRestart(enabled); break;
case GL_RASTERIZER_DISCARD: setRasterizerDiscard(enabled); break; case GL_RASTERIZER_DISCARD: setRasterizerDiscard(enabled); break;
case GL_SAMPLE_MASK: case GL_SAMPLE_MASK:
UNIMPLEMENTED(); if (enabled)
{
// Enabling this feature is not implemented yet.
UNIMPLEMENTED();
}
break; break;
case GL_DEBUG_OUTPUT_SYNCHRONOUS: case GL_DEBUG_OUTPUT_SYNCHRONOUS:
mDebug.setOutputSynchronous(enabled); mDebug.setOutputSynchronous(enabled);
......
...@@ -91,6 +91,7 @@ TextureState::TextureState(GLenum target) ...@@ -91,6 +91,7 @@ TextureState::TextureState(GLenum target)
mSamplerState(SamplerState::CreateDefaultForTarget(target)), mSamplerState(SamplerState::CreateDefaultForTarget(target)),
mBaseLevel(0), mBaseLevel(0),
mMaxLevel(1000), mMaxLevel(1000),
mDepthStencilTextureMode(GL_DEPTH_COMPONENT),
mImmutableFormat(false), mImmutableFormat(false),
mImmutableLevels(0), mImmutableLevels(0),
mUsage(GL_NONE), mUsage(GL_NONE),
...@@ -724,6 +725,23 @@ GLuint Texture::getMaxLevel() const ...@@ -724,6 +725,23 @@ GLuint Texture::getMaxLevel() const
return mState.mMaxLevel; return mState.mMaxLevel;
} }
void Texture::setDepthStencilTextureMode(GLenum mode)
{
if (mode != mState.mDepthStencilTextureMode)
{
// Changing the mode from the default state (GL_DEPTH_COMPONENT) is not implemented yet
UNIMPLEMENTED();
}
// TODO(geofflang): add dirty bits
mState.mDepthStencilTextureMode = mode;
}
GLenum Texture::getDepthStencilTextureMode() const
{
return mState.mDepthStencilTextureMode;
}
bool Texture::getImmutableFormat() const bool Texture::getImmutableFormat() const
{ {
return mState.mImmutableFormat; return mState.mImmutableFormat;
......
...@@ -132,6 +132,8 @@ struct TextureState final : public angle::NonCopyable ...@@ -132,6 +132,8 @@ struct TextureState final : public angle::NonCopyable
GLuint mBaseLevel; GLuint mBaseLevel;
GLuint mMaxLevel; GLuint mMaxLevel;
GLenum mDepthStencilTextureMode;
bool mImmutableFormat; bool mImmutableFormat;
GLuint mImmutableLevels; GLuint mImmutableLevels;
...@@ -228,6 +230,9 @@ class Texture final : public egl::ImageSibling, ...@@ -228,6 +230,9 @@ class Texture final : public egl::ImageSibling,
void setMaxLevel(GLuint maxLevel); void setMaxLevel(GLuint maxLevel);
GLuint getMaxLevel() const; GLuint getMaxLevel() const;
void setDepthStencilTextureMode(GLenum mode);
GLenum getDepthStencilTextureMode() const;
bool getImmutableFormat() const; bool getImmutableFormat() const;
GLuint getImmutableLevels() const; GLuint getImmutableLevels() const;
......
...@@ -157,7 +157,7 @@ void SetTexParameterBase(Texture *texture, GLenum pname, const ParamType *params ...@@ -157,7 +157,7 @@ void SetTexParameterBase(Texture *texture, GLenum pname, const ParamType *params
texture->setMaxLod(ConvertToGLfloat(params[0])); texture->setMaxLod(ConvertToGLfloat(params[0]));
break; break;
case GL_DEPTH_STENCIL_TEXTURE_MODE: case GL_DEPTH_STENCIL_TEXTURE_MODE:
UNIMPLEMENTED(); texture->setDepthStencilTextureMode(ConvertToGLenum(params[0]));
break; break;
case GL_TEXTURE_SRGB_DECODE_EXT: case GL_TEXTURE_SRGB_DECODE_EXT:
texture->setSRGBDecode(ConvertToGLenum(params[0])); texture->setSRGBDecode(ConvertToGLenum(params[0]));
......
...@@ -166,7 +166,6 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly) ...@@ -166,7 +166,6 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly)
return context->getExtensions().sRGBWriteControl; return context->getExtensions().sRGBWriteControl;
case GL_SAMPLE_MASK: case GL_SAMPLE_MASK:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1); return context->getClientVersion() >= Version(3, 1);
default: default:
...@@ -822,7 +821,16 @@ bool ValidateTexParameterBase(Context *context, ...@@ -822,7 +821,16 @@ bool ValidateTexParameterBase(Context *context,
context->handleError(Error(GL_INVALID_ENUM, "pname requires OpenGL ES 3.1.")); context->handleError(Error(GL_INVALID_ENUM, "pname requires OpenGL ES 3.1."));
return false; return false;
} }
UNIMPLEMENTED(); switch (ConvertToGLenum(params[0]))
{
case GL_DEPTH_COMPONENT:
case GL_STENCIL_INDEX:
break;
default:
context->handleError(Error(GL_INVALID_ENUM, "Unknown param value."));
return false;
}
break; break;
case GL_TEXTURE_SRGB_DECODE_EXT: case GL_TEXTURE_SRGB_DECODE_EXT:
...@@ -1309,7 +1317,6 @@ bool ValidTextureTarget(const ValidationContext *context, GLenum target) ...@@ -1309,7 +1317,6 @@ bool ValidTextureTarget(const ValidationContext *context, GLenum target)
return (context->getClientMajorVersion() >= 3); return (context->getClientMajorVersion() >= 3);
case GL_TEXTURE_2D_MULTISAMPLE: case GL_TEXTURE_2D_MULTISAMPLE:
UNIMPLEMENTED();
return (context->getClientVersion() >= Version(3, 1)); return (context->getClientVersion() >= Version(3, 1));
default: default:
...@@ -1427,7 +1434,6 @@ bool ValidBufferTarget(const ValidationContext *context, GLenum target) ...@@ -1427,7 +1434,6 @@ bool ValidBufferTarget(const ValidationContext *context, GLenum target)
case GL_SHADER_STORAGE_BUFFER: case GL_SHADER_STORAGE_BUFFER:
case GL_DRAW_INDIRECT_BUFFER: case GL_DRAW_INDIRECT_BUFFER:
case GL_DISPATCH_INDIRECT_BUFFER: case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1); return context->getClientVersion() >= Version(3, 1);
default: default:
......
...@@ -2264,7 +2264,6 @@ bool ValidateBindTexture(Context *context, GLenum target, GLuint texture) ...@@ -2264,7 +2264,6 @@ bool ValidateBindTexture(Context *context, GLenum target, GLuint texture)
context->handleError(Error(GL_INVALID_ENUM, "Context does not support GLES3.1")); context->handleError(Error(GL_INVALID_ENUM, "Context does not support GLES3.1"));
return false; return false;
} }
UNIMPLEMENTED();
break; break;
case GL_TEXTURE_EXTERNAL_OES: case GL_TEXTURE_EXTERNAL_OES:
......
...@@ -840,11 +840,23 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) ...@@ -840,11 +840,23 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
break; break;
case GL_ATOMIC_COUNTER_BUFFER: case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED(); if (index >= caps.maxAtomicCounterBufferBindings)
{
context->handleError(Error(
GL_INVALID_VALUE,
"Binding index must be less than GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS."));
return;
}
break; break;
case GL_SHADER_STORAGE_BUFFER: case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED(); if (index >= caps.maxShaderStorageBufferBindings)
{
context->handleError(Error(
GL_INVALID_VALUE,
"Binding index must be less than GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS."));
return;
}
break; break;
default: default:
...@@ -882,11 +894,19 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) ...@@ -882,11 +894,19 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
break; break;
case GL_ATOMIC_COUNTER_BUFFER: case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
case GL_SHADER_STORAGE_BUFFER: case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED(); if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break; break;
default: default:
......
...@@ -260,7 +260,11 @@ void GL_APIENTRY BindProgramPipeline(GLuint pipeline) ...@@ -260,7 +260,11 @@ void GL_APIENTRY BindProgramPipeline(GLuint pipeline)
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
UNIMPLEMENTED(); if (pipeline != 0)
{
// Binding non-zero pipelines is not implemented yet.
UNIMPLEMENTED();
}
} }
} }
...@@ -945,7 +949,11 @@ void GL_APIENTRY BindImageTexture(GLuint unit, ...@@ -945,7 +949,11 @@ void GL_APIENTRY BindImageTexture(GLuint unit,
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
UNIMPLEMENTED(); if (texture != 0)
{
// Binding non-zero image textures is not implemented yet.
UNIMPLEMENTED();
}
} }
} }
...@@ -1027,7 +1035,11 @@ void GL_APIENTRY SampleMaski(GLuint maskNumber, GLbitfield mask) ...@@ -1027,7 +1035,11 @@ void GL_APIENTRY SampleMaski(GLuint maskNumber, GLbitfield mask)
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
UNIMPLEMENTED(); if (mask != ~GLbitfield(0))
{
// Setting a non-default sample mask is not implemented yet.
UNIMPLEMENTED();
}
} }
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
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