Просмотр исходного кода

Don't reemit hardware state *every* primitive.

tags/mesa_20090313
Keith Whitwell 18 лет назад
Родитель
Сommit
277e4989f3

+ 1
- 0
src/mesa/pipe/i915simple/i915_context.h Просмотреть файл

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;



+ 5
- 1
src/mesa/pipe/i915simple/i915_prim_emit.c Просмотреть файл

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) {

+ 3
- 0
src/mesa/pipe/i915simple/i915_state_derived.c Просмотреть файл

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;
} }

+ 2
- 0
src/mesa/pipe/i915simple/i915_state_emit.c Просмотреть файл

for (i = 0; i < dwords; i++) for (i = 0; i < dwords; i++)
OUT_BATCH( prog[i] ); OUT_BATCH( prog[i] );
} }

i915->hw_dirty = 0;
} }



Загрузка…
Отмена
Сохранить