Mesa (master): r300g: handle vertex format PIPE_FORMAT_NONE
Marek Olšák
mareko at kemper.freedesktop.org
Sun Jan 4 22:57:23 UTC 2015
Module: Mesa
Branch: master
Commit: 3793a1b42149112f543d33a622a163a5057ecc3d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3793a1b42149112f543d33a622a163a5057ecc3d
Author: Marek Olšák <marek.olsak at amd.com>
Date: Sun Jan 4 23:53:23 2015 +0100
r300g: handle vertex format PIPE_FORMAT_NONE
---
src/gallium/drivers/r300/r300_state_inlines.h | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r300/r300_state_inlines.h b/src/gallium/drivers/r300/r300_state_inlines.h
index 62c03b3..97619db 100644
--- a/src/gallium/drivers/r300/r300_state_inlines.h
+++ b/src/gallium/drivers/r300/r300_state_inlines.h
@@ -343,6 +343,9 @@ r300_translate_vertex_data_type(enum pipe_format format) {
const struct util_format_description *desc;
unsigned i;
+ if (!format)
+ format = PIPE_FORMAT_R32_FLOAT;
+
desc = util_format_description(format);
if (desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) {
@@ -410,10 +413,16 @@ r300_translate_vertex_data_type(enum pipe_format format) {
static INLINE uint16_t
r300_translate_vertex_data_swizzle(enum pipe_format format) {
- const struct util_format_description *desc = util_format_description(format);
+ const struct util_format_description *desc;
unsigned i, swizzle = 0;
- assert(format);
+ if (!format)
+ return (R300_SWIZZLE_SELECT_FP_ZERO << R300_SWIZZLE_SELECT_X_SHIFT) |
+ (R300_SWIZZLE_SELECT_FP_ZERO << R300_SWIZZLE_SELECT_Y_SHIFT) |
+ (R300_SWIZZLE_SELECT_FP_ZERO << R300_SWIZZLE_SELECT_Z_SHIFT) |
+ (R300_SWIZZLE_SELECT_FP_ONE << R300_SWIZZLE_SELECT_W_SHIFT);
+
+ desc = util_format_description(format);
if (desc->layout != UTIL_FORMAT_LAYOUT_PLAIN) {
fprintf(stderr, "r300: Bad format %s in %s:%d\n",
More information about the mesa-commit
mailing list