On 03/21/2012 11:08 AM, Neil Roberts wrote:
This extension just permits GL_UNPACK_ROW_LENGTH, GL_UNPACK_SKIP_ROWS
and GL_UNPACK_SKIP_PIXELS to be passed to glPixelStore on GLES2 so it
is trivial to implement.

I'm not a fan of the wrappers generated from APIspec.xml. It allowed quick implementation of the extra enum rejection required by ES, but it's a real hassle. Unfortunately, I think it will be a much larger effort, especially for some of the commands that take a lot of different enums, to kill it off completely. Ugh.

Is there any chance you could code up a quick piglit test that verifies that 1, 2, 4, and 8 can be used if the extension is available but are rejected if it is not?

When planning some of our work for the next couple months we talked about enabling some desktop-GL-on-ES extensions, but we eventually tabled the idea. Are there other of these extensions that you would find useful?

---
  src/mesa/main/APIspec.xml  |   26 +++++++++++++++++++++-----
  src/mesa/main/extensions.c |    1 +
  2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index eeae599..950ff22 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -1174,15 +1174,30 @@

        <desc name="pname">
                <value name="GL_PACK_ALIGNMENT"/>
+               <desc name="param" error="GL_INVALID_VALUE">
+                       <value name="1"/>
+                       <value name="2"/>
+                       <value name="4"/>
+                       <value name="8"/>
+               </desc>

I want to make sure I understand this code. This causes additional checks for 1, 2, 4, and 8 to be generated. The assumption is that the other values are already invalid, and the core implementation will reject them (as it already does for desktop GL). Is that right?

+       </desc>
+
+       <desc name="pname">
                <value name="GL_UNPACK_ALIGNMENT"/>
+               <desc name="param" error="GL_INVALID_VALUE">
+                       <value name="1"/>
+                       <value name="2"/>
+                       <value name="4"/>
+                       <value name="8"/>
+               </desc>
        </desc>

-       <desc name="param" error="GL_INVALID_VALUE">
-               <value name="1"/>
-               <value name="2"/>
-               <value name="4"/>
-               <value name="8"/>
+       <desc name="pname" category="EXT_unpack_subimage">
+               <value name="GL_UNPACK_ROW_LENGTH"/>
+               <value name="GL_UNPACK_SKIP_PIXELS"/>
+               <value name="GL_UNPACK_SKIP_ROWS"/>
        </desc>
+
  </template>

  <template name="ReadPixels" direction="get">
@@ -4129,6 +4144,7 @@
        <category name="EXT_multi_draw_arrays"/>
        <category name="OES_EGL_image"/>
        <category name="OES_EGL_image_external"/>
+<category name="EXT_unpack_subimage"/>

        <category name="NV_draw_buffers"/>
        <function name="DrawBuffersNV" template="DrawBuffers"/>
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 732b9a6..a93081d 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -212,6 +212,7 @@ static const struct extension extension_table[] = {
     { "GL_EXT_texture_type_2_10_10_10_REV",         o(dummy_true),             
                            ES2, 2008 },
     { "GL_EXT_timer_query",                         o(EXT_timer_query),        
                 GL,             2006 },
     { "GL_EXT_transform_feedback",                  o(EXT_transform_feedback), 
                 GL,             2011 },
+   { "GL_EXT_unpack_subimage",                     o(dummy_true),              
                           ES2, 2011 },
     { "GL_EXT_vertex_array_bgra",                   o(EXT_vertex_array_bgra),  
                 GL,             2008 },
     { "GL_EXT_vertex_array",                        o(dummy_true),             
                 GL,             1995 },

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to