mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 10:10:09 +01:00
aco: Allow literals on VOP3 instructions.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
This commit is contained in:
parent
7cf1dcf22d
commit
818bdab796
2 changed files with 4 additions and 2 deletions
|
|
@ -502,7 +502,6 @@ void emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction*
|
|||
for (unsigned i = 0; i < 3; i++)
|
||||
encoding |= vop3->neg[i] << (29+i);
|
||||
out.push_back(encoding);
|
||||
return;
|
||||
|
||||
} else if (instr->isDPP()){
|
||||
/* first emit the instruction without the DPP operand */
|
||||
|
|
@ -525,6 +524,7 @@ void emit_instruction(asm_context& ctx, std::vector<uint32_t>& out, Instruction*
|
|||
} else {
|
||||
unreachable("unimplemented instruction format");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* append literal dword */
|
||||
|
|
|
|||
|
|
@ -104,7 +104,9 @@ void validate(Program* program, FILE * output)
|
|||
unsigned num_literals = 0;
|
||||
for (unsigned i = 0; i < instr->operands.size(); i++)
|
||||
{
|
||||
if (instr->operands[i].isLiteral()) {
|
||||
if (instr->operands[i].isLiteral() && instr->isVOP3() && program->chip_class >= GFX10) {
|
||||
num_literals++;
|
||||
} else if (instr->operands[i].isLiteral()) {
|
||||
check(instr->format == Format::SOP1 ||
|
||||
instr->format == Format::SOP2 ||
|
||||
instr->format == Format::SOPC ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue