ES31: Implement EXT_geometry_shader framebuffer default layers on OpenGL
This patch implements FRAMEBUFFER_DEFAULT_LAYERS_EXT as a legal framebuffer
parameter required in OpenGL ES 3.1 extension EXT_geometry_shader on OpenGL
back-ends.
The query on FRAMEBUFFER_DEFAULT_LAYERS_EXT specifies the layer count used
when the framebuffer has no attachments.
BUG=angleproject:1941
TEST=dEQP-GLES31.functional.geometry_shading.query.framebuffer_default_layers
Change-Id: I888465dfe23da53541ec2fedb8616027df532466
Reviewed-on: https://chromium-review.googlesource.com/1063560
Reviewed-by: Jiajia Qin <jiajia.qin@intel.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/src/libANGLE/renderer/gl/FramebufferGL.cpp b/src/libANGLE/renderer/gl/FramebufferGL.cpp
index 0132033..304bb19 100644
--- a/src/libANGLE/renderer/gl/FramebufferGL.cpp
+++ b/src/libANGLE/renderer/gl/FramebufferGL.cpp
@@ -689,6 +689,10 @@
GL_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
gl::ConvertToGLBoolean(mState.getDefaultFixedSampleLocations()));
break;
+ case Framebuffer::DIRTY_BIT_DEFAULT_LAYERS:
+ functions->framebufferParameteri(GL_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT,
+ mState.getDefaultLayers());
+ break;
default:
{
ASSERT(Framebuffer::DIRTY_BIT_COLOR_ATTACHMENT_0 == 0 &&