summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-07-02 10:50:00 -0700
committerAlyssa Rosenzweig <[email protected]>2019-07-10 06:12:08 -0700
commit280c777fd7930de70ea3ebf6b7d1298fae4ab53d (patch)
treec0a25838dbe0552c21c76693ece251a273b7460e /src
parent7647e56c1f1033772945dd9f88f6e189594bc8e0 (diff)
panfrost/mfbd: Handle pure int formats
We see that the render target itself turns out to be typeless (surprise!) Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/panfrost/pan_mfbd.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gallium/drivers/panfrost/pan_mfbd.c b/src/gallium/drivers/panfrost/pan_mfbd.c
index f262f6a592d..d35e6ebf4de 100644
--- a/src/gallium/drivers/panfrost/pan_mfbd.c
+++ b/src/gallium/drivers/panfrost/pan_mfbd.c
@@ -82,19 +82,31 @@ panfrost_mfbd_format(struct pipe_surface *surf)
/* Set flags for alternative formats */
bool float_16 =
- surf->format == PIPE_FORMAT_R16_FLOAT;
+ surf->format == PIPE_FORMAT_R16_FLOAT ||
+ surf->format == PIPE_FORMAT_R16_UINT ||
+ surf->format == PIPE_FORMAT_R16_SINT;
bool float_32 =
surf->format == PIPE_FORMAT_R11G11B10_FLOAT ||
+ surf->format == PIPE_FORMAT_R16G16_FLOAT ||
+ surf->format == PIPE_FORMAT_R16G16_UINT ||
+ surf->format == PIPE_FORMAT_R16G16_SINT ||
surf->format == PIPE_FORMAT_R32_FLOAT ||
- surf->format == PIPE_FORMAT_R16G16_FLOAT;
+ surf->format == PIPE_FORMAT_R32_UINT ||
+ surf->format == PIPE_FORMAT_R32_SINT;
bool float_64 =
surf->format == PIPE_FORMAT_R32G32_FLOAT ||
- surf->format == PIPE_FORMAT_R16G16B16A16_FLOAT;
+ surf->format == PIPE_FORMAT_R32G32_SINT ||
+ surf->format == PIPE_FORMAT_R32G32_UINT ||
+ surf->format == PIPE_FORMAT_R16G16B16A16_FLOAT ||
+ surf->format == PIPE_FORMAT_R16G16B16A16_SINT ||
+ surf->format == PIPE_FORMAT_R16G16B16A16_UINT;
bool float_128 =
- surf->format == PIPE_FORMAT_R32G32B32A32_FLOAT;
+ surf->format == PIPE_FORMAT_R32G32B32A32_FLOAT ||
+ surf->format == PIPE_FORMAT_R32G32B32A32_SINT ||
+ surf->format == PIPE_FORMAT_R32G32B32A32_UINT;
if (surf->format == PIPE_FORMAT_B5G6R5_UNORM) {
fmt.unk1 = 0x14000000;