| struct pipe_mipmap_tree *texture[PIPE_MAX_SAMPLERS]; | struct pipe_mipmap_tree *texture[PIPE_MAX_SAMPLERS]; | ||||
| struct pipe_viewport_state viewport; | struct pipe_viewport_state viewport; | ||||
| GLuint dirty; | GLuint dirty; | ||||
| GLuint hw_dirty; | |||||
| GLuint *batch_start; | GLuint *batch_start; | ||||
| unsigned *ptr; | unsigned *ptr; | ||||
| unsigned i; | unsigned i; | ||||
| i915_emit_hardware_state( i915 ); | |||||
| if (i915->dirty) | |||||
| i915_update_derived( i915 ); | |||||
| if (i915->hw_dirty) | |||||
| i915_emit_hardware_state( i915 ); | |||||
| ptr = winsys->batch_start( winsys, nr * vertex_size, 0 ); | ptr = winsys->batch_start( winsys, nr * vertex_size, 0 ); | ||||
| if (ptr == 0) { | if (ptr == 0) { | 
| I915_NEW_FRAMEBUFFER)) | I915_NEW_FRAMEBUFFER)) | ||||
| compute_cliprect(i915); | compute_cliprect(i915); | ||||
| if (i915->dirty) | |||||
| i915->hw_dirty = 1; | |||||
| i915->dirty = 0; | i915->dirty = 0; | ||||
| } | } | 
| for (i = 0; i < dwords; i++) | for (i = 0; i < dwords; i++) | ||||
| OUT_BATCH( prog[i] ); | OUT_BATCH( prog[i] ); | ||||
| } | } | ||||
| i915->hw_dirty = 0; | |||||
| } | } | ||||