summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util/u_tests.h
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2015-08-09 02:03:33 +0200
committerRoland Scheidegger <[email protected]>2015-08-26 02:57:37 +0200
commit941346a80323c9419b70e3987b900a69ebb08fb4 (patch)
tree50d34b353c5cdb19cae1e0f79b25b4dca81574c3 /src/gallium/auxiliary/util/u_tests.h
parentc1452983b44cc8ee238b8c7e2cfca1105c707487 (diff)
gallium/auxiliary: optimize rgb9e5 helper a bit
This code (lifted straight from the extension) was doing things the most inefficient way you could think of. This drops some of the more expensive float operations, in particular - int-cast floors (pointless, values always positive) - 2 raised to (signed) integers (replace with simple exponent manipulation), getting rid of a misguided comment in the process (implement with table...) - float division (replace with mul of reverse of those exponents) This is like 3 times faster (measured for float3_to_rgb9e5), though it depends (e.g. llvm is clever enough to replace exp2 with ldexp whereas gcc is not, division is not too bad on cpus with early-exit divs). Note that keeping the double math for now (float x + 0.5), as the results may otherwise differ. Acked-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util/u_tests.h')
0 files changed, 0 insertions, 0 deletions