Quellcode durchsuchen

Don't reemit hardware state *every* primitive.

tags/mesa_20090313
Keith Whitwell vor 18 Jahren
Ursprung
Commit
277e4989f3

+ 1
- 0
src/mesa/pipe/i915simple/i915_context.h Datei anzeigen

@@ -56,6 +56,7 @@ struct i915_context
struct pipe_mipmap_tree *texture[PIPE_MAX_SAMPLERS];
struct pipe_viewport_state viewport;
GLuint dirty;
GLuint hw_dirty;

GLuint *batch_start;


+ 5
- 1
src/mesa/pipe/i915simple/i915_prim_emit.c Datei anzeigen

@@ -120,7 +120,11 @@ emit_prim( struct draw_stage *stage,
unsigned *ptr;
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 );
if (ptr == 0) {

+ 3
- 0
src/mesa/pipe/i915simple/i915_state_derived.c Datei anzeigen

@@ -182,5 +182,8 @@ void i915_update_derived( struct i915_context *i915 )
I915_NEW_FRAMEBUFFER))
compute_cliprect(i915);

if (i915->dirty)
i915->hw_dirty = 1;

i915->dirty = 0;
}

+ 2
- 0
src/mesa/pipe/i915simple/i915_state_emit.c Datei anzeigen

@@ -250,5 +250,7 @@ i915_emit_hardware_state(struct i915_context *i915 )
for (i = 0; i < dwords; i++)
OUT_BATCH( prog[i] );
}

i915->hw_dirty = 0;
}


Laden…
Abbrechen
Speichern