mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
panfrost: Compile format table multiple times
This allows us to unify the midgard and bifrost tables and just #ifdef the differences. It will soon also allow us to fix a bunch of enums and specialize blendable formats. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11785>
This commit is contained in:
parent
e11d0d25c6
commit
262d96d3df
10 changed files with 410 additions and 582 deletions
|
|
@ -166,7 +166,7 @@ panfrost_get_blend(struct panfrost_batch *batch, unsigned rti, struct panfrost_b
|
|||
|
||||
/* Use fixed-function if the equation permits, the format is blendable,
|
||||
* and no more than one unique constant is accessed */
|
||||
if (info.fixed_function && panfrost_blendable_formats[fmt].internal &&
|
||||
if (info.fixed_function && panfrost_blendable_formats_v7[fmt].internal &&
|
||||
pan_blend_is_homogenous_constant(info.constant_mask,
|
||||
ctx->blend_color.color)) {
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,35 @@
|
|||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
midgard_pack = custom_target(
|
||||
'midgard_pack.h',
|
||||
input : ['gen_pack.py', 'midgard.xml'],
|
||||
output : 'midgard_pack.h',
|
||||
command : [prog_python, '@INPUT@'],
|
||||
capture : true,
|
||||
)
|
||||
|
||||
idep_midgard_pack = declare_dependency(
|
||||
sources : [midgard_pack],
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
|
||||
pixel_format_versions = ['6', '7']
|
||||
libpanfrost_pixel_format = []
|
||||
|
||||
foreach ver : pixel_format_versions
|
||||
libpanfrost_pixel_format += static_library(
|
||||
'pan-format-v' + ver,
|
||||
['pan_format.c', midgard_pack],
|
||||
include_directories : [
|
||||
inc_src, inc_include, inc_gallium, inc_mesa, inc_panfrost_hw, inc_gallium_aux, inc_panfrost_hw
|
||||
],
|
||||
c_args : ['-DPAN_ARCH=' + ver],
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
dependencies : [idep_midgard_pack, dep_libdrm],
|
||||
)
|
||||
endforeach
|
||||
|
||||
libpanfrost_lib_files = files(
|
||||
'pan_encoder.h',
|
||||
|
||||
|
|
@ -28,7 +57,6 @@ libpanfrost_lib_files = files(
|
|||
'pan_blend.c',
|
||||
'pan_blitter.c',
|
||||
'pan_cs.c',
|
||||
'pan_format.c',
|
||||
'pan_indirect_dispatch.c',
|
||||
'pan_indirect_draw.c',
|
||||
'pan_samples.c',
|
||||
|
|
@ -46,19 +74,6 @@ libpanfrost_decode_files = files(
|
|||
'decode.c',
|
||||
)
|
||||
|
||||
midgard_pack = custom_target(
|
||||
'midgard_pack.h',
|
||||
input : ['gen_pack.py', 'midgard.xml'],
|
||||
output : 'midgard_pack.h',
|
||||
command : [prog_python, '@INPUT@'],
|
||||
capture : true,
|
||||
)
|
||||
|
||||
idep_midgard_pack = declare_dependency(
|
||||
sources : [midgard_pack],
|
||||
include_directories : include_directories('.'),
|
||||
)
|
||||
|
||||
libpanfrost_lib = static_library(
|
||||
'panfrost_lib',
|
||||
[libpanfrost_lib_files, midgard_pack],
|
||||
|
|
@ -67,6 +82,7 @@ libpanfrost_lib = static_library(
|
|||
gnu_symbol_visibility : 'hidden',
|
||||
dependencies: [dep_libdrm, idep_nir],
|
||||
build_by_default : false,
|
||||
link_with: [libpanfrost_pixel_format],
|
||||
)
|
||||
|
||||
libpanfrost_decode = static_library(
|
||||
|
|
@ -80,7 +96,7 @@ libpanfrost_decode = static_library(
|
|||
)
|
||||
|
||||
libpanfrost_dep = declare_dependency(
|
||||
link_with: [libpanfrost_lib, libpanfrost_decode, libpanfrost_midgard, libpanfrost_bifrost],
|
||||
link_with: [libpanfrost_lib, libpanfrost_decode, libpanfrost_midgard, libpanfrost_bifrost, libpanfrost_pixel_format],
|
||||
include_directories: [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_panfrost_hw, inc_panfrost],
|
||||
dependencies: [dep_libdrm, idep_nir, idep_midgard_pack],
|
||||
)
|
||||
|
|
|
|||
|
|
@ -369,7 +369,7 @@ pan_blitter_get_blend_shaders(struct panfrost_device *dev,
|
|||
};
|
||||
|
||||
for (unsigned i = 0; i < rt_count; i++) {
|
||||
if (!rts[i] || panfrost_blendable_formats[rts[i]->format].internal)
|
||||
if (!rts[i] || panfrost_blendable_formats_v7[rts[i]->format].internal)
|
||||
continue;
|
||||
|
||||
struct pan_blit_blend_shader_key key = {
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ pan_emit_zs_crc_ext(const struct panfrost_device *dev,
|
|||
static unsigned
|
||||
pan_bytes_per_pixel_tib(enum pipe_format format)
|
||||
{
|
||||
if (panfrost_blendable_formats[format].internal) {
|
||||
if (panfrost_blendable_formats_v7[format].internal) {
|
||||
/* Blendable formats are always 32-bits in the tile buffer,
|
||||
* extra bits are used as padding or to dither */
|
||||
return 4;
|
||||
|
|
@ -406,7 +406,7 @@ pan_rt_init_format(const struct panfrost_device *dev,
|
|||
if (desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB)
|
||||
cfg->srgb = true;
|
||||
|
||||
struct pan_blendable_format fmt = panfrost_blendable_formats[rt->format];
|
||||
struct pan_blendable_format fmt = panfrost_blendable_formats_v7[rt->format];
|
||||
|
||||
if (fmt.internal) {
|
||||
cfg->internal_format = fmt.internal;
|
||||
|
|
@ -806,7 +806,7 @@ pan_emit_sfbd(const struct panfrost_device *dev,
|
|||
panfrost_invert_swizzle(desc->swizzle, swizzle);
|
||||
cfg.swizzle = panfrost_translate_swizzle_4(swizzle);
|
||||
|
||||
struct pan_blendable_format fmt = panfrost_blendable_formats[rt->format];
|
||||
struct pan_blendable_format fmt = panfrost_blendable_formats_v7[rt->format];
|
||||
if (fmt.internal) {
|
||||
cfg.internal_format = fmt.internal;
|
||||
cfg.color_writeback_format = fmt.writeback;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
|
||||
#include "panfrost/util/pan_ir.h"
|
||||
#include "pan_pool.h"
|
||||
#include "pan_util.h"
|
||||
|
||||
#include <midgard_pack.h>
|
||||
|
||||
|
|
@ -133,13 +134,6 @@ struct pan_indirect_dispatch {
|
|||
struct panfrost_bo *descs;
|
||||
};
|
||||
|
||||
typedef uint32_t mali_pixel_format;
|
||||
|
||||
struct panfrost_format {
|
||||
mali_pixel_format hw;
|
||||
unsigned bind;
|
||||
};
|
||||
|
||||
/** Implementation-defined tiler features */
|
||||
struct panfrost_tiler_features {
|
||||
/** Number of bytes per tiler bin */
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
* Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "gen_macros.h"
|
||||
#include "midgard_pack.h"
|
||||
#include "pan_texture.h"
|
||||
#include "panfrost-quirks.h"
|
||||
#include "pan_format.h"
|
||||
#include "util/format/u_format.h"
|
||||
|
||||
/* Convenience */
|
||||
|
||||
|
|
@ -58,7 +58,8 @@
|
|||
BFMT2(pipe ##_UNORM, R8G8B8A8, writeback, 0), \
|
||||
BFMT2(pipe ##_SRGB, R8G8B8A8, writeback, 1)
|
||||
|
||||
const struct pan_blendable_format panfrost_blendable_formats[PIPE_FORMAT_COUNT] = {
|
||||
const struct pan_blendable_format
|
||||
GENX(panfrost_blendable_formats)[PIPE_FORMAT_COUNT] = {
|
||||
BFMT_SRGB(L8, R8),
|
||||
BFMT_SRGB(L8A8, R8G8),
|
||||
BFMT_SRGB(R8, R8),
|
||||
|
|
@ -105,6 +106,10 @@ const struct pan_blendable_format panfrost_blendable_formats[PIPE_FORMAT_COUNT]
|
|||
#define FLAGS_VT__ (_V | _T)
|
||||
#define FLAGS__T_Z (_T | _Z)
|
||||
|
||||
#define SRGB_L (0)
|
||||
#define SRGB_S (1)
|
||||
|
||||
#if PAN_ARCH <= 6
|
||||
#define V6_0000 PAN_V6_SWIZZLE(0, 0, 0, 0)
|
||||
#define V6_000R PAN_V6_SWIZZLE(0, 0, 0, R)
|
||||
#define V6_0R00 PAN_V6_SWIZZLE(0, R, 0, 0)
|
||||
|
|
@ -126,531 +131,301 @@ const struct pan_blendable_format panfrost_blendable_formats[PIPE_FORMAT_COUNT]
|
|||
#define V6_RRRG PAN_V6_SWIZZLE(R, R, R, G)
|
||||
#define V6_RRRR PAN_V6_SWIZZLE(R, R, R, R)
|
||||
|
||||
#define SRGB_L (0)
|
||||
#define SRGB_S (1)
|
||||
|
||||
#define PAN_V6(pipe, mali, swizzle, srgb, flags) \
|
||||
#define FMT(pipe, mali, swizzle, srgb, flags) \
|
||||
[PIPE_FORMAT_ ## pipe] = { \
|
||||
.hw = ( V6_ ## swizzle ) | \
|
||||
(( MALI_ ## mali ) << 12) | \
|
||||
((( SRGB_ ## srgb)) << 20), \
|
||||
.bind = FLAGS_ ## flags \
|
||||
}
|
||||
#else
|
||||
|
||||
#define PAN_V7(pipe, mali, swizzle, srgb, flags) \
|
||||
#define MALI_RGB_COMPONENT_ORDER_R001 MALI_RGB_COMPONENT_ORDER_RGB1
|
||||
#define MALI_RGB_COMPONENT_ORDER_RG01 MALI_RGB_COMPONENT_ORDER_RGB1
|
||||
#define MALI_RGB_COMPONENT_ORDER_GBAR MALI_RGB_COMPONENT_ORDER_ARGB
|
||||
#define MALI_RGB_COMPONENT_ORDER_GBA1 MALI_RGB_COMPONENT_ORDER_1RGB
|
||||
#define MALI_RGB_COMPONENT_ORDER_ABG1 MALI_RGB_COMPONENT_ORDER_1BGR
|
||||
|
||||
#define FMT(pipe, mali, swizzle, srgb, flags) \
|
||||
[PIPE_FORMAT_ ## pipe] = { \
|
||||
.hw = ( MALI_RGB_COMPONENT_ORDER_ ## swizzle ) | \
|
||||
(( MALI_ ## mali ) << 12) | \
|
||||
((( SRGB_ ## srgb)) << 20), \
|
||||
.bind = FLAGS_ ## flags \
|
||||
}
|
||||
#endif
|
||||
|
||||
const struct panfrost_format panfrost_pipe_format_v6[PIPE_FORMAT_COUNT] = {
|
||||
PAN_V6(NONE, CONSTANT, 0000, L, VTR_),
|
||||
PAN_V6(ETC1_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
PAN_V6(ETC2_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
PAN_V6(ETC2_SRGB8, ETC2_RGB8, RGB1, S, _T__),
|
||||
PAN_V6(ETC2_R11_UNORM, ETC2_R11_UNORM, R001, L, _T__),
|
||||
PAN_V6(ETC2_RGBA8, ETC2_RGBA8, RGBA, L, _T__),
|
||||
PAN_V6(ETC2_SRGBA8, ETC2_RGBA8, RGBA, S, _T__),
|
||||
PAN_V6(ETC2_RG11_UNORM, ETC2_RG11_UNORM, RG01, L, _T__),
|
||||
PAN_V6(ETC2_R11_SNORM, ETC2_R11_SNORM, R001, L, _T__),
|
||||
PAN_V6(ETC2_RG11_SNORM, ETC2_RG11_SNORM, RG01, L, _T__),
|
||||
PAN_V6(ETC2_RGB8A1, ETC2_RGB8A1, RGBA, L, _T__),
|
||||
PAN_V6(ETC2_SRGB8A1, ETC2_RGB8A1, RGBA, S, _T__),
|
||||
PAN_V6(DXT1_RGB, BC1_UNORM, RGB1, L, _T__),
|
||||
PAN_V6(DXT1_RGBA, BC1_UNORM, RGBA, L, _T__),
|
||||
PAN_V6(DXT1_SRGB, BC1_UNORM, RGB1, S, _T__),
|
||||
PAN_V6(DXT1_SRGBA, BC1_UNORM, RGBA, S, _T__),
|
||||
PAN_V6(DXT3_RGBA, BC2_UNORM, RGBA, L, _T__),
|
||||
PAN_V6(DXT3_SRGBA, BC2_UNORM, RGBA, S, _T__),
|
||||
PAN_V6(DXT5_RGBA, BC3_UNORM, RGBA, L, _T__),
|
||||
PAN_V6(DXT5_SRGBA, BC3_UNORM, RGBA, S, _T__),
|
||||
PAN_V6(RGTC1_UNORM, BC4_UNORM, R001, L, _T__),
|
||||
PAN_V6(RGTC1_SNORM, BC4_SNORM, R001, L, _T__),
|
||||
PAN_V6(RGTC2_UNORM, BC5_UNORM, RG01, L, _T__),
|
||||
PAN_V6(RGTC2_SNORM, BC5_SNORM, RG01, L, _T__),
|
||||
PAN_V6(BPTC_RGB_FLOAT, BC6H_SF16, RGB1, L, _T__),
|
||||
PAN_V6(BPTC_RGB_UFLOAT, BC6H_UF16, RGB1, L, _T__),
|
||||
PAN_V6(BPTC_RGBA_UNORM, BC7_UNORM, RGBA, L, _T__),
|
||||
PAN_V6(BPTC_SRGBA, BC7_UNORM, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_4x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_5x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_5x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_6x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_6x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_8x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_8x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_8x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_10x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_10x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_10x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_10x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_12x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_12x12, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V6(ASTC_4x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_5x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_5x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_6x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_6x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_8x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_8x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_8x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_10x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_10x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_10x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_10x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_12x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(ASTC_12x12_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V6(R5G6B5_UNORM, RGB565, RGB1, L, VTR_),
|
||||
PAN_V6(B5G6R5_UNORM, RGB565, BGR1, L, VTR_),
|
||||
PAN_V6(R5G5B5X1_UNORM, RGB5_A1_UNORM, RGB1, L, VT__),
|
||||
PAN_V6(B5G5R5X1_UNORM, RGB5_A1_UNORM, BGR1, L, VT__),
|
||||
PAN_V6(R5G5B5A1_UNORM, RGB5_A1_UNORM, RGBA, L, VTR_),
|
||||
PAN_V6(B5G5R5A1_UNORM, RGB5_A1_UNORM, BGRA, L, VTR_),
|
||||
PAN_V6(R10G10B10X2_UNORM, RGB10_A2_UNORM, RGB1, L, VTR_),
|
||||
PAN_V6(B10G10R10X2_UNORM, RGB10_A2_UNORM, BGR1, L, VTR_),
|
||||
PAN_V6(R10G10B10A2_UNORM, RGB10_A2_UNORM, RGBA, L, VTR_),
|
||||
PAN_V6(B10G10R10A2_UNORM, RGB10_A2_UNORM, BGRA, L, VTR_),
|
||||
PAN_V6(R10G10B10X2_SNORM, RGB10_A2_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R10G10B10A2_SNORM, RGB10_A2_SNORM, RGBA, L, VT__),
|
||||
PAN_V6(B10G10R10A2_SNORM, RGB10_A2_SNORM, BGRA, L, VT__),
|
||||
PAN_V6(R10G10B10A2_UINT, RGB10_A2UI, RGBA, L, VTR_),
|
||||
PAN_V6(B10G10R10A2_UINT, RGB10_A2UI, BGRA, L, VTR_),
|
||||
PAN_V6(R10G10B10A2_USCALED, RGB10_A2UI, RGBA, L, VTR_),
|
||||
PAN_V6(B10G10R10A2_USCALED, RGB10_A2UI, BGRA, L, VTR_),
|
||||
PAN_V6(R10G10B10A2_SINT, RGB10_A2I, RGBA, L, VTR_),
|
||||
PAN_V6(B10G10R10A2_SINT, RGB10_A2I, BGRA, L, VTR_),
|
||||
PAN_V6(R10G10B10A2_SSCALED, RGB10_A2I, RGBA, L, VTR_),
|
||||
PAN_V6(B10G10R10A2_SSCALED, RGB10_A2I, BGRA, L, VTR_),
|
||||
PAN_V6(R8_SSCALED, R8I, R001, L, V___),
|
||||
PAN_V6(R8G8_SSCALED, RG8I, RG01, L, V___),
|
||||
PAN_V6(R8G8B8_SSCALED, RGB8I, RGB1, L, V___),
|
||||
PAN_V6(B8G8R8_SSCALED, RGB8I, BGR1, L, V___),
|
||||
PAN_V6(R8G8B8A8_SSCALED, RGBA8I, RGBA, L, V___),
|
||||
PAN_V6(B8G8R8A8_SSCALED, RGBA8I, BGRA, L, V___),
|
||||
PAN_V6(A8B8G8R8_SSCALED, RGBA8I, ABGR, L, V___),
|
||||
PAN_V6(R8_USCALED, R8UI, R001, L, V___),
|
||||
PAN_V6(R8G8_USCALED, RG8UI, RG01, L, V___),
|
||||
PAN_V6(R8G8B8_USCALED, RGB8UI, RGB1, L, V___),
|
||||
PAN_V6(B8G8R8_USCALED, RGB8UI, BGR1, L, V___),
|
||||
PAN_V6(R8G8B8A8_USCALED, RGBA8UI, RGBA, L, V___),
|
||||
PAN_V6(B8G8R8A8_USCALED, RGBA8UI, BGRA, L, V___),
|
||||
PAN_V6(A8B8G8R8_USCALED, RGBA8UI, ABGR, L, V___),
|
||||
PAN_V6(R16_USCALED, R16UI, R001, L, V___),
|
||||
PAN_V6(R16G16_USCALED, RG16UI, RG01, L, V___),
|
||||
PAN_V6(R16G16B16_USCALED, RGB16UI, RGB1, L, V___),
|
||||
PAN_V6(R16G16B16A16_USCALED, RGBA16UI, RGBA, L, V___),
|
||||
PAN_V6(R16_SSCALED, R16I, R001, L, V___),
|
||||
PAN_V6(R16G16_SSCALED, RG16I, RG01, L, V___),
|
||||
PAN_V6(R16G16B16_SSCALED, RGB16I, RGB1, L, V___),
|
||||
PAN_V6(R16G16B16A16_SSCALED, RGBA16I, RGBA, L, V___),
|
||||
PAN_V6(R32_USCALED, R32UI, R001, L, V___),
|
||||
PAN_V6(R32G32_USCALED, RG32UI, RG01, L, V___),
|
||||
PAN_V6(R32G32B32_USCALED, RGB32UI, RGB1, L, V___),
|
||||
PAN_V6(R32G32B32A32_USCALED, RGBA32UI, RGBA, L, V___),
|
||||
PAN_V6(R32_SSCALED, R32I, R001, L, V___),
|
||||
PAN_V6(R32G32_SSCALED, RG32I, RG01, L, V___),
|
||||
PAN_V6(R32G32B32_SSCALED, RGB32I, RGB1, L, V___),
|
||||
PAN_V6(R32G32B32A32_SSCALED, RGBA32I, RGBA, L, V___),
|
||||
PAN_V6(R3G3B2_UNORM, RGB332_UNORM, RGB1, L, VT__),
|
||||
PAN_V6(Z16_UNORM, R16_UNORM, RRRR, L, _T_Z),
|
||||
PAN_V6(Z24_UNORM_S8_UINT, Z24X8_UNORM, RRRR, L, _T_Z),
|
||||
PAN_V6(Z24X8_UNORM, Z24X8_UNORM, RRRR, L, _T_Z),
|
||||
PAN_V6(Z32_FLOAT, R32F, RRRR, L, _T_Z),
|
||||
PAN_V6(Z32_FLOAT_S8X24_UINT, R32F, RRRR, L, _T_Z),
|
||||
PAN_V6(X32_S8X24_UINT, R32UI, RRRR, L, _T__),
|
||||
PAN_V6(X24S8_UINT, RGBA8UI, AAAA, L, _T_Z),
|
||||
PAN_V6(S8_UINT, R8UI, RRRR, L, _T__),
|
||||
PAN_V6(R32_FIXED, R32_FIXED, R001, L, V___),
|
||||
PAN_V6(R32G32_FIXED, RG32_FIXED, RG01, L, V___),
|
||||
PAN_V6(R32G32B32_FIXED, RGB32_FIXED, RGB1, L, V___),
|
||||
PAN_V6(R32G32B32A32_FIXED, RGBA32_FIXED, RGBA, L, V___),
|
||||
PAN_V6(R11G11B10_FLOAT, R11F_G11F_B10F, RGB1, L, VTR_),
|
||||
PAN_V6(R9G9B9E5_FLOAT, R9F_G9F_B9F_E5F, RGB1, L, VT__),
|
||||
PAN_V6(R8_SNORM, R8_SNORM, R001, L, VT__),
|
||||
PAN_V6(R16_SNORM, R16_SNORM, R001, L, VT__),
|
||||
PAN_V6(R32_SNORM, R32_SNORM, R001, L, VT__),
|
||||
PAN_V6(R8G8_SNORM, RG8_SNORM, RG01, L, VT__),
|
||||
PAN_V6(R16G16_SNORM, RG16_SNORM, RG01, L, VT__),
|
||||
PAN_V6(R32G32_SNORM, RG32_SNORM, RG01, L, VT__),
|
||||
PAN_V6(R8G8B8_SNORM, RGB8_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R16G16B16_SNORM, RGB16_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R32G32B32_SNORM, RGB32_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R8G8B8A8_SNORM, RGBA8_SNORM, RGBA, L, VT__),
|
||||
PAN_V6(R16G16B16A16_SNORM, RGBA16_SNORM, RGBA, L, VT__),
|
||||
PAN_V6(R32G32B32A32_SNORM, RGBA32_SNORM, RGBA, L, VT__),
|
||||
PAN_V6(A8_SINT, R8I, 000R, L, VTR_),
|
||||
PAN_V6(I8_SINT, R8I, RRRR, L, VTR_),
|
||||
PAN_V6(L8_SINT, R8I, RRR1, L, VTR_),
|
||||
PAN_V6(A8_UINT, R8UI, 000R, L, VTR_),
|
||||
PAN_V6(I8_UINT, R8UI, RRRR, L, VTR_),
|
||||
PAN_V6(L8_UINT, R8UI, RRR1, L, VTR_),
|
||||
PAN_V6(A16_SINT, R16I, 000R, L, VTR_),
|
||||
PAN_V6(I16_SINT, R16I, RRRR, L, VTR_),
|
||||
PAN_V6(L16_SINT, R16I, RRR1, L, VTR_),
|
||||
PAN_V6(A16_UINT, R16UI, 000R, L, VTR_),
|
||||
PAN_V6(I16_UINT, R16UI, RRRR, L, VTR_),
|
||||
PAN_V6(L16_UINT, R16UI, RRR1, L, VTR_),
|
||||
PAN_V6(A32_SINT, R32I, 000R, L, VTR_),
|
||||
PAN_V6(I32_SINT, R32I, RRRR, L, VTR_),
|
||||
PAN_V6(L32_SINT, R32I, RRR1, L, VTR_),
|
||||
PAN_V6(A32_UINT, R32UI, 000R, L, VTR_),
|
||||
PAN_V6(I32_UINT, R32UI, RRRR, L, VTR_),
|
||||
PAN_V6(L32_UINT, R32UI, RRR1, L, VTR_),
|
||||
PAN_V6(B8G8R8_UINT, RGB8UI, BGR1, L, VTR_),
|
||||
PAN_V6(B8G8R8A8_UINT, RGBA8UI, BGRA, L, VTR_),
|
||||
PAN_V6(B8G8R8_SINT, RGB8I, BGR1, L, VTR_),
|
||||
PAN_V6(B8G8R8A8_SINT, RGBA8I, BGRA, L, VTR_),
|
||||
PAN_V6(A8R8G8B8_UINT, RGBA8UI, GBAR, L, VTR_),
|
||||
PAN_V6(A8B8G8R8_UINT, RGBA8UI, ABGR, L, VTR_),
|
||||
PAN_V6(R8_UINT, R8UI, R001, L, VTR_),
|
||||
PAN_V6(R16_UINT, R16UI, R001, L, VTR_),
|
||||
PAN_V6(R32_UINT, R32UI, R001, L, VTR_),
|
||||
PAN_V6(R8G8_UINT, RG8UI, RG01, L, VTR_),
|
||||
PAN_V6(R16G16_UINT, RG16UI, RG01, L, VTR_),
|
||||
PAN_V6(R32G32_UINT, RG32UI, RG01, L, VTR_),
|
||||
PAN_V6(R8G8B8_UINT, RGB8UI, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16_UINT, RGB16UI, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32_UINT, RGB32UI, RGB1, L, VTR_),
|
||||
PAN_V6(R8G8B8A8_UINT, RGBA8UI, RGBA, L, VTR_),
|
||||
PAN_V6(R16G16B16A16_UINT, RGBA16UI, RGBA, L, VTR_),
|
||||
PAN_V6(R32G32B32A32_UINT, RGBA32UI, RGBA, L, VTR_),
|
||||
PAN_V6(R32_FLOAT, R32F, R001, L, VTR_),
|
||||
PAN_V6(R32G32_FLOAT, RG32F, RG01, L, VTR_),
|
||||
PAN_V6(R32G32B32_FLOAT, RGB32F, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32A32_FLOAT, RGBA32F, RGBA, L, VTR_),
|
||||
PAN_V6(R8_UNORM, R8_UNORM, R001, L, VTR_),
|
||||
PAN_V6(R16_UNORM, R16_UNORM, R001, L, VT__),
|
||||
PAN_V6(R32_UNORM, R32_UNORM, R001, L, VT__),
|
||||
PAN_V6(R8G8_UNORM, RG8_UNORM, RG01, L, VTR_),
|
||||
PAN_V6(R16G16_UNORM, RG16_UNORM, RG01, L, VT__),
|
||||
PAN_V6(R32G32_UNORM, RG32_UNORM, RG01, L, VT__),
|
||||
PAN_V6(R8G8B8_UNORM, RGB8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16_UNORM, RGB16_UNORM, RGB1, L, VT__),
|
||||
PAN_V6(R32G32B32_UNORM, RGB32_UNORM, RGB1, L, VT__),
|
||||
PAN_V6(R4G4B4A4_UNORM, RGBA4_UNORM, RGBA, L, VTR_),
|
||||
PAN_V6(B4G4R4A4_UNORM, RGBA4_UNORM, BGRA, L, VTR_),
|
||||
PAN_V6(R16G16B16A16_UNORM, RGBA16_UNORM, RGBA, L, VT__),
|
||||
PAN_V6(R32G32B32A32_UNORM, RGBA32_UNORM, RGBA, L, VT__),
|
||||
PAN_V6(B8G8R8A8_UNORM, RGBA8_UNORM, BGRA, L, VTR_),
|
||||
PAN_V6(B8G8R8X8_UNORM, RGBA8_UNORM, BGR1, L, VTR_),
|
||||
PAN_V6(A8R8G8B8_UNORM, RGBA8_UNORM, GBAR, L, VTR_),
|
||||
PAN_V6(X8R8G8B8_UNORM, RGBA8_UNORM, GBA1, L, VTR_),
|
||||
PAN_V6(A8B8G8R8_UNORM, RGBA8_UNORM, ABGR, L, VTR_),
|
||||
PAN_V6(X8B8G8R8_UNORM, RGBA8_UNORM, ABG1, L, VTR_),
|
||||
PAN_V6(R8G8B8X8_UNORM, RGBA8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V6(R8G8B8A8_UNORM, RGBA8_UNORM, RGBA, L, VTR_),
|
||||
PAN_V6(R8G8B8X8_SNORM, RGBA8_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R8G8B8X8_SRGB, RGBA8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V6(R8G8B8X8_UINT, RGBA8UI, RGB1, L, VTR_),
|
||||
PAN_V6(R8G8B8X8_SINT, RGBA8I, RGB1, L, VTR_),
|
||||
PAN_V6(L8_UNORM, R8_UNORM, RRR1, L, VTR_),
|
||||
PAN_V6(A8_UNORM, R8_UNORM, 000R, L, VTR_),
|
||||
PAN_V6(I8_UNORM, R8_UNORM, RRRR, L, VTR_),
|
||||
PAN_V6(L8A8_UNORM, RG8_UNORM, RRRG, L, VTR_),
|
||||
PAN_V6(L16_UNORM, R16_UNORM, RRR1, L, VT__),
|
||||
PAN_V6(A16_UNORM, R16_UNORM, 000R, L, VT__),
|
||||
PAN_V6(I16_UNORM, R16_UNORM, RRRR, L, VT__),
|
||||
PAN_V6(L8_SNORM, R8_SNORM, RRR1, L, VT__),
|
||||
PAN_V6(A8_SNORM, R8_SNORM, 000R, L, VT__),
|
||||
PAN_V6(I8_SNORM, R8_SNORM, RRRR, L, VT__),
|
||||
PAN_V6(L16_SNORM, R16_SNORM, RRR1, L, VT__),
|
||||
PAN_V6(A16_SNORM, R16_SNORM, 000R, L, VT__),
|
||||
PAN_V6(I16_SNORM, R16_SNORM, RRRR, L, VT__),
|
||||
PAN_V6(L16_FLOAT, R16F, RRR1, L, VTR_),
|
||||
PAN_V6(A16_FLOAT, R16F, 000R, L, VTR_),
|
||||
PAN_V6(I16_FLOAT, RG16F, RRRR, L, VTR_),
|
||||
PAN_V6(L8_SRGB, R8_UNORM, RRR1, S, VTR_),
|
||||
PAN_V6(R8_SRGB, R8_UNORM, R001, S, VTR_),
|
||||
PAN_V6(L8A8_SRGB, RG8_UNORM, RRRG, S, VTR_),
|
||||
PAN_V6(R8G8_SRGB, RG8_UNORM, RG01, S, VTR_),
|
||||
PAN_V6(R8G8B8_SRGB, RGB8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V6(B8G8R8_SRGB, RGB8_UNORM, BGR1, S, VTR_),
|
||||
PAN_V6(R8G8B8A8_SRGB, RGBA8_UNORM, RGBA, S, VTR_),
|
||||
PAN_V6(A8B8G8R8_SRGB, RGBA8_UNORM, ABGR, S, VTR_),
|
||||
PAN_V6(X8B8G8R8_SRGB, RGBA8_UNORM, ABG1, S, VTR_),
|
||||
PAN_V6(B8G8R8A8_SRGB, RGBA8_UNORM, BGRA, S, VTR_),
|
||||
PAN_V6(B8G8R8X8_SRGB, RGBA8_UNORM, BGR1, S, VTR_),
|
||||
PAN_V6(A8R8G8B8_SRGB, RGBA8_UNORM, GBAR, S, VTR_),
|
||||
PAN_V6(X8R8G8B8_SRGB, RGBA8_UNORM, GBA1, S, VTR_),
|
||||
PAN_V6(R8_SINT, R8I, R001, L, VTR_),
|
||||
PAN_V6(R16_SINT, R16I, R001, L, VTR_),
|
||||
PAN_V6(R32_SINT, R32I, R001, L, VTR_),
|
||||
PAN_V6(R16_FLOAT, R16F, R001, L, VTR_),
|
||||
PAN_V6(R8G8_SINT, RG8I, RG01, L, VTR_),
|
||||
PAN_V6(R16G16_SINT, RG16I, RG01, L, VTR_),
|
||||
PAN_V6(R32G32_SINT, RG32I, RG01, L, VTR_),
|
||||
PAN_V6(R16G16_FLOAT, RG16F, RG01, L, VTR_),
|
||||
PAN_V6(R8G8B8_SINT, RGB8I, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16_SINT, RGB16I, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32_SINT, RGB32I, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16_FLOAT, RGB16F, RGB1, L, VTR_),
|
||||
PAN_V6(R8G8B8A8_SINT, RGBA8I, RGBA, L, VTR_),
|
||||
PAN_V6(R16G16B16A16_SINT, RGBA16I, RGBA, L, VTR_),
|
||||
PAN_V6(R32G32B32A32_SINT, RGBA32I, RGBA, L, VTR_),
|
||||
PAN_V6(R16G16B16A16_FLOAT, RGBA16F, RGBA, L, VTR_),
|
||||
PAN_V6(R16G16B16X16_UNORM, RGBA16_UNORM, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16X16_SNORM, RGBA16_SNORM, RGB1, L, VT__),
|
||||
PAN_V6(R16G16B16X16_FLOAT, RGBA16F, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16X16_UINT, RGBA16UI, RGB1, L, VTR_),
|
||||
PAN_V6(R16G16B16X16_SINT, RGBA16I, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32X32_FLOAT, RGBA32F, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32X32_UINT, RGBA32UI, RGB1, L, VTR_),
|
||||
PAN_V6(R32G32B32X32_SINT, RGBA32I, RGB1, L, VTR_),
|
||||
};
|
||||
const struct panfrost_format GENX(panfrost_pipe_format)[PIPE_FORMAT_COUNT] = {
|
||||
FMT(NONE, CONSTANT, 0000, L, VTR_),
|
||||
FMT(ETC1_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
FMT(ETC2_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
FMT(ETC2_SRGB8, ETC2_RGB8, RGB1, S, _T__),
|
||||
FMT(ETC2_R11_UNORM, ETC2_R11_UNORM, R001, L, _T__),
|
||||
FMT(ETC2_RGBA8, ETC2_RGBA8, RGBA, L, _T__),
|
||||
FMT(ETC2_SRGBA8, ETC2_RGBA8, RGBA, S, _T__),
|
||||
FMT(ETC2_RG11_UNORM, ETC2_RG11_UNORM, RG01, L, _T__),
|
||||
FMT(ETC2_R11_SNORM, ETC2_R11_SNORM, R001, L, _T__),
|
||||
FMT(ETC2_RG11_SNORM, ETC2_RG11_SNORM, RG01, L, _T__),
|
||||
FMT(ETC2_RGB8A1, ETC2_RGB8A1, RGBA, L, _T__),
|
||||
FMT(ETC2_SRGB8A1, ETC2_RGB8A1, RGBA, S, _T__),
|
||||
FMT(DXT1_RGB, BC1_UNORM, RGB1, L, _T__),
|
||||
FMT(DXT1_RGBA, BC1_UNORM, RGBA, L, _T__),
|
||||
FMT(DXT1_SRGB, BC1_UNORM, RGB1, S, _T__),
|
||||
FMT(DXT1_SRGBA, BC1_UNORM, RGBA, S, _T__),
|
||||
FMT(DXT3_RGBA, BC2_UNORM, RGBA, L, _T__),
|
||||
FMT(DXT3_SRGBA, BC2_UNORM, RGBA, S, _T__),
|
||||
FMT(DXT5_RGBA, BC3_UNORM, RGBA, L, _T__),
|
||||
FMT(DXT5_SRGBA, BC3_UNORM, RGBA, S, _T__),
|
||||
FMT(RGTC1_UNORM, BC4_UNORM, R001, L, _T__),
|
||||
FMT(RGTC1_SNORM, BC4_SNORM, R001, L, _T__),
|
||||
FMT(RGTC2_UNORM, BC5_UNORM, RG01, L, _T__),
|
||||
FMT(RGTC2_SNORM, BC5_SNORM, RG01, L, _T__),
|
||||
FMT(BPTC_RGB_FLOAT, BC6H_SF16, RGB1, L, _T__),
|
||||
FMT(BPTC_RGB_UFLOAT, BC6H_UF16, RGB1, L, _T__),
|
||||
FMT(BPTC_RGBA_UNORM, BC7_UNORM, RGBA, L, _T__),
|
||||
FMT(BPTC_SRGBA, BC7_UNORM, RGBA, S, _T__),
|
||||
FMT(ASTC_4x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_5x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_5x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_6x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_6x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_8x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_8x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_8x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_10x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_10x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_10x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_10x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_12x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_12x12, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
FMT(ASTC_4x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_5x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_5x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_6x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_6x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_8x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_8x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_8x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_10x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_10x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_10x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_10x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_12x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(ASTC_12x12_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
FMT(R5G6B5_UNORM, RGB565, RGB1, L, VTR_),
|
||||
FMT(B5G6R5_UNORM, RGB565, BGR1, L, VTR_),
|
||||
FMT(R5G5B5X1_UNORM, RGB5_A1_UNORM, RGB1, L, VT__),
|
||||
FMT(B5G5R5X1_UNORM, RGB5_A1_UNORM, BGR1, L, VT__),
|
||||
FMT(R5G5B5A1_UNORM, RGB5_A1_UNORM, RGBA, L, VTR_),
|
||||
FMT(B5G5R5A1_UNORM, RGB5_A1_UNORM, BGRA, L, VTR_),
|
||||
FMT(R10G10B10X2_UNORM, RGB10_A2_UNORM, RGB1, L, VTR_),
|
||||
FMT(B10G10R10X2_UNORM, RGB10_A2_UNORM, BGR1, L, VTR_),
|
||||
FMT(R10G10B10A2_UNORM, RGB10_A2_UNORM, RGBA, L, VTR_),
|
||||
FMT(B10G10R10A2_UNORM, RGB10_A2_UNORM, BGRA, L, VTR_),
|
||||
FMT(R10G10B10X2_SNORM, RGB10_A2_SNORM, RGB1, L, VT__),
|
||||
FMT(R10G10B10A2_SNORM, RGB10_A2_SNORM, RGBA, L, VT__),
|
||||
FMT(B10G10R10A2_SNORM, RGB10_A2_SNORM, BGRA, L, VT__),
|
||||
FMT(R10G10B10A2_UINT, RGB10_A2UI, RGBA, L, VTR_),
|
||||
FMT(B10G10R10A2_UINT, RGB10_A2UI, BGRA, L, VTR_),
|
||||
FMT(R10G10B10A2_USCALED, RGB10_A2UI, RGBA, L, VTR_),
|
||||
FMT(B10G10R10A2_USCALED, RGB10_A2UI, BGRA, L, VTR_),
|
||||
FMT(R10G10B10A2_SINT, RGB10_A2I, RGBA, L, VTR_),
|
||||
FMT(B10G10R10A2_SINT, RGB10_A2I, BGRA, L, VTR_),
|
||||
FMT(R10G10B10A2_SSCALED, RGB10_A2I, RGBA, L, VTR_),
|
||||
FMT(B10G10R10A2_SSCALED, RGB10_A2I, BGRA, L, VTR_),
|
||||
FMT(R8_SSCALED, R8I, R001, L, V___),
|
||||
FMT(R8G8_SSCALED, RG8I, RG01, L, V___),
|
||||
FMT(R8G8B8_SSCALED, RGB8I, RGB1, L, V___),
|
||||
FMT(B8G8R8_SSCALED, RGB8I, BGR1, L, V___),
|
||||
FMT(R8G8B8A8_SSCALED, RGBA8I, RGBA, L, V___),
|
||||
FMT(B8G8R8A8_SSCALED, RGBA8I, BGRA, L, V___),
|
||||
FMT(A8B8G8R8_SSCALED, RGBA8I, ABGR, L, V___),
|
||||
FMT(R8_USCALED, R8UI, R001, L, V___),
|
||||
FMT(R8G8_USCALED, RG8UI, RG01, L, V___),
|
||||
FMT(R8G8B8_USCALED, RGB8UI, RGB1, L, V___),
|
||||
FMT(B8G8R8_USCALED, RGB8UI, BGR1, L, V___),
|
||||
FMT(R8G8B8A8_USCALED, RGBA8UI, RGBA, L, V___),
|
||||
FMT(B8G8R8A8_USCALED, RGBA8UI, BGRA, L, V___),
|
||||
FMT(A8B8G8R8_USCALED, RGBA8UI, ABGR, L, V___),
|
||||
FMT(R16_USCALED, R16UI, R001, L, V___),
|
||||
FMT(R16G16_USCALED, RG16UI, RG01, L, V___),
|
||||
FMT(R16G16B16_USCALED, RGB16UI, RGB1, L, V___),
|
||||
FMT(R16G16B16A16_USCALED, RGBA16UI, RGBA, L, V___),
|
||||
FMT(R16_SSCALED, R16I, R001, L, V___),
|
||||
FMT(R16G16_SSCALED, RG16I, RG01, L, V___),
|
||||
FMT(R16G16B16_SSCALED, RGB16I, RGB1, L, V___),
|
||||
FMT(R16G16B16A16_SSCALED, RGBA16I, RGBA, L, V___),
|
||||
FMT(R32_USCALED, R32UI, R001, L, V___),
|
||||
FMT(R32G32_USCALED, RG32UI, RG01, L, V___),
|
||||
FMT(R32G32B32_USCALED, RGB32UI, RGB1, L, V___),
|
||||
FMT(R32G32B32A32_USCALED, RGBA32UI, RGBA, L, V___),
|
||||
FMT(R32_SSCALED, R32I, R001, L, V___),
|
||||
FMT(R32G32_SSCALED, RG32I, RG01, L, V___),
|
||||
FMT(R32G32B32_SSCALED, RGB32I, RGB1, L, V___),
|
||||
FMT(R32G32B32A32_SSCALED, RGBA32I, RGBA, L, V___),
|
||||
FMT(R3G3B2_UNORM, RGB332_UNORM, RGB1, L, VT__),
|
||||
FMT(R32_FIXED, R32_FIXED, R001, L, V___),
|
||||
FMT(R32G32_FIXED, RG32_FIXED, RG01, L, V___),
|
||||
FMT(R32G32B32_FIXED, RGB32_FIXED, RGB1, L, V___),
|
||||
FMT(R32G32B32A32_FIXED, RGBA32_FIXED, RGBA, L, V___),
|
||||
FMT(R11G11B10_FLOAT, R11F_G11F_B10F, RGB1, L, VTR_),
|
||||
FMT(R9G9B9E5_FLOAT, R9F_G9F_B9F_E5F, RGB1, L, VT__),
|
||||
FMT(R8_SNORM, R8_SNORM, R001, L, VT__),
|
||||
FMT(R16_SNORM, R16_SNORM, R001, L, VT__),
|
||||
FMT(R32_SNORM, R32_SNORM, R001, L, VT__),
|
||||
FMT(R8G8_SNORM, RG8_SNORM, RG01, L, VT__),
|
||||
FMT(R16G16_SNORM, RG16_SNORM, RG01, L, VT__),
|
||||
FMT(R32G32_SNORM, RG32_SNORM, RG01, L, VT__),
|
||||
FMT(R8G8B8_SNORM, RGB8_SNORM, RGB1, L, VT__),
|
||||
FMT(R16G16B16_SNORM, RGB16_SNORM, RGB1, L, VT__),
|
||||
FMT(R32G32B32_SNORM, RGB32_SNORM, RGB1, L, VT__),
|
||||
FMT(R8G8B8A8_SNORM, RGBA8_SNORM, RGBA, L, VT__),
|
||||
FMT(R16G16B16A16_SNORM, RGBA16_SNORM, RGBA, L, VT__),
|
||||
FMT(R32G32B32A32_SNORM, RGBA32_SNORM, RGBA, L, VT__),
|
||||
FMT(I8_SINT, R8I, RRRR, L, VTR_),
|
||||
FMT(L8_SINT, R8I, RRR1, L, VTR_),
|
||||
FMT(I8_UINT, R8UI, RRRR, L, VTR_),
|
||||
FMT(L8_UINT, R8UI, RRR1, L, VTR_),
|
||||
FMT(I16_SINT, R16I, RRRR, L, VTR_),
|
||||
FMT(L16_SINT, R16I, RRR1, L, VTR_),
|
||||
FMT(I16_UINT, R16UI, RRRR, L, VTR_),
|
||||
FMT(L16_UINT, R16UI, RRR1, L, VTR_),
|
||||
FMT(I32_SINT, R32I, RRRR, L, VTR_),
|
||||
FMT(L32_SINT, R32I, RRR1, L, VTR_),
|
||||
FMT(I32_UINT, R32UI, RRRR, L, VTR_),
|
||||
FMT(L32_UINT, R32UI, RRR1, L, VTR_),
|
||||
FMT(B8G8R8_UINT, RGB8UI, BGR1, L, VTR_),
|
||||
FMT(B8G8R8A8_UINT, RGBA8UI, BGRA, L, VTR_),
|
||||
FMT(B8G8R8_SINT, RGB8I, BGR1, L, VTR_),
|
||||
FMT(B8G8R8A8_SINT, RGBA8I, BGRA, L, VTR_),
|
||||
FMT(A8R8G8B8_UINT, RGBA8UI, GBAR, L, VTR_),
|
||||
FMT(A8B8G8R8_UINT, RGBA8UI, ABGR, L, VTR_),
|
||||
FMT(R8_UINT, R8UI, R001, L, VTR_),
|
||||
FMT(R16_UINT, R16UI, R001, L, VTR_),
|
||||
FMT(R32_UINT, R32UI, R001, L, VTR_),
|
||||
FMT(R8G8_UINT, RG8UI, RG01, L, VTR_),
|
||||
FMT(R16G16_UINT, RG16UI, RG01, L, VTR_),
|
||||
FMT(R32G32_UINT, RG32UI, RG01, L, VTR_),
|
||||
FMT(R8G8B8_UINT, RGB8UI, RGB1, L, VTR_),
|
||||
FMT(R16G16B16_UINT, RGB16UI, RGB1, L, VTR_),
|
||||
FMT(R32G32B32_UINT, RGB32UI, RGB1, L, VTR_),
|
||||
FMT(R8G8B8A8_UINT, RGBA8UI, RGBA, L, VTR_),
|
||||
FMT(R16G16B16A16_UINT, RGBA16UI, RGBA, L, VTR_),
|
||||
FMT(R32G32B32A32_UINT, RGBA32UI, RGBA, L, VTR_),
|
||||
FMT(R32_FLOAT, R32F, R001, L, VTR_),
|
||||
FMT(R32G32_FLOAT, RG32F, RG01, L, VTR_),
|
||||
FMT(R32G32B32_FLOAT, RGB32F, RGB1, L, VTR_),
|
||||
FMT(R32G32B32A32_FLOAT, RGBA32F, RGBA, L, VTR_),
|
||||
FMT(R8_UNORM, R8_UNORM, R001, L, VTR_),
|
||||
FMT(R16_UNORM, R16_UNORM, R001, L, VT__),
|
||||
FMT(R32_UNORM, R32_UNORM, R001, L, VT__),
|
||||
FMT(R8G8_UNORM, RG8_UNORM, RG01, L, VTR_),
|
||||
FMT(R16G16_UNORM, RG16_UNORM, RG01, L, VT__),
|
||||
FMT(R32G32_UNORM, RG32_UNORM, RG01, L, VT__),
|
||||
FMT(R8G8B8_UNORM, RGB8_UNORM, RGB1, L, VTR_),
|
||||
FMT(R16G16B16_UNORM, RGB16_UNORM, RGB1, L, VT__),
|
||||
FMT(R32G32B32_UNORM, RGB32_UNORM, RGB1, L, VT__),
|
||||
FMT(R4G4B4A4_UNORM, RGBA4_UNORM, RGBA, L, VTR_),
|
||||
FMT(B4G4R4A4_UNORM, RGBA4_UNORM, BGRA, L, VTR_),
|
||||
FMT(R16G16B16A16_UNORM, RGBA16_UNORM, RGBA, L, VT__),
|
||||
FMT(R32G32B32A32_UNORM, RGBA32_UNORM, RGBA, L, VT__),
|
||||
FMT(B8G8R8A8_UNORM, RGBA8_UNORM, BGRA, L, VTR_),
|
||||
FMT(B8G8R8X8_UNORM, RGBA8_UNORM, BGR1, L, VTR_),
|
||||
FMT(A8R8G8B8_UNORM, RGBA8_UNORM, GBAR, L, VTR_),
|
||||
FMT(X8R8G8B8_UNORM, RGBA8_UNORM, GBA1, L, VTR_),
|
||||
FMT(A8B8G8R8_UNORM, RGBA8_UNORM, ABGR, L, VTR_),
|
||||
FMT(X8B8G8R8_UNORM, RGBA8_UNORM, ABG1, L, VTR_),
|
||||
FMT(R8G8B8X8_UNORM, RGBA8_UNORM, RGB1, L, VTR_),
|
||||
FMT(R8G8B8A8_UNORM, RGBA8_UNORM, RGBA, L, VTR_),
|
||||
FMT(R8G8B8X8_SNORM, RGBA8_SNORM, RGB1, L, VT__),
|
||||
FMT(R8G8B8X8_SRGB, RGBA8_UNORM, RGB1, S, VTR_),
|
||||
FMT(R8G8B8X8_UINT, RGBA8UI, RGB1, L, VTR_),
|
||||
FMT(R8G8B8X8_SINT, RGBA8I, RGB1, L, VTR_),
|
||||
FMT(L8_UNORM, R8_UNORM, RRR1, L, VTR_),
|
||||
FMT(I8_UNORM, R8_UNORM, RRRR, L, VTR_),
|
||||
FMT(L16_UNORM, R16_UNORM, RRR1, L, VT__),
|
||||
FMT(I16_UNORM, R16_UNORM, RRRR, L, VT__),
|
||||
FMT(L8_SNORM, R8_SNORM, RRR1, L, VT__),
|
||||
FMT(I8_SNORM, R8_SNORM, RRRR, L, VT__),
|
||||
FMT(L16_SNORM, R16_SNORM, RRR1, L, VT__),
|
||||
FMT(I16_SNORM, R16_SNORM, RRRR, L, VT__),
|
||||
FMT(L16_FLOAT, R16F, RRR1, L, VTR_),
|
||||
FMT(I16_FLOAT, RG16F, RRRR, L, VTR_),
|
||||
FMT(L8_SRGB, R8_UNORM, RRR1, S, VTR_),
|
||||
FMT(R8_SRGB, R8_UNORM, R001, S, VTR_),
|
||||
FMT(R8G8_SRGB, RG8_UNORM, RG01, S, VTR_),
|
||||
FMT(R8G8B8_SRGB, RGB8_UNORM, RGB1, S, VTR_),
|
||||
FMT(B8G8R8_SRGB, RGB8_UNORM, BGR1, S, VTR_),
|
||||
FMT(R8G8B8A8_SRGB, RGBA8_UNORM, RGBA, S, VTR_),
|
||||
FMT(A8B8G8R8_SRGB, RGBA8_UNORM, ABGR, S, VTR_),
|
||||
FMT(X8B8G8R8_SRGB, RGBA8_UNORM, ABG1, S, VTR_),
|
||||
FMT(B8G8R8A8_SRGB, RGBA8_UNORM, BGRA, S, VTR_),
|
||||
FMT(B8G8R8X8_SRGB, RGBA8_UNORM, BGR1, S, VTR_),
|
||||
FMT(A8R8G8B8_SRGB, RGBA8_UNORM, GBAR, S, VTR_),
|
||||
FMT(X8R8G8B8_SRGB, RGBA8_UNORM, GBA1, S, VTR_),
|
||||
FMT(R8_SINT, R8I, R001, L, VTR_),
|
||||
FMT(R16_SINT, R16I, R001, L, VTR_),
|
||||
FMT(R32_SINT, R32I, R001, L, VTR_),
|
||||
FMT(R16_FLOAT, R16F, R001, L, VTR_),
|
||||
FMT(R8G8_SINT, RG8I, RG01, L, VTR_),
|
||||
FMT(R16G16_SINT, RG16I, RG01, L, VTR_),
|
||||
FMT(R32G32_SINT, RG32I, RG01, L, VTR_),
|
||||
FMT(R16G16_FLOAT, RG16F, RG01, L, VTR_),
|
||||
FMT(R8G8B8_SINT, RGB8I, RGB1, L, VTR_),
|
||||
FMT(R16G16B16_SINT, RGB16I, RGB1, L, VTR_),
|
||||
FMT(R32G32B32_SINT, RGB32I, RGB1, L, VTR_),
|
||||
FMT(R16G16B16_FLOAT, RGB16F, RGB1, L, VTR_),
|
||||
FMT(R8G8B8A8_SINT, RGBA8I, RGBA, L, VTR_),
|
||||
FMT(R16G16B16A16_SINT, RGBA16I, RGBA, L, VTR_),
|
||||
FMT(R32G32B32A32_SINT, RGBA32I, RGBA, L, VTR_),
|
||||
FMT(R16G16B16A16_FLOAT, RGBA16F, RGBA, L, VTR_),
|
||||
FMT(R16G16B16X16_UNORM, RGBA16_UNORM, RGB1, L, VTR_),
|
||||
FMT(R16G16B16X16_SNORM, RGBA16_SNORM, RGB1, L, VT__),
|
||||
FMT(R16G16B16X16_FLOAT, RGBA16F, RGB1, L, VTR_),
|
||||
FMT(R16G16B16X16_UINT, RGBA16UI, RGB1, L, VTR_),
|
||||
FMT(R16G16B16X16_SINT, RGBA16I, RGB1, L, VTR_),
|
||||
FMT(R32G32B32X32_FLOAT, RGBA32F, RGB1, L, VTR_),
|
||||
FMT(R32G32B32X32_UINT, RGBA32UI, RGB1, L, VTR_),
|
||||
FMT(R32G32B32X32_SINT, RGBA32I, RGB1, L, VTR_),
|
||||
|
||||
const struct panfrost_format panfrost_pipe_format_v7[PIPE_FORMAT_COUNT] = {
|
||||
PAN_V7(NONE, CONSTANT, 0000, L, VTR_),
|
||||
PAN_V7(ETC1_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_RGB8, ETC2_RGB8, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_SRGB8, ETC2_RGB8, RGB1, S, _T__),
|
||||
PAN_V7(ETC2_R11_UNORM, ETC2_R11_UNORM, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_RGBA8, ETC2_RGBA8, RGBA, L, _T__),
|
||||
PAN_V7(ETC2_SRGBA8, ETC2_RGBA8, RGBA, S, _T__),
|
||||
PAN_V7(ETC2_RG11_UNORM, ETC2_RG11_UNORM, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_R11_SNORM, ETC2_R11_SNORM, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_RG11_SNORM, ETC2_RG11_SNORM, RGB1, L, _T__),
|
||||
PAN_V7(ETC2_RGB8A1, ETC2_RGB8A1, RGBA, L, _T__),
|
||||
PAN_V7(ETC2_SRGB8A1, ETC2_RGB8A1, RGBA, S, _T__),
|
||||
PAN_V7(DXT1_RGB, BC1_UNORM, RGB1, L, _T__),
|
||||
PAN_V7(DXT1_RGBA, BC1_UNORM, RGBA, L, _T__),
|
||||
PAN_V7(DXT1_SRGB, BC1_UNORM, RGB1, S, _T__),
|
||||
PAN_V7(DXT1_SRGBA, BC1_UNORM, RGBA, S, _T__),
|
||||
PAN_V7(DXT3_RGBA, BC2_UNORM, RGBA, L, _T__),
|
||||
PAN_V7(DXT3_SRGBA, BC2_UNORM, RGBA, S, _T__),
|
||||
PAN_V7(DXT5_RGBA, BC3_UNORM, RGBA, L, _T__),
|
||||
PAN_V7(DXT5_SRGBA, BC3_UNORM, RGBA, S, _T__),
|
||||
PAN_V7(RGTC1_UNORM, BC4_UNORM, RGB1, L, _T__),
|
||||
PAN_V7(RGTC1_SNORM, BC4_SNORM, RGB1, L, _T__),
|
||||
PAN_V7(RGTC2_UNORM, BC5_UNORM, RGB1, L, _T__),
|
||||
PAN_V7(RGTC2_SNORM, BC5_SNORM, RGB1, L, _T__),
|
||||
PAN_V7(BPTC_RGB_FLOAT, BC6H_SF16, RGB1, L, _T__),
|
||||
PAN_V7(BPTC_RGB_UFLOAT, BC6H_UF16, RGB1, L, _T__),
|
||||
PAN_V7(BPTC_RGBA_UNORM, BC7_UNORM, RGBA, L, _T__),
|
||||
PAN_V7(BPTC_SRGBA, BC7_UNORM, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_4x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_5x4, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_5x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_6x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_6x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_8x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_8x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_8x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_10x5, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_10x6, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_10x8, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_10x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_12x10, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_12x12, ASTC_2D_HDR, RGBA, L, _T__),
|
||||
PAN_V7(ASTC_4x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_5x4_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_5x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_6x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_6x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_8x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_8x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_8x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_10x5_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_10x6_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_10x8_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_10x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_12x10_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(ASTC_12x12_SRGB, ASTC_2D_LDR, RGBA, S, _T__),
|
||||
PAN_V7(R5G6B5_UNORM, RGB565, RGB1, L, VTR_),
|
||||
PAN_V7(B5G6R5_UNORM, RGB565, BGR1, L, VTR_),
|
||||
PAN_V7(R5G5B5X1_UNORM, RGB5_A1_UNORM, RGB1, L, VT__),
|
||||
PAN_V7(B5G5R5X1_UNORM, RGB5_A1_UNORM, BGR1, L, VT__),
|
||||
PAN_V7(R5G5B5A1_UNORM, RGB5_A1_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(B5G5R5A1_UNORM, RGB5_A1_UNORM, BGRA, L, VTR_),
|
||||
PAN_V7(R10G10B10X2_UNORM, RGB10_A2_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(B10G10R10X2_UNORM, RGB10_A2_UNORM, BGR1, L, VTR_),
|
||||
PAN_V7(R10G10B10A2_UNORM, RGB10_A2_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(B10G10R10A2_UNORM, RGB10_A2_UNORM, BGRA, L, VTR_),
|
||||
PAN_V7(R10G10B10X2_SNORM, RGB10_A2_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R10G10B10A2_SNORM, RGB10_A2_SNORM, RGBA, L, VT__),
|
||||
PAN_V7(B10G10R10A2_SNORM, RGB10_A2_SNORM, BGRA, L, VT__),
|
||||
PAN_V7(R10G10B10A2_UINT, RGB10_A2UI, RGBA, L, VTR_),
|
||||
PAN_V7(B10G10R10A2_UINT, RGB10_A2UI, BGRA, L, VTR_),
|
||||
PAN_V7(R10G10B10A2_USCALED, RGB10_A2UI, RGBA, L, VTR_),
|
||||
PAN_V7(B10G10R10A2_USCALED, RGB10_A2UI, BGRA, L, VTR_),
|
||||
PAN_V7(R10G10B10A2_SINT, RGB10_A2I, RGBA, L, VTR_),
|
||||
PAN_V7(B10G10R10A2_SINT, RGB10_A2I, BGRA, L, VTR_),
|
||||
PAN_V7(R10G10B10A2_SSCALED, RGB10_A2I, RGBA, L, VTR_),
|
||||
PAN_V7(B10G10R10A2_SSCALED, RGB10_A2I, BGRA, L, VTR_),
|
||||
PAN_V7(R8_SSCALED, R8I, RGB1, L, V___),
|
||||
PAN_V7(R8G8_SSCALED, RG8I, RGB1, L, V___),
|
||||
PAN_V7(R8G8B8_SSCALED, RGB8I, RGB1, L, V___),
|
||||
PAN_V7(B8G8R8_SSCALED, RGB8I, BGR1, L, V___),
|
||||
PAN_V7(R8G8B8A8_SSCALED, RGBA8I, RGBA, L, V___),
|
||||
PAN_V7(B8G8R8A8_SSCALED, RGBA8I, BGRA, L, V___),
|
||||
PAN_V7(A8B8G8R8_SSCALED, RGBA8I, ABGR, L, V___),
|
||||
PAN_V7(R8_USCALED, R8UI, RGB1, L, V___),
|
||||
PAN_V7(R8G8_USCALED, RG8UI, RGB1, L, V___),
|
||||
PAN_V7(R8G8B8_USCALED, RGB8UI, RGB1, L, V___),
|
||||
PAN_V7(B8G8R8_USCALED, RGB8UI, BGR1, L, V___),
|
||||
PAN_V7(R8G8B8A8_USCALED, RGBA8UI, RGBA, L, V___),
|
||||
PAN_V7(B8G8R8A8_USCALED, RGBA8UI, BGRA, L, V___),
|
||||
PAN_V7(A8B8G8R8_USCALED, RGBA8UI, ABGR, L, V___),
|
||||
PAN_V7(R16_USCALED, R16UI, RGB1, L, V___),
|
||||
PAN_V7(R16G16_USCALED, RG16UI, RGB1, L, V___),
|
||||
PAN_V7(R16G16B16_USCALED, RGB16UI, RGB1, L, V___),
|
||||
PAN_V7(R16G16B16A16_USCALED, RGBA16UI, RGBA, L, V___),
|
||||
PAN_V7(R16_SSCALED, R16I, RGB1, L, V___),
|
||||
PAN_V7(R16G16_SSCALED, RG16I, RGB1, L, V___),
|
||||
PAN_V7(R16G16B16_SSCALED, RGB16I, RGB1, L, V___),
|
||||
PAN_V7(R16G16B16A16_SSCALED, RGBA16I, RGBA, L, V___),
|
||||
PAN_V7(R32_USCALED, R32UI, RGB1, L, V___),
|
||||
PAN_V7(R32G32_USCALED, RG32UI, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32_USCALED, RGB32UI, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32A32_USCALED, RGBA32UI, RGBA, L, V___),
|
||||
PAN_V7(R32_SSCALED, R32I, RGB1, L, V___),
|
||||
PAN_V7(R32G32_SSCALED, RG32I, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32_SSCALED, RGB32I, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32A32_SSCALED, RGBA32I, RGBA, L, V___),
|
||||
PAN_V7(R3G3B2_UNORM, RGB332_UNORM, RGB1, L, VT__),
|
||||
PAN_V7(Z16_UNORM, RGB332_UNORM /* XXX: Deduplicate enum */, RGBA, L, _T_Z),
|
||||
PAN_V7(Z24_UNORM_S8_UINT, Z24X8_UNORM, RGBA, L, _T_Z),
|
||||
PAN_V7(Z24X8_UNORM, Z24X8_UNORM, RGBA, L, _T_Z),
|
||||
PAN_V7(Z32_FLOAT, R32F, RGBA, L, _T_Z),
|
||||
PAN_V7(Z32_FLOAT_S8X24_UINT, R32F, RGBA, L, _T_Z),
|
||||
PAN_V7(X32_S8X24_UINT, S8X24, GRBA, L, _T__),
|
||||
PAN_V7(X24S8_UINT, TILEBUFFER_NATIVE /* XXX: Deduplicate enum */, GRBA, L, _T_Z),
|
||||
PAN_V7(S8_UINT, S8, GRBA, L, _T__),
|
||||
PAN_V7(R32_FIXED, R32_FIXED, RGB1, L, V___),
|
||||
PAN_V7(R32G32_FIXED, RG32_FIXED, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32_FIXED, RGB32_FIXED, RGB1, L, V___),
|
||||
PAN_V7(R32G32B32A32_FIXED, RGBA32_FIXED, RGBA, L, V___),
|
||||
PAN_V7(R11G11B10_FLOAT, R11F_G11F_B10F, RGB1, L, VTR_),
|
||||
PAN_V7(R9G9B9E5_FLOAT, R9F_G9F_B9F_E5F, RGB1, L, VT__),
|
||||
PAN_V7(R8_SNORM, R8_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R16_SNORM, R16_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R32_SNORM, R32_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R8G8_SNORM, RG8_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R16G16_SNORM, RG16_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R32G32_SNORM, RG32_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R8G8B8_SNORM, RGB8_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R16G16B16_SNORM, RGB16_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R32G32B32_SNORM, RGB32_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R8G8B8A8_SNORM, RGBA8_SNORM, RGBA, L, VT__),
|
||||
PAN_V7(R16G16B16A16_SNORM, RGBA16_SNORM, RGBA, L, VT__),
|
||||
PAN_V7(R32G32B32A32_SNORM, RGBA32_SNORM, RGBA, L, VT__),
|
||||
/* A8_SINT dropped on v7 */
|
||||
PAN_V7(I8_SINT, R8I, RRRR, L, VTR_),
|
||||
PAN_V7(L8_SINT, R8I, RRR1, L, VTR_),
|
||||
/* A8_UINT dropped on v7 */
|
||||
PAN_V7(I8_UINT, R8UI, RRRR, L, VTR_),
|
||||
PAN_V7(L8_UINT, R8UI, RRR1, L, VTR_),
|
||||
/* A16_SINT dropped on v7 */
|
||||
PAN_V7(I16_SINT, R16I, RRRR, L, VTR_),
|
||||
PAN_V7(L16_SINT, R16I, RRR1, L, VTR_),
|
||||
/* A16_UINT dropped on v7 */
|
||||
PAN_V7(I16_UINT, R16UI, RRRR, L, VTR_),
|
||||
PAN_V7(L16_UINT, R16UI, RRR1, L, VTR_),
|
||||
/* A32_SINT dropped on v7 */
|
||||
PAN_V7(I32_SINT, R32I, RRRR, L, VTR_),
|
||||
PAN_V7(L32_SINT, R32I, RRR1, L, VTR_),
|
||||
/* A32_UINT dropped on v7 */
|
||||
PAN_V7(I32_UINT, R32UI, RRRR, L, VTR_),
|
||||
PAN_V7(L32_UINT, R32UI, RRR1, L, VTR_),
|
||||
PAN_V7(B8G8R8_UINT, RGB8UI, BGR1, L, VTR_),
|
||||
PAN_V7(B8G8R8A8_UINT, RGBA8UI, BGRA, L, VTR_),
|
||||
PAN_V7(B8G8R8_SINT, RGB8I, BGR1, L, VTR_),
|
||||
PAN_V7(B8G8R8A8_SINT, RGBA8I, BGRA, L, VTR_),
|
||||
PAN_V7(A8R8G8B8_UINT, RGBA8UI, ARGB, L, VTR_),
|
||||
PAN_V7(A8B8G8R8_UINT, RGBA8UI, ABGR, L, VTR_),
|
||||
PAN_V7(R8_UINT, R8UI, RGB1, L, VTR_),
|
||||
PAN_V7(R16_UINT, R16UI, RGB1, L, VTR_),
|
||||
PAN_V7(R32_UINT, R32UI, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8_UINT, RG8UI, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16_UINT, RG16UI, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32_UINT, RG32UI, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8_UINT, RGB8UI, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16_UINT, RGB16UI, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32_UINT, RGB32UI, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8A8_UINT, RGBA8UI, RGBA, L, VTR_),
|
||||
PAN_V7(R16G16B16A16_UINT, RGBA16UI, RGBA, L, VTR_),
|
||||
PAN_V7(R32G32B32A32_UINT, RGBA32UI, RGBA, L, VTR_),
|
||||
PAN_V7(R32_FLOAT, R32F, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32_FLOAT, RG32F, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32_FLOAT, RGB32F, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32A32_FLOAT, RGBA32F, RGBA, L, VTR_),
|
||||
PAN_V7(R8_UNORM, R8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R16_UNORM, R16_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R32_UNORM, R32_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8_UNORM, RG8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16_UNORM, RG16_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32_UNORM, RG32_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8_UNORM, RGB8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16_UNORM, RGB16_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32_UNORM, RGB32_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R4G4B4A4_UNORM, RGBA4_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(B4G4R4A4_UNORM, RGBA4_UNORM, BGRA, L, VTR_),
|
||||
PAN_V7(R16G16B16A16_UNORM, RGBA16_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(R32G32B32A32_UNORM, RGBA32_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(B8G8R8A8_UNORM, RGBA8_UNORM, BGRA, L, VTR_),
|
||||
PAN_V7(B8G8R8X8_UNORM, RGBA8_UNORM, BGR1, L, VTR_),
|
||||
PAN_V7(A8R8G8B8_UNORM, RGBA8_UNORM, ARGB, L, VTR_),
|
||||
PAN_V7(X8R8G8B8_UNORM, RGBA8_UNORM, 1RGB, L, VTR_),
|
||||
PAN_V7(A8B8G8R8_UNORM, RGBA8_UNORM, ABGR, L, VTR_),
|
||||
PAN_V7(X8B8G8R8_UNORM, RGBA8_UNORM, 1BGR, L, VTR_),
|
||||
PAN_V7(R8G8B8X8_UNORM, RGBA8_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8A8_UNORM, RGBA8_UNORM, RGBA, L, VTR_),
|
||||
PAN_V7(R8G8B8X8_SNORM, RGBA8_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R8G8B8X8_SRGB, RGBA8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V7(R8G8B8X8_UINT, RGBA8UI, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8X8_SINT, RGBA8I, RGB1, L, VTR_),
|
||||
PAN_V7(L8_UNORM, R8_UNORM, RRR1, L, VTR_),
|
||||
PAN_V7(A8_UNORM, A8_UNORM, 000A, L, VTR_),
|
||||
PAN_V7(I8_UNORM, R8_UNORM, RRRR, L, VTR_),
|
||||
PAN_V7(L8A8_UNORM, R8A8_UNORM, RRRA, L, VTR_),
|
||||
PAN_V7(L16_UNORM, R16_UNORM, RRR1, L, VTR_),
|
||||
/* A16_UNORM dropped on v7 */
|
||||
PAN_V7(I16_UNORM, R16_UNORM, RRRR, L, VTR_),
|
||||
PAN_V7(L8_SNORM, R8_SNORM, RRR1, L, VT__),
|
||||
/* A8_SNORM dropped on v7 */
|
||||
PAN_V7(I8_SNORM, R8_SNORM, RRRR, L, VT__),
|
||||
PAN_V7(L16_SNORM, R16_SNORM, RRR1, L, VT__),
|
||||
/* A16_SNORM dropped on v7 */
|
||||
PAN_V7(I16_SNORM, R16_SNORM, RRRR, L, VT__),
|
||||
PAN_V7(L16_FLOAT, R16F, RRR1, L, VTR_),
|
||||
/* A16_FLOAT dropped on v7 */
|
||||
PAN_V7(I16_FLOAT, RG16F, RRRR, L, VTR_),
|
||||
PAN_V7(L8_SRGB, R8_UNORM, RRR1, S, VTR_),
|
||||
PAN_V7(R8_SRGB, R8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V7(L8A8_SRGB, R8A8_UNORM, RRRA, S, VTR_),
|
||||
PAN_V7(R8G8_SRGB, RG8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V7(R8G8B8_SRGB, RGB8_UNORM, RGB1, S, VTR_),
|
||||
PAN_V7(B8G8R8_SRGB, RGB8_UNORM, BGR1, S, VTR_),
|
||||
PAN_V7(R8G8B8A8_SRGB, RGBA8_UNORM, RGBA, S, VTR_),
|
||||
PAN_V7(A8B8G8R8_SRGB, RGBA8_UNORM, ABGR, S, VTR_),
|
||||
PAN_V7(X8B8G8R8_SRGB, RGBA8_UNORM, 1BGR, S, VTR_),
|
||||
PAN_V7(B8G8R8A8_SRGB, RGBA8_UNORM, BGRA, S, VTR_),
|
||||
PAN_V7(B8G8R8X8_SRGB, RGBA8_UNORM, BGR1, S, VTR_),
|
||||
PAN_V7(A8R8G8B8_SRGB, RGBA8_UNORM, ARGB, S, VTR_),
|
||||
PAN_V7(X8R8G8B8_SRGB, RGBA8_UNORM, 1RGB, S, VTR_),
|
||||
PAN_V7(R8_SINT, R8I, RGB1, L, VTR_),
|
||||
PAN_V7(R16_SINT, R16I, RGB1, L, VTR_),
|
||||
PAN_V7(R32_SINT, R32I, RGB1, L, VTR_),
|
||||
PAN_V7(R16_FLOAT, R16F, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8_SINT, RG8I, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16_SINT, RG16I, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32_SINT, RG32I, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16_FLOAT, RG16F, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8_SINT, RGB8I, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16_SINT, RGB16I, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32_SINT, RGB32I, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16_FLOAT, RGB16F, RGB1, L, VTR_),
|
||||
PAN_V7(R8G8B8A8_SINT, RGBA8I, RGBA, L, VTR_),
|
||||
PAN_V7(R16G16B16A16_SINT, RGBA16I, RGBA, L, VTR_),
|
||||
PAN_V7(R32G32B32A32_SINT, RGBA32I, RGBA, L, VTR_),
|
||||
PAN_V7(R16G16B16A16_FLOAT, RGBA16F, RGBA, L, VTR_),
|
||||
PAN_V7(R16G16B16X16_UNORM, RGBA16_UNORM, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16X16_SNORM, RGBA16_SNORM, RGB1, L, VT__),
|
||||
PAN_V7(R16G16B16X16_FLOAT, RGBA16F, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16X16_UINT, RGBA16UI, RGB1, L, VTR_),
|
||||
PAN_V7(R16G16B16X16_SINT, RGBA16I, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32X32_FLOAT, RGBA32F, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32X32_UINT, RGBA32UI, RGB1, L, VTR_),
|
||||
PAN_V7(R32G32B32X32_SINT, RGBA32I, RGB1, L, VTR_),
|
||||
#if PAN_ARCH <= 6
|
||||
FMT(Z16_UNORM, R16_UNORM, RRRR, L, _T_Z),
|
||||
FMT(Z24_UNORM_S8_UINT, Z24X8_UNORM, RRRR, L, _T_Z),
|
||||
FMT(Z24X8_UNORM, Z24X8_UNORM, RRRR, L, _T_Z),
|
||||
FMT(Z32_FLOAT, R32F, RRRR, L, _T_Z),
|
||||
FMT(Z32_FLOAT_S8X24_UINT, R32F, RRRR, L, _T_Z),
|
||||
FMT(X32_S8X24_UINT, R32UI, RRRR, L, _T__),
|
||||
FMT(X24S8_UINT, RGBA8UI, AAAA, L, _T_Z),
|
||||
FMT(S8_UINT, R8UI, RRRR, L, _T__),
|
||||
|
||||
FMT(A8_UNORM, R8_UNORM, 000R, L, VTR_),
|
||||
FMT(L8A8_UNORM, RG8_UNORM, RRRG, L, VTR_),
|
||||
FMT(L8A8_SRGB, RG8_UNORM, RRRG, S, VTR_),
|
||||
|
||||
/* These formats were removed in v7 */
|
||||
FMT(A8_SNORM, R8_SNORM, 000R, L, VT__),
|
||||
FMT(A8_SINT, R8I, 000R, L, VTR_),
|
||||
FMT(A8_UINT, R8UI, 000R, L, VTR_),
|
||||
FMT(A16_SINT, R16I, 000R, L, VTR_),
|
||||
FMT(A16_UINT, R16UI, 000R, L, VTR_),
|
||||
FMT(A32_SINT, R32I, 000R, L, VTR_),
|
||||
FMT(A32_UINT, R32UI, 000R, L, VTR_),
|
||||
FMT(A16_UNORM, R16_UNORM, 000R, L, VT__),
|
||||
FMT(A16_SNORM, R16_SNORM, 000R, L, VT__),
|
||||
FMT(A16_FLOAT, R16F, 000R, L, VTR_),
|
||||
|
||||
#else
|
||||
FMT(Z16_UNORM, RGB332_UNORM /* XXX: Deduplicate enum */, RGBA, L, _T_Z),
|
||||
FMT(Z24_UNORM_S8_UINT, Z24X8_UNORM, RGBA, L, _T_Z),
|
||||
FMT(Z24X8_UNORM, Z24X8_UNORM, RGBA, L, _T_Z),
|
||||
FMT(Z32_FLOAT, R32F, RGBA, L, _T_Z),
|
||||
FMT(Z32_FLOAT_S8X24_UINT, R32F, RGBA, L, _T_Z),
|
||||
FMT(X32_S8X24_UINT, S8X24, GRBA, L, _T__),
|
||||
FMT(X24S8_UINT, TILEBUFFER_NATIVE /* XXX: Deduplicate enum */, GRBA, L, _T_Z),
|
||||
FMT(S8_UINT, S8, GRBA, L, _T__),
|
||||
|
||||
FMT(A8_UNORM, A8_UNORM, 000A, L, VTR_),
|
||||
FMT(L8A8_UNORM, R8A8_UNORM, RRRA, L, VTR_),
|
||||
FMT(L8A8_SRGB, R8A8_UNORM, RRRA, S, VTR_),
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
79
src/panfrost/lib/pan_format.h
Normal file
79
src/panfrost/lib/pan_format.h
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/*
|
||||
* Copyright (C) 2008 VMware, Inc.
|
||||
* Copyright (C) 2014 Broadcom
|
||||
* Copyright (C) 2018-2019 Alyssa Rosenzweig
|
||||
* Copyright (C) 2019-2020 Collabora, Ltd.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __PAN_FORMAT_H
|
||||
#define __PAN_FORMAT_H
|
||||
|
||||
#include "util/format/u_format.h"
|
||||
#include "midgard_pack.h"
|
||||
|
||||
/* Formats */
|
||||
|
||||
typedef uint32_t mali_pixel_format;
|
||||
|
||||
struct panfrost_format {
|
||||
mali_pixel_format hw;
|
||||
unsigned bind;
|
||||
};
|
||||
|
||||
struct pan_blendable_format {
|
||||
enum mali_color_buffer_internal_format internal;
|
||||
enum mali_mfbd_color_format writeback;
|
||||
mali_pixel_format bifrost;
|
||||
};
|
||||
|
||||
extern const struct pan_blendable_format panfrost_blendable_formats_v6[PIPE_FORMAT_COUNT];
|
||||
extern const struct pan_blendable_format panfrost_blendable_formats_v7[PIPE_FORMAT_COUNT];
|
||||
extern const struct panfrost_format panfrost_pipe_format_v6[PIPE_FORMAT_COUNT];
|
||||
extern const struct panfrost_format panfrost_pipe_format_v7[PIPE_FORMAT_COUNT];
|
||||
|
||||
/* Helpers to construct swizzles */
|
||||
|
||||
#define PAN_V6_SWIZZLE(R, G, B, A) ( \
|
||||
((MALI_CHANNEL_ ## R) << 0) | \
|
||||
((MALI_CHANNEL_ ## G) << 3) | \
|
||||
((MALI_CHANNEL_ ## B) << 6) | \
|
||||
((MALI_CHANNEL_ ## A) << 9))
|
||||
|
||||
static inline unsigned
|
||||
panfrost_get_default_swizzle(unsigned components)
|
||||
{
|
||||
switch (components) {
|
||||
case 1:
|
||||
return PAN_V6_SWIZZLE(R, 0, 0, 1);
|
||||
case 2:
|
||||
return PAN_V6_SWIZZLE(R, G, 0, 1);
|
||||
case 3:
|
||||
return PAN_V6_SWIZZLE(R, G, B, 1);
|
||||
case 4:
|
||||
return PAN_V6_SWIZZLE(R, G, B, A);
|
||||
default:
|
||||
unreachable("Invalid number of components");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -36,6 +36,7 @@
|
|||
#include "pan_bo.h"
|
||||
#include "pan_device.h"
|
||||
#include "pan_util.h"
|
||||
#include "pan_format.h"
|
||||
|
||||
#define PAN_MODIFIER_COUNT 4
|
||||
extern uint64_t pan_best_modifiers[PAN_MODIFIER_COUNT];
|
||||
|
|
@ -175,43 +176,6 @@ panfrost_texture_offset(const struct pan_image_layout *layout,
|
|||
unsigned level, unsigned array_idx,
|
||||
unsigned surface_idx);
|
||||
|
||||
/* Formats */
|
||||
|
||||
struct pan_blendable_format {
|
||||
enum mali_color_buffer_internal_format internal;
|
||||
enum mali_mfbd_color_format writeback;
|
||||
mali_pixel_format bifrost;
|
||||
};
|
||||
|
||||
extern const struct pan_blendable_format panfrost_blendable_formats[PIPE_FORMAT_COUNT];
|
||||
extern const struct panfrost_format panfrost_pipe_format_v6[PIPE_FORMAT_COUNT];
|
||||
extern const struct panfrost_format panfrost_pipe_format_v7[PIPE_FORMAT_COUNT];
|
||||
|
||||
/* Helpers to construct swizzles */
|
||||
|
||||
#define PAN_V6_SWIZZLE(R, G, B, A) ( \
|
||||
((MALI_CHANNEL_ ## R) << 0) | \
|
||||
((MALI_CHANNEL_ ## G) << 3) | \
|
||||
((MALI_CHANNEL_ ## B) << 6) | \
|
||||
((MALI_CHANNEL_ ## A) << 9))
|
||||
|
||||
static inline unsigned
|
||||
panfrost_get_default_swizzle(unsigned components)
|
||||
{
|
||||
switch (components) {
|
||||
case 1:
|
||||
return PAN_V6_SWIZZLE(R, 0, 0, 1);
|
||||
case 2:
|
||||
return PAN_V6_SWIZZLE(R, G, 0, 1);
|
||||
case 3:
|
||||
return PAN_V6_SWIZZLE(R, G, B, 1);
|
||||
case 4:
|
||||
return PAN_V6_SWIZZLE(R, G, B, A);
|
||||
default:
|
||||
unreachable("Invalid number of components");
|
||||
}
|
||||
}
|
||||
|
||||
struct pan_pool;
|
||||
struct pan_scoreboard;
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ unsigned
|
|||
panfrost_format_to_bifrost_blend(const struct panfrost_device *dev,
|
||||
enum pipe_format format)
|
||||
{
|
||||
mali_pixel_format pixfmt = panfrost_blendable_formats[format].bifrost;
|
||||
mali_pixel_format pixfmt = panfrost_blendable_formats_v7[format].bifrost;
|
||||
|
||||
if (pixfmt) {
|
||||
return pixfmt | ((dev->quirks & HAS_SWIZZLES) ?
|
||||
|
|
|
|||
|
|
@ -550,7 +550,7 @@ panvk_blend_needs_lowering(const struct panfrost_device *dev,
|
|||
return true;
|
||||
|
||||
/* Not all formats can be blended by fixed-function hardware */
|
||||
if (!panfrost_blendable_formats[state->rts[rt].format].internal)
|
||||
if (!panfrost_blendable_formats_v7[state->rts[rt].format].internal)
|
||||
return true;
|
||||
|
||||
unsigned constant_mask = pan_blend_constant_mask(state->rts[rt].equation);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue