svga: Allow format differences in 16-bit RGBA surface sharing
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 30 May 2017 13:02:19 +0000 (15:02 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Wed, 7 Jun 2017 17:43:54 +0000 (19:43 +0200)
For the purpose of surface sharing, treat SVGA3D_R5G6B5 and
SVGA3D_B5G6R5_UNORM as identical formats.
This fixes the following piglit tests with dri3/xa:

glx@glx-visuals-depth -pixmap
glx@glx-visuals-stencil -pixmap

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Deepak Singh Rawat <drawat@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_format.c

index 3a2f7df24277930e2bbbae81109f12c51270839b..7b06a16c3f38862db2c004754e3f051bb1cc980a 100644 (file)
@@ -1862,12 +1862,16 @@ static const SVGA3dSurfaceFormat compat_r8[] = {
 static const SVGA3dSurfaceFormat compat_g8r8[] = {
    SVGA3D_R8G8_UNORM, SVGA3D_NV12, 0
 };
+static const SVGA3dSurfaceFormat compat_r5g6b5[] = {
+   SVGA3D_R5G6B5, SVGA3D_B5G6R5_UNORM, 0
+};
 
 static const struct format_compat_entry format_compats[] = {
    {PIPE_FORMAT_B8G8R8X8_UNORM, compat_x8r8g8b8},
    {PIPE_FORMAT_B8G8R8A8_UNORM, compat_x8r8g8b8},
    {PIPE_FORMAT_R8_UNORM, compat_r8},
-   {PIPE_FORMAT_R8G8_UNORM, compat_g8r8}
+   {PIPE_FORMAT_R8G8_UNORM, compat_g8r8},
+   {PIPE_FORMAT_B5G6R5_UNORM, compat_r5g6b5}
 };
 
 /**