radeonsi: simplify DCC format categories

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
Marek Olšák 2018-03-26 18:52:23 -04:00
parent 3fea237c85
commit 025105453a

View file

@ -1882,15 +1882,12 @@ static const struct u_resource_vtbl r600_texture_vtbl =
/* DCC channel type categories within which formats can be reinterpreted
* while keeping the same DCC encoding. The swizzle must also match. */
enum dcc_channel_type {
dcc_channel_float32,
dcc_channel_uint32,
dcc_channel_sint32,
dcc_channel_float16,
dcc_channel_uint16,
dcc_channel_sint16,
dcc_channel_float,
/* uint and sint can be merged if we never use TC-compatible DCC clear
* encoding with the clear value of 1. */
dcc_channel_uint,
dcc_channel_sint,
dcc_channel_uint_10_10_10_2,
dcc_channel_uint8,
dcc_channel_sint8,
dcc_channel_incompatible,
};
@ -1909,23 +1906,15 @@ vi_get_dcc_channel_type(const struct util_format_description *desc)
switch (desc->channel[i].size) {
case 32:
if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
return dcc_channel_float32;
if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
return dcc_channel_uint32;
return dcc_channel_sint32;
case 16:
case 8:
if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)
return dcc_channel_float16;
return dcc_channel_float;
if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
return dcc_channel_uint16;
return dcc_channel_sint16;
return dcc_channel_uint;
return dcc_channel_sint;
case 10:
return dcc_channel_uint_10_10_10_2;
case 8:
if (desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)
return dcc_channel_uint8;
return dcc_channel_sint8;
default:
return dcc_channel_incompatible;
}