summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/main/formats.c2
-rw-r--r--src/mesa/main/formats.csv1
-rw-r--r--src/mesa/main/formats.h1
-rw-r--r--src/mesa/main/glformats.c2
-rw-r--r--src/mesa/swrast/s_texfetch.c2
5 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 8ac0583c027..b6c51242f80 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -1439,6 +1439,7 @@ _mesa_format_to_type_and_comps(mesa_format format,
return;
case MESA_FORMAT_B10G10R10X2_UNORM:
+ case MESA_FORMAT_R10G10B10X2_UNORM:
*datatype = GL_UNSIGNED_INT_2_10_10_10_REV;
*comps = 4;
return;
@@ -2090,6 +2091,7 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format,
case MESA_FORMAT_RGBX_UINT8:
case MESA_FORMAT_RGBX_SINT8:
case MESA_FORMAT_B10G10R10X2_UNORM:
+ case MESA_FORMAT_R10G10B10X2_UNORM:
case MESA_FORMAT_RGBX_UNORM16:
case MESA_FORMAT_RGBX_SNORM16:
case MESA_FORMAT_RGBX_FLOAT16:
diff --git a/src/mesa/main/formats.csv b/src/mesa/main/formats.csv
index 15d82aa5911..e159e7dd6aa 100644
--- a/src/mesa/main/formats.csv
+++ b/src/mesa/main/formats.csv
@@ -82,6 +82,7 @@ MESA_FORMAT_G16R16_UNORM , packed, 1, 1, un16, un16, ,
MESA_FORMAT_B10G10R10A2_UNORM , packed, 1, 1, un10, un10, un10, un2 , zyxw, rgb
MESA_FORMAT_B10G10R10X2_UNORM , packed, 1, 1, un10, un10, un10, x2 , zyx1, rgb
MESA_FORMAT_R10G10B10A2_UNORM , packed, 1, 1, un10, un10, un10, un2 , xyzw, rgb
+MESA_FORMAT_R10G10B10X2_UNORM , packed, 1, 1, un10, un10, un10, x2 , xyz1, rgb
MESA_FORMAT_S8_UINT_Z24_UNORM , packed, 1, 1, un24, u8 , , , xy__, zs
MESA_FORMAT_X8_UINT_Z24_UNORM , packed, 1, 1, un24, x8 , , , x___, zs
diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h
index 09890ecc8b2..7e451caf0ff 100644
--- a/src/mesa/main/formats.h
+++ b/src/mesa/main/formats.h
@@ -352,6 +352,7 @@ typedef enum
MESA_FORMAT_B10G10R10A2_UNORM,/* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */
MESA_FORMAT_B10G10R10X2_UNORM,/* xxRR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */
MESA_FORMAT_R10G10B10A2_UNORM,/* AABB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */
+ MESA_FORMAT_R10G10B10X2_UNORM,/* xxBB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */
MESA_FORMAT_S8_UINT_Z24_UNORM,/* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ SSSS SSSS */
MESA_FORMAT_X8_UINT_Z24_UNORM,/* ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ xxxx xxxx */
diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
index 3e913ed988c..06f9aaf0db3 100644
--- a/src/mesa/main/glformats.c
+++ b/src/mesa/main/glformats.c
@@ -2666,6 +2666,8 @@ _mesa_format_from_format_and_type(GLenum format, GLenum type)
return MESA_FORMAT_A2R10G10B10_UINT;
break;
case GL_UNSIGNED_INT_2_10_10_10_REV:
+ if (format == GL_RGB)
+ return MESA_FORMAT_R10G10B10X2_UNORM;
if (format == GL_RGBA)
return MESA_FORMAT_R10G10B10A2_UNORM;
else if (format == GL_RGBA_INTEGER)
diff --git a/src/mesa/swrast/s_texfetch.c b/src/mesa/swrast/s_texfetch.c
index a0f34fd100e..9629024b9bc 100644
--- a/src/mesa/swrast/s_texfetch.c
+++ b/src/mesa/swrast/s_texfetch.c
@@ -166,6 +166,8 @@ texfetch_funcs[] =
FETCH_FUNCS(B10G10R10A2_UNORM),
FETCH_NULL(B10G10R10X2_UNORM),
FETCH_FUNCS(R10G10B10A2_UNORM),
+ FETCH_NULL(R10G10B10X2_UNORM),
+
FETCH_FUNCS(S8_UINT_Z24_UNORM),
{
MESA_FORMAT_X8_UINT_Z24_UNORM,