summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_format.c
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2019-08-29 16:05:20 -0700
committerEric Anholt <eric@anholt.net>2019-10-20 04:39:48 +0000
commitd8741ad251d65b7cf2aa019ed5d0713a264bc941 (patch)
tree297dca9fb48f35e24510833fd643134704f1517b /src/mesa/state_tracker/st_format.c
parent4f384ddf5febb5005af3be0a2d51e244fb11a43b (diff)
downloadmesa-d8741ad251d65b7cf2aa019ed5d0713a264bc941.tar.gz
mesa: Redefine the RG formats as array formats.
This is the layout used in the GL API, and maps directly to PIPE formats with no endianness trickery. As with the LA change, this fixes big-endian fetching from texbos. Also cleans up some endian shenanigans in shader images. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/mesa/state_tracker/st_format.c')
-rw-r--r--src/mesa/state_tracker/st_format.c48
1 files changed, 16 insertions, 32 deletions
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index aa293ac5195..35d2e3bc915 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -212,14 +212,10 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
return PIPE_FORMAT_R8_UNORM;
case MESA_FORMAT_R_UNORM16:
return PIPE_FORMAT_R16_UNORM;
- case MESA_FORMAT_R8G8_UNORM:
- return PIPE_FORMAT_RG88_UNORM;
- case MESA_FORMAT_G8R8_UNORM:
- return PIPE_FORMAT_GR88_UNORM;
- case MESA_FORMAT_R16G16_UNORM:
- return PIPE_FORMAT_RG1616_UNORM;
- case MESA_FORMAT_G16R16_UNORM:
- return PIPE_FORMAT_GR1616_UNORM;
+ case MESA_FORMAT_RG_UNORM8:
+ return PIPE_FORMAT_R8G8_UNORM;
+ case MESA_FORMAT_RG_UNORM16:
+ return PIPE_FORMAT_R16G16_UNORM;
case MESA_FORMAT_RGBA_UNORM16:
return PIPE_FORMAT_R16G16B16A16_UNORM;
@@ -366,10 +362,8 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
/* signed normalized formats */
case MESA_FORMAT_R_SNORM8:
return PIPE_FORMAT_R8_SNORM;
- case MESA_FORMAT_R8G8_SNORM:
- return PIPE_FORMAT_RG88_SNORM;
- case MESA_FORMAT_G8R8_SNORM:
- return PIPE_FORMAT_GR88_SNORM;
+ case MESA_FORMAT_RG_SNORM8:
+ return PIPE_FORMAT_R8G8_SNORM;
case MESA_FORMAT_R8G8B8A8_SNORM:
return PIPE_FORMAT_RGBA8888_SNORM;
case MESA_FORMAT_A8B8G8R8_SNORM:
@@ -386,10 +380,8 @@ st_mesa_format_to_pipe_format(const struct st_context *st,
case MESA_FORMAT_R_SNORM16:
return PIPE_FORMAT_R16_SNORM;
- case MESA_FORMAT_R16G16_SNORM:
- return PIPE_FORMAT_RG1616_SNORM;
- case MESA_FORMAT_G16R16_SNORM:
- return PIPE_FORMAT_GR1616_SNORM;
+ case MESA_FORMAT_RG_SNORM16:
+ return PIPE_FORMAT_R16G16_SNORM;
case MESA_FORMAT_RGBA_SNORM16:
return PIPE_FORMAT_R16G16B16A16_SNORM;
@@ -804,14 +796,10 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
return MESA_FORMAT_R_UNORM8;
case PIPE_FORMAT_R16_UNORM:
return MESA_FORMAT_R_UNORM16;
- case PIPE_FORMAT_RG88_UNORM:
- return MESA_FORMAT_R8G8_UNORM;
- case PIPE_FORMAT_GR88_UNORM:
- return MESA_FORMAT_G8R8_UNORM;
- case PIPE_FORMAT_RG1616_UNORM:
- return MESA_FORMAT_R16G16_UNORM;
- case PIPE_FORMAT_GR1616_UNORM:
- return MESA_FORMAT_G16R16_UNORM;
+ case PIPE_FORMAT_R8G8_UNORM:
+ return MESA_FORMAT_RG_UNORM8;
+ case PIPE_FORMAT_R16G16_UNORM:
+ return MESA_FORMAT_RG_UNORM16;
case PIPE_FORMAT_A8_UINT:
return MESA_FORMAT_A_UINT8;
@@ -953,10 +941,8 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
/* signed normalized formats */
case PIPE_FORMAT_R8_SNORM:
return MESA_FORMAT_R_SNORM8;
- case PIPE_FORMAT_RG88_SNORM:
- return MESA_FORMAT_R8G8_SNORM;
- case PIPE_FORMAT_GR88_SNORM:
- return MESA_FORMAT_G8R8_SNORM;
+ case PIPE_FORMAT_R8G8_SNORM:
+ return MESA_FORMAT_RG_SNORM8;
case PIPE_FORMAT_RGBA8888_SNORM:
return MESA_FORMAT_R8G8B8A8_SNORM;
case PIPE_FORMAT_ABGR8888_SNORM:
@@ -973,10 +959,8 @@ st_pipe_format_to_mesa_format(enum pipe_format format)
case PIPE_FORMAT_R16_SNORM:
return MESA_FORMAT_R_SNORM16;
- case PIPE_FORMAT_RG1616_SNORM:
- return MESA_FORMAT_R16G16_SNORM;
- case PIPE_FORMAT_GR1616_SNORM:
- return MESA_FORMAT_G16R16_SNORM;
+ case PIPE_FORMAT_R16G16_SNORM:
+ return MESA_FORMAT_RG_SNORM16;
case PIPE_FORMAT_R16G16B16A16_SNORM:
return MESA_FORMAT_RGBA_SNORM16;