On 09/29/2017 05:30 AM, Nicolai Hähnle wrote:
From: Nicolai Hähnle <[email protected]>

---
  src/gallium/auxiliary/util/u_format.csv     | 1 +
  src/gallium/auxiliary/util/u_format_tests.c | 6 ++++++
  src/gallium/include/pipe/p_format.h         | 2 ++
  3 files changed, 9 insertions(+)

This change also requires a trivial change in the VMware driver to avoid a static assertion failure:

diff --git a/src/gallium/drivers/svga/svga_format.c b/src/gallium/drivers/svga/s
index 95dd04d..2f74240 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -360,6 +360,7 @@ static const struct vgpu10_format_entry format_conversion_ta { PIPE_FORMAT_ASTC_12x10_SRGB, SVGA3D_FORMAT_INVALID, SVGA3D_FORM { PIPE_FORMAT_ASTC_12x12_SRGB, SVGA3D_FORMAT_INVALID, SVGA3D_FORM { PIPE_FORMAT_P016, SVGA3D_FORMAT_INVALID, SVGA3D_FORM + { PIPE_FORMAT_R10G10B10X2_UNORM, SVGA3D_FORMAT_INVALID, SVGA3D_FORM
 };


-Brian


diff --git a/src/gallium/auxiliary/util/u_format.csv 
b/src/gallium/auxiliary/util/u_format.csv
index cef530aae7c..be86acca9bd 100644
--- a/src/gallium/auxiliary/util/u_format.csv
+++ b/src/gallium/auxiliary/util/u_format.csv
@@ -71,20 +71,21 @@ PIPE_FORMAT_X8R8G8B8_UNORM        , plain, 1, 1, x8  , un8 
, un8 , un8 , yzw1, r
  PIPE_FORMAT_A8B8G8R8_UNORM        , plain, 1, 1, un8 , un8 , un8 , un8 , 
wzyx, rgb
  PIPE_FORMAT_X8B8G8R8_UNORM        , plain, 1, 1, x8  , un8 , un8 , un8 , 
wzy1, rgb
  # PIPE_FORMAT_R8G8B8A8_UNORM is below
  PIPE_FORMAT_R8G8B8X8_UNORM        , plain, 1, 1, un8 , un8 , un8 , x8  , 
xyz1, rgb
  PIPE_FORMAT_B5G5R5X1_UNORM        , plain, 1, 1, un5 , un5 , un5 , x1  , 
zyx1, rgb, x1  , un5 , un5 , un5 , yzw1
  PIPE_FORMAT_B5G5R5A1_UNORM        , plain, 1, 1, un5 , un5 , un5 , un1 , 
zyxw, rgb, un1 , un5 , un5 , un5 , yzwx
  PIPE_FORMAT_B4G4R4A4_UNORM        , plain, 1, 1, un4 , un4 , un4 , un4 , 
zyxw, rgb, un4 , un4 , un4 , un4 , yzwx
  PIPE_FORMAT_B4G4R4X4_UNORM        , plain, 1, 1, un4 , un4 , un4 , x4  , 
zyx1, rgb, x4  , un4 , un4 , un4 , yzw1
  PIPE_FORMAT_B5G6R5_UNORM          , plain, 1, 1, un5 , un6 , un5 ,     , 
zyx1, rgb, un5 , un6 , un5 ,     , xyz1
  PIPE_FORMAT_R10G10B10A2_UNORM     , plain, 1, 1, un10, un10, un10, un2 , 
xyzw, rgb, un2 , un10, un10, un10, wzyx
+PIPE_FORMAT_R10G10B10X2_UNORM     , plain, 1, 1, un10, un10, un10, x2,   xyz1, 
rgb, x2  , un10, un10, un10, wzy1
  PIPE_FORMAT_B10G10R10A2_UNORM     , plain, 1, 1, un10, un10, un10, un2 , 
zyxw, rgb, un2 , un10, un10, un10, yzwx
  PIPE_FORMAT_B2G3R3_UNORM          , plain, 1, 1, un2 , un3 , un3 ,     , 
zyx1, rgb, un3 , un3 , un2 ,     , xyz1

  # Luminance/Intensity/Alpha formats
  PIPE_FORMAT_L8_UNORM              , plain, 1, 1, un8 ,     ,     ,     , 
xxx1, rgb
  PIPE_FORMAT_A8_UNORM              , plain, 1, 1, un8 ,     ,     ,     , 
000x, rgb
  PIPE_FORMAT_I8_UNORM              , plain, 1, 1, un8 ,     ,     ,     , 
xxxx, rgb
  PIPE_FORMAT_L4A4_UNORM            , plain, 1, 1, un4 , un4 ,     ,     , 
xxxy, rgb, un4 , un4 ,     ,     , yyyx
  PIPE_FORMAT_L8A8_UNORM            , plain, 1, 1, un8 , un8 ,     ,     , 
xxxy, rgb
  PIPE_FORMAT_L16_UNORM             , plain, 1, 1, un16,     ,     ,     , 
xxx1, rgb
diff --git a/src/gallium/auxiliary/util/u_format_tests.c 
b/src/gallium/auxiliary/util/u_format_tests.c
index 3075ea0abef..dbf072a01e3 100644
--- a/src/gallium/auxiliary/util/u_format_tests.c
+++ b/src/gallium/auxiliary/util/u_format_tests.c
@@ -133,20 +133,26 @@ util_format_test_cases[] =
     {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), 
PACKED_1x32(0xff000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)},
     {PIPE_FORMAT_R8G8B8X8_UNORM, PACKED_1x32(0x00ffffff), 
PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)},

     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x000003ff), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)},
     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x3ff00000), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)},
     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0xc0000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)},
     {PIPE_FORMAT_R10G10B10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)},

+   {PIPE_FORMAT_R10G10B10X2_UNORM, PACKED_1x32(0x3fffffff), 
PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)},
+   {PIPE_FORMAT_R10G10B10X2_UNORM, PACKED_1x32(0x3fffffff), 
PACKED_1x32(0x000003ff), UNPACKED_1x1(1.0, 0.0, 0.0, 1.0)},
+   {PIPE_FORMAT_R10G10B10X2_UNORM, PACKED_1x32(0x3fffffff), 
PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 1.0)},
+   {PIPE_FORMAT_R10G10B10X2_UNORM, PACKED_1x32(0x3fffffff), 
PACKED_1x32(0x3ff00000), UNPACKED_1x1(0.0, 0.0, 1.0, 1.0)},
+   {PIPE_FORMAT_R10G10B10X2_UNORM, PACKED_1x32(0x3fffffff), 
PACKED_1x32(0x3fffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)},
+
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x00000000), UNPACKED_1x1(0.0, 0.0, 0.0, 0.0)},
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x000003ff), UNPACKED_1x1(0.0, 0.0, 1.0, 0.0)},
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x000ffc00), UNPACKED_1x1(0.0, 1.0, 0.0, 0.0)},
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0x3ff00000), UNPACKED_1x1(1.0, 0.0, 0.0, 0.0)},
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0xc0000000), UNPACKED_1x1(0.0, 0.0, 0.0, 1.0)},
     {PIPE_FORMAT_B10G10R10A2_UNORM, PACKED_1x32(0xffffffff), 
PACKED_1x32(0xffffffff), UNPACKED_1x1(1.0, 1.0, 1.0, 1.0)},

     /*
      * 16-bit rendertarget formats
      */
diff --git a/src/gallium/include/pipe/p_format.h 
b/src/gallium/include/pipe/p_format.h
index e4e09d8b435..25e6548bb36 100644
--- a/src/gallium/include/pipe/p_format.h
+++ b/src/gallium/include/pipe/p_format.h
@@ -384,20 +384,22 @@ enum pipe_format {
     PIPE_FORMAT_ASTC_8x8_SRGB           = 300,
     PIPE_FORMAT_ASTC_10x5_SRGB          = 301,
     PIPE_FORMAT_ASTC_10x6_SRGB          = 302,
     PIPE_FORMAT_ASTC_10x8_SRGB          = 303,
     PIPE_FORMAT_ASTC_10x10_SRGB         = 304,
     PIPE_FORMAT_ASTC_12x10_SRGB         = 305,
     PIPE_FORMAT_ASTC_12x12_SRGB         = 306,

     PIPE_FORMAT_P016                    = 307,

+   PIPE_FORMAT_R10G10B10X2_UNORM       = 308,
+
     PIPE_FORMAT_COUNT
  };

  #if defined(PIPE_ARCH_LITTLE_ENDIAN)
  #define PIPE_FORMAT_RGBA8888_UNORM PIPE_FORMAT_R8G8B8A8_UNORM
  #define PIPE_FORMAT_RGBX8888_UNORM PIPE_FORMAT_R8G8B8X8_UNORM
  #define PIPE_FORMAT_BGRA8888_UNORM PIPE_FORMAT_B8G8R8A8_UNORM
  #define PIPE_FORMAT_BGRX8888_UNORM PIPE_FORMAT_B8G8R8X8_UNORM
  #define PIPE_FORMAT_ARGB8888_UNORM PIPE_FORMAT_A8R8G8B8_UNORM
  #define PIPE_FORMAT_XRGB8888_UNORM PIPE_FORMAT_X8R8G8B8_UNORM


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to