diff --git a/.pick_status.json b/.pick_status.json index c2984049de1..98aeea762c7 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3944,7 +3944,7 @@ "description": "r600: Update GPR count when adding a GDS instruction", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 01b43c20b39..782c1e7d88f 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -1584,6 +1584,13 @@ int r600_bytecode_add_gds(struct r600_bytecode *bc, const struct r600_bytecode_g bc->index_loaded[gds->uav_index_mode - 1]); } + if (gds->src_gpr >= bc->ngpr) { + bc->ngpr = gds->src_gpr + 1; + } + if (gds->dst_gpr >= bc->ngpr) { + bc->ngpr = gds->dst_gpr + 1; + } + if (bc->cf_last == NULL || bc->cf_last->op != CF_OP_GDS || bc->force_add_cf) {