mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02: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> (cherry picked from commitdf37c7ca74)
This commit is contained in:
parent
0984a7f374
commit
0fb416d506
3 changed files with 12 additions and 2 deletions
|
|
@ -3504,7 +3504,7 @@
|
|||
"description": "brw: fix analysis dirtying with pulled constants",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "5c1729908471a1b000fa4ab0b29ac9f79a8b7394",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -82,6 +82,13 @@ operator|(brw_analysis_dependency_class x, brw_analysis_dependency_class 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
|
||||
* type \p T as result. \p C is a closure that encapsulates whatever
|
||||
|
|
|
|||
|
|
@ -678,6 +678,8 @@ brw_shader::assign_curb_setup()
|
|||
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
|
||||
* stateless messages.
|
||||
*/
|
||||
|
|
@ -691,6 +693,7 @@ brw_shader::assign_curb_setup()
|
|||
|
||||
if (i != 0) {
|
||||
if (pull_constants_a64) {
|
||||
dirty_bits |= BRW_DEPENDENCY_VARIABLES;
|
||||
/* We need to do the carry manually as when this pass is run,
|
||||
* we're not expecting any 64bit ALUs. Unfortunately all the
|
||||
* 64bit lowering is done in NIR.
|
||||
|
|
@ -752,7 +755,7 @@ brw_shader::assign_curb_setup()
|
|||
i += num_regs;
|
||||
}
|
||||
|
||||
invalidate_analysis(BRW_DEPENDENCY_INSTRUCTIONS);
|
||||
invalidate_analysis(dirty_bits);
|
||||
}
|
||||
|
||||
/* Map the offsets in the UNIFORM file to fixed HW regs. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue