Commit 3b573612 by Geoff Lang Committed by Commit Bot

Add enough ES 3.1 enums to support initializing the dEQP ES 3.1 tests.

BUG=angleproject:1442 Change-Id: Iece3efb272fdcbe004d4136129ba7bfe74ba5265 Reviewed-on: https://chromium-review.googlesource.com/405530Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 29ab9ff8
...@@ -306,6 +306,12 @@ Context::Context(rx::EGLImplFactory *implFactory, ...@@ -306,6 +306,12 @@ Context::Context(rx::EGLImplFactory *implFactory,
Texture *zeroTexture2DArray = new Texture(mImplementation.get(), 0, GL_TEXTURE_2D_ARRAY); Texture *zeroTexture2DArray = new Texture(mImplementation.get(), 0, GL_TEXTURE_2D_ARRAY);
mZeroTextures[GL_TEXTURE_2D_ARRAY].set(zeroTexture2DArray); mZeroTextures[GL_TEXTURE_2D_ARRAY].set(zeroTexture2DArray);
} }
if (getClientVersion() >= Version(3, 1))
{
Texture *zeroTexture2DMultisample =
new Texture(mImplementation.get(), 0, GL_TEXTURE_2D_MULTISAMPLE);
mZeroTextures[GL_TEXTURE_2D_MULTISAMPLE].set(zeroTexture2DMultisample);
}
if (mExtensions.eglImageExternal || mExtensions.eglStreamConsumerExternal) if (mExtensions.eglImageExternal || mExtensions.eglStreamConsumerExternal)
{ {
...@@ -3562,6 +3568,18 @@ void Context::bindBuffer(GLenum target, GLuint buffer) ...@@ -3562,6 +3568,18 @@ void Context::bindBuffer(GLenum target, GLuint buffer)
case GL_TRANSFORM_FEEDBACK_BUFFER: case GL_TRANSFORM_FEEDBACK_BUFFER:
bindGenericTransformFeedbackBuffer(buffer); bindGenericTransformFeedbackBuffer(buffer);
break; break;
case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED();
break;
case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED();
break;
case GL_DRAW_INDIRECT_BUFFER:
UNIMPLEMENTED();
break;
case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED();
break;
default: default:
UNREACHABLE(); UNREACHABLE();
......
...@@ -170,6 +170,10 @@ void State::initialize(const Caps &caps, ...@@ -170,6 +170,10 @@ void State::initialize(const Caps &caps,
mSamplerTextures[GL_TEXTURE_2D_ARRAY].resize(caps.maxCombinedTextureImageUnits); mSamplerTextures[GL_TEXTURE_2D_ARRAY].resize(caps.maxCombinedTextureImageUnits);
mSamplerTextures[GL_TEXTURE_3D].resize(caps.maxCombinedTextureImageUnits); mSamplerTextures[GL_TEXTURE_3D].resize(caps.maxCombinedTextureImageUnits);
} }
if (clientVersion >= Version(3, 1))
{
mSamplerTextures[GL_TEXTURE_2D_MULTISAMPLE].resize(caps.maxCombinedTextureImageUnits);
}
if (extensions.eglImageExternal || extensions.eglStreamConsumerExternal) if (extensions.eglImageExternal || extensions.eglStreamConsumerExternal)
{ {
mSamplerTextures[GL_TEXTURE_EXTERNAL_OES].resize(caps.maxCombinedTextureImageUnits); mSamplerTextures[GL_TEXTURE_EXTERNAL_OES].resize(caps.maxCombinedTextureImageUnits);
...@@ -632,6 +636,9 @@ void State::setEnableFeature(GLenum feature, bool enabled) ...@@ -632,6 +636,9 @@ void State::setEnableFeature(GLenum feature, bool enabled)
case GL_DITHER: setDither(enabled); break; case GL_DITHER: setDither(enabled); break;
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:
UNIMPLEMENTED();
break;
case GL_DEBUG_OUTPUT_SYNCHRONOUS: case GL_DEBUG_OUTPUT_SYNCHRONOUS:
mDebug.setOutputSynchronous(enabled); mDebug.setOutputSynchronous(enabled);
break; break;
......
...@@ -156,6 +156,9 @@ void SetTexParameterBase(Texture *texture, GLenum pname, const ParamType *params ...@@ -156,6 +156,9 @@ void SetTexParameterBase(Texture *texture, GLenum pname, const ParamType *params
case GL_TEXTURE_MAX_LOD: case GL_TEXTURE_MAX_LOD:
texture->setMaxLod(ConvertToGLfloat(params[0])); texture->setMaxLod(ConvertToGLfloat(params[0]));
break; break;
case GL_DEPTH_STENCIL_TEXTURE_MODE:
UNIMPLEMENTED();
break;
case GL_TEXTURE_SRGB_DECODE_EXT: case GL_TEXTURE_SRGB_DECODE_EXT:
texture->setSRGBDecode(ConvertToGLenum(params[0])); texture->setSRGBDecode(ConvertToGLenum(params[0]));
break; break;
......
...@@ -135,6 +135,7 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions, const gl::Caps &ren ...@@ -135,6 +135,7 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions, const gl::Caps &ren
mTextures[GL_TEXTURE_CUBE_MAP].resize(rendererCaps.maxCombinedTextureImageUnits); mTextures[GL_TEXTURE_CUBE_MAP].resize(rendererCaps.maxCombinedTextureImageUnits);
mTextures[GL_TEXTURE_2D_ARRAY].resize(rendererCaps.maxCombinedTextureImageUnits); mTextures[GL_TEXTURE_2D_ARRAY].resize(rendererCaps.maxCombinedTextureImageUnits);
mTextures[GL_TEXTURE_3D].resize(rendererCaps.maxCombinedTextureImageUnits); mTextures[GL_TEXTURE_3D].resize(rendererCaps.maxCombinedTextureImageUnits);
mTextures[GL_TEXTURE_2D_MULTISAMPLE].resize(rendererCaps.maxCombinedTextureImageUnits);
mIndexedBuffers[GL_UNIFORM_BUFFER].resize(rendererCaps.maxCombinedUniformBlocks); mIndexedBuffers[GL_UNIFORM_BUFFER].resize(rendererCaps.maxCombinedUniformBlocks);
......
...@@ -165,6 +165,10 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly) ...@@ -165,6 +165,10 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly)
case GL_FRAMEBUFFER_SRGB_EXT: case GL_FRAMEBUFFER_SRGB_EXT:
return context->getExtensions().sRGBWriteControl; return context->getExtensions().sRGBWriteControl;
case GL_SAMPLE_MASK:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1);
default: default:
return false; return false;
} }
...@@ -812,6 +816,15 @@ bool ValidateTexParameterBase(Context *context, ...@@ -812,6 +816,15 @@ bool ValidateTexParameterBase(Context *context,
} }
break; break;
case GL_DEPTH_STENCIL_TEXTURE_MODE:
if (context->getClientVersion() < Version(3, 1))
{
context->handleError(Error(GL_INVALID_ENUM, "pname requires OpenGL ES 3.1."));
return false;
}
UNIMPLEMENTED();
break;
case GL_TEXTURE_SRGB_DECODE_EXT: case GL_TEXTURE_SRGB_DECODE_EXT:
if (!ValidateTextureSRGBDecodeValue(context, params)) if (!ValidateTextureSRGBDecodeValue(context, params))
{ {
...@@ -1295,6 +1308,10 @@ bool ValidTextureTarget(const ValidationContext *context, GLenum target) ...@@ -1295,6 +1308,10 @@ bool ValidTextureTarget(const ValidationContext *context, GLenum target)
case GL_TEXTURE_2D_ARRAY: case GL_TEXTURE_2D_ARRAY:
return (context->getClientMajorVersion() >= 3); return (context->getClientMajorVersion() >= 3);
case GL_TEXTURE_2D_MULTISAMPLE:
UNIMPLEMENTED();
return (context->getClientVersion() >= Version(3, 1));
default: default:
return false; return false;
} }
...@@ -1401,6 +1418,13 @@ bool ValidBufferTarget(const ValidationContext *context, GLenum target) ...@@ -1401,6 +1418,13 @@ bool ValidBufferTarget(const ValidationContext *context, GLenum target)
case GL_UNIFORM_BUFFER: case GL_UNIFORM_BUFFER:
return (context->getClientMajorVersion() >= 3); return (context->getClientMajorVersion() >= 3);
case GL_ATOMIC_COUNTER_BUFFER:
case GL_SHADER_STORAGE_BUFFER:
case GL_DRAW_INDIRECT_BUFFER:
case GL_DISPATCH_INDIRECT_BUFFER:
UNIMPLEMENTED();
return context->getClientVersion() >= Version(3, 1);
default: default:
return false; return false;
} }
......
...@@ -2288,6 +2288,16 @@ bool ValidateBindTexture(Context *context, GLenum target, GLuint texture) ...@@ -2288,6 +2288,16 @@ bool ValidateBindTexture(Context *context, GLenum target, GLuint texture)
return false; return false;
} }
break; break;
case GL_TEXTURE_2D_MULTISAMPLE:
if (context->getClientVersion() < Version(3, 1))
{
context->handleError(Error(GL_INVALID_ENUM, "Context does not support GLES3.1"));
return false;
}
UNIMPLEMENTED();
break;
case GL_TEXTURE_EXTERNAL_OES: case GL_TEXTURE_EXTERNAL_OES:
if (!context->getExtensions().eglImageExternal && if (!context->getExtensions().eglImageExternal &&
!context->getExtensions().eglStreamConsumerExternal) !context->getExtensions().eglStreamConsumerExternal)
......
...@@ -839,6 +839,14 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) ...@@ -839,6 +839,14 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
} }
break; break;
case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED();
break;
case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED();
break;
default: default:
context->handleError(Error(GL_INVALID_ENUM)); context->handleError(Error(GL_INVALID_ENUM));
return; return;
...@@ -873,6 +881,14 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) ...@@ -873,6 +881,14 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
context->bindGenericUniformBuffer(buffer); context->bindGenericUniformBuffer(buffer);
break; break;
case GL_ATOMIC_COUNTER_BUFFER:
UNIMPLEMENTED();
break;
case GL_SHADER_STORAGE_BUFFER:
UNIMPLEMENTED();
break;
default: default:
UNREACHABLE(); UNREACHABLE();
} }
......
...@@ -259,10 +259,6 @@ void GL_APIENTRY BindProgramPipeline(GLuint pipeline) ...@@ -259,10 +259,6 @@ void GL_APIENTRY BindProgramPipeline(GLuint pipeline)
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
if (!context->skipValidation())
{
context->handleError(Error(GL_INVALID_OPERATION, "Entry point not implemented"));
}
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
} }
...@@ -994,10 +990,6 @@ void GL_APIENTRY BindImageTexture(GLuint unit, ...@@ -994,10 +990,6 @@ void GL_APIENTRY BindImageTexture(GLuint unit,
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
if (!context->skipValidation())
{
context->handleError(Error(GL_INVALID_OPERATION, "Entry point not implemented"));
}
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
} }
...@@ -1080,10 +1072,6 @@ void GL_APIENTRY SampleMaski(GLuint maskNumber, GLbitfield mask) ...@@ -1080,10 +1072,6 @@ void GL_APIENTRY SampleMaski(GLuint maskNumber, GLbitfield mask)
Context *context = GetValidGlobalContext(); Context *context = GetValidGlobalContext();
if (context) if (context)
{ {
if (!context->skipValidation())
{
context->handleError(Error(GL_INVALID_OPERATION, "Entry point not implemented"));
}
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
} }
......
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