Skip to content

Revert "intel/brw: Lower VGRFs to FIXED_GRFs earlier"

What does this MR do and why?

Revert "intel/brw: Lower VGRFs to FIXED_GRFs earlier"

This reverts commit ff89e83178ac6fde49b6f0f1c5d0bacf285cbf19.

As far as I can tell, using FIXES_GRFs is completely unsupported by
the scoreboarding pass.

One of the case I saw is :

add(1) g29:UD, g2<0>:UD, 256u NoMask group0
cmp.l.f0.0(1) null:UD, g29<2>:UD, g2<0>:UD NoMask group0

The scoreboarding pass is gathering dependencies in
gather_inst_dependencies(), and for some reason regs_read(inst, 0) on
the cmp instruction will return 0. Meaning the dependency is
completely ignored here, obviously breaking a number of shaders.

I have not seen cases in the CTS exercising this but I assume a number
of workload must be impacted.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11069
Fixes: ff89e83178 ("intel/brw: Lower VGRFs to FIXED_GRFs earlier")

Closes: #11069 (closed)

/cc @cmarcelo

/cc @currojerez : maybe you have a suggestion? It feels like the same problem would happen in other parts and we're just lucky that fixed GRFs mostly used for payload which doesn't require synchronization

Edited by Lionel Landwerlin

Merge request reports