freedreno/decode: Add missing varset check

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13688
Signed-off-by: Rob Clark <rob.clark@oss.qualcomm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36818>
This commit is contained in:
Rob Clark
2025-08-18 08:23:10 -07:00
committed by Marge Bot
parent baaf5d643a
commit e1493996b5
+10 -6
View File
@@ -157,11 +157,13 @@ rnn_enumval(struct rnn *rnn, const char *enumname, const char *enumval)
}
static struct rnndelem *
regelem(struct rnndomain *domain, const char *name)
regelem(struct rnndeccontext *ctx, struct rnndomain *domain, const char *name)
{
int i;
for (i = 0; i < domain->subelemsnum; i++) {
struct rnndelem *elem = domain->subelems[i];
if (!rnndec_varmatch(ctx, &elem->varinfo))
continue;
if (!strcmp(elem->name, name))
return elem;
}
@@ -172,18 +174,20 @@ regelem(struct rnndomain *domain, const char *name)
struct rnndelem *
rnn_regelem(struct rnn *rnn, const char *name)
{
struct rnndelem *elem = regelem(rnn->dom[0], name);
struct rnndelem *elem = regelem(rnn->vc, rnn->dom[0], name);
if (elem)
return elem;
return regelem(rnn->dom[1], name);
return regelem(rnn->vc, rnn->dom[1], name);
}
static struct rnndelem *
regoff(struct rnndomain *domain, uint32_t offset)
regoff(struct rnndeccontext *ctx, struct rnndomain *domain, uint32_t offset)
{
int i;
for (i = 0; i < domain->subelemsnum; i++) {
struct rnndelem *elem = domain->subelems[i];
if (!rnndec_varmatch(ctx, &elem->varinfo))
continue;
if (elem->offset == offset)
return elem;
}
@@ -194,10 +198,10 @@ regoff(struct rnndomain *domain, uint32_t offset)
struct rnndelem *
rnn_regoff(struct rnn *rnn, uint32_t offset)
{
struct rnndelem *elem = regoff(rnn->dom[0], offset);
struct rnndelem *elem = regoff(rnn->vc, rnn->dom[0], offset);
if (elem)
return elem;
return regoff(rnn->dom[1], offset);
return regoff(rnn->vc, rnn->dom[1], offset);
}
enum rnnttype