pan/va: Handle force_enum differing from name
Needed for secondary register width, for dual texturing. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15216>
This commit is contained in:
parent
0a6c6dcb00
commit
431e7e54a6
|
@ -159,7 +159,7 @@ va_disasm_instr(FILE *fp, uint64_t instr)
|
||||||
% for mod in op.modifiers:
|
% for mod in op.modifiers:
|
||||||
% if mod.name not in ["left", "staging_register_count", "staging_register_write_count"]:
|
% if mod.name not in ["left", "staging_register_count", "staging_register_write_count"]:
|
||||||
% if mod.is_enum:
|
% if mod.is_enum:
|
||||||
fputs(valhall_${safe_name(mod.name)}[(instr >> ${mod.start}) & ${hex((1 << mod.size) - 1)}], fp);
|
fputs(valhall_${safe_name(mod.enum)}[(instr >> ${mod.start}) & ${hex((1 << mod.size) - 1)}], fp);
|
||||||
% else:
|
% else:
|
||||||
if (instr & BIT(${mod.start})) fputs(".${mod.name}", fp);
|
if (instr & BIT(${mod.start})) fputs(".${mod.name}", fp);
|
||||||
% endif
|
% endif
|
||||||
|
|
|
@ -79,14 +79,14 @@ class Modifier:
|
||||||
self.size = size
|
self.size = size
|
||||||
self.implied = implied
|
self.implied = implied
|
||||||
self.is_enum = (force_enum is not None) or size > 1
|
self.is_enum = (force_enum is not None) or size > 1
|
||||||
|
self.enum = force_enum or name
|
||||||
|
|
||||||
if not self.is_enum:
|
if not self.is_enum:
|
||||||
self.bare_values = ['', name]
|
self.bare_values = ['', name]
|
||||||
self.default = 0
|
self.default = 0
|
||||||
else:
|
else:
|
||||||
enum = enums[force_enum or name]
|
self.bare_values = [x.value for x in enums[self.enum].values]
|
||||||
self.bare_values = [x.value for x in enum.values]
|
defaults = [x for x in enums[self.enum].values if x.default]
|
||||||
defaults = [x for x in enum.values if x.default]
|
|
||||||
assert(len(defaults) <= 1)
|
assert(len(defaults) <= 1)
|
||||||
|
|
||||||
if len(defaults) > 0:
|
if len(defaults) > 0:
|
||||||
|
|
Loading…
Reference in New Issue