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)
bindGenericTransformFeedbackBuffer(buffer);
break;
case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
case GL_DRAW_INDIRECT_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
default:
......
......@@ -637,7 +637,11 @@ void State::setEnableFeature(GLenum feature, bool enabled)
case GL_PRIMITIVE_RESTART_FIXED_INDEX: setPrimitiveRestart(enabled); break;
case GL_RASTERIZER_DISCARD: setRasterizerDiscard(enabled); break;
case GL_SAMPLE_MASK:
UNIMPLEMENTED();
if (enabled)
{
// Enabling this feature is not implemented yet.
UNIMPLEMENTED();
}
break;
case GL_DEBUG_OUTPUT_SYNCHRONOUS:
mDebug.setOutputSynchronous(enabled);
......
......@@ -91,6 +91,7 @@ TextureState::TextureState(GLenum target)
mSamplerState(SamplerState::CreateDefaultForTarget(target)),
mBaseLevel(0),
mMaxLevel(1000),
mDepthStencilTextureMode(GL_DEPTH_COMPONENT),
mImmutableFormat(false),
mImmutableLevels(0),
mUsage(GL_NONE),
......@@ -724,6 +725,23 @@ GLuint Texture::getMaxLevel() const
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
{
return mState.mImmutableFormat;
......
......@@ -132,6 +132,8 @@ struct TextureState final : public angle::NonCopyable
GLuint mBaseLevel;
GLuint mMaxLevel;
GLenum mDepthStencilTextureMode;
bool mImmutableFormat;
GLuint mImmutableLevels;
......@@ -228,6 +230,9 @@ class Texture final : public egl::ImageSibling,
void setMaxLevel(GLuint maxLevel);
GLuint getMaxLevel() const;
void setDepthStencilTextureMode(GLenum mode);
GLenum getDepthStencilTextureMode() const;
bool getImmutableFormat() const;
GLuint getImmutableLevels() const;
......
......@@ -157,7 +157,7 @@ void SetTexParameterBase(Texture *texture, GLenum pname, const ParamType *params
texture->setMaxLod(ConvertToGLfloat(params[0]));
break;
case GL_DEPTH_STENCIL_TEXTURE_MODE:
UNIMPLEMENTED();
texture->setDepthStencilTextureMode(ConvertToGLenum(params[0]));
break;
case GL_TEXTURE_SRGB_DECODE_EXT:
texture->setSRGBDecode(ConvertToGLenum(params[0]));
......
......@@ -166,7 +166,6 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly)
return context->getExtensions().sRGBWriteControl;
case GL_SAMPLE_MASK:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1);
default:
......@@ -822,7 +821,16 @@ bool ValidateTexParameterBase(Context *context,
context->handleError(Error(GL_INVALID_ENUM, "pname requires OpenGL ES 3.1."));
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;
case GL_TEXTURE_SRGB_DECODE_EXT:
......@@ -1309,7 +1317,6 @@ bool ValidTextureTarget(const ValidationContext *context, GLenum target)
return (context->getClientMajorVersion() >= 3);
case GL_TEXTURE_2D_MULTISAMPLE:
UNIMPLEMENTED();
return (context->getClientVersion() >= Version(3, 1));
default:
......@@ -1427,7 +1434,6 @@ bool ValidBufferTarget(const ValidationContext *context, GLenum target)
case GL_SHADER_STORAGE_BUFFER:
case GL_DRAW_INDIRECT_BUFFER:
case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1);
default:
......
......@@ -2264,7 +2264,6 @@ bool ValidateBindTexture(Context *context, GLenum target, GLuint texture)
context->handleError(Error(GL_INVALID_ENUM, "Context does not support GLES3.1"));
return false;
}
UNIMPLEMENTED();
break;
case GL_TEXTURE_EXTERNAL_OES:
......
......@@ -840,11 +840,23 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
break;
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;
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;
default:
......@@ -882,11 +894,19 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
break;
case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED();
if (buffer != 0)
{
// Binding buffers to this binding point is not implemented yet.
UNIMPLEMENTED();
}
break;
default:
......
......@@ -260,7 +260,11 @@ void GL_APIENTRY BindProgramPipeline(GLuint pipeline)
Context *context = GetValidGlobalContext();
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,
Context *context = GetValidGlobalContext();
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)
Context *context = GetValidGlobalContext();
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