libpayload: Add simple 32.32 fixed-point math API
struct fraction is slooooooooooow. This patch adds a simple 64-bit (32-bits integral, 32-bits fractional) fixed-point math API that is *much* faster (observed roughly 5x speed-up) when doing intensive graphics operations. It is optimized for speed over accuracy so some operations may lose a bit more precision than expected, but overall it's still plenty of bits for most use cases. Also includes support for basic trigonometric functions with a small lookup table. Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: Id0f9c23980e36ce0ac0b7c5cd0bc66153bca1fd0 Reviewed-on: https://review.coreboot.org/c/coreboot/+/42993 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
This commit is contained in:
@@ -38,3 +38,4 @@ libc-$(CONFIG_LP_LIBC) += hexdump.c
|
||||
libc-$(CONFIG_LP_LIBC) += die.c
|
||||
libc-$(CONFIG_LP_LIBC) += coreboot.c
|
||||
libc-$(CONFIG_LP_LIBC) += fmap.c
|
||||
libc-$(CONFIG_LP_LIBC) += fpmath.c
|
||||
|
Reference in New Issue
Block a user