mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 17:30:20 +01:00
nir/peephole_select: Allow uniform/input loads and load_const
Shader-db results on HSW: total instructions in shared programs: 4174156 -> 4157291 (-0.40%) instructions in affected programs: 145397 -> 128532 (-11.60%) helped: 383 HURT: 0 GAINED: 20 LOST: 22 There are two more tests lost than gained. However, comparing this with GLSL IR vs. NIR results, the overall delta is reduced from 85/44 gained/lost on current master to 71/32 with this commit. Therefore, I think it's probably a boon since we are getting "closer" to where we were before. Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
parent
1be862c0c4
commit
27bf37ba05
1 changed files with 25 additions and 0 deletions
|
|
@ -56,6 +56,31 @@ block_check_for_allowed_instrs(nir_block *block)
|
|||
{
|
||||
nir_foreach_instr(block, instr) {
|
||||
switch (instr->type) {
|
||||
case nir_instr_type_intrinsic: {
|
||||
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
|
||||
|
||||
switch (intrin->intrinsic) {
|
||||
case nir_intrinsic_load_var:
|
||||
switch (intrin->variables[0]->var->data.mode) {
|
||||
case nir_var_shader_in:
|
||||
case nir_var_uniform:
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_instr_type_load_const:
|
||||
break;
|
||||
|
||||
case nir_instr_type_alu: {
|
||||
/* It must be a move operation */
|
||||
nir_alu_instr *mov = nir_instr_as_alu(instr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue