[Mesa-dev] [PATCH 00/23] Handle Booleans and things better
Matt Turner
mattst88 at gmail.com
Fri Mar 20 15:13:24 PDT 2015
On Fri, Mar 20, 2015 at 1:58 PM, Ian Romanick <idr at freedesktop.org> wrote:
> This is a series that I've been working on for quite some time. Some of
> these patches data from as long ago as July 2014. It's finally time to
> just send it out. I have felt like I have been shaving an infinite yak,
> and I have some additional patchs in-progress that will go on top of
> this series.
>
> Overall results for the without NIR:
>
> GM45 (0x2A42):
> total instructions in shared programs: 3550788 -> 3544141 (-0.19%)
> instructions in affected programs: 513721 -> 507074 (-1.29%)
> helped: 1409
> HURT: 269
>
> Iron Lake (0x0046):
> total instructions in shared programs: 4980593 -> 4973020 (-0.15%)
> instructions in affected programs: 572150 -> 564577 (-1.32%)
> helped: 1649
> HURT: 386
> GAINED: 5
> LOST: 24
>
> Sandy Bridge (0x0116):
> total instructions in shared programs: 6817068 -> 6797680 (-0.28%)
> instructions in affected programs: 1388229 -> 1368841 (-1.40%)
> helped: 5343
> HURT: 319
> GAINED: 4
> LOST: 11
>
> Ivy Bridge (0x0166):
> total instructions in shared programs: 6290138 -> 6273022 (-0.27%)
> instructions in affected programs: 1204828 -> 1187712 (-1.42%)
> helped: 4558
> HURT: 825
> GAINED: 1
> LOST: 3
>
> Haswell (0x0426):
> total instructions in shared programs: 5777876 -> 5759525 (-0.32%)
> instructions in affected programs: 1130638 -> 1112287 (-1.62%)
> helped: 4830
> HURT: 606
> GAINED: 1
> LOST: 3
>
> Broadwell (0x162E):
> total instructions in shared programs: 6821191 -> 6806526 (-0.21%)
> instructions in affected programs: 1252081 -> 1237416 (-1.17%)
> helped: 5090
> HURT: 608
> GAINED: 4
> LOST: 4
>
> In some ways the results with NIR are even better (if you ignore Sandy
> Bridge):
>
> Sandy Bridge (0x0116) NIR:
> total instructions in shared programs: 6820689 -> 6785869 (-0.51%)
> instructions in affected programs: 1858575 -> 1823755 (-1.87%)
> helped: 4559
> HURT: 3320
> GAINED: 3
> LOST: 29
>
> Ivy Bridge (0x0166) NIR:
> total instructions in shared programs: 6309309 -> 6276897 (-0.51%)
> instructions in affected programs: 1639688 -> 1607276 (-1.98%)
> helped: 4053
> HURT: 3496
> GAINED: 34
> LOST: 3
>
> Haswell (0x0426) NIR:
> total instructions in shared programs: 5790261 -> 5751689 (-0.67%)
> instructions in affected programs: 1506127 -> 1467555 (-2.56%)
> helped: 5407
> HURT: 1957
> GAINED: 28
> LOST: 3
>
> Broadwell (0x162E) NIR:
> total instructions in shared programs: 7012929 -> 6977716 (-0.50%)
> instructions in affected programs: 1604094 -> 1568881 (-2.20%)
> helped: 5626
> HURT: 2029
> GAINED: 20
> LOST: 3
>
> In that there are 12 shaders that are hurt (by ~40 instructions) because
> we are now able to unroll a loop. This is noted in the commit message
> of "glsl: Optimize certain if-statements to just casts from the
> condition".
>
> There are a couple commits that hurt a fair number of shaders with NIR.
> It doesn't seem like this should be the case, and it seems like there is
> probably work that can be done in brw_fs_nir.cpp to account for this.
> Without some of the initial changes to brw_fs_visitor.cpp, there were
> also regressions without NIR. All of the changes in this series at the
> GLSL IR level are things that could have been written in the shader
> source.
>
> At the end of the day on Broadwell with NIR, there are a bunch of
> shaders (some as small as ~22 instructions) hurt by 1 to 4 instructions.
> Only one shader is really hurt (119 -> 139). This shader is noted in
> patch "glsl: Distribute multiply over b2f". At the same time, over 250
> shaders with more than 100 instructions are helped by more than 20%.
> Oh, and we gained 20 SIMD16 shaders. :)
>
> This series is also available as the bool-optimizations-v6 branch in my
> fd.o Mesa repo.
So, I want to review this, but I don't know how.
You've Cc'd various people on various patches. I guess I shouldn't review those?
But there are some patches that don't have anyone Cc'd. Can I review those?
This feels really stupid reading through a bunch of patches to find
ones that don't have people Cc'd that I can review, while still having
to read the others to get the context of the patch I'm reviewing.
Should I just ignore the Ccs and review them all?
More information about the mesa-dev
mailing list