[Mesa-dev] [PATCH v2 1/2] mesa/es3.1: Expose GL_ARB_framebuffer_no_attachments to GLES 3.1

Marta Lofstedt marta.lofstedt at linux.intel.com
Mon Aug 24 04:01:52 PDT 2015


From: Marta Lofstedt <marta.lofstedt at intel.com>

Signed-off-by: Marta Lofstedt <marta.lofstedt at intel.com>
---
 src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml | 4 ++--
 src/mapi/glapi/gen/apiexec.py                         | 4 ++--
 src/mesa/main/get.c                                   | 6 ++++++
 src/mesa/main/get_hash_params.py                      | 8 +++++---
 src/mesa/main/tests/dispatch_sanity.cpp               | 6 ++----
 src/mesa/main/version.c                               | 2 +-
 6 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml b/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
index 59839a0..55ad764 100644
--- a/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
+++ b/src/mapi/glapi/gen/ARB_framebuffer_no_attachments.xml
@@ -15,13 +15,13 @@
    <enum name="MAX_FRAMEBUFFER_LAYERS"                     value="0x9317" />
    <enum name="MAX_FRAMEBUFFER_SAMPLES"                    value="0x9318" />
 
-    <function name="FramebufferParameteri">
+    <function name="FramebufferParameteri" es2="3.1">
        <param name="target" type="GLenum"/>
        <param name="pname"  type="GLenum"/>
        <param name="param"  type="GLint" />
     </function>
 
-    <function name="GetFramebufferParameteriv">
+    <function name="GetFramebufferParameteriv" es2="3.1">
        <param name="target" type="GLenum" />
        <param name="pname"  type="GLenum" />
        <param name="params" type="GLint *" output="true" />
diff --git a/src/mapi/glapi/gen/apiexec.py b/src/mapi/glapi/gen/apiexec.py
index 3a0eb18..58ec08b 100644
--- a/src/mapi/glapi/gen/apiexec.py
+++ b/src/mapi/glapi/gen/apiexec.py
@@ -151,8 +151,8 @@ functions = {
 
     # OpenGL 4.3 / GL_ARB_framebuffer_no_attachments.  Mesa can expose the
     # extension with OpenGL 3.0.
-    "FramebufferParameteri": exec_info(compatibility=30, core=31),
-    "GetFramebufferParameteri": exec_info(compatibility=30, core=31),
+    "FramebufferParameteri": exec_info(compatibility=30, core=31, es2=31),
+    "GetFramebufferParameteri": exec_info(compatibility=30, core=31, es2=31),
 
     # OpenGL 4.5 / GL_ARB_direct_state_access.   Mesa can expose the extension
     # with core profile.
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 307a5ff..8542ddb 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -403,6 +403,12 @@ static const int extra_ARB_explicit_uniform_location_es31[] = {
    EXTRA_END
 };
 
+static const int extra_ARB_framebuffer_no_attachments_es31[] = {
+   EXT(ARB_framebuffer_no_attachments),
+   EXTRA_API_ES31,
+   EXTRA_END
+};
+
 EXTRA_EXT(ARB_texture_cube_map);
 EXTRA_EXT(EXT_texture_array);
 EXTRA_EXT(NV_fog_distance);
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index 517c391..3d6ed64 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -450,6 +450,11 @@ descriptor=[
 
 # GL_ARB_explicit_uniform_location / GLES 3.1
   [ "MAX_UNIFORM_LOCATIONS", "CONTEXT_INT(Const.MaxUserAssignableUniformLocations), extra_ARB_explicit_uniform_location_es31" ],
+
+# GL_ARB_framebuffer_no_attachments / GLES 3.1
+  ["MAX_FRAMEBUFFER_WIDTH", "CONTEXT_INT(Const.MaxFramebufferWidth), extra_ARB_framebuffer_no_attachments_es31"],
+  ["MAX_FRAMEBUFFER_HEIGHT", "CONTEXT_INT(Const.MaxFramebufferHeight), extra_ARB_framebuffer_no_attachments_es31"],
+  ["MAX_FRAMEBUFFER_SAMPLES", "CONTEXT_INT(Const.MaxFramebufferSamples), extra_ARB_framebuffer_no_attachments_es31"],
 ]},
 
 # Enums in OpenGL Core profile and ES 3.1
@@ -811,10 +816,7 @@ descriptor=[
   [ "MAX_GEOMETRY_IMAGE_UNIFORMS", "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxImageUniforms), extra_ARB_shader_image_load_store_and_geometry_shader"],
 
 # GL_ARB_framebuffer_no_attachments
-  ["MAX_FRAMEBUFFER_WIDTH", "CONTEXT_INT(Const.MaxFramebufferWidth), extra_ARB_framebuffer_no_attachments"],
-  ["MAX_FRAMEBUFFER_HEIGHT", "CONTEXT_INT(Const.MaxFramebufferHeight), extra_ARB_framebuffer_no_attachments"],
   ["MAX_FRAMEBUFFER_LAYERS", "CONTEXT_INT(Const.MaxFramebufferLayers), extra_ARB_framebuffer_no_attachments"],
-  ["MAX_FRAMEBUFFER_SAMPLES", "CONTEXT_INT(Const.MaxFramebufferSamples), extra_ARB_framebuffer_no_attachments"],
 
 # GL_EXT_polygon_offset_clamp
   [ "POLYGON_OFFSET_CLAMP_EXT", "CONTEXT_FLOAT(Polygon.OffsetClamp), extra_EXT_polygon_offset_clamp" ],
diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
index 59107eb..b9a760f 100644
--- a/src/mesa/main/tests/dispatch_sanity.cpp
+++ b/src/mesa/main/tests/dispatch_sanity.cpp
@@ -2405,10 +2405,8 @@ const struct function gles31_functions_possible[] = {
    { "glDrawArraysIndirect", 31, -1 },
    { "glDrawElementsIndirect", 31, -1 },
 
-   // FINISHME: These two functions have not been implemented yet.  They come
-   // FINISHME: from the ARB_framebuffer_no_attachments extension.
-   // { "glFramebufferParameteri", 31, -1 },
-   // { "glGetFramebufferParameteriv", 31, -1 },
+   { "glFramebufferParameteri", 31, -1 },
+   { "glGetFramebufferParameteriv", 31, -1 },
 
    { "glGetProgramInterfaceiv", 31, -1 },
    { "glGetProgramResourceIndex", 31, -1 },
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index fd7ae53..d3e902e 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -450,7 +450,7 @@ compute_version_es2(const struct gl_extensions *extensions)
                          extensions->ARB_arrays_of_arrays &&
                          extensions->ARB_compute_shader &&
                          extensions->ARB_draw_indirect &&
-                         false /*extensions->ARB_framebuffer_no_attachments*/ &&
+                         extensions->ARB_framebuffer_no_attachments &&
                          extensions->ARB_shader_atomic_counters &&
                          extensions->ARB_shader_image_load_store &&
                          false /*extensions->ARB_shader_image_size*/ &&
-- 
1.9.1



More information about the mesa-dev mailing list