panfrost/decode: Decode blend constant
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sat, 18 May 2019 20:48:43 +0000 (20:48 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Sun, 19 May 2019 17:41:23 +0000 (17:41 +0000)
commitae705387a968baf6ba36e887977c387b35fbec25
treea9aa217948cd47e347604e9ed4134ed3add06506
parent3645c781ab16c3e425916ff29745e3138197d8ab
panfrost/decode: Decode blend constant

This adds a forgotten decode line on Midgard and adds the field of a
blend constant on Bifrost. The Bifrost encoding is fairly weird; whereas
Midgard is just a regular 32-bit float, Bifrost uses a fancy
fixed-point-esque encoding. The decode logic here is experimentally
correct. The encode logic is a sort of "guesstimate", assuming that the
high byte is just int(f / 255.0) and then solving algebraicly for the
low byte. This might be slightly off in some cases.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ryan Houdek <Sonicadvance1@gmail.com>
src/gallium/drivers/panfrost/include/panfrost-job.h
src/gallium/drivers/panfrost/pandecode/decode.c