[Mesa-dev] [PATCH] mesa: add GL_OES/EXT_draw_buffers_indexed support
Ilia Mirkin
imirkin at alum.mit.edu
Thu Mar 31 04:55:12 UTC 2016
This is the same ext as ARB_draw_buffers_blend (plus some core
functionality that already exists). Add the alias entrypoints.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
This passes the dEQP tests *draw_buffers_indexed* and also the relevant *getintegeri_v* and *getbooleani_v* tests.
docs/GL3.txt | 2 +-
docs/relnotes/11.3.0.html | 1 +
src/mapi/glapi/gen/es_EXT.xml | 106 ++++++++++++++++++++++++++++++++
src/mesa/main/extensions_table.h | 2 +
src/mesa/main/tests/dispatch_sanity.cpp | 10 +++
5 files changed, 120 insertions(+), 1 deletion(-)
diff --git a/docs/GL3.txt b/docs/GL3.txt
index c76b1e2..5b6dc89 100644
--- a/docs/GL3.txt
+++ b/docs/GL3.txt
@@ -257,7 +257,7 @@ GLES3.2, GLSL ES 3.2
GL_KHR_robustness not started (90% done with the ARB variant)
GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+)
GL_OES_copy_image DONE (core only)
- GL_OES_draw_buffers_indexed not started
+ GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
GL_OES_draw_elements_base_vertex DONE (all drivers)
GL_OES_geometry_shader started (Marta)
GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
diff --git a/docs/relnotes/11.3.0.html b/docs/relnotes/11.3.0.html
index 4e23959..8aa9444 100644
--- a/docs/relnotes/11.3.0.html
+++ b/docs/relnotes/11.3.0.html
@@ -49,6 +49,7 @@ Note: some of the new features are only available with certain drivers.
<li>GL_ARB_shader_image_load_store on radeonsi, softpipe</li>
<li>GL_ARB_shader_image_size on radeonsi</li>
<li>GL_ATI_fragment_shader on all Gallium drivers</li>
+<li>GL_OES_draw_buffers_indexed and GL_EXT_draw_buffers_indexed on all drivers that support GL_ARB_draw_buffers_blend</li>
<li>GL_OES_texture_border_clamp and GL_EXT_texture_border_clamp on all drivers that support GL_ARB_texture_border_clamp</li>
<li>GL_OES_shader_image_atomic on all drivers that support GL_ARB_shader_image_load_store</li>
</ul>
diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
index ee8e9e5..8e5ef41 100644
--- a/src/mapi/glapi/gen/es_EXT.xml
+++ b/src/mapi/glapi/gen/es_EXT.xml
@@ -823,6 +823,59 @@
</function>
</category>
+<category name="GL_EXT_draw_buffers_indexed" number="209">
+
+ <function name="BlendFunciEXT" alias="BlendFunciARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="sfactor" type="GLenum"/>
+ <param name="dfactor" type="GLenum"/>
+ </function>
+
+ <function name="BlendFuncSeparateiEXT" alias="BlendFuncSeparateiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="sfactorRGB" type="GLenum"/>
+ <param name="dfactorRGB" type="GLenum"/>
+ <param name="sfactorAlpha" type="GLenum"/>
+ <param name="dfactorAlpha" type="GLenum"/>
+ </function>
+
+ <function name="BlendEquationiEXT" alias="BlendEquationiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="mode" type="GLenum"/>
+ </function>
+
+ <function name="BlendEquationSeparateiEXT" alias="BlendEquationSeparateiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="modeRGB" type="GLenum"/>
+ <param name="modeA" type="GLenum"/>
+ </function>
+
+ <function name="ColorMaskiEXT" alias="ColorMaski" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="r" type="GLboolean"/>
+ <param name="g" type="GLboolean"/>
+ <param name="b" type="GLboolean"/>
+ <param name="a" type="GLboolean"/>
+ </function>
+
+ <function name="EnableiEXT" alias="Enablei" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ </function>
+
+ <function name="DisableiEXT" alias="Disablei" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ </function>
+
+ <function name="IsEnablediEXT" alias="IsEnabledi" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ <return type="GLboolean"/>
+ </function>
+
+</category>
+
<category name="GL_EXT_texture_border_clamp" number="182">
<!-- The *TexParameter* functions are added in EXT_texture_integer -->
@@ -937,6 +990,59 @@
</category>
+<category name="GL_OES_draw_buffers_indexed" number="209">
+
+ <function name="BlendFunciOES" alias="BlendFunciARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="sfactor" type="GLenum"/>
+ <param name="dfactor" type="GLenum"/>
+ </function>
+
+ <function name="BlendFuncSeparateiOES" alias="BlendFuncSeparateiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="sfactorRGB" type="GLenum"/>
+ <param name="dfactorRGB" type="GLenum"/>
+ <param name="sfactorAlpha" type="GLenum"/>
+ <param name="dfactorAlpha" type="GLenum"/>
+ </function>
+
+ <function name="BlendEquationiOES" alias="BlendEquationiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="mode" type="GLenum"/>
+ </function>
+
+ <function name="BlendEquationSeparateiOES" alias="BlendEquationSeparateiARB" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="modeRGB" type="GLenum"/>
+ <param name="modeA" type="GLenum"/>
+ </function>
+
+ <function name="ColorMaskiOES" alias="ColorMaski" es2="3.0">
+ <param name="buf" type="GLuint"/>
+ <param name="r" type="GLboolean"/>
+ <param name="g" type="GLboolean"/>
+ <param name="b" type="GLboolean"/>
+ <param name="a" type="GLboolean"/>
+ </function>
+
+ <function name="EnableiOES" alias="Enablei" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ </function>
+
+ <function name="DisableiOES" alias="Disablei" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ </function>
+
+ <function name="IsEnablediOES" alias="IsEnabledi" es2="3.0">
+ <param name="target" type="GLenum"/>
+ <param name="index" type="GLuint"/>
+ <return type="GLboolean"/>
+ </function>
+
+</category>
+
<category name="GL_OES_texture_buffer" number="216">
<function name="TexBufferOES" es2="3.1" alias="TexBuffer">
diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
index ad185a4..072f340 100644
--- a/src/mesa/main/extensions_table.h
+++ b/src/mesa/main/extensions_table.h
@@ -193,6 +193,7 @@ EXT(EXT_depth_bounds_test , EXT_depth_bounds_test
EXT(EXT_discard_framebuffer , dummy_true , x , x , ES1, ES2, 2009)
EXT(EXT_draw_buffers , dummy_true , x , x , x , ES2, 2012)
EXT(EXT_draw_buffers2 , EXT_draw_buffers2 , GLL, GLC, x , x , 2006)
+EXT(EXT_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014)
EXT(EXT_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014)
EXT(EXT_draw_instanced , ARB_draw_instanced , GLL, GLC, x , x , 2006)
EXT(EXT_draw_range_elements , dummy_true , GLL, x , x , x , 1997)
@@ -317,6 +318,7 @@ EXT(OES_depth24 , dummy_true
EXT(OES_depth32 , dummy_false , x , x , x , x , 2005)
EXT(OES_depth_texture , ARB_depth_texture , x , x , x , ES2, 2006)
EXT(OES_depth_texture_cube_map , OES_depth_texture_cube_map , x , x , x , ES2, 2012)
+EXT(OES_draw_buffers_indexed , ARB_draw_buffers_blend , x , x , x , 30, 2014)
EXT(OES_draw_elements_base_vertex , ARB_draw_elements_base_vertex , x , x , x , ES2, 2014)
EXT(OES_draw_texture , OES_draw_texture , x , x , ES1, x , 2004)
EXT(OES_element_index_uint , dummy_true , x , x , ES1, ES2, 2005)
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index 79384b3..684fcaf 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -2460,6 +2460,16 @@ const struct function gles3_functions_possible[] = {
/* GL_OES_copy_image */
{ "glCopyImageSubDataOES", 30, -1 },
+ /* GL_OES_draw_buffers_indexed */
+ { "glBlendFunciOES", 30, -1 },
+ { "glBlendFuncSeparateiOES", 30, -1 },
+ { "glBlendEquationiOES", 30, -1 },
+ { "glBlendEquationSeparateiOES", 30, -1 },
+ { "glColorMaskiOES", 30, -1 },
+ { "glEnableiOES", 30, -1 },
+ { "glDisableiOES", 30, -1 },
+ { "glIsEnablediOES", 30, -1 },
+
{ NULL, 0, -1 }
};
--
2.7.3
More information about the mesa-dev
mailing list