<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 18, 2014 at 12:44 AM, Iago Toral Quiroga <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Samuel Iglesias Gonsalvez <<a href="mailto:siglesias@igalia.com">siglesias@igalia.com</a>><br>
<br>
This  will be used to refactor code in pack.c and support conversion<br>
to/from these types in a master convert function that will be added<br>
later.<br>
<br>
Signed-off-by: Samuel Iglesias Gonsalvez <<a href="mailto:siglesias@igalia.com">siglesias@igalia.com</a>><br>
---<br>
 src/mesa/main/format_pack.c.mako   |  36 ++++++++++++-<br>
 src/mesa/main/format_unpack.c.mako |  35 ++++++++++++-<br>
 src/mesa/main/formats.c            | 104 +++++++++++++++++++++++++++++++++++++<br>
 src/mesa/main/formats.csv          |  13 +++++<br>
 src/mesa/main/formats.h            |  15 ++++++<br>
 src/mesa/swrast/s_texfetch.c       |  13 +++++<br>
 6 files changed, 212 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/src/mesa/main/format_pack.c.mako b/src/mesa/main/format_pack.c.mako<br>
index b846702..c5ad623 100644<br>
--- a/src/mesa/main/format_pack.c.mako<br>
+++ b/src/mesa/main/format_pack.c.mako<br>
@@ -68,7 +68,7 @@ for f in formats:<br>
 /* ubyte packing functions */<br>
<br>
 %for f in rgb_formats:<br>
-   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT'):<br>
+   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT', 'MESA_FORMAT_A2R10G10B10_UNORM'):<br>
       <% continue %><br>
    %elif f.is_compressed():<br>
       <% continue %><br>
@@ -137,6 +137,22 @@ pack_ubyte_${f.short_name()}(const GLubyte src[4], void *dst)<br>
 %endfor<br>
<br>
 static inline void<br>
+pack_ubyte_a2r10g10b10_unorm(const GLubyte src[4], void *dst)<br>
+{<br>
+    uint8_t  a = _mesa_unorm_to_unorm(src[3], 8, 2);<br>
+    uint16_t r = _mesa_unorm_to_unorm(src[0], 8, 10);<br>
+    uint16_t g = _mesa_unorm_to_unorm(src[1], 8, 10);<br>
+    uint16_t b = _mesa_unorm_to_unorm(src[2], 8, 10);<br>
+<br>
+    uint32_t d = 0;<br>
+    d |= PACK(a, 0, 2);<br>
+    d |= PACK(r, 2, 10);<br>
+    d |= PACK(g, 12, 10);<br>
+    d |= PACK(b, 22, 10);<br>
+    (*(uint32_t *) dst) = d;<br>
+}<br></blockquote><div><br></div><div>The autogen code should be able to handle this.  There's no reason for special-casing it.  The only reason those other two are a special case is that they involve strange floating-bit computations.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+static inline void<br>
 pack_ubyte_r9g9b9e5_float(const GLubyte src[4], void *dst)<br>
 {<br>
    GLuint *d = (GLuint *) dst;<br>
@@ -311,7 +327,7 @@ pack_int_r11g11b10_float(const GLint src[4], void *dst)<br>
 /* float packing functions */<br>
<br>
 %for f in rgb_formats:<br>
-   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT'):<br>
+   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT', 'MESA_FORMAT_A2R10G10B10_UNORM'):<br>
       <% continue %><br>
    %elif f.is_compressed():<br>
       <% continue %><br>
@@ -373,6 +389,22 @@ pack_float_${f.short_name()}(const GLfloat src[4], void *dst)<br>
 %endfor<br>
<br>
 static inline void<br>
+pack_float_a2r10g10b10_unorm(const GLfloat src[4], void *dst)<br>
+{<br>
+    uint8_t  a = _mesa_float_to_unorm(src[3], 2);<br>
+    uint16_t r = _mesa_float_to_unorm(src[0], 10);<br>
+    uint16_t g = _mesa_float_to_unorm(src[1], 10);<br>
+    uint16_t b = _mesa_float_to_unorm(src[2], 10);<br>
+<br>
+    uint32_t d = 0;<br>
+    d |= PACK(a, 0, 2);<br>
+    d |= PACK(r, 2, 10);<br>
+    d |= PACK(g, 12, 10);<br>
+    d |= PACK(b, 22, 10);<br>
+    (*(uint32_t *) dst) = d;<br>
+}<br>
+<br>
+static inline void<br>
 pack_float_r9g9b9e5_float(const GLfloat src[4], void *dst)<br>
 {<br>
    GLuint *d = (GLuint *) dst;<br>
diff --git a/src/mesa/main/format_unpack.c.mako b/src/mesa/main/format_unpack.c.mako<br>
index 8fd3cdd..510aed2 100644<br>
--- a/src/mesa/main/format_unpack.c.mako<br>
+++ b/src/mesa/main/format_unpack.c.mako<br>
@@ -67,7 +67,7 @@ for f in formats:<br>
 /* float unpacking functions */<br>
<br>
 %for f in rgb_formats:<br>
-   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT'):<br>
+   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_R9G9B9E5_FLOAT', 'MESA_FORMAT_R11G11B10_FLOAT', 'MESA_FORMAT_A2R10G10B10_UNORM'):<br>
       <% continue %><br>
    %elif f.is_compressed():<br>
       <% continue %><br>
@@ -128,6 +128,21 @@ unpack_float_${f.short_name()}(const void *void_src, GLfloat dst[4])<br>
 }<br>
 %endfor<br>
<br>
+static inline void<br>
+unpack_float_a2r10g10b10_unorm(const void *void_src, GLfloat dst[4])<br>
+{<br>
+    uint32_t *src = (uint32_t *) void_src;<br>
+    uint8_t a = UNPACK(*src, 0, 2);<br>
+    uint16_t r = UNPACK(*src, 2, 10);<br>
+    uint16_t g = UNPACK(*src, 12, 10);<br>
+    uint16_t b = UNPACK(*src, 22, 10);<br>
+<br>
+    dst[0] = _mesa_unorm_to_float(r, 10);<br>
+    dst[1] = _mesa_unorm_to_float(g, 10);<br>
+    dst[2] = _mesa_unorm_to_float(b, 10);<br>
+    dst[3] = _mesa_unorm_to_float(a, 2);<br>
+}<br>
+<br>
 static void<br>
 unpack_float_r9g9b9e5_float(const void *src, GLfloat dst[4])<br>
 {<br>
@@ -195,7 +210,9 @@ unpack_float_ycbcr_rev(const void *src, GLfloat dst[][4], GLuint n)<br>
 /* ubyte packing functions */<br>
<br>
 %for f in rgb_formats:<br>
-   %if not f.is_normalized():<br>
+   %if <a href="http://f.name" target="_blank">f.name</a> in ('MESA_FORMAT_A2R10G10B10_UNORM'):<br>
+      <% continue %><br>
+   %elif not f.is_normalized():<br>
       <% continue %><br>
    %endif<br>
<br>
@@ -254,6 +271,20 @@ unpack_ubyte_${f.short_name()}(const void *void_src, GLubyte dst[4])<br>
 }<br>
 %endfor<br>
<br>
+static inline void<br>
+unpack_ubyte_a2r10g10b10_unorm(const void *void_src, GLubyte dst[4])<br>
+{<br>
+    uint32_t *src = (uint32_t *) void_src;<br>
+    uint8_t a = UNPACK(*src, 0, 2);<br>
+    uint16_t r = UNPACK(*src, 2, 10);<br>
+    uint16_t g = UNPACK(*src, 12, 10);<br>
+    uint16_t b = UNPACK(*src, 22, 10);<br>
+<br>
+    dst[0] = _mesa_unorm_to_unorm(r, 10, 8);<br>
+    dst[1] = _mesa_unorm_to_unorm(g, 10, 8);<br>
+    dst[2] = _mesa_unorm_to_unorm(b, 10, 8);<br>
+    dst[3] = _mesa_unorm_to_unorm(a, 2, 8);<br>
+}<br>
<br>
 /* integer packing functions */<br>
<br>
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c<br>
index f14250b..06e8973 100644<br>
--- a/src/mesa/main/formats.c<br>
+++ b/src/mesa/main/formats.c<br>
@@ -937,6 +937,50 @@ _mesa_format_to_type_and_comps(mesa_format format,<br>
       *comps = 1;<br>
       return;<br>
<br>
+   case MESA_FORMAT_R3G3B2_UNORM:<br>
+      *datatype = GL_UNSIGNED_BYTE_2_3_3_REV;<br>
+      *comps = 3;<br>
+      return;<br>
+   case MESA_FORMAT_A4B4G4R4_UNORM:<br>
+      *datatype = GL_UNSIGNED_SHORT_4_4_4_4;<br>
+      *comps = 4;<br>
+      return;<br>
+<br>
+   case MESA_FORMAT_R4G4B4A4_UNORM:<br>
+      *datatype = GL_UNSIGNED_SHORT_4_4_4_4;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_R1G5B5A5_UNORM:<br>
+      *datatype = GL_UNSIGNED_SHORT_5_5_5_1;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_R5G5B5A1_UNORM:<br>
+      *datatype = GL_UNSIGNED_SHORT_1_5_5_5_REV;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_A5B5G5R1_UNORM:<br>
+      *datatype = GL_UNSIGNED_SHORT_1_5_5_5_REV;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_A2B10G10R10_UNORM:<br>
+   case MESA_FORMAT_A2B10G10R10_UINT:<br>
+      *datatype = GL_UNSIGNED_INT_10_10_10_2;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_A2R10G10B10_UNORM:<br>
+   case MESA_FORMAT_A2R10G10B10_UINT:<br>
+      *datatype = GL_UNSIGNED_INT_10_10_10_2;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_R2G10B10A10_UNORM:<br>
+      *datatype = GL_UNSIGNED_INT_10_10_10_2;<br>
+      *comps = 4;<br>
+      return;<br>
+   case MESA_FORMAT_A10B10G10R2_UNORM:<br>
+      *datatype = GL_UNSIGNED_INT_2_10_10_10_REV;<br>
+      *comps = 4;<br>
+      return;<br>
+<br>
    case MESA_FORMAT_B2G3R3_UNORM:<br>
       *datatype = GL_UNSIGNED_BYTE_3_3_2;<br>
       *comps = 3;<br>
@@ -1581,6 +1625,66 @@ _mesa_format_matches_format_and_type(mesa_format mesa_format,<br>
    case MESA_FORMAT_B2G3R3_UNORM:<br>
       return format == GL_RGB && type == GL_UNSIGNED_BYTE_3_3_2;<br>
<br>
+   case MESA_FORMAT_R3G3B2_UNORM:<br>
+      return format == GL_RGB && type == GL_UNSIGNED_BYTE_2_3_3_REV;<br>
+<br>
+   case MESA_FORMAT_A4B4G4R4_UNORM:<br>
+      if (format == GL_RGBA && type == GL_UNSIGNED_SHORT_4_4_4_4 && !swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_RGBA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && !swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_4_4_4_4 && swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      return GL_FALSE;<br>
+<br>
+   case MESA_FORMAT_R4G4B4A4_UNORM:<br>
+      if (format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_4_4_4_4 && !swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_RGBA && type == GL_UNSIGNED_SHORT_4_4_4_4_REV && !swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      if (format == GL_RGBA && type == GL_UNSIGNED_SHORT_4_4_4_4 && swapBytes)<br>
+         return GL_TRUE;<br>
+<br>
+      return GL_FALSE;<br>
+<br>
+   case MESA_FORMAT_R1G5B5A5_UNORM:<br>
+      return format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_5_5_5_1;<br>
+<br>
+   case MESA_FORMAT_R5G5B5A1_UNORM:<br>
+      return format == GL_RGBA && type == GL_UNSIGNED_SHORT_1_5_5_5_REV;<br>
+<br>
+   case MESA_FORMAT_A5B5G5R1_UNORM:<br>
+      return format == GL_ABGR_EXT && type == GL_UNSIGNED_SHORT_1_5_5_5_REV;<br>
+<br>
+   case MESA_FORMAT_A2B10G10R10_UNORM:<br>
+      return format == GL_RGBA && type == GL_UNSIGNED_INT_10_10_10_2;<br>
+<br>
+   case MESA_FORMAT_A2B10G10R10_UINT:<br>
+      return format == GL_RGBA_INTEGER_EXT && type == GL_UNSIGNED_INT_10_10_10_2;<br>
+<br>
+   case MESA_FORMAT_A2R10G10B10_UNORM:<br>
+      return format == GL_BGRA && type == GL_UNSIGNED_INT_10_10_10_2;<br>
+<br>
+   case MESA_FORMAT_A2R10G10B10_UINT:<br>
+      return format == GL_BGRA_INTEGER_EXT && type == GL_UNSIGNED_INT_10_10_10_2;<br>
+<br>
+   case MESA_FORMAT_R2G10B10A10_UNORM:<br>
+      return format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_10_10_10_2;<br>
+<br>
+   case MESA_FORMAT_A10B10G10R2_UNORM:<br>
+      return format == GL_ABGR_EXT && type == GL_UNSIGNED_INT_2_10_10_10_REV;<br>
+<br>
    case MESA_FORMAT_A_UNORM8:<br>
       return format == GL_ALPHA && type == GL_UNSIGNED_BYTE;<br>
    case MESA_FORMAT_A_UNORM16:<br>
diff --git a/src/mesa/main/formats.csv b/src/mesa/main/formats.csv<br>
index 39bcdbd..6d68427 100644<br>
--- a/src/mesa/main/formats.csv<br>
+++ b/src/mesa/main/formats.csv<br>
@@ -88,6 +88,17 @@ MESA_FORMAT_X8_UINT_Z24_UNORM             , packed, 1, 1, un24, x8  ,     ,<br>
 MESA_FORMAT_Z24_UNORM_S8_UINT             , packed, 1, 1, u8  , un24,     ,     , yx__, zs<br>
 MESA_FORMAT_Z24_UNORM_X8_UINT             , packed, 1, 1, x8  , un24,     ,     , y___, zs<br>
<br>
+MESA_FORMAT_R3G3B2_UNORM                  , packed, 1, 1, un3 , un3 , un2 ,     , xyz1, rgb<br>
+MESA_FORMAT_A4B4G4R4_UNORM                , packed, 1, 1, un4 , un4 , un4 , un4 , wzyx, rgb<br>
+MESA_FORMAT_R4G4B4A4_UNORM                , packed, 1, 1, un4 , un4 , un4 , un4 , xyzw, rgb<br>
+MESA_FORMAT_R1G5B5A5_UNORM                , packed, 1, 1, un1 , un5 , un5 , un5 , xyzw, rgb<br>
+MESA_FORMAT_R5G5B5A1_UNORM                , packed, 1, 1, un5 , un5 , un5 , un1 , xyzw, rgb<br>
+MESA_FORMAT_A5B5G5R1_UNORM                , packed, 1, 1, un5 , un5 , un5 , un1 , wzyx, rgb<br>
+MESA_FORMAT_A2B10G10R10_UNORM             , packed, 1, 1, un2 , un10, un10, un10, wzyx, rgb<br>
+MESA_FORMAT_A2R10G10B10_UNORM             , packed, 1, 1, un2 , un10, un10, un10, wxyz, rgb<br>
+MESA_FORMAT_R2G10B10A10_UNORM             , packed, 1, 1, un2 , un10, un10, un10, xyzw, rgb<br>
+MESA_FORMAT_A10B10G10R2_UNORM             , packed, 1, 1, un10, un10, un10, un2 , wzyx, rgb<br>
+<br>
 MESA_FORMAT_YCBCR                         , other , 1, 1, x16 ,     ,     ,     , xyzw, yuv<br>
 MESA_FORMAT_YCBCR_REV                     , other , 1, 1, x16 ,     ,     ,     , xyzw, yuv<br>
<br>
@@ -180,6 +191,8 @@ MESA_FORMAT_Z_FLOAT32                     , array , 1, 1, f32 ,     ,     ,<br>
 # Packed signed/unsigned non-normalized integer formats<br>
 MESA_FORMAT_B10G10R10A2_UINT              , packed, 1, 1, u10 , u10 , u10 , u2  , zyxw, rgb<br>
 MESA_FORMAT_R10G10B10A2_UINT              , packed, 1, 1, u10 , u10 , u10 , u2  , xyzw, rgb<br>
+MESA_FORMAT_A2B10G10R10_UINT              , packed, 1, 1, u2  , u10 , u10 , u10 , wzyx, rgb<br>
+MESA_FORMAT_A2R10G10B10_UINT              , packed, 1, 1, u2  , u10 , u10 , u10 , yzwx, rgb<br>
<br>
 # Array signed/unsigned non-normalized integer formats<br>
 MESA_FORMAT_A_UINT8                       , array , 1, 1, u8  ,     ,     ,     , 000x, rgb<br>
diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h<br>
index 7ddf4ee..bba5bae 100644<br>
--- a/src/mesa/main/formats.h<br>
+++ b/src/mesa/main/formats.h<br>
@@ -281,6 +281,19 @@ typedef enum<br>
    MESA_FORMAT_Z24_UNORM_S8_UINT,/* SSSS SSSS ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */<br>
    MESA_FORMAT_Z24_UNORM_X8_UINT,/* xxxx xxxx ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ */<br>
<br>
+   /* Other formats */<br>
+   MESA_FORMAT_R3G3B2_UNORM,                                   /* BBGG GRRR */<br>
+   MESA_FORMAT_A4B4G4R4_UNORM,                       /* RRRR GGGG BBBB AAAA */<br>
+   MESA_FORMAT_R4G4B4A4_UNORM,                       /* AAAA BBBB GGGG RRRR */<br>
+   MESA_FORMAT_R1G5B5A5_UNORM,                       /* AAAA ABBB BBGG GGGR */<br>
+   MESA_FORMAT_R5G5B5A1_UNORM,                       /* ABBB BBGG GGGR RRRR */<br>
+   MESA_FORMAT_A5B5G5R1_UNORM,                       /* RGGG GGBB BBBA AAAA */<br>
+   MESA_FORMAT_A2B10G10R10_UNORM,/* RRRR RRRR RRGG GGGG GGGG BBBB BBBB BBAA */<br>
+   MESA_FORMAT_A2R10G10B10_UNORM,/* BBBB BBBB BBGG GGGG GGGG RRRR RRRR RRAA */<br>
+   MESA_FORMAT_R2G10B10A10_UNORM,/* AAAA AAAA AABB BBBB BBBB GGGG GGGG GGRR */<br>
+   MESA_FORMAT_A10B10G10R2_UNORM,/* RRGG GGGG GGGG BBBB BBBB BBAA AAAA AAAA */<br></blockquote><div><br></div><div>I don't think these formats with 1 or 2 bits for red and more bits for alpha actually exist.  In the GL spec, it expressly says that 5_5_5_1 and 10_10_10_2 are only allowed in combination with GL_RGBA or GL_BGRA.  The GL_ABGR spec doesn't list any interaction with those types, so I would assume that it's not allowed.<br></div><div>--Jason<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+<br>
    MESA_FORMAT_YCBCR,            /*                     YYYY YYYY UorV UorV */<br>
    MESA_FORMAT_YCBCR_REV,        /*                     UorV UorV YYYY YYYY */<br>
<br>
@@ -375,6 +388,8 @@ typedef enum<br>
    /* Packed signed/unsigned non-normalized integer formats */<br>
    MESA_FORMAT_B10G10R10A2_UINT, /* AARR RRRR RRRR GGGG GGGG GGBB BBBB BBBB */<br>
    MESA_FORMAT_R10G10B10A2_UINT, /* AABB BBBB BBBB GGGG GGGG GGRR RRRR RRRR */<br>
+   MESA_FORMAT_A2B10G10R10_UINT, /* RRRR RRRR RRGG GGGG GGGG BBBB BBBB BBAA */<br>
+   MESA_FORMAT_A2R10G10B10_UINT, /* BBBB BBBB BBGG GGGG GGGG RRRR RRRR RRAA */<br>
<br>
    /* Array signed/unsigned non-normalized integer formats */<br>
    MESA_FORMAT_A_UINT8,<br>
diff --git a/src/mesa/swrast/s_texfetch.c b/src/mesa/swrast/s_texfetch.c<br>
index 0f6da91..e9bb5eb 100644<br>
--- a/src/mesa/swrast/s_texfetch.c<br>
+++ b/src/mesa/swrast/s_texfetch.c<br>
@@ -180,6 +180,17 @@ texfetch_funcs[] =<br>
       fetch_texel_2d_Z24_UNORM_S8_UINT,<br>
       fetch_texel_3d_Z24_UNORM_S8_UINT<br>
    },<br>
+   FETCH_NULL(R3G3B2_UNORM),<br>
+   FETCH_NULL(A4B4G4R4_UNORM),<br>
+   FETCH_NULL(R4G4B4A4_UNORM),<br>
+   FETCH_NULL(R1G5B5A5_UNORM),<br>
+   FETCH_NULL(R5G5B5A1_UNORM),<br>
+   FETCH_NULL(A5B5G5R1_UNORM),<br>
+   FETCH_NULL(A2B10G10R10_UNORM),<br>
+   FETCH_NULL(A2R10G10B10_UNORM),<br>
+   FETCH_NULL(R2G10B10A10_UNORM),<br>
+   FETCH_NULL(A10B10G10R2_UNORM),<br>
+<br>
    FETCH_FUNCS(YCBCR),<br>
    FETCH_FUNCS(YCBCR_REV),<br>
<br>
@@ -276,6 +287,8 @@ texfetch_funcs[] =<br>
    /* Packed signed/unsigned non-normalized integer formats */<br>
    FETCH_NULL(B10G10R10A2_UINT),<br>
    FETCH_NULL(R10G10B10A2_UINT),<br>
+   FETCH_NULL(A2B10G10R10_UINT),<br>
+   FETCH_NULL(A2R10G10B10_UINT),<br>
<br>
    /* Array signed/unsigned non-normalized integer formats */<br>
    FETCH_NULL(A_UINT8),<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.9.1<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>