X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fr600%2Fr600_formats.h;h=fa374d92e6fac5b7a1abb73cb4ce65fd5a361614;hb=7b0067d23a6f64cf83c42e7f11b2cd4100c569fe;hp=af6de1cd79762e55019e5b6c6b4b8df34cb15b45;hpb=330b6c85c961b32f704ce8ec7dbf8cb7fc0b80a8;p=mesa.git diff --git a/src/gallium/drivers/r600/r600_formats.h b/src/gallium/drivers/r600/r600_formats.h index af6de1cd797..fa374d92e6f 100644 --- a/src/gallium/drivers/r600/r600_formats.h +++ b/src/gallium/drivers/r600/r600_formats.h @@ -87,6 +87,9 @@ static INLINE bool r600_is_vertex_format_supported(enum pipe_format format) const struct util_format_description *desc = util_format_description(format); unsigned i; + if (format == PIPE_FORMAT_R11G11B10_FLOAT) + return true; + if (!desc) return false; @@ -101,11 +104,13 @@ static INLINE bool r600_is_vertex_format_supported(enum pipe_format format) /* No fixed, no double. */ if (desc->layout != UTIL_FORMAT_LAYOUT_PLAIN || (desc->channel[i].size == 64 && - desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT)) + desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT) || + desc->channel[i].type == UTIL_FORMAT_TYPE_FIXED) return false; /* No scaled/norm formats with 32 bits per channel. */ if (desc->channel[i].size == 32 && + !desc->channel[i].pure_integer && (desc->channel[i].type == UTIL_FORMAT_TYPE_SIGNED || desc->channel[i].type == UTIL_FORMAT_TYPE_UNSIGNED)) return false;