X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Ffreedreno%2Fa4xx%2Ffd4_format.c;h=83fd9338077dcdbe4d5810983f56c6cb89241515;hb=6ff0c6f4ebcb87ea6c6fe5a4ba90b548f666067d;hp=c240745cec14472f860d8f0f9ce74eb47f3531ee;hpb=179fc4aae8f782453f0488e8dd508f9a01117376;p=mesa.git diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_format.c b/src/gallium/drivers/freedreno/a4xx/fd4_format.c index c240745cec1..83fd9338077 100644 --- a/src/gallium/drivers/freedreno/a4xx/fd4_format.c +++ b/src/gallium/drivers/freedreno/a4xx/fd4_format.c @@ -79,9 +79,9 @@ struct fd4_format { static struct fd4_format formats[PIPE_FORMAT_COUNT] = { /* 8-bit */ VT(R8_UNORM, 8_UNORM, R8_UNORM, WZYX), - VT(R8_SNORM, 8_SNORM, NONE, WZYX), - VT(R8_UINT, 8_UINT, NONE, WZYX), - VT(R8_SINT, 8_SINT, NONE, WZYX), + VT(R8_SNORM, 8_SNORM, R8_SNORM, WZYX), + VT(R8_UINT, 8_UINT, R8_UINT, WZYX), + VT(R8_SINT, 8_SINT, R8_SINT, WZYX), V_(R8_USCALED, 8_UINT, NONE, WZYX), V_(R8_SSCALED, 8_UINT, NONE, WZYX), @@ -211,10 +211,13 @@ static struct fd4_format formats[PIPE_FORMAT_COUNT] = { VT(R11G11B10_FLOAT, 11_11_10_FLOAT, R11G11B10_FLOAT, WZYX), _T(R9G9B9E5_FLOAT, 9_9_9_E5_FLOAT, NONE, WZYX), - _T(Z24X8_UNORM, X8Z24_UNORM, R8G8B8A8_UNORM, WZYX), - _T(Z24_UNORM_S8_UINT, X8Z24_UNORM, R8G8B8A8_UNORM, WZYX), - _T(Z32_FLOAT, 32_FLOAT, R8G8B8A8_UNORM, WZYX), - _T(Z32_FLOAT_S8X24_UINT, 32_FLOAT,R8G8B8A8_UNORM, WZYX), + _T(Z16_UNORM, 16_UNORM, R8G8_UNORM, WZYX), + _T(Z24X8_UNORM, X8Z24_UNORM, R8G8B8A8_UNORM, WZYX), + _T(X24S8_UINT, 8_8_8_8_UINT, R8G8B8A8_UINT, XYZW), + _T(Z24_UNORM_S8_UINT, X8Z24_UNORM, R8G8B8A8_UNORM, WZYX), + _T(Z32_FLOAT, 32_FLOAT, R8G8B8A8_UNORM, WZYX), + _T(Z32_FLOAT_S8X24_UINT, 32_FLOAT, R8G8B8A8_UNORM, WZYX), + _T(X32_S8X24_UINT, 8_UINT, R8_UINT, WZYX), /* 48-bit */ V_(R16G16B16_UNORM, 16_16_16_UNORM, NONE, WZYX), @@ -394,29 +397,6 @@ fd4_pipe2fetchsize(enum pipe_format format) } } -/* we need to special case a bit the depth/stencil restore, because we are - * using the texture sampler to blit into the depth/stencil buffer, *not* - * into a color buffer. Otherwise fd4_tex_swiz() will do the wrong thing, - * as it is assuming that you are sampling into normal render target.. - * - * TODO looks like we can probably share w/ a3xx.. - */ -enum pipe_format -fd4_gmem_restore_format(enum pipe_format format) -{ - switch (format) { - case PIPE_FORMAT_Z24X8_UNORM: - case PIPE_FORMAT_Z24_UNORM_S8_UINT: - return PIPE_FORMAT_R8G8B8A8_UNORM; - case PIPE_FORMAT_Z16_UNORM: - return PIPE_FORMAT_R8G8_UNORM; - case PIPE_FORMAT_S8_UINT: - return PIPE_FORMAT_R8_UNORM; - default: - return format; - } -} - enum a4xx_depth_format fd4_pipe2depth(enum pipe_format format) { @@ -441,12 +421,12 @@ tex_swiz(unsigned swiz) { switch (swiz) { default: - case PIPE_SWIZZLE_RED: return A4XX_TEX_X; - case PIPE_SWIZZLE_GREEN: return A4XX_TEX_Y; - case PIPE_SWIZZLE_BLUE: return A4XX_TEX_Z; - case PIPE_SWIZZLE_ALPHA: return A4XX_TEX_W; - case PIPE_SWIZZLE_ZERO: return A4XX_TEX_ZERO; - case PIPE_SWIZZLE_ONE: return A4XX_TEX_ONE; + case PIPE_SWIZZLE_X: return A4XX_TEX_X; + case PIPE_SWIZZLE_Y: return A4XX_TEX_Y; + case PIPE_SWIZZLE_Z: return A4XX_TEX_Z; + case PIPE_SWIZZLE_W: return A4XX_TEX_W; + case PIPE_SWIZZLE_0: return A4XX_TEX_ZERO; + case PIPE_SWIZZLE_1: return A4XX_TEX_ONE; } }