diff options
Diffstat (limited to 'src/gallium')
| -rw-r--r-- | src/gallium/drivers/nv50/nv50_miptree.c | 9 | ||||
| -rw-r--r-- | src/gallium/drivers/nv50/nv50_screen.c | 5 | ||||
| -rw-r--r-- | src/gallium/drivers/nv50/nv50_state_validate.c | 15 | 
3 files changed, 20 insertions, 9 deletions
| diff --git a/src/gallium/drivers/nv50/nv50_miptree.c b/src/gallium/drivers/nv50/nv50_miptree.c index 22465e0227..c8392799ed 100644 --- a/src/gallium/drivers/nv50/nv50_miptree.c +++ b/src/gallium/drivers/nv50/nv50_miptree.c @@ -42,9 +42,14 @@ nv50_miptree_create(struct pipe_screen *pscreen, const struct pipe_texture *tmp)  	mt->base.screen = pscreen;  	switch (pt->format) { -	case PIPE_FORMAT_Z24X8_UNORM: +	case PIPE_FORMAT_Z32_FLOAT: +		tile_flags = 0x4800; +		break;  	case PIPE_FORMAT_Z24S8_UNORM: -	case PIPE_FORMAT_Z16_UNORM: +		tile_flags = 0x1800; +		break; +	case PIPE_FORMAT_X8Z24_UNORM: +	case PIPE_FORMAT_S8Z24_UNORM:  		tile_flags = 0x2800;  		break;  	default: diff --git a/src/gallium/drivers/nv50/nv50_screen.c b/src/gallium/drivers/nv50/nv50_screen.c index 349619db21..0f6b1aed96 100644 --- a/src/gallium/drivers/nv50/nv50_screen.c +++ b/src/gallium/drivers/nv50/nv50_screen.c @@ -44,9 +44,10 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,  	} else  	if (tex_usage & PIPE_TEXTURE_USAGE_DEPTH_STENCIL) {  		switch (format) { +		case PIPE_FORMAT_Z32_FLOAT:  		case PIPE_FORMAT_Z24S8_UNORM: -		case PIPE_FORMAT_Z24X8_UNORM: -		case PIPE_FORMAT_Z16_UNORM: +		case PIPE_FORMAT_X8Z24_UNORM: +		case PIPE_FORMAT_S8Z24_UNORM:  			return TRUE;  		default:  			break; diff --git a/src/gallium/drivers/nv50/nv50_state_validate.c b/src/gallium/drivers/nv50/nv50_state_validate.c index ce8e44fb00..4a49b107a5 100644 --- a/src/gallium/drivers/nv50/nv50_state_validate.c +++ b/src/gallium/drivers/nv50/nv50_state_validate.c @@ -92,17 +92,22 @@ nv50_state_validate_fb(struct nv50_context *nv50)  		so_reloc (so, bo, fb->zsbuf->offset, NOUVEAU_BO_VRAM |  			      NOUVEAU_BO_LOW | NOUVEAU_BO_RDWR, 0, 0);  		switch (fb->zsbuf->format) { +		case PIPE_FORMAT_Z32_FLOAT: +			so_data(so, NV50TCL_ZETA_FORMAT_Z32_FLOAT); +			break;  		case PIPE_FORMAT_Z24S8_UNORM: -		case PIPE_FORMAT_Z24X8_UNORM: -			so_data(so, 0x16); +			so_data(so, NV50TCL_ZETA_FORMAT_Z24S8_UNORM); +			break; +		case PIPE_FORMAT_X8Z24_UNORM: +			so_data(so, NV50TCL_ZETA_FORMAT_X8Z24_UNORM);  			break; -		case PIPE_FORMAT_Z16_UNORM: -			so_data(so, 0x15); +		case PIPE_FORMAT_S8Z24_UNORM: +			so_data(so, NV50TCL_ZETA_FORMAT_S8Z24_UNORM);  			break;  		default:  			NOUVEAU_ERR("AIIII unknown format %s\n",  				    pf_name(fb->zsbuf->format)); -			so_data(so, 0x16); +			so_data(so, NV50TCL_ZETA_FORMAT_S8Z24_UNORM);  			break;  		}  		so_data(so, bo->tile_mode << 4); | 
