summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/r600/r600_asm.c6
-rw-r--r--src/gallium/drivers/r600/r600_formats.h3
2 files changed, 9 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 3cd14fc8291..86f79e209b2 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -2134,6 +2134,12 @@ void r600_vertex_data_type(enum pipe_format pformat,
*format_comp = 0;
*endian = ENDIAN_NONE;
+ if (pformat == PIPE_FORMAT_R11G11B10_FLOAT) {
+ *format = FMT_10_11_11_FLOAT;
+ *endian = r600_endian_swap(32);
+ return;
+ }
+
desc = util_format_description(pformat);
if (desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) {
goto out_unknown;
diff --git a/src/gallium/drivers/r600/r600_formats.h b/src/gallium/drivers/r600/r600_formats.h
index 6f5722851d4..453c2b12c0d 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;