diff --git a/.pick_status.json b/.pick_status.json index 7755dcad87e..88623d93c96 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -985,7 +985,7 @@ "description": "intel/fs/vec4: add missing dependency in write-on-write fixed GRFs", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/intel/compiler/brw_schedule_instructions.cpp b/src/intel/compiler/brw_schedule_instructions.cpp index d9f6f9d852f..d7c2230e8e1 100644 --- a/src/intel/compiler/brw_schedule_instructions.cpp +++ b/src/intel/compiler/brw_schedule_instructions.cpp @@ -1188,9 +1188,12 @@ fs_instruction_scheduler::calculate_deps() } } else if (inst->dst.file == FIXED_GRF) { if (post_reg_alloc) { - for (unsigned r = 0; r < regs_written(inst); r++) + for (unsigned r = 0; r < regs_written(inst); r++) { + add_dep(last_grf_write[inst->dst.nr + r], n); last_grf_write[inst->dst.nr + r] = n; + } } else { + add_dep(last_fixed_grf_write, n); last_fixed_grf_write = n; } } else if (inst->dst.is_accumulator()) { @@ -1418,6 +1421,7 @@ vec4_instruction_scheduler::calculate_deps() add_dep(last_mrf_write[inst->dst.nr], n); last_mrf_write[inst->dst.nr] = n; } else if (inst->dst.file == FIXED_GRF) { + add_dep(last_fixed_grf_write, n); last_fixed_grf_write = n; } else if (inst->dst.is_accumulator()) { add_dep(last_accumulator_write, n);