aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_gen_mipmap.c
diff options
context:
space:
mode:
authorBrian <[email protected]>2008-03-19 11:12:48 -0600
committerBrian <[email protected]>2008-03-19 11:14:18 -0600
commit7d95efde0a0e13e13c59444703bc47eb13926385 (patch)
tree807dbe0e71c0c98534fef1957b7317acd306c3a5 /src/mesa/state_tracker/st_gen_mipmap.c
parent1213c7257335d577cf0217e34edafddf0451ba1b (diff)
gallium: implement CSO save/restore functions for use by meta operations (blit, gen-mipmaps, quad-clear, etc)
Also, additional cso_set_*() functions for viewport, framebuffer, blend color, etc. state.
Diffstat (limited to 'src/mesa/state_tracker/st_gen_mipmap.c')
-rw-r--r--src/mesa/state_tracker/st_gen_mipmap.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/mesa/state_tracker/st_gen_mipmap.c b/src/mesa/state_tracker/st_gen_mipmap.c
index 6c3afca1ba1..61e1d9621c1 100644
--- a/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/src/mesa/state_tracker/st_gen_mipmap.c
@@ -59,7 +59,7 @@
void
st_init_generate_mipmap(struct st_context *st)
{
- st->gen_mipmap = util_create_gen_mipmap(st->pipe);
+ st->gen_mipmap = util_create_gen_mipmap(st->pipe, st->cso_context);
}
@@ -94,19 +94,11 @@ st_render_mipmap(struct st_context *st,
util_gen_mipmap(st->gen_mipmap, pt, face, baseLevel, lastLevel);
- /* restore pipe state */
-#if 0
- cso_set_rasterizer(st->cso_context, &st->state.rasterizer);
- cso_set_samplers(st->cso_context, st->state.samplers_list);
- pipe->bind_fs_state(pipe, st->fp->shader_program);
- pipe->bind_vs_state(pipe, st->vp->shader_program);
- pipe->set_sampler_textures(pipe, st->state.num_textures,
- st->state.sampler_texture);
- pipe->set_viewport_state(pipe, &st->state.viewport);
-#else
- /* XXX is this sufficient? */
- st_invalidate_state(st->ctx, _NEW_COLOR | _NEW_TEXTURE);
-#endif
+ /* shaders don't go through CSO yet */
+ if (st->fp)
+ pipe->bind_fs_state(pipe, st->fp->driver_shader);
+ if (st->vp)
+ pipe->bind_vs_state(pipe, st->vp->driver_shader);
return TRUE;
}