From: Neha Bhende <[email protected]>
We want to be able to copy between different 32-bit, 3-channel surface
formats for GL_ARB_copy_image but since we don't have a 3-channel float
format, we can't support 32-bit, 3-channel integer formats.
The state tracker will choose 4-channel formats instead.
Fixes the piglit arb_copy_image-format test for several cases.
Note: This change may need to be revisited if/when the texture_view exension
is enabled in driver.
Reviewed-by: Brian Paul <[email protected]>
---
src/gallium/drivers/svga/svga_format.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/svga/svga_format.c
b/src/gallium/drivers/svga/svga_format.c
index 4662bef..17c3bf9 100644
--- a/src/gallium/drivers/svga/svga_format.c
+++ b/src/gallium/drivers/svga/svga_format.c
@@ -242,11 +242,11 @@ static const struct vgpu10_format_entry
format_conversion_table[] =
{ PIPE_FORMAT_R16G16B16A16_SINT, SVGA3D_R16G16B16A16_SINT,
SVGA3D_R16G16B16A16_SINT, 0 },
{ PIPE_FORMAT_R32_UINT, SVGA3D_R32_UINT,
SVGA3D_R32_UINT, 0 },
{ PIPE_FORMAT_R32G32_UINT, SVGA3D_R32G32_UINT,
SVGA3D_R32G32_UINT, 0 },
- { PIPE_FORMAT_R32G32B32_UINT, SVGA3D_R32G32B32_UINT,
SVGA3D_R32G32B32_UINT, 0 },
+ { PIPE_FORMAT_R32G32B32_UINT, SVGA3D_R32G32B32_UINT,
SVGA3D_FORMAT_INVALID, 0 },
{ PIPE_FORMAT_R32G32B32A32_UINT, SVGA3D_R32G32B32A32_UINT,
SVGA3D_R32G32B32A32_UINT, 0 },
{ PIPE_FORMAT_R32_SINT, SVGA3D_R32_SINT,
SVGA3D_R32_SINT, 0 },
{ PIPE_FORMAT_R32G32_SINT, SVGA3D_R32G32_SINT,
SVGA3D_R32G32_SINT, 0 },
- { PIPE_FORMAT_R32G32B32_SINT, SVGA3D_R32G32B32_SINT,
SVGA3D_R32G32B32_SINT, 0 },
+ { PIPE_FORMAT_R32G32B32_SINT, SVGA3D_R32G32B32_SINT,
SVGA3D_FORMAT_INVALID, 0 },
{ PIPE_FORMAT_R32G32B32A32_SINT, SVGA3D_R32G32B32A32_SINT,
SVGA3D_R32G32B32A32_SINT, 0 },
{ PIPE_FORMAT_A8_UINT, SVGA3D_FORMAT_INVALID,
SVGA3D_FORMAT_INVALID, 0 },
{ PIPE_FORMAT_I8_UINT, SVGA3D_FORMAT_INVALID,
SVGA3D_FORMAT_INVALID, 0 },