Kaynağa Gözat

nv50: use flush_notify to reduce number of relocs

tags/mesa_7_7_rc1
Maarten Maathuis 16 yıl önce
ebeveyn
işleme
db37279e0b

+ 3
- 0
src/gallium/drivers/nv50/nv50_context.c Dosyayı Görüntüle

@@ -110,6 +110,9 @@ nv50_create(struct pipe_screen *pscreen, unsigned pctx_id)
nv50->pipe.is_texture_referenced = nv50_is_texture_referenced;
nv50->pipe.is_buffer_referenced = nv50_is_buffer_referenced;

screen->base.channel->user_private = nv50;
screen->base.channel->flush_notify = nv50_state_flush_notify;

nv50_init_surface_functions(nv50);
nv50_init_state_functions(nv50);
nv50_init_query_functions(nv50);

+ 1
- 0
src/gallium/drivers/nv50/nv50_context.h Dosyayı Görüntüle

@@ -196,6 +196,7 @@ extern void nv50_program_destroy(struct nv50_context *nv50, struct nv50_program

/* nv50_state_validate.c */
extern boolean nv50_state_validate(struct nv50_context *nv50);
extern void nv50_state_flush_notify(struct nouveau_channel *chan);

/* nv50_tex.c */
extern void nv50_tex_validate(struct nv50_context *);

+ 6
- 0
src/gallium/drivers/nv50/nv50_state_validate.c Dosyayı Görüntüle

@@ -212,6 +212,12 @@ nv50_state_emit(struct nv50_context *nv50)
so_emit(chan, nv50->state.vtxattr);
}
nv50->state.dirty = 0;
}

void
nv50_state_flush_notify(struct nouveau_channel *chan)
{
struct nv50_context *nv50 = chan->user_private;

so_emit_reloc_markers(chan, nv50->state.fb);
so_emit_reloc_markers(chan, nv50->state.vertprog);

Loading…
İptal
Kaydet