mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
v3d: Dump fields in CLIF output in increasing offset order.
Previously, we emitted in XML order, which I happen to type in the decreasing offset order of the specifications. However, the CLIF parser wants increasing offsets.
This commit is contained in:
parent
95bafeeabf
commit
a57770aa37
1 changed files with 14 additions and 0 deletions
|
|
@ -511,6 +511,13 @@ skip:
|
|||
ctx->parse_depth++;
|
||||
}
|
||||
|
||||
static int
|
||||
field_offset_compare(const void *a, const void *b)
|
||||
{
|
||||
return ((*(const struct v3d_field **)a)->start -
|
||||
(*(const struct v3d_field **)b)->start);
|
||||
}
|
||||
|
||||
static void
|
||||
end_element(void *data, const char *name)
|
||||
{
|
||||
|
|
@ -549,6 +556,13 @@ end_element(void *data, const char *name)
|
|||
else if (strcmp(name, "register") == 0)
|
||||
spec->registers[spec->nregisters++] = group;
|
||||
|
||||
/* Sort the fields in increasing offset order. The XML might
|
||||
* be specified in any order, but we'll want to iterate from
|
||||
* the bottom.
|
||||
*/
|
||||
qsort(group->fields, group->nfields, sizeof(*group->fields),
|
||||
field_offset_compare);
|
||||
|
||||
assert(spec->ncommands < ARRAY_SIZE(spec->commands));
|
||||
assert(spec->nstructs < ARRAY_SIZE(spec->structs));
|
||||
assert(spec->nregisters < ARRAY_SIZE(spec->registers));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue