diff options
author | Alexis Hetu <sugoi@google.com> | 2018-01-18 16:17:54 -0500 |
---|---|---|
committer | Alexis Hétu <sugoi@google.com> | 2018-03-14 20:06:47 +0000 |
commit | 2f113e3e8d420ab760fb697196f202765d78f7c6 (patch) | |
tree | ee8c2e93de7b2bfd1b5ccc0ebd2a775dbb7837e5 | |
parent | f9b80fe143f8bf6e27203b43f4eb5c283222af70 (diff) | |
download | swiftshader-2f113e3e8d420ab760fb697196f202765d78f7c6.tar.gz |
GL_CHROMIUM_color_buffer_float_rgba extension support
GL_CHROMIUM_color_buffer_float_rgba (OpenGL ES 2.0) is a subset of
GL_EXT_color_buffer_float (OpenGL ES 3.0), which SwiftShader already
supports.
Fixes 1 webgl conformance tests:
conformance/extensions/oes-texture-float.html
Change-Id: Ic1451187db219af74ba41fa7634bd5bcb6fb0b44
Reviewed-on: https://swiftshader-review.googlesource.com/16470
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
-rw-r--r-- | src/OpenGL/libGLESv2/Context.cpp | 1 | ||||
-rw-r--r-- | src/OpenGL/libGLESv2/libGLESv2.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp index cc2dbc697..f495e8a6d 100644 --- a/src/OpenGL/libGLESv2/Context.cpp +++ b/src/OpenGL/libGLESv2/Context.cpp @@ -4400,6 +4400,7 @@ const GLubyte *Context::getExtensions(GLuint index, GLuint *numExt) const "GL_ANGLE_texture_compression_dxt3", "GL_ANGLE_texture_compression_dxt5", "GL_APPLE_texture_format_BGRA8888", + "GL_CHROMIUM_color_buffer_float_rgba", // A subset of EXT_color_buffer_float on top of OpenGL ES 2.0 "GL_CHROMIUM_texture_filtering_hint", "GL_NV_fence", "GL_NV_framebuffer_blit", diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp index 94107ab23..4be027381 100644 --- a/src/OpenGL/libGLESv2/libGLESv2.cpp +++ b/src/OpenGL/libGLESv2/libGLESv2.cpp @@ -4964,7 +4964,8 @@ void TexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint clientVersion = context->getClientVersion(); if(clientVersion < 3) { - if(internalformat != (GLint)format) + if((internalformat != (GLint)format) && + !((type == GL_FLOAT) && (format == GL_RGBA) && (internalformat == GL_RGBA32F))) // CHROMIUM_color_buffer_float_rgba { return error(GL_INVALID_OPERATION); } |