panfrost: XMLify mali_channel
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6326>
This commit is contained in:

committed by
Marge Bot

parent
668ec24bfd
commit
cdc3276317
@@ -147,18 +147,6 @@ struct mali_blend_equation {
|
|||||||
unsigned color_mask : 4;
|
unsigned color_mask : 4;
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
/* Used with channel swizzling */
|
|
||||||
enum mali_channel {
|
|
||||||
MALI_CHANNEL_RED = 0,
|
|
||||||
MALI_CHANNEL_GREEN = 1,
|
|
||||||
MALI_CHANNEL_BLUE = 2,
|
|
||||||
MALI_CHANNEL_ALPHA = 3,
|
|
||||||
MALI_CHANNEL_ZERO = 4,
|
|
||||||
MALI_CHANNEL_ONE = 5,
|
|
||||||
MALI_CHANNEL_RESERVED_0 = 6,
|
|
||||||
MALI_CHANNEL_RESERVED_1 = 7,
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Compressed per-pixel formats. Each of these formats expands to one to four
|
/* Compressed per-pixel formats. Each of these formats expands to one to four
|
||||||
* floating-point or integer numbers, as defined by the OpenGL specification.
|
* floating-point or integer numbers, as defined by the OpenGL specification.
|
||||||
* There are various places in OpenGL where the user can specify a compressed
|
* There are various places in OpenGL where the user can specify a compressed
|
||||||
|
@@ -756,12 +756,12 @@ static unsigned
|
|||||||
pandecode_access_mask_from_channel_swizzle(unsigned swizzle)
|
pandecode_access_mask_from_channel_swizzle(unsigned swizzle)
|
||||||
{
|
{
|
||||||
unsigned mask = 0;
|
unsigned mask = 0;
|
||||||
assert(MALI_CHANNEL_RED == 0);
|
assert(MALI_CHANNEL_R == 0);
|
||||||
|
|
||||||
for (unsigned c = 0; c < 4; ++c) {
|
for (unsigned c = 0; c < 4; ++c) {
|
||||||
enum mali_channel chan = (swizzle >> (3*c)) & 0x7;
|
enum mali_channel chan = (swizzle >> (3*c)) & 0x7;
|
||||||
|
|
||||||
if (chan <= MALI_CHANNEL_ALPHA)
|
if (chan <= MALI_CHANNEL_A)
|
||||||
mask |= (1 << chan);
|
mask |= (1 << chan);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -790,10 +790,10 @@ pandecode_validate_format_swizzle(enum mali_format fmt, unsigned swizzle)
|
|||||||
* useless printing for the defaults */
|
* useless printing for the defaults */
|
||||||
|
|
||||||
unsigned default_swizzles[4] = {
|
unsigned default_swizzles[4] = {
|
||||||
MALI_CHANNEL_RED | (MALI_CHANNEL_ZERO << 3) | (MALI_CHANNEL_ZERO << 6) | (MALI_CHANNEL_ONE << 9),
|
MALI_CHANNEL_R | (MALI_CHANNEL_0 << 3) | (MALI_CHANNEL_0 << 6) | (MALI_CHANNEL_1 << 9),
|
||||||
MALI_CHANNEL_RED | (MALI_CHANNEL_GREEN << 3) | (MALI_CHANNEL_ZERO << 6) | (MALI_CHANNEL_ONE << 9),
|
MALI_CHANNEL_R | (MALI_CHANNEL_G << 3) | (MALI_CHANNEL_0 << 6) | (MALI_CHANNEL_1 << 9),
|
||||||
MALI_CHANNEL_RED | (MALI_CHANNEL_GREEN << 3) | (MALI_CHANNEL_BLUE << 6) | (MALI_CHANNEL_ONE << 9),
|
MALI_CHANNEL_R | (MALI_CHANNEL_G << 3) | (MALI_CHANNEL_B << 6) | (MALI_CHANNEL_1 << 9),
|
||||||
MALI_CHANNEL_RED | (MALI_CHANNEL_GREEN << 3) | (MALI_CHANNEL_BLUE << 6) | (MALI_CHANNEL_ALPHA << 9)
|
MALI_CHANNEL_R | (MALI_CHANNEL_G << 3) | (MALI_CHANNEL_B << 6) | (MALI_CHANNEL_A << 9)
|
||||||
};
|
};
|
||||||
|
|
||||||
return (swizzle == default_swizzles[nr_comp - 1]);
|
return (swizzle == default_swizzles[nr_comp - 1]);
|
||||||
@@ -817,7 +817,7 @@ pandecode_swizzle(unsigned swizzle, enum mali_format format)
|
|||||||
for (unsigned c = 0; c < 4; ++c) {
|
for (unsigned c = 0; c < 4; ++c) {
|
||||||
enum mali_channel chan = (swizzle >> (3 * c)) & 0x7;
|
enum mali_channel chan = (swizzle >> (3 * c)) & 0x7;
|
||||||
|
|
||||||
if (chan >= MALI_CHANNEL_RESERVED_0) {
|
if (chan > MALI_CHANNEL_1) {
|
||||||
pandecode_log("XXX: invalid swizzle channel %d\n", chan);
|
pandecode_log("XXX: invalid swizzle channel %d\n", chan);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,14 @@
|
|||||||
<panxml>
|
<panxml>
|
||||||
|
|
||||||
|
<enum name="Channel">
|
||||||
|
<value name="R" value="0"/>
|
||||||
|
<value name="G" value="1"/>
|
||||||
|
<value name="B" value="2"/>
|
||||||
|
<value name="A" value="3"/>
|
||||||
|
<value name="0" value="4"/>
|
||||||
|
<value name="1" value="5"/>
|
||||||
|
</enum>
|
||||||
|
|
||||||
<enum name="Job Type">
|
<enum name="Job Type">
|
||||||
<value name="Not started" value="0"/>
|
<value name="Not started" value="0"/>
|
||||||
<value name="Null" value="1"/>
|
<value name="Null" value="1"/>
|
||||||
|
@@ -203,7 +203,7 @@ panfrost_load_midg(
|
|||||||
struct mali_attr_meta varying_meta = {
|
struct mali_attr_meta varying_meta = {
|
||||||
.index = 0,
|
.index = 0,
|
||||||
.unknown1 = 2,
|
.unknown1 = 2,
|
||||||
.format = (MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_GREEN << 3) | (MALI_RGBA32F << 12)
|
.format = (MALI_CHANNEL_R << 0) | (MALI_CHANNEL_G << 3) | (MALI_RGBA32F << 12)
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mali_stencil_packed stencil;
|
struct mali_stencil_packed stencil;
|
||||||
@@ -299,7 +299,7 @@ panfrost_load_midg(
|
|||||||
0, 0,
|
0, 0,
|
||||||
image->nr_samples,
|
image->nr_samples,
|
||||||
0,
|
0,
|
||||||
(MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_GREEN << 3) | (MALI_CHANNEL_BLUE << 6) | (MALI_CHANNEL_ALPHA << 9),
|
(MALI_CHANNEL_R << 0) | (MALI_CHANNEL_G << 3) | (MALI_CHANNEL_B << 6) | (MALI_CHANNEL_A << 9),
|
||||||
image->bo->gpu + image->first_layer *
|
image->bo->gpu + image->first_layer *
|
||||||
panfrost_get_layer_stride(image->slices,
|
panfrost_get_layer_stride(image->slices,
|
||||||
image->dim == MALI_TEXTURE_DIMENSION_3D,
|
image->dim == MALI_TEXTURE_DIMENSION_3D,
|
||||||
|
@@ -273,16 +273,16 @@ panfrost_emit_texture_payload(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define MALI_SWIZZLE_R001 \
|
#define MALI_SWIZZLE_R001 \
|
||||||
(MALI_CHANNEL_RED << 0) | \
|
(MALI_CHANNEL_R << 0) | \
|
||||||
(MALI_CHANNEL_ZERO << 3) | \
|
(MALI_CHANNEL_0 << 3) | \
|
||||||
(MALI_CHANNEL_ZERO << 6) | \
|
(MALI_CHANNEL_0 << 6) | \
|
||||||
(MALI_CHANNEL_ONE << 9)
|
(MALI_CHANNEL_1 << 9)
|
||||||
|
|
||||||
#define MALI_SWIZZLE_A001 \
|
#define MALI_SWIZZLE_A001 \
|
||||||
(MALI_CHANNEL_ALPHA << 0) | \
|
(MALI_CHANNEL_A << 0) | \
|
||||||
(MALI_CHANNEL_ZERO << 3) | \
|
(MALI_CHANNEL_0 << 3) | \
|
||||||
(MALI_CHANNEL_ZERO << 6) | \
|
(MALI_CHANNEL_0 << 6) | \
|
||||||
(MALI_CHANNEL_ONE << 9)
|
(MALI_CHANNEL_1 << 9)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@@ -158,17 +158,17 @@ panfrost_get_default_swizzle(unsigned components)
|
|||||||
{
|
{
|
||||||
switch (components) {
|
switch (components) {
|
||||||
case 1:
|
case 1:
|
||||||
return (MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_ZERO << 3) |
|
return (MALI_CHANNEL_R << 0) | (MALI_CHANNEL_0 << 3) |
|
||||||
(MALI_CHANNEL_ZERO << 6) | (MALI_CHANNEL_ONE << 9);
|
(MALI_CHANNEL_0 << 6) | (MALI_CHANNEL_1 << 9);
|
||||||
case 2:
|
case 2:
|
||||||
return (MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_GREEN << 3) |
|
return (MALI_CHANNEL_R << 0) | (MALI_CHANNEL_G << 3) |
|
||||||
(MALI_CHANNEL_ZERO << 6) | (MALI_CHANNEL_ONE << 9);
|
(MALI_CHANNEL_0 << 6) | (MALI_CHANNEL_1 << 9);
|
||||||
case 3:
|
case 3:
|
||||||
return (MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_GREEN << 3) |
|
return (MALI_CHANNEL_R << 0) | (MALI_CHANNEL_G << 3) |
|
||||||
(MALI_CHANNEL_BLUE << 6) | (MALI_CHANNEL_ONE << 9);
|
(MALI_CHANNEL_B << 6) | (MALI_CHANNEL_1 << 9);
|
||||||
case 4:
|
case 4:
|
||||||
return (MALI_CHANNEL_RED << 0) | (MALI_CHANNEL_GREEN << 3) |
|
return (MALI_CHANNEL_R << 0) | (MALI_CHANNEL_G << 3) |
|
||||||
(MALI_CHANNEL_BLUE << 6) | (MALI_CHANNEL_ALPHA << 9);
|
(MALI_CHANNEL_B << 6) | (MALI_CHANNEL_A << 9);
|
||||||
default:
|
default:
|
||||||
unreachable("Invalid number of components");
|
unreachable("Invalid number of components");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user