mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 15:10:10 +01:00
r300: increase maximum number of writemask combinations
We can have up to 6 in vertex shaders. Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com> Reviewed-by: Filip Gawin <filip@gawin.net> Tested-by: Filip Gawin <filip@gawin.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19618>
This commit is contained in:
parent
240365a293
commit
024a8d8bda
2 changed files with 88 additions and 31 deletions
|
|
@ -37,79 +37,136 @@ const struct rc_class rc_class_list [] = {
|
|||
{RC_REG_CLASS_SINGLE, 3,
|
||||
{RC_MASK_X,
|
||||
RC_MASK_Y,
|
||||
RC_MASK_Z}},
|
||||
RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_DOUBLE, 3,
|
||||
{RC_MASK_X | RC_MASK_Y,
|
||||
RC_MASK_X | RC_MASK_Z,
|
||||
RC_MASK_Y | RC_MASK_Z}},
|
||||
RC_MASK_Y | RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_TRIPLE, 1,
|
||||
{RC_MASK_X | RC_MASK_Y | RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_ALPHA, 1,
|
||||
{RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_SINGLE_PLUS_ALPHA, 3,
|
||||
{RC_MASK_X | RC_MASK_W,
|
||||
RC_MASK_Y | RC_MASK_W,
|
||||
RC_MASK_Z | RC_MASK_W}},
|
||||
RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_DOUBLE_PLUS_ALPHA, 3,
|
||||
{RC_MASK_X | RC_MASK_Y | RC_MASK_W,
|
||||
RC_MASK_X | RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_Y | RC_MASK_Z | RC_MASK_W}},
|
||||
RC_MASK_Y | RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_TRIPLE_PLUS_ALPHA, 1,
|
||||
{RC_MASK_X | RC_MASK_Y | RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_X, 1,
|
||||
{RC_MASK_X,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_Y, 1,
|
||||
{RC_MASK_Y,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_Z, 1,
|
||||
{RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_XY, 1,
|
||||
{RC_MASK_X | RC_MASK_Y,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_YZ, 1,
|
||||
{RC_MASK_Y | RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_XZ, 1,
|
||||
{RC_MASK_X | RC_MASK_Z,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_XW, 1,
|
||||
{RC_MASK_X | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_YW, 1,
|
||||
{RC_MASK_Y | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_ZW, 1,
|
||||
{RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_XYW, 1,
|
||||
{RC_MASK_X | RC_MASK_Y | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_YZW, 1,
|
||||
{RC_MASK_Y | RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}},
|
||||
{RC_REG_CLASS_XZW, 1,
|
||||
{RC_MASK_X | RC_MASK_Z | RC_MASK_W,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}}
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE,
|
||||
RC_MASK_NONE}}
|
||||
};
|
||||
|
||||
static void print_live_intervals(struct live_intervals * src)
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ struct rc_class {
|
|||
unsigned int WritemaskCount;
|
||||
|
||||
/** List of writemasks that belong to this class */
|
||||
unsigned int Writemasks[3];
|
||||
unsigned int Writemasks[6];
|
||||
};
|
||||
|
||||
int rc_find_class(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue