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>