<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 10, 2018 at 3:16 PM, 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 11/04/18 01:11, Jason Ekstrand wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
On Tue, Apr 10, 2018 at 8:05 AM, Karol Herbst <<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a> <mailto:<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a>>> wrote:<br>
<br>
    If the bindless image is passed through a struct we ended up getting the<br>
    glsl_type of the struct, not the image.<br>
<br>
    variable_referenced points to the declaration of the struct, so it<br>
    won't work<br>
    for bindless images. So just drop it.<br>
<br>
    Signed-off-by: Karol Herbst <<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a><br></span>
    <mailto:<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a>>><span class=""><br>
    ---<br>
      src/compiler/glsl/glsl_to_ni<wbr>r.cpp | 2 +-<br>
      1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
    diff --git a/src/compiler/glsl/glsl_to_ni<wbr>r.cpp<br>
    b/src/compiler/glsl/glsl_to_ni<wbr>r.cpp<br>
    index 9f233637306..bb9ba3af04a 100644<br>
    --- a/src/compiler/glsl/glsl_to_ni<wbr>r.cpp<br>
    +++ b/src/compiler/glsl/glsl_to_ni<wbr>r.cpp<br>
    @@ -893,7 +893,7 @@ nir_visitor::visit(ir_call *ir)<br>
               exec_node *param = ir->actual_parameters.get_head<wbr>();<br>
               ir_dereference *image = (ir_dereference *)param;<br>
               const glsl_type *type =<br>
    -            image->variable_referenced()-><wbr>type->without_array();<br>
    +            image->type->without_array();<br>
<br>
<br>
I asked this question on the last version as well: Do we really need without_array()?<br>
</span></blockquote>
<br>
And I replied to that question as well :P<br>
<br>
The struct member type is set in ir.cpp without removing the array:<br>
<br>
   this->type = this->record->type->field_type<wbr>(field);<br></blockquote></div><br></div><div class="gmail_extra">I'm not sure what you mean though.  if we have an array dereference, it will strip one array level off of the type for each array dereference.<br></div></div>