After the recent optimizations in ppir lowering that increase options for combining, node_to_instr now may have multiple options of nodes to insert and needs to decide which is better. For example, if an instruction uses both a varying and a texture, there are two nodes nodes that can be inserted to the load varying slot in the same instruction (ld_var and ld_coords). It is much more advantageous to pipeline the load texture coords since that enables the higher precision path for texture coordinates. However, with the current recursive expansion, this cannot be influenced. This simple ready list implementation in node_to_instr allows it to choose the next node to expand based on a priority score, rather than relying on the random order coming from the recursive expansion. Other than preferring nodes with pipeline output (which covers ld_coords vs ld_var), nodes using later slots in the pipeline are now expanded first, allowing node_to_instr to make all of the earlier (pipelineable) nodes available in the ready list so the best one can be chosen when picking nodes for the earlier slots. Fixes: 632a921b lima/ppir: optimize tex loads with single successor Signed-off-by:Erico Nunes <nunes.erico@gmail.com>
Name | Last commit | Last update |
---|