diff options
| author | Younes Manton <younes.m@gmail.com> | 2009-12-06 12:26:55 -0500 | 
|---|---|---|
| committer | Younes Manton <younes.m@gmail.com> | 2009-12-06 12:34:27 -0500 | 
| commit | c574f515f0aa20ccc3841cf61a6124bc5996e7b2 (patch) | |
| tree | 43440f5f295cf423069e00df77add30cda486a0d | |
| parent | 07487643515edb731c6abc3e931c329a89dd9293 (diff) | |
nouveau: Work around nv04-nv40 miptrees not matching nouveau_miptree.
Thanks to Bob Gleitsmann for the patch.
I'll clean this up in a better way later if noone else beats me to it.
| -rw-r--r-- | src/gallium/drivers/nv04/nv04_miptree.c | 3 | ||||
| -rw-r--r-- | src/gallium/drivers/nv04/nv04_state.h | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/nv10/nv10_miptree.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv10/nv10_state.h | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/nv20/nv20_miptree.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv20/nv20_state.h | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/nv30/nv30_miptree.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/nv30/nv30_state.h | 1 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_miptree.c | 5 | ||||
| -rw-r--r-- | src/gallium/drivers/nv40/nv40_state.h | 1 | 
10 files changed, 17 insertions, 2 deletions
| diff --git a/src/gallium/drivers/nv04/nv04_miptree.c b/src/gallium/drivers/nv04/nv04_miptree.c index eeab6dfa30..e0a6948aeb 100644 --- a/src/gallium/drivers/nv04/nv04_miptree.c +++ b/src/gallium/drivers/nv04/nv04_miptree.c @@ -55,7 +55,7 @@ nv04_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *pt)  		FREE(mt);  		return NULL;  	} -	 +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } @@ -81,6 +81,7 @@ nv04_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,  	mt->level[0].image_offset = CALLOC(1, sizeof(unsigned));  	pipe_buffer_reference(&mt->buffer, pb); +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } diff --git a/src/gallium/drivers/nv04/nv04_state.h b/src/gallium/drivers/nv04/nv04_state.h index 399f750dbe..81d1d2ebaa 100644 --- a/src/gallium/drivers/nv04/nv04_state.h +++ b/src/gallium/drivers/nv04/nv04_state.h @@ -31,6 +31,7 @@ struct nv04_rasterizer_state {  struct nv04_miptree {  	struct pipe_texture base; +	struct nouveau_bo *bo;  	struct pipe_buffer *buffer;  	uint total_size; diff --git a/src/gallium/drivers/nv10/nv10_miptree.c b/src/gallium/drivers/nv10/nv10_miptree.c index 439beeccc3..6a52b6af36 100644 --- a/src/gallium/drivers/nv10/nv10_miptree.c +++ b/src/gallium/drivers/nv10/nv10_miptree.c @@ -67,6 +67,7 @@ nv10_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,  	mt->level[0].image_offset = CALLOC(1, sizeof(unsigned));  	pipe_buffer_reference(&mt->buffer, pb); +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } @@ -90,6 +91,7 @@ nv10_miptree_create(struct pipe_screen *screen, const struct pipe_texture *pt)  		FREE(mt);  		return NULL;  	} +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } diff --git a/src/gallium/drivers/nv10/nv10_state.h b/src/gallium/drivers/nv10/nv10_state.h index 3a3fd0d4f4..2524ac02e2 100644 --- a/src/gallium/drivers/nv10/nv10_state.h +++ b/src/gallium/drivers/nv10/nv10_state.h @@ -126,6 +126,7 @@ struct nv10_depth_stencil_alpha_state {  struct nv10_miptree {  	struct pipe_texture base; +	struct nouveau_bo *bo;  	struct pipe_buffer *buffer;  	uint total_size; diff --git a/src/gallium/drivers/nv20/nv20_miptree.c b/src/gallium/drivers/nv20/nv20_miptree.c index 2bde9fb75b..e2e01bd849 100644 --- a/src/gallium/drivers/nv20/nv20_miptree.c +++ b/src/gallium/drivers/nv20/nv20_miptree.c @@ -77,6 +77,7 @@ nv20_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,  	mt->level[0].image_offset = CALLOC(1, sizeof(unsigned));  	pipe_buffer_reference(&mt->buffer, pb); +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } @@ -132,6 +133,7 @@ nv20_miptree_create(struct pipe_screen *screen, const struct pipe_texture *pt)  		FREE(mt);  		return NULL;  	} +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } diff --git a/src/gallium/drivers/nv20/nv20_state.h b/src/gallium/drivers/nv20/nv20_state.h index 34f402fdcb..dde4106568 100644 --- a/src/gallium/drivers/nv20/nv20_state.h +++ b/src/gallium/drivers/nv20/nv20_state.h @@ -126,6 +126,7 @@ struct nv20_depth_stencil_alpha_state {  struct nv20_miptree {  	struct pipe_texture base; +	struct nouveau_bo *bo;  	struct pipe_buffer *buffer;  	uint total_size; diff --git a/src/gallium/drivers/nv30/nv30_miptree.c b/src/gallium/drivers/nv30/nv30_miptree.c index 9e50a7cf6b..920fe64c32 100644 --- a/src/gallium/drivers/nv30/nv30_miptree.c +++ b/src/gallium/drivers/nv30/nv30_miptree.c @@ -115,6 +115,7 @@ nv30_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *pt)  		FREE(mt);  		return NULL;  	} +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } @@ -144,6 +145,7 @@ nv30_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,  	mt->base.tex_usage |= NOUVEAU_TEXTURE_USAGE_LINEAR;  	pipe_buffer_reference(&mt->buffer, pb); +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } diff --git a/src/gallium/drivers/nv30/nv30_state.h b/src/gallium/drivers/nv30/nv30_state.h index e6f23bf166..e42e872de7 100644 --- a/src/gallium/drivers/nv30/nv30_state.h +++ b/src/gallium/drivers/nv30/nv30_state.h @@ -72,6 +72,7 @@ struct nv30_fragment_program {  struct nv30_miptree {  	struct pipe_texture base; +	struct nouveau_bo *bo;  	struct pipe_buffer *buffer;  	uint total_size; diff --git a/src/gallium/drivers/nv40/nv40_miptree.c b/src/gallium/drivers/nv40/nv40_miptree.c index 8779c5572b..89ddf373e9 100644 --- a/src/gallium/drivers/nv40/nv40_miptree.c +++ b/src/gallium/drivers/nv40/nv40_miptree.c @@ -5,6 +5,8 @@  #include "nv40_context.h" + +  static void  nv40_miptree_layout(struct nv40_miptree *mt)  { @@ -109,7 +111,7 @@ nv40_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *pt)  		FREE(mt);  		return NULL;  	} - +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } @@ -138,6 +140,7 @@ nv40_miptree_blanket(struct pipe_screen *pscreen, const struct pipe_texture *pt,  	mt->base.tex_usage |= NOUVEAU_TEXTURE_USAGE_LINEAR;  	pipe_buffer_reference(&mt->buffer, pb); +	mt->bo = nouveau_bo(mt->buffer);  	return &mt->base;  } diff --git a/src/gallium/drivers/nv40/nv40_state.h b/src/gallium/drivers/nv40/nv40_state.h index 8a9d8c8fdf..192074e747 100644 --- a/src/gallium/drivers/nv40/nv40_state.h +++ b/src/gallium/drivers/nv40/nv40_state.h @@ -75,6 +75,7 @@ struct nv40_fragment_program {  struct nv40_miptree {  	struct pipe_texture base; +	struct nouveau_bo *bo;  	struct pipe_buffer *buffer;  	uint total_size; | 
