diff options
Diffstat (limited to 'src/gallium/drivers/i965')
-rw-r--r-- | src/gallium/drivers/i965/brw_pipe_shader.c | 11 | ||||
-rw-r--r-- | src/gallium/drivers/i965/brw_vs_emit.c | 2 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/gallium/drivers/i965/brw_pipe_shader.c b/src/gallium/drivers/i965/brw_pipe_shader.c index 8e10edb459..2833f2bce0 100644 --- a/src/gallium/drivers/i965/brw_pipe_shader.c +++ b/src/gallium/drivers/i965/brw_pipe_shader.c @@ -128,12 +128,19 @@ static void *brw_create_vs_state( struct pipe_context *pipe, vs->id = brw->program_id++; //vs->has_flow_control = brw_wm_has_flow_control(vs); - /* Tell the draw module about this shader: - */ + vs->tokens = tgsi_dup_tokens(shader->tokens); + if (vs->tokens == NULL) + goto fail; + + tgsi_scan_shader(vs->tokens, &vs->info); /* Done: */ return (void *)vs; + +fail: + FREE(vs); + return NULL; } diff --git a/src/gallium/drivers/i965/brw_vs_emit.c b/src/gallium/drivers/i965/brw_vs_emit.c index bcc5c5f713..95e2b8e2cb 100644 --- a/src/gallium/drivers/i965/brw_vs_emit.c +++ b/src/gallium/drivers/i965/brw_vs_emit.c @@ -90,7 +90,7 @@ static void brw_vs_alloc_regs( struct brw_vs_compile *c ) /* XXX: immediates can go elsewhere if necessary: */ assert(c->vp->info.file_max[TGSI_FILE_IMMEDIATE] + - c->vp->info.file_max[TGSI_FILE_TEMPORARY] + 21 > BRW_MAX_GRF); + c->vp->info.file_max[TGSI_FILE_TEMPORARY] + 21 <= BRW_MAX_GRF); c->vp->use_const_buffer = GL_FALSE; } |