On Mon, Jun 27, 2016 at 2:43 PM, Matt Turner <matts...@gmail.com> wrote: > On Mon, Jun 27, 2016 at 4:44 AM, Rob Clark <robdcl...@gmail.com> wrote: >> On Mon, Jun 27, 2016 at 7:13 AM, Alan Swanson <rei...@improbability.net> >> wrote: >>> On 2016-06-25 13:37, Rob Clark wrote: >>>> >>>> Some games are sloppy.. perhaps because it is defined behavior for DX or >>>> perhaps because nv blob driver defaults things to zero. >>>> >>>> So add driconf param to force uninitialized variables to default to zero. >>>> >>>> This issue was observed with rust, from steam store. But has surfaced >>>> elsewhere in the past. >>>> >>>> Signed-off-by: Rob Clark <robcl...@freedesktop.org> >>>> --- >>>> Note that I left out the drirc bit, since not entirely sure how to >>>> identify this game. (I don't actually have the game, just working off >>>> of an apitrace) >>>> >>>> Possibly worth mentioning that for the shaders using uninitialized vars >>>> having zero-initializers lets constant-propagation get rid of a whole >>>> lot of instructions. One shader I saw dropped to less than half of >>>> it's original instruction count. >>> >>> >>> If the default for uninitialised variables is undefined, then with the >>> reported shader optimisations why bother with the (DRI) option when >>> zeroing could still essentially be classed as undefined? >>> >>> Cuts the patch down to just the src/compiler/glsl/ast_to_hir.cpp change. >> >> I did suggest that on #dri-devel, but Jason had a theoretical example >> where it would hurt.. iirc something like: >> >> float maybe_undef; >> for (int i = 0; i < some_uniform_at_least_one; i++) >> maybe_undef = ... >> >> also, he didn't want to hide shader bugs that app should fix. >> >> It would be interesting to rush shaderdb w/ glsl_zero_init=true and >> see what happens, but I didn't get around to that yet. > > Here's what I get on i965. It's not a clear win. > > total instructions in shared programs: 5249030 -> 5249002 (-0.00%) > instructions in affected programs: 28936 -> 28908 (-0.10%) > helped: 66 > HURT: 132 > > total cycles in shared programs: 57966694 -> 57956306 (-0.02%) > cycles in affected programs: 1136118 -> 1125730 (-0.91%) > helped: 78 > HURT: 106
interesting.. so I guess there is at least some shader in there w/ some uninitialized vars.. BR, -R _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev