Show More
Commit Description:
Optimize PreserveCounts and only recalculate when needed....
Commit Description:
Optimize PreserveCounts and only recalculate when needed.
Previously would recalculate preservecounts every Update call (~1 per frame), which isn't necessary
when there's no tick. Might be some room to tweak, like doing these updates only when preserves change.
Some measurements: This takes about 30ms versus the .25 ms with no preserve (then like .0002ms).
When the map is filled up with preserve, about 35ms and 9ms. With a handful of
cells, it's more like 0.8ms (before JIT optimizes most of it away).
References:
File last commit:
Show/Diff file:
Action:
FNA/lib/MojoShader/counts.sh
13 lines | 509 B | application/x-sh | BashLexer
13 lines | 509 B | application/x-sh | BashLexer
r0 | #!/bin/sh | |||
# !!! FIXME: use this to correct our estimates some day. | ||||
for feh in shaders/??_?_?/*.bytecode ; do | ||||
DISASM=`echo $feh |perl -w -p -e 's/bytecode\Z/disasm/;'` | ||||
MINE=`./cmake-build/testparse d3d $feh |grep "INSTRUCTION COUNT: " |perl -w -p -e 's/\AINSTRUCTION COUNT: //;'` | ||||
THEIRS=`grep "instruction slots used" $DISASM |perl -w -p -e 's#\A// approximately (\d+) instruction slots used .*?\Z#$1#;'` | ||||
if [ "x$MINE" != "x$THEIRS" ]; then | ||||
echo "$feh $MINE vs. $THEIRS" | ||||
fi | ||||
done | ||||