mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-21 07:40:38 +02:00
brw/reg_allocate: Check source / destination hazard for all larger SIMD
All platforms needs this check for SIMD32. Xe2+ do not need this for SIMD16. Also... delete some really stale comments about Gfx4/Gfx5. This compiler doesn't even support those platforms. No shader-db changes on any pre-Xe2 Intel platforms: shader-db: Lunar Lake total instructions in shared programs: 17108867 -> 17108855 (<.01%) instructions in affected programs: 35211 -> 35199 (-0.03%) helped: 19 / HURT: 6 total cycles in shared programs: 885026794 -> 885805580 (0.09%) cycles in affected programs: 140449880 -> 141228666 (0.55%) helped: 903 / HURT: 1142 LOST: 0 GAINED: 25 fossil-db: Lunar Lake Totals: Instrs: 208578317 -> 208574097 (-0.00%); split: -0.00%, +0.00% Cycle count: 31268800798 -> 31259914590 (-0.03%); split: -0.10%, +0.07% Spill count: 504472 -> 504102 (-0.07%); split: -0.09%, +0.02% Fill count: 606581 -> 606079 (-0.08%); split: -0.13%, +0.05% Scratch Memory Size: 35001344 -> 34957312 (-0.13%) Totals from 60714 (8.59% of 706970) affected shaders: Instrs: 48923370 -> 48919150 (-0.01%); split: -0.01%, +0.01% Cycle count: 11830486210 -> 11821600002 (-0.08%); split: -0.27%, +0.20% Spill count: 397150 -> 396780 (-0.09%); split: -0.12%, +0.02% Fill count: 469651 -> 469149 (-0.11%); split: -0.17%, +0.06% Scratch Memory Size: 25971712 -> 25927680 (-0.17%) Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35903>
This commit is contained in:
parent
7e98ca89f2
commit
b57bad1fd7
1 changed files with 2 additions and 4 deletions
|
|
@ -516,11 +516,9 @@ brw_inst_has_source_and_destination_hazard(const struct intel_device_info *devin
|
|||
*
|
||||
* Now our destination for the first instruction overwrote the
|
||||
* second instruction's src0, and we get garbage for those 8
|
||||
* pixels. There's a similar issue for the pre-gfx6
|
||||
* pixel_x/pixel_y, which are registers of 16-bit values and thus
|
||||
* would get stomped by the first decode as well.
|
||||
* pixels.
|
||||
*/
|
||||
if (inst->exec_size == 16) {
|
||||
if (inst->exec_size > 8 * reg_unit(devinfo)) {
|
||||
if (inst->src[src].file == VGRF && (inst->src[src].stride == 0 ||
|
||||
inst->src[src].type == BRW_TYPE_UW ||
|
||||
inst->src[src].type == BRW_TYPE_W ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue