mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-17 15:40:20 +01:00
glsl: Generate the ir_last_* values
This ensures that they remain correct if the list is rearranged or new opcodes are added. I checked a diff of before and after to ensure that each ir_last_ had the same value. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Acked-by: Dylan Baker <dylan@pnwbakers.com>
This commit is contained in:
parent
7d6af9e599
commit
140ec58a07
1 changed files with 20 additions and 28 deletions
|
|
@ -162,13 +162,7 @@ ir_expression_operation = [
|
|||
("vote_any", 1, None, None),
|
||||
("vote_all", 1, None, None),
|
||||
("vote_eq", 1, None, None),
|
||||
|
||||
"""
|
||||
/**
|
||||
* A sentinel marking the last of the unary operations.
|
||||
*/
|
||||
ir_last_unop = ir_unop_vote_eq,
|
||||
""",
|
||||
"",
|
||||
("add", 2, "+", None),
|
||||
("sub", 2, "-", None),
|
||||
("mul", 2, "*", "Floating-point or low 32-bit integer multiply."),
|
||||
|
|
@ -283,11 +277,6 @@ ir_expression_operation = [
|
|||
*/""",
|
||||
("interpolate_at_sample", 2, None, None),
|
||||
"""
|
||||
/**
|
||||
* A sentinel marking the last of the binary operations.
|
||||
*/
|
||||
ir_last_binop = ir_binop_interpolate_at_sample,
|
||||
|
||||
/**
|
||||
* \\name Fused floating-point multiply-add, part of ARB_gpu_shader5.
|
||||
*/
|
||||
|
|
@ -319,25 +308,10 @@ ir_expression_operation = [
|
|||
* operand2 is the index in operand0 to be modified
|
||||
*/""",
|
||||
("vector_insert", 3, None, None),
|
||||
"""
|
||||
/**
|
||||
* A sentinel marking the last of the ternary operations.
|
||||
*/
|
||||
ir_last_triop = ir_triop_vector_insert,
|
||||
""",
|
||||
"",
|
||||
("bitfield_insert", 4, None, None),
|
||||
"",
|
||||
("vector", 4, None, None),
|
||||
"""
|
||||
/**
|
||||
* A sentinel marking the last of the ternary operations.
|
||||
*/
|
||||
ir_last_quadop = ir_quadop_vector,
|
||||
|
||||
/**
|
||||
* A sentinel marking the last of all operations.
|
||||
*/
|
||||
ir_last_opcode = ir_quadop_vector""",
|
||||
]
|
||||
|
||||
def name_from_item(item):
|
||||
|
|
@ -378,7 +352,25 @@ ${item}
|
|||
${name_from_item(item)},${"" if item[3] is None else " /**< {} */".format(item[3])}
|
||||
% endif
|
||||
% endfor
|
||||
|
||||
/**
|
||||
* Sentinels marking the last of each kind of operation;
|
||||
*/
|
||||
% for (name, i) in lasts:
|
||||
ir_last_${("un", "bin", "tri", "quad")[i]}op = ${name_from_item((name, i+1))},
|
||||
% endfor
|
||||
ir_last_opcode = ir_quadop_${lasts[3][0]}
|
||||
};""")
|
||||
|
||||
lasts = [None, None, None, None]
|
||||
for item in reversed(ir_expression_operation):
|
||||
if isinstance(item, str):
|
||||
continue
|
||||
|
||||
i = item[1] - 1
|
||||
if lasts[i] is None:
|
||||
lasts[i] = (item[0], i)
|
||||
|
||||
print(enum_template.render(values=ir_expression_operation,
|
||||
lasts=lasts,
|
||||
name_from_item=name_from_item))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue