On Fri, Mar 31, 2017 at 6:12 AM, Gregory Hainaut
<gregory.hain...@gmail.com> wrote:
>> Others have reported this crashing on Nouveau. I haven't seen the problem on 
>> radeonsi or i965.
>
> Hello Timothy (sorry for the double mail, email is a complex tool:) )
>
> Hum, tbh. I was quite surprised to hit this bug. I guess you save a
> pre-optimized shader in the cache. So it could depends on optimization
> passes.
>
> From the top of my head, I think the "offending" line is this one
> const ivec2 offsets[4] = {ivec2(...), ivec2(...), ivec2(...), ivec2(...)};
>
> Strangely enough there are only 3 parameters without name in the
> parameter list (signature is int, size 2 and CONTANT). Maybe one was
> optimized away, I didn't look further.

Note that nouveau is unique in that it can process
textureGatherOffsets() directly, without lowering it to 4x
textureGatherOffset.

The relevant code is in st_glsl_to_tgsi.cpp

      if (!pscreen->get_param(pscreen, PIPE_CAP_TEXTURE_GATHER_OFFSETS))
         lower_offset_arrays(ir);

So I think with nouveau, you're seeing glsl ir that you wouldn't see otherwise.

  -ilia
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to