On Thu, May 7, 2015 at 6:17 PM, Matt Turner <matts...@gmail.com> wrote: > On Thu, May 7, 2015 at 4:50 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: >> GLSL IR vs. NIR shader-db results for SIMD8 vertex shaders on Broadwell: >> >> total instructions in shared programs: 2724483 -> 2711790 (-0.47%) >> instructions in affected programs: 1860859 -> 1848166 (-0.68%) >> helped: 4387 >> HURT: 4758 >> GAINED: 1499 >> >> The gained programs are ARB vertext programs that were previously going >> through the vec4 backend. Now that we have prog_to_nir, ARB vertex >> programs can go through the scalar backend so they show up as "gained" in >> the shader-db results. > > Again, I'm kind of confused and disappointed that we're just okay with > hurting 4700 programs without more analysis. I guess I'll go do > that... > > I'm concerned -- lots of shaders like left-4-dead-2/low/3699 go from > 297 -> 161 instructions. More concerning, the number of send > instructions drop from 36 to 12, and a loop that was 111 instructions > long suddenly becomes > > START B1 <-B0 <-B2 > cmp.ge.f0(8) null g42<8,8,1>D g7<0,1,0>D > (+f0) break(8) JIP: 24 UIP: 24 > END B1 ->B3 ->B2 > START B2 <-B1 > add(8) g42<1>D g42<8,8,1>D 1D > while(8) JIP: -32 > END B2 ->B1 > > That deserves a lot more investigation. I'll take a gamble and say > something is broken.
I did a little looking at that shader and it looks like NIR dead-coded the contents of a for loop and, as a result, a bunch of stuff was promoted to push constants, hence fewer sampler messages. I didn't find anything broken but, then again, that's hard to do without being able to verifiably run the shader. I'll try and look at the places where we end up with more instructions. --Jason _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev