iris: Disable sRGB fast-clears for non-0/1 values
authorNanley Chery <nanley.g.chery@intel.com>
Thu, 14 May 2020 15:48:30 +0000 (08:48 -0700)
committerMarge Bot <eric+marge@anholt.net>
Fri, 19 Jun 2020 21:03:31 +0000 (21:03 +0000)
commitf8961ea08654ed762608535f331e169f7afde182
tree931e0264d5a77c8452eb39ad89b70656fa48605f
parent48a3f4c44b688176152203366c80011d7020ff63
iris: Disable sRGB fast-clears for non-0/1 values

For texturing and draw calls, HW expects the clear color to be in two
different color spaces after sRGB fast-clears - sRGB in the former and
linear in the latter. Up until now, iris has stored the clear color in
the sRGB color space. Limit the allowable clear colors for sRGB
fast-clears to 0/1 so that both color space requirements are satisfied.

Makes iris pass the sRGB -> sRGB subtest of the fcc-write-after-clear
piglit test on gen9+.

v2:
* Drop iris_context::blend_enables. (Ken)
* Drop some more resolve-related blend-state-tracking code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4972>
src/gallium/drivers/iris/iris_blit.c
src/gallium/drivers/iris/iris_clear.c
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_resolve.c
src/gallium/drivers/iris/iris_resource.h
src/gallium/drivers/iris/iris_state.c