void *blend)
{
struct i915_context *i915 = i915_context(pipe);
+
+ if (i915->blend == blend)
+ return;
+
draw_flush(i915->draw);
i915->blend = (struct i915_blend_state*)blend;
const struct pipe_blend_color *blend_color )
{
struct i915_context *i915 = i915_context(pipe);
+
+ if (!blend_color)
+ return;
+
draw_flush(i915->draw);
i915->blend_color = *blend_color;
const struct pipe_stencil_ref *stencil_ref )
{
struct i915_context *i915 = i915_context(pipe);
+
draw_flush(i915->draw);
i915->stencil_ref = *stencil_ref;
void *depth_stencil)
{
struct i915_context *i915 = i915_context(pipe);
+
+ if (i915->depth_stencil == depth_stencil)
+ return;
+
draw_flush(i915->draw);
i915->depth_stencil = (const struct i915_depth_stencil_state *)depth_stencil;
const struct pipe_scissor_state *scissor )
{
struct i915_context *i915 = i915_context(pipe);
+
draw_flush(i915->draw);
memcpy( &i915->scissor, scissor, sizeof(*scissor) );
i915_fixup_bind_fs_state(struct pipe_context *pipe, void *shader)
{
struct i915_context *i915 = i915_context(pipe);
+
+ if (i915->saved_fs == shader)
+ return;
+
draw_flush(i915->draw);
i915->saved_fs = shader;
i915_bind_fs_state(struct pipe_context *pipe, void *shader)
{
struct i915_context *i915 = i915_context(pipe);
+
+ if (i915->fs == shader)
+ return;
+
draw_flush(i915->draw);
i915->fs = (struct i915_fragment_shader*) shader;
{
struct i915_context *i915 = i915_context(pipe);
+ if (i915->saved_vs == shader)
+ return;
+
i915->saved_vs = shader;
/* just pass-through to draw module */
const struct pipe_clip_state *clip )
{
struct i915_context *i915 = i915_context(pipe);
+
draw_flush(i915->draw);
i915->saved_clip = *clip;
{
struct i915_context *i915 = i915_context(pipe);
+ if (i915->rasterizer == raster)
+ return;
+
i915->rasterizer = (struct i915_rasterizer_state *)raster;
/* pass-through to draw module */
struct i915_context *i915 = i915_context(pipe);
struct i915_velems_state *i915_velems = (struct i915_velems_state *) velems;
+ if (i915->saved_velems == velems)
+ return;
+
i915->saved_velems = velems;
/* pass-through to draw module */