gallium: Use unpack_rgba() instead of fetch_rgba in translate_generic
authorEric Anholt <eric@anholt.net>
Thu, 13 Aug 2020 17:14:11 +0000 (10:14 -0700)
committerMarge Bot <eric+marge@anholt.net>
Sun, 16 Aug 2020 21:25:14 +0000 (21:25 +0000)
commit09196355b2b2b6a2d3935eb3c43fe784d226426a
tree6091b9e4c083b9d5ccea242f815bb207c282c60e
parent5b8d67cb64ca38c93089da2f0b414c5897a19e27
gallium: Use unpack_rgba() instead of fetch_rgba in translate_generic

This is the only user of fetch_rgba outside of llvmpipe, and it's in the
fallback path of this fallback path.  Looking at an example of these two
functions, b8g8r8a8's unpack_rgba is 2.7x as long as fetch_rgba.  It feels
reasonable to sacrifice some perf in this already slow (VBO readback, and
a function pointer call per attribute per vertex) path to reduce our
binary size.  And, if I ever finish getting unpack codegen to switch to
rows instead of rects, that factor will go back down.

Saves 40kb of binary on non-llvmpipe gallium drivers.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6305>
src/gallium/auxiliary/translate/translate_generic.c