diff options
Diffstat (limited to 'src/gallium')
| -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;     } | 
