On 12 October 2012 08:20, Brian Paul <span dir="ltr"><<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 10/12/2012 01:54 AM, <a href="mailto:jfonseca@vmware.com" target="_blank">jfonseca@vmware.com</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
From: José Fonseca<<a href="mailto:jfonseca@vmware.com" target="_blank">jfonseca@vmware.com</a>><br>
<br>
ARB_instanced_arrays specification says:<br>
<br>
     Dependencies on ARB_draw_instanced<br>
<br>
         If neither ARB_draw_instanced nor EXT_draw_instanced is<br>
         supported, all references to instanceID should be removed from<br>
         section 2.8.<br>
<br>
         If ARB_draw_instanced is not supported, all references to<br>
         gl_InstanceIDARB should be removed from section 2.8.  This<br>
         extension will introduce the following additional New Procedures<br>
         and Functions:<br>
<br>
             void DrawArraysInstancedARB(enum mode, int first, sizei count,<br>
                     sizei primcount);<br>
             void DrawElementsInstancedARB(enum mode, sizei count, enum type,<br>
                     const void *indices, sizei primcount);<br>
<br>
This is a quick hack until glapi.json can allow a function to have<br>
multiple categories.<br>
---<br>
  tests/util/gen_dispatch.py |    8 ++++++++<br>
  1 file changed, 8 insertions(+)<br>
<br>
diff --git a/tests/util/gen_dispatch.py b/tests/util/gen_dispatch.py<br>
index 96a7f77..46e96fd 100644<br>
--- a/tests/util/gen_dispatch.py<br>
+++ b/tests/util/gen_dispatch.py<br>
@@ -474,6 +474,14 @@ def generate_resolve_function(ds):<br>
<br>
        condition_code_pairs.append((<u></u>condition, code))<br>
<br>
+    # XXX: glDraw{Arrays,Elements}<u></u>InstancedARB are exposed by<br>
+    # ARB_instanced_arrays in addition to ARB_draw_instanced, but neither<br>
+    # gl.spec nor gl.json can accomodate an extension with two categories, so<br>
+    # insert these cases here.<br>
+       if f.gl_name in ('glDrawArraysInstancedARB', 'glDrawElementsInstancedARB'):<br>
+           condition = 'check_extension("GL_ARB_<u></u>instanced_arrays")'<br>
+           condition_code_pairs.append((<u></u>condition, code))<br>
+<br>
      # Finally, if none of the previous conditions were satisfied, then<br>
      # the given dispatch set is not supported by the implementation,<br>
      # so we want to call the unsupported() function.<br>
</blockquote>
<br></div></div>
I'm not too familiar with this code but this looks OK to me.<br>
<br>
Reviewed-by: Brian Paul <<a href="mailto:brianp@vmware.com" target="_blank">brianp@vmware.com</a>><br>
<br>
</blockquote></div><br>Yeah, looks reasonable to me too.<br><br>Chad and I have recently been talking about a long term plan to import the piglit-dispatch code to Waffle so that it can be useful to other projects.  When I get around to that I'll be sure to put in a more general mechanism to solve this problem.<br>