nouveau: remove sync hack, gallium got sort-of fixed.

This commit is contained in:
Ben Skeggs 2007-12-19 13:28:22 +11:00
parent 3e1e40ee79
commit d67c2c1cd5
3 changed files with 5 additions and 21 deletions

View file

@ -253,20 +253,15 @@ nouveau_bo_validate(struct nouveau_channel *chan, struct nouveau_bo *bo,
if (!nvbo->drm.size) {
nouveau_bo_realloc_gpu(nvbo, flags, nvbo->base.size);
nouveau_bo_upload(nvbo);
if (!nvbo->user) {
free(nvbo->sysmem);
nvbo->sysmem = NULL;
}
} else
if (nvbo->user) {
nouveau_bo_upload(nvbo);
} else
if (nvbo->base.map) {
nouveau_bo_upload(nvbo);
nvbo->sync_hack = 1;
}
if (!nvbo->user && !nvbo->base.map) {
free(nvbo->sysmem);
nvbo->sysmem = NULL;
}
if (nvbo->fence)
nouveau_fence_del(&nvbo->fence);
nouveau_fence_ref(fence, &nvbo->fence);

View file

@ -252,7 +252,6 @@ struct nouveau_bo_priv {
int user;
int refcount;
int sync_hack;
};
#define nouveau_bo(n) ((struct nouveau_bo_priv *)(n))

View file

@ -68,7 +68,6 @@ nouveau_pushbuf_flush(struct nouveau_channel *chan)
struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(nvchan->pb_tail);
struct nouveau_pushbuf_bo *pbbo;
struct nouveau_fence *fence = NULL;
int sync_hack = 0;
int ret;
if (!nvpb)
@ -90,9 +89,6 @@ nouveau_pushbuf_flush(struct nouveau_channel *chan)
ret = nouveau_bo_validate(chan, bo, fence, pbbo->flags);
assert (ret == 0);
sync_hack |= nouveau_bo(bo)->sync_hack;
nouveau_bo(bo)->sync_hack = 0;
while ((r = ptr_to_pbrel(pbbo->relocs))) {
uint32_t push;
@ -144,12 +140,6 @@ nouveau_pushbuf_flush(struct nouveau_channel *chan)
/* Kickoff */
FIRE_RING_CH(chan);
if (sync_hack) {
struct nouveau_fence *f = NULL;
nouveau_fence_ref(nvpb->fence, &f);
nouveau_fence_wait(&f);
}
/* Allocate space for next push buffer */
out_realloc:
nvpb = calloc(1, sizeof(struct nouveau_pushbuf_priv));