mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 09:00:10 +01:00
brw: fix analysis dirtying with pulled constants
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 5c17299084 ("brw: enable A64 pulling of push constants")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36455>
This commit is contained in:
parent
e098bf399a
commit
df37c7ca74
2 changed files with 11 additions and 1 deletions
|
|
@ -82,6 +82,13 @@ operator|(brw_analysis_dependency_class x, brw_analysis_dependency_class y)
|
||||||
static_cast<unsigned>(x) | static_cast<unsigned>(y));
|
static_cast<unsigned>(x) | static_cast<unsigned>(y));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline brw_analysis_dependency_class
|
||||||
|
operator|=(brw_analysis_dependency_class x, brw_analysis_dependency_class y)
|
||||||
|
{
|
||||||
|
return static_cast<brw_analysis_dependency_class>(
|
||||||
|
static_cast<unsigned>(x) | static_cast<unsigned>(y));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiate a program analysis class \p L which can calculate an object of
|
* Instantiate a program analysis class \p L which can calculate an object of
|
||||||
* type \p T as result. \p C is a closure that encapsulates whatever
|
* type \p T as result. \p C is a closure that encapsulates whatever
|
||||||
|
|
|
||||||
|
|
@ -691,6 +691,8 @@ brw_shader::assign_curb_setup()
|
||||||
brw_imm_ud(INTEL_MASK(31, 6)));
|
brw_imm_ud(INTEL_MASK(31, 6)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
brw_analysis_dependency_class dirty_bits = BRW_DEPENDENCY_INSTRUCTIONS;
|
||||||
|
|
||||||
/* On Gfx12-HP we load constants at the start of the program using A32
|
/* On Gfx12-HP we load constants at the start of the program using A32
|
||||||
* stateless messages.
|
* stateless messages.
|
||||||
*/
|
*/
|
||||||
|
|
@ -704,6 +706,7 @@ brw_shader::assign_curb_setup()
|
||||||
|
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
if (pull_constants_a64) {
|
if (pull_constants_a64) {
|
||||||
|
dirty_bits |= BRW_DEPENDENCY_VARIABLES;
|
||||||
/* We need to do the carry manually as when this pass is run,
|
/* We need to do the carry manually as when this pass is run,
|
||||||
* we're not expecting any 64bit ALUs. Unfortunately all the
|
* we're not expecting any 64bit ALUs. Unfortunately all the
|
||||||
* 64bit lowering is done in NIR.
|
* 64bit lowering is done in NIR.
|
||||||
|
|
@ -765,7 +768,7 @@ brw_shader::assign_curb_setup()
|
||||||
i += num_regs;
|
i += num_regs;
|
||||||
}
|
}
|
||||||
|
|
||||||
invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS);
|
invalidate_analysis(dirty_bits);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Map the offsets in the UNIFORM file to fixed HW regs. */
|
/* Map the offsets in the UNIFORM file to fixed HW regs. */
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue