summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_vs_draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/r300/r300_vs_draw.c')
-rw-r--r--src/gallium/drivers/r300/r300_vs_draw.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/gallium/drivers/r300/r300_vs_draw.c b/src/gallium/drivers/r300/r300_vs_draw.c
index 0975e86fa6f..73002da648d 100644
--- a/src/gallium/drivers/r300/r300_vs_draw.c
+++ b/src/gallium/drivers/r300/r300_vs_draw.c
@@ -314,7 +314,7 @@ void r300_draw_init_vertex_shader(struct r300_context *r300,
struct draw_context *draw = r300->draw;
struct tgsi_shader_info info;
struct vs_transform_context transform;
- const uint newLen = tgsi_num_tokens(vs->state.tokens) + 100 /* XXX */;
+ const uint newLen = tgsi_num_tokens(vs->state.tokens) + 100;
struct pipe_shader_state new_vs = {
.type = PIPE_SHADER_IR_TGSI,
.tokens = tgsi_alloc_tokens(newLen)
@@ -323,9 +323,6 @@ void r300_draw_init_vertex_shader(struct r300_context *r300,
tgsi_scan_shader(vs->state.tokens, &info);
- if (new_vs.tokens == NULL)
- return;
-
memset(&transform, 0, sizeof(transform));
for (i = 0; i < ARRAY_SIZE(transform.out_remap); i++) {
transform.out_remap[i] = i;
@@ -350,9 +347,9 @@ void r300_draw_init_vertex_shader(struct r300_context *r300,
}
}
- tgsi_transform_shader(vs->state.tokens,
- (struct tgsi_token*)new_vs.tokens,
- newLen, &transform.base);
+ new_vs.tokens = tgsi_transform_shader(vs->state.tokens, newLen, &transform.base);
+ if (!new_vs.tokens)
+ return;
#if 0
printf("----------------------------------------------\norig shader:\n");