<div dir="ltr">On 12 November 2013 12:13, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5">It would be great to put a citation for this:<br></div></div>
<br>
/* From the ARB_multi_draw_indirect specification:<br>
 * "INVALID_VALUE is generated by MultiDrawArraysIndirect or<br>
 *  MultiDrawElementsIndirect if <primcount> is negative."<br>
 *<br>
 * "<primcount> must be positive, otherwise an INVALID_VALUE error will<br>
 *  be generated."<br>
 */<br>
<br>
These beg the question of whether 0 is allowed.  Usually I interpret<br>
"negative" as < 0, "positive" as >= 0, and "strictly positive" as > 0.<br>
So I think zero should be allowed, and I don't see a contradiction.<br>
<br>
The only text I can find in 4.3 and 4.4 just reiterate that it needs to<br>
positive, and I don't see any text defining "positive."<br></blockquote><div><br></div><div>In the absence of text defining "positive", shouldn't we go with the definition used by mathematicians?  According to <a href="http://en.wikipedia.org/wiki/Sign_%28mathematics%29#Terminology_for_signs">http://en.wikipedia.org/wiki/Sign_%28mathematics%29#Terminology_for_signs</a>, "positive" means strictly greater than zero.<br>
<br></div><div>If anyone is aware of a competing implementation that accepts a primcount of 0, then I'd be open to following the behaviour of the competing implementation (and filing a spec bug).  But otherwise I think we should prohibit zero.<br>
</div><div><br>(Note: I brought this up last time the patch was reviewed: <a href="http://lists.freedesktop.org/archives/mesa-dev/2013-November/047962.html">http://lists.freedesktop.org/archives/mesa-dev/2013-November/047962.html</a>)<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Our existing implementation of MultiDrawElements appears to allow 0,<br>
simply turning it into a noop.  This seems to be supported by the<br>
pseudocode; the loop will simply execute zero times.<br>
<div class="im"><br>
> +      _mesa_error(ctx, GL_INVALID_VALUE, "%s(primcount <= 0)", name);<br>
> +      return GL_FALSE;<br>
> +   }<br>
> +<br>
<br>
</div>/* From the ARB_multi_draw_indirect specification:<br>
 * "<stride> must be a multiple of four, otherwise an INVALID_VALUE<br>
 *  error is generated."<br>
 */<br>
<div class="im"><br>
> +   if (stride % 4) {<br>
> +      _mesa_error(ctx, GL_INVALID_VALUE, "%s(stride %% 4)", name);<br>
> +      return GL_FALSE;<br>
> +   }<br>
> +<br>
> +   return GL_TRUE;<br>
> +}<br>
<br>
</div>Assuming you add spec citations, and either allow primcount == 0 or<br>
refute my claim that it should be valid, this would get a:<br>
<br>
Reviewed-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
<div class=""><div class="h5">_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>