gallivm: use nearest rounding for float->unorm24 conversion
authorRoland Scheidegger <sroland@vmware.com>
Wed, 31 Jul 2013 14:57:50 +0000 (16:57 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 31 Jul 2013 15:09:02 +0000 (17:09 +0200)
commitb1ed7202dfb64c01313e78bd4fe290ecd08bf5f7
tree7f365fe4f5b0398688c8193795084f843f56b9de
parent8624a514c21e00ec51d4d9d2f4aee315378357ae
gallivm: use nearest rounding for float->unorm24 conversion

Previously we were using truncation, which gives the correct result
only for numbers in [0.5-1.0] range (because there's no mantissa bits
to do any rounding there).
This is frequently hit (and probably only used there) when converting
fragment depth to depth format (d24s8 etc.) or otherwise dealing with
depth format.

v2: as spotted by Jose, get rid of extra type (src_type is already unsigned).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_conv.c