diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/shader/shader_api.c | 10 | ||||
-rw-r--r-- | src/mesa/vbo/vbo_exec_draw.c | 1 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/shader/shader_api.c b/src/mesa/shader/shader_api.c index 42b7fa78b6..b52be128c3 100644 --- a/src/mesa/shader/shader_api.c +++ b/src/mesa/shader/shader_api.c @@ -1632,7 +1632,6 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, if (param->Type == PROGRAM_SAMPLER) { /* This controls which texture unit which is used by a sampler */ - GLuint texUnit, sampler; GLint i; /* data type for setting samplers must be int */ @@ -1647,8 +1646,9 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, * common thing... */ for (i = 0; i < count; i++) { - sampler = (GLuint) program->Parameters->ParameterValues[index + i][0]; - texUnit = ((GLuint *) values)[i]; + GLuint sampler = + (GLuint) program->Parameters->ParameterValues[index + offset + i][0]; + GLuint texUnit = ((GLuint *) values)[i]; /* check that the sampler (tex unit index) is legal */ if (texUnit >= ctx->Const.MaxTextureImageUnits) { @@ -1659,6 +1659,10 @@ set_program_uniform(GLcontext *ctx, struct gl_program *program, /* This maps a sampler to a texture unit: */ if (sampler < MAX_SAMPLERS) { +#if 0 + _mesa_printf("Set program %p sampler %d '%s' to unit %u\n", + program, sampler, param->Name, texUnit); +#endif program->SamplerUnits[sampler] = texUnit; } } diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c index 625452ac09..53fa90b8af 100644 --- a/src/mesa/vbo/vbo_exec_draw.c +++ b/src/mesa/vbo/vbo_exec_draw.c @@ -398,6 +398,7 @@ vbo_exec_vtx_flush( struct vbo_exec_context *exec, GLboolean unmap ) vbo_exec_vtx_unmap( exec ); } + if (unmap || exec->vtx.vertex_size == 0) exec->vtx.max_vert = 0; else |