st/mesa: honour sized internal formats in st_choose_format (v2)
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 14 Mar 2016 20:33:34 +0000 (15:33 -0500)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 18 Mar 2016 00:26:40 +0000 (19:26 -0500)
commita8eea696b8966d119e213d532158f63c5b280740
tree8b96598cec7e1e7b3b4b5c2943cd7d0af85a1e93
parent49eb5e75bdc54d230c87669dacf24efb8217e756
st/mesa: honour sized internal formats in st_choose_format (v2)

The bitcasting which is possible with shader images (and texture views?)
requires that when the user specifies a sized internal format for a
texture, we really allocate that format. To this end:

(1) find_exact_format should ignore sized internal formats and

(2) some of the entries in the mapping table corresponding to sized
    internal formats are reordered to use an RGBA format instead of
    a BGRA one.

This fixes arb_shader_image_load_store-bitcast in the (work in progress)
ARB_shader_image_load_store implementation for radeonsi.

v2: don't change the mapping of GL_RGB10: the change caused a regression
    because it preferred a format with an alpha channel, and GL_RGB10
    is not among the supported formats for shader images

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_format.c