mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-11 01:30:25 +01:00
panfrost/mfbd: Include codes for float framebuffers
We see the hardware doesn't actually support float framebuffers in the native sense -- rather, it just allows higher bpp framebuffers and lets a blend shader / additional clear_color fields sort out the formats. This will be.. interesting. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
36b3e7ea90
commit
21c863a695
1 changed files with 28 additions and 1 deletions
|
|
@ -81,14 +81,41 @@ panfrost_mfbd_format(struct pipe_surface *surf)
|
|||
|
||||
/* Set flags for alternative formats */
|
||||
|
||||
bool float_16 =
|
||||
surf->format == PIPE_FORMAT_R16_FLOAT;
|
||||
|
||||
bool float_32 =
|
||||
surf->format == PIPE_FORMAT_R11G11B10_FLOAT ||
|
||||
surf->format == PIPE_FORMAT_R32_FLOAT ||
|
||||
surf->format == PIPE_FORMAT_R16G16_FLOAT;
|
||||
|
||||
bool float_64 =
|
||||
surf->format == PIPE_FORMAT_R32G32_FLOAT ||
|
||||
surf->format == PIPE_FORMAT_R16G16B16A16_FLOAT;
|
||||
|
||||
bool float_128 =
|
||||
surf->format == PIPE_FORMAT_R32G32B32A32_FLOAT;
|
||||
|
||||
if (surf->format == PIPE_FORMAT_B5G6R5_UNORM) {
|
||||
fmt.unk1 = 0x14000000;
|
||||
fmt.nr_channels = MALI_POSITIVE(2);
|
||||
fmt.unk3 |= 0x1;
|
||||
} else if (surf->format == PIPE_FORMAT_R11G11B10_FLOAT) {
|
||||
} else if (float_32) {
|
||||
fmt.unk1 = 0x88000000;
|
||||
fmt.unk3 = 0x0;
|
||||
fmt.nr_channels = MALI_POSITIVE(4);
|
||||
} else if (float_16) {
|
||||
fmt.unk1 = 0x84000000;
|
||||
fmt.unk3 = 0x0;
|
||||
fmt.nr_channels = MALI_POSITIVE(2);
|
||||
} else if (float_64) {
|
||||
fmt.unk1 = 0x8c000000;
|
||||
fmt.unk3 = 0x1;
|
||||
fmt.nr_channels = MALI_POSITIVE(2);
|
||||
} else if (float_128) {
|
||||
fmt.unk1 = 0x90000000;
|
||||
fmt.unk3 = 0x1;
|
||||
fmt.nr_channels = MALI_POSITIVE(4);
|
||||
}
|
||||
|
||||
return fmt;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue