st/mesa/i965: Allow decompressing ETC2 to GL_RGBA
authorTomeu Vizoso <tomeu.vizoso@collabora.com>
Fri, 22 Jun 2018 13:59:08 +0000 (15:59 +0200)
committerGert Wollny <gw.fossdev@gmail.com>
Mon, 2 Jul 2018 07:33:33 +0000 (09:33 +0200)
commite5604ef78bd56fc136f00ee39003e3996bf23c80
treef698f83c67c7174bdd80277a71237cf514e4f950
parent1b54824687df5170e1dd5ab701b2b76da299b851
st/mesa/i965: Allow decompressing ETC2 to GL_RGBA

When Mesa itself implements ETC2 decompression, it currently
decompresses to formats in the GL_BGRA component order.

That can be problematic for drivers which cannot upload the texture data
as GL_BGRA, such as Virgl when it's backed by GLES on the host.

So this commit adds a flag to _mesa_unpack_etc2_format so callers can
specify the optimal component order.

In Gallium's case, it will be requested if the format isn't in
PIPE_FORMAT_B8G8R8A8_SRGB format.

For i965, it will remain GL_BGRA, as before.

v2: * Remove unnecesary include (Emil Velikov)

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c
src/mesa/main/texcompress_etc.c
src/mesa/main/texcompress_etc.h
src/mesa/state_tracker/st_cb_texture.c