diff options
author | Alyssa Rosenzweig <[email protected]> | 2019-07-02 10:50:00 -0700 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-07-10 06:12:08 -0700 |
commit | 280c777fd7930de70ea3ebf6b7d1298fae4ab53d (patch) | |
tree | c0a25838dbe0552c21c76693ece251a273b7460e /src/gallium/drivers/panfrost/pan_mfbd.c | |
parent | 7647e56c1f1033772945dd9f88f6e189594bc8e0 (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/gallium/drivers/panfrost/pan_mfbd.c')
-rw-r--r-- | src/gallium/drivers/panfrost/pan_mfbd.c | 20 |
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; |