<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, May 17, 2018 at 12:50 AM, Timothy Arceri <span dir="ltr"><<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
On 17/05/18 14:36, Marek Olšák wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
On Wed, May 16, 2018 at 11:01 PM, Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a> <mailto:<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>><wbr>> wrote:<br>
<br>
<br>
<br>
    On 17/05/18 10:59, Marek Olšák wrote:<br>
<br>
        On Sat, May 12, 2018 at 12:49 AM, Timothy Arceri<br>
        <<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a> <mailto:<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>><br></span>
        <mailto:<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a> <mailto:<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>><wbr>>><div><div class="h5"><br>
        wrote:<br>
<br>
             This allows us to get the variable mode as specified by the<br>
        GLSL<br>
             spec. We will use this in the following patch.<br>
             ---<br>
               src/compiler/glsl/ast_to_hir<wbr>.cpp | 73<br>
        ++++++++++++++++++++++++++++++<wbr>++<br>
               1 file changed, 73 insertions(+)<br>
<br>
             diff --git a/src/compiler/glsl/ast_to_hir<wbr>.cpp<br>
             b/src/compiler/glsl/ast_to_hir<wbr>.cpp<br>
             index 3bf581571e2..a7a9ac80769 100644<br>
             --- a/src/compiler/glsl/ast_to_hir<wbr>.cpp<br>
             +++ b/src/compiler/glsl/ast_to_hir<wbr>.cpp<br>
             @@ -4175,6 +4175,79 @@<br>
        apply_type_qualifier_to_variab<wbr>le(const struct<br>
             ast_type_qualifier *qual,<br>
                  apply_image_qualifier_to_varia<wbr>ble(qual, var, state, loc);<br>
               }<br>
<br>
             +/**<br>
             + * Get the GLSL mode specified in for system values (if any).<br>
             + */<br>
             +static enum ir_variable_mode<br>
             +glsl_external_mode(enum ir_variable_mode internal_mode,<br>
             gl_shader_stage stage,<br>
             +                   unsigned slot) {<br>
             +   if (internal_mode == ir_var_system_value) {<br>
             +      switch (slot) {<br>
             +      case SYSTEM_VALUE_SUBGROUP_SIZE:<br>
             +         return ir_var_uniform;<br>
             +      case SYSTEM_VALUE_PRIMITIVE_ID:<br>
             +         if (stage == MESA_SHADER_GEOMETRY) {<br>
             +            return ir_var_shader_out;<br>
<br>
<br>
        System values are always inputs. This one is gl_PrimitiveIDIn.<br>
<br>
             +         } else {<br>
             +            return ir_var_shader_in;<br>
             +         }<br>
             +      case SYSTEM_VALUE_TESS_LEVEL_OUTER:<br>
             +      case SYSTEM_VALUE_TESS_LEVEL_INNER:<br>
             +         if (stage == MESA_SHADER_TESS_CTRL) {<br>
             +            return ir_var_shader_out;<br>
<br>
<br>
        System values are always inputs, i.e. TESS_CTRL isn't allowed here.<br>
<br>
<br>
    Hmm yeah your right I seem to have confused myself here a bit.<br>
    However SYSTEM_VALUE_SUBGROUP_SIZE seems to be the odd one out in<br>
    that its a uniform.<br>
<br>
<br>
Why is it uniform?<br>
</div></div></blockquote>
<br>
>From ARB_shader_ballot:<br>
<br>
<br>
    (Add to the list of built-in uniform variable declaration)<br>
<br>
        uniform uint  gl_SubGroupSizeARB;<br></blockquote><div><br></div>I think it means that gl_SubGroupSizeARB is a compile-time constant. It probably shouldn't be a system value.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Marek<br></div></div></div>