Commit 5f3456e3 by Tom Anderson Committed by Commit Bot

Expose GL_ARB_sync for GL

BUG=chromium:1028799 R=jonahr CC=vasilyt Change-Id: Id17c4061b206953b1e904bf7938cb371612e33fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1948534Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
parent 006a1554
...@@ -778,6 +778,7 @@ const ExtensionInfoMap &GetExtensionInfoMap() ...@@ -778,6 +778,7 @@ const ExtensionInfoMap &GetExtensionInfoMap()
map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureFormat2101010REV); map["GL_EXT_texture_type_2_10_10_10_REV"] = enableableExtension(&Extensions::textureFormat2101010REV);
map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBGRA); map["GL_EXT_read_format_bgra"] = enableableExtension(&Extensions::readFormatBGRA);
map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObject); map["GL_NV_pixel_buffer_object"] = enableableExtension(&Extensions::pixelBufferObject);
map["GL_ARB_sync"] = enableableExtension(&Extensions::glSync);
map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapBuffer); map["GL_OES_mapbuffer"] = enableableExtension(&Extensions::mapBuffer);
map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRange); map["GL_EXT_map_buffer_range"] = enableableExtension(&Extensions::mapBufferRange);
map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloat); map["GL_EXT_color_buffer_half_float"] = enableableExtension(&Extensions::colorBufferHalfFloat);
......
...@@ -145,6 +145,9 @@ struct Extensions ...@@ -145,6 +145,9 @@ struct Extensions
// GL_NV_pixel_buffer_object // GL_NV_pixel_buffer_object
bool pixelBufferObject = false; bool pixelBufferObject = false;
// GL_ARB_sync
bool glSync = false;
// GL_OES_mapbuffer and GL_EXT_map_buffer_range // GL_OES_mapbuffer and GL_EXT_map_buffer_range
bool mapBuffer = false; bool mapBuffer = false;
bool mapBufferRange = false; bool mapBufferRange = false;
......
...@@ -1113,6 +1113,7 @@ void GenerateCaps(const FunctionsGL *functions, ...@@ -1113,6 +1113,7 @@ void GenerateCaps(const FunctionsGL *functions,
functions->hasGLExtension("GL_ARB_pixel_buffer_object") || functions->hasGLExtension("GL_ARB_pixel_buffer_object") ||
functions->hasGLExtension("GL_EXT_pixel_buffer_object") || functions->hasGLExtension("GL_EXT_pixel_buffer_object") ||
functions->hasGLESExtension("GL_NV_pixel_buffer_object"); functions->hasGLESExtension("GL_NV_pixel_buffer_object");
extensions->glSync = nativegl::SupportsFenceSync(functions);
extensions->mapBuffer = functions->isAtLeastGL(gl::Version(1, 5)) || extensions->mapBuffer = functions->isAtLeastGL(gl::Version(1, 5)) ||
functions->isAtLeastGLES(gl::Version(3, 0)) || functions->isAtLeastGLES(gl::Version(3, 0)) ||
functions->hasGLESExtension("GL_OES_mapbuffer"); functions->hasGLESExtension("GL_OES_mapbuffer");
......
...@@ -3089,7 +3089,7 @@ bool ValidateGetSynciv(Context *context, ...@@ -3089,7 +3089,7 @@ bool ValidateGetSynciv(Context *context,
GLsizei *length, GLsizei *length,
GLint *values) GLint *values)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -3976,7 +3976,7 @@ bool ValidateDrawArraysInstanced(Context *context, ...@@ -3976,7 +3976,7 @@ bool ValidateDrawArraysInstanced(Context *context,
bool ValidateFenceSync(Context *context, GLenum condition, GLbitfield flags) bool ValidateFenceSync(Context *context, GLenum condition, GLbitfield flags)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -3999,7 +3999,7 @@ bool ValidateFenceSync(Context *context, GLenum condition, GLbitfield flags) ...@@ -3999,7 +3999,7 @@ bool ValidateFenceSync(Context *context, GLenum condition, GLbitfield flags)
bool ValidateIsSync(Context *context, GLsync sync) bool ValidateIsSync(Context *context, GLsync sync)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -4010,7 +4010,7 @@ bool ValidateIsSync(Context *context, GLsync sync) ...@@ -4010,7 +4010,7 @@ bool ValidateIsSync(Context *context, GLsync sync)
bool ValidateDeleteSync(Context *context, GLsync sync) bool ValidateDeleteSync(Context *context, GLsync sync)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -4027,7 +4027,7 @@ bool ValidateDeleteSync(Context *context, GLsync sync) ...@@ -4027,7 +4027,7 @@ bool ValidateDeleteSync(Context *context, GLsync sync)
bool ValidateClientWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout) bool ValidateClientWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -4051,7 +4051,7 @@ bool ValidateClientWaitSync(Context *context, GLsync sync, GLbitfield flags, GLu ...@@ -4051,7 +4051,7 @@ bool ValidateClientWaitSync(Context *context, GLsync sync, GLbitfield flags, GLu
bool ValidateWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout) bool ValidateWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64 timeout)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
...@@ -4081,7 +4081,7 @@ bool ValidateWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64 ...@@ -4081,7 +4081,7 @@ bool ValidateWaitSync(Context *context, GLsync sync, GLbitfield flags, GLuint64
bool ValidateGetInteger64v(Context *context, GLenum pname, GLint64 *params) bool ValidateGetInteger64v(Context *context, GLenum pname, GLint64 *params)
{ {
if (context->getClientMajorVersion() < 3) if ((context->getClientMajorVersion() < 3) && !context->getExtensions().glSync)
{ {
context->validationError(GL_INVALID_OPERATION, kES3Required); context->validationError(GL_INVALID_OPERATION, kES3Required);
return false; return false;
......
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