diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/r600/r600_state.c | 2 | ||||
| -rw-r--r-- | src/gallium/drivers/r600/r600_state_inlines.h | 161 | ||||
| -rw-r--r-- | src/gallium/drivers/r600/r600d.h | 19 | 
3 files changed, 93 insertions, 89 deletions
| diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index e8871cd748..deb9bf3395 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -695,7 +695,7 @@ static struct radeon_state *r600_cb(struct r600_context *rctx, int cb)  	ntype = 0;  	desc = util_format_description(rtex->resource.base.b.format);  	if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) -		ntype = NUM_FORMAT_SRGB; +		ntype = V_0280A0_NUMBER_SRGB;  	format = r600_translate_colorformat(rtex->resource.base.b.format);  	swap = r600_translate_colorswap(rtex->resource.base.b.format); diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h index fdc29386ae..8271ad19fb 100644 --- a/src/gallium/drivers/r600/r600_state_inlines.h +++ b/src/gallium/drivers/r600/r600_state_inlines.h @@ -147,117 +147,117 @@ static uint32_t r600_translate_colorswap(enum pipe_format format)  {  	switch (format) {  		/* 8-bit buffers. */ -        case PIPE_FORMAT_A8_UNORM: -        case PIPE_FORMAT_I8_UNORM: -        case PIPE_FORMAT_L8_UNORM: -        case PIPE_FORMAT_R8_UNORM: -        case PIPE_FORMAT_R8_SNORM: -		return SWAP_STD; +	case PIPE_FORMAT_A8_UNORM: +	case PIPE_FORMAT_I8_UNORM: +	case PIPE_FORMAT_L8_UNORM: +	case PIPE_FORMAT_R8_UNORM: +	case PIPE_FORMAT_R8_SNORM: +		return V_0280A0_SWAP_STD;  		/* 16-bit buffers. */ -        case PIPE_FORMAT_B5G6R5_UNORM: -		return SWAP_STD_REV; +	case PIPE_FORMAT_B5G6R5_UNORM: +		return V_0280A0_SWAP_STD_REV; -        case PIPE_FORMAT_B5G5R5A1_UNORM: -        case PIPE_FORMAT_B5G5R5X1_UNORM: -		return SWAP_ALT; +	case PIPE_FORMAT_B5G5R5A1_UNORM: +	case PIPE_FORMAT_B5G5R5X1_UNORM: +		return V_0280A0_SWAP_ALT; -        case PIPE_FORMAT_B4G4R4A4_UNORM: -        case PIPE_FORMAT_B4G4R4X4_UNORM: -		return SWAP_ALT; +	case PIPE_FORMAT_B4G4R4A4_UNORM: +	case PIPE_FORMAT_B4G4R4X4_UNORM: +		return V_0280A0_SWAP_ALT;  		/* 32-bit buffers. */ -        case PIPE_FORMAT_A8B8G8R8_SRGB: -		return SWAP_STD_REV; -        case PIPE_FORMAT_B8G8R8A8_SRGB: -		return SWAP_ALT; +	case PIPE_FORMAT_A8B8G8R8_SRGB: +		return V_0280A0_SWAP_STD_REV; +	case PIPE_FORMAT_B8G8R8A8_SRGB: +		return V_0280A0_SWAP_ALT; -        case PIPE_FORMAT_B8G8R8A8_UNORM: -        case PIPE_FORMAT_B8G8R8X8_UNORM: -		return SWAP_ALT; +	case PIPE_FORMAT_B8G8R8A8_UNORM: +	case PIPE_FORMAT_B8G8R8X8_UNORM: +		return V_0280A0_SWAP_ALT; -        case PIPE_FORMAT_A8R8G8B8_UNORM: -        case PIPE_FORMAT_X8R8G8B8_UNORM: -		return SWAP_ALT_REV; -        case PIPE_FORMAT_R8G8B8A8_SNORM: -        case PIPE_FORMAT_R8G8B8X8_UNORM: -		return SWAP_STD; +	case PIPE_FORMAT_A8R8G8B8_UNORM: +	case PIPE_FORMAT_X8R8G8B8_UNORM: +		return V_0280A0_SWAP_ALT_REV; +	case PIPE_FORMAT_R8G8B8A8_SNORM: +	case PIPE_FORMAT_R8G8B8X8_UNORM: +		return V_0280A0_SWAP_STD; -        case PIPE_FORMAT_A8B8G8R8_UNORM: -        case PIPE_FORMAT_X8B8G8R8_UNORM: -//        case PIPE_FORMAT_R8SG8SB8UX8U_NORM: -		return SWAP_STD_REV; +	case PIPE_FORMAT_A8B8G8R8_UNORM: +	case PIPE_FORMAT_X8B8G8R8_UNORM: +		//        case PIPE_FORMAT_R8SG8SB8UX8U_NORM: +		return V_0280A0_SWAP_STD_REV;  	case PIPE_FORMAT_Z24X8_UNORM:  	case PIPE_FORMAT_Z24_UNORM_S8_USCALED: -		return SWAP_STD; +		return V_0280A0_SWAP_STD; -        case PIPE_FORMAT_R10G10B10A2_UNORM: -        case PIPE_FORMAT_R10G10B10X2_SNORM: -        case PIPE_FORMAT_B10G10R10A2_UNORM: -        case PIPE_FORMAT_R10SG10SB10SA2U_NORM: -		return SWAP_STD_REV; +	case PIPE_FORMAT_R10G10B10A2_UNORM: +	case PIPE_FORMAT_R10G10B10X2_SNORM: +	case PIPE_FORMAT_B10G10R10A2_UNORM: +	case PIPE_FORMAT_R10SG10SB10SA2U_NORM: +		return V_0280A0_SWAP_STD_REV;  		/* 64-bit buffers. */ -        case PIPE_FORMAT_R16G16B16A16_UNORM: -        case PIPE_FORMAT_R16G16B16A16_SNORM: -//		return V_0280A0_COLOR_16_16_16_16; -        case PIPE_FORMAT_R16G16B16A16_FLOAT: -//		return V_0280A0_COLOR_16_16_16_16_FLOAT; +	case PIPE_FORMAT_R16G16B16A16_UNORM: +	case PIPE_FORMAT_R16G16B16A16_SNORM: +		//		return V_0280A0_COLOR_16_16_16_16; +	case PIPE_FORMAT_R16G16B16A16_FLOAT: +		//		return V_0280A0_COLOR_16_16_16_16_FLOAT;  		/* 128-bit buffers. */ -        case PIPE_FORMAT_R32G32B32A32_FLOAT: -//		return V_0280A0_COLOR_32_32_32_32_FLOAT; +	case PIPE_FORMAT_R32G32B32A32_FLOAT: +		//		return V_0280A0_COLOR_32_32_32_32_FLOAT;  		return 0;  	default:  		R600_ERR("unsupported colorswap format %d\n", format);  		return ~0;  	}  	return ~0; -  }  static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)  {  	switch (format) {  		/* 8-bit buffers. */ -        case PIPE_FORMAT_A8_UNORM: -        case PIPE_FORMAT_I8_UNORM: -        case PIPE_FORMAT_L8_UNORM: -        case PIPE_FORMAT_R8_UNORM: -        case PIPE_FORMAT_R8_SNORM: +	case PIPE_FORMAT_A8_UNORM: +	case PIPE_FORMAT_I8_UNORM: +	case PIPE_FORMAT_L8_UNORM: +	case PIPE_FORMAT_R8_UNORM: +	case PIPE_FORMAT_R8_SNORM:  		return V_0280A0_COLOR_8;  		/* 16-bit buffers. */ -        case PIPE_FORMAT_B5G6R5_UNORM: +	case PIPE_FORMAT_B5G6R5_UNORM:  		return V_0280A0_COLOR_5_6_5; -        case PIPE_FORMAT_B5G5R5A1_UNORM: -        case PIPE_FORMAT_B5G5R5X1_UNORM: +	case PIPE_FORMAT_B5G5R5A1_UNORM: +	case PIPE_FORMAT_B5G5R5X1_UNORM:  		return V_0280A0_COLOR_1_5_5_5; -        case PIPE_FORMAT_B4G4R4A4_UNORM: -        case PIPE_FORMAT_B4G4R4X4_UNORM: +	case PIPE_FORMAT_B4G4R4A4_UNORM: +	case PIPE_FORMAT_B4G4R4X4_UNORM:  		return V_0280A0_COLOR_4_4_4_4;  		/* 32-bit buffers. */ -        case PIPE_FORMAT_B8G8R8A8_UNORM: -        case PIPE_FORMAT_B8G8R8X8_UNORM: -        case PIPE_FORMAT_A8R8G8B8_UNORM: -        case PIPE_FORMAT_X8R8G8B8_UNORM: -        case PIPE_FORMAT_A8B8G8R8_UNORM: -        case PIPE_FORMAT_R8G8B8A8_SNORM: -        case PIPE_FORMAT_X8B8G8R8_UNORM: -        case PIPE_FORMAT_R8G8B8X8_UNORM: -        case PIPE_FORMAT_R8SG8SB8UX8U_NORM: -        case PIPE_FORMAT_A8B8G8R8_SRGB: -        case PIPE_FORMAT_B8G8R8A8_SRGB: +	case PIPE_FORMAT_A8B8G8R8_SRGB: +	case PIPE_FORMAT_A8B8G8R8_UNORM: +	case PIPE_FORMAT_A8R8G8B8_UNORM: +	case PIPE_FORMAT_B8G8R8A8_SRGB: +	case PIPE_FORMAT_B8G8R8A8_UNORM: +	case PIPE_FORMAT_B8G8R8X8_UNORM: +	case PIPE_FORMAT_R8G8B8A8_SNORM: +	case PIPE_FORMAT_R8G8B8A8_UNORM: +	case PIPE_FORMAT_R8G8B8X8_UNORM: +	case PIPE_FORMAT_R8SG8SB8UX8U_NORM: +	case PIPE_FORMAT_X8B8G8R8_UNORM: +	case PIPE_FORMAT_X8R8G8B8_UNORM:  		return V_0280A0_COLOR_8_8_8_8; -        case PIPE_FORMAT_R10G10B10A2_UNORM: -        case PIPE_FORMAT_R10G10B10X2_SNORM: -        case PIPE_FORMAT_B10G10R10A2_UNORM: -        case PIPE_FORMAT_R10SG10SB10SA2U_NORM: +	case PIPE_FORMAT_R10G10B10A2_UNORM: +	case PIPE_FORMAT_R10G10B10X2_SNORM: +	case PIPE_FORMAT_B10G10R10A2_UNORM: +	case PIPE_FORMAT_R10SG10SB10SA2U_NORM:  		return V_0280A0_COLOR_10_10_10_2;  	case PIPE_FORMAT_Z24X8_UNORM: @@ -265,25 +265,24 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format)  		return V_0280A0_COLOR_24_8;  		/* 64-bit buffers. */ -        case PIPE_FORMAT_R16G16B16A16_UNORM: -        case PIPE_FORMAT_R16G16B16A16_SNORM: +	case PIPE_FORMAT_R16G16B16A16_UNORM: +	case PIPE_FORMAT_R16G16B16A16_SNORM:  		return V_0280A0_COLOR_16_16_16_16; -        case PIPE_FORMAT_R16G16B16A16_FLOAT: +	case PIPE_FORMAT_R16G16B16A16_FLOAT:  		return V_0280A0_COLOR_16_16_16_16_FLOAT; -        case PIPE_FORMAT_R32G32_FLOAT: +	case PIPE_FORMAT_R32G32_FLOAT:  		return V_0280A0_COLOR_32_32_FLOAT;  		/* 128-bit buffers. */ -        case PIPE_FORMAT_R32G32B32_FLOAT: -        case PIPE_FORMAT_R32G32B32A32_FLOAT: +	case PIPE_FORMAT_R32G32B32_FLOAT: +	case PIPE_FORMAT_R32G32B32A32_FLOAT:  		return V_0280A0_COLOR_32_32_32_32_FLOAT;  		/* YUV buffers. */ -        case PIPE_FORMAT_UYVY: -//		return R300_COLOR_FORMAT_YVYU; -        case PIPE_FORMAT_YUYV: -//		return R300_COLOR_FORMAT_VYUY; -        default: +	case PIPE_FORMAT_UYVY: +	case PIPE_FORMAT_YUYV: +	default: +		R600_ERR("unsupported color format %d\n", format);  		return ~0; /* Unsupported. */  	}  } diff --git a/src/gallium/drivers/r600/r600d.h b/src/gallium/drivers/r600/r600d.h index f9cad93185..fb71b1e5d1 100644 --- a/src/gallium/drivers/r600/r600d.h +++ b/src/gallium/drivers/r600/r600d.h @@ -209,12 +209,24 @@  #define   S_0280A0_NUMBER_TYPE(x)                      (((x) & 0x7) << 12)  #define   G_0280A0_NUMBER_TYPE(x)                      (((x) >> 12) & 0x7)  #define   C_0280A0_NUMBER_TYPE                         0xFFFF8FFF +#define     V_0280A0_NUMBER_UNORM                      0x00000000 +#define     V_0280A0_NUMBER_SNORM                      0x00000001 +#define     V_0280A0_NUMBER_USCALED                    0x00000002 +#define     V_0280A0_NUMBER_SSCALED                    0x00000003 +#define     V_0280A0_NUMBER_UINT                       0x00000004 +#define     V_0280A0_NUMBER_SINT                       0x00000005 +#define     V_0280A0_NUMBER_SRGB                       0x00000006 +#define     V_0280A0_NUMBER_FLOAT                      0x00000007  #define   S_0280A0_READ_SIZE(x)                        (((x) & 0x1) << 15)  #define   G_0280A0_READ_SIZE(x)                        (((x) >> 15) & 0x1)  #define   C_0280A0_READ_SIZE                           0xFFFF7FFF  #define   S_0280A0_COMP_SWAP(x)                        (((x) & 0x3) << 16)  #define   G_0280A0_COMP_SWAP(x)                        (((x) >> 16) & 0x3)  #define   C_0280A0_COMP_SWAP                           0xFFFCFFFF +#define     V_0280A0_SWAP_STD                          0x00000000 +#define     V_0280A0_SWAP_ALT                          0x00000001 +#define     V_0280A0_SWAP_STD_REV                      0x00000002 +#define     V_0280A0_SWAP_ALT_REV                      0x00000003  #define   S_0280A0_TILE_MODE(x)                        (((x) & 0x3) << 18)  #define   G_0280A0_TILE_MODE(x)                        (((x) >> 18) & 0x3)  #define   C_0280A0_TILE_MODE                           0xFFF3FFFF @@ -1169,11 +1181,4 @@  #define   G_0286D4_PNT_SPRITE_TOP_1(x)                 (((x) >> 14) & 0x1)  #define   C_0286D4_PNT_SPRITE_TOP_1                    0xFFFFBFFF -/* temporary swap */ -#define SWAP_STD 0 -#define SWAP_ALT 1 -#define SWAP_STD_REV 2 -#define SWAP_ALT_REV 3 - -#define NUM_FORMAT_SRGB 6  #endif | 
