diff options
| author | Ben Skeggs <skeggsb@gmail.com> | 2007-12-19 13:28:22 +1100 | 
|---|---|---|
| committer | Ben Skeggs <skeggsb@gmail.com> | 2007-12-19 13:36:20 +1100 | 
| commit | d67c2c1cd5d0bb77a08a46d2e9a2bdae6b2c8ff3 (patch) | |
| tree | 274cc4ae31a0f26b0e66667fe2be35478a8163ed /src | |
| parent | 3e1e40ee79317dc5817af25f65d4a483b08fe592 (diff) | |
nouveau: remove sync hack, gallium got sort-of fixed.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c | 15 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/nouveau_winsys/nouveau_drmif.h | 1 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c | 10 | 
3 files changed, 5 insertions, 21 deletions
diff --git a/src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c b/src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c index d31026b52d..46df588b5b 100644 --- a/src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c +++ b/src/mesa/drivers/dri/nouveau_winsys/nouveau_bo.c @@ -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); diff --git a/src/mesa/drivers/dri/nouveau_winsys/nouveau_drmif.h b/src/mesa/drivers/dri/nouveau_winsys/nouveau_drmif.h index 6d6633fac3..9978652dd6 100644 --- a/src/mesa/drivers/dri/nouveau_winsys/nouveau_drmif.h +++ b/src/mesa/drivers/dri/nouveau_winsys/nouveau_drmif.h @@ -252,7 +252,6 @@ struct nouveau_bo_priv {  	int user;  	int refcount; -	int sync_hack;  };  #define nouveau_bo(n) ((struct nouveau_bo_priv *)(n)) diff --git a/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c b/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c index 36f201712a..981c4dd7dd 100644 --- a/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c +++ b/src/mesa/drivers/dri/nouveau_winsys/nouveau_pushbuf.c @@ -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));  | 
