diff options
author | Henri Verbeet <[email protected]> | 2010-11-17 00:29:02 +0100 |
---|---|---|
committer | Henri Verbeet <[email protected]> | 2010-11-17 00:41:42 +0100 |
commit | 7d0f45563d5426f0ad633bed1561c7455804b807 (patch) | |
tree | 9e5db57c489828ffc572a49469a559f00e7baa99 /src/gallium/drivers/r600/evergreen_state.c | |
parent | b6e2c32626551791a33433913dfb4401f8c67cf4 (diff) |
r600g: Swizzle vertex data only once.
Vertex data swizzles are already done in the vertex shader. Doing them twice
breaks BGRA vertex arrays for example.
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_state.c')
-rw-r--r-- | src/gallium/drivers/r600/evergreen_state.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 208959dbaac..1535b9af945 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -1276,7 +1276,10 @@ void evergreen_draw(struct pipe_context *ctx, const struct pipe_draw_info *info) word2 = format | S_030008_STRIDE(vertex_buffer->stride); - word3 = r600_translate_vertex_data_swizzle(rctx->vertex_elements->hw_format[i]); + word3 = S_03000C_DST_SEL_X(V_03000C_SQ_SEL_X) | + S_03000C_DST_SEL_Y(V_03000C_SQ_SEL_Y) | + S_03000C_DST_SEL_Z(V_03000C_SQ_SEL_Z) | + S_03000C_DST_SEL_W(V_03000C_SQ_SEL_W); r600_pipe_state_add_reg(rstate, R_030000_RESOURCE0_WORD0, offset, 0xFFFFFFFF, rbuffer->bo); r600_pipe_state_add_reg(rstate, R_030004_RESOURCE0_WORD1, rbuffer->size - offset - 1, 0xFFFFFFFF, NULL); |