mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 00:28:51 +02:00
aco: add missing usable_read2 check
A Hitman 2 shader does: read64(local_invocation_index() * 4 - 4). This was likely emitting a ds_read2_b32 on GFX6. For local_invocation_index()=0, because the first dword was out-of-bounds, the second was likely also considered out-of-bounds (even though it's not, at offset 0). Likely fixes https://gitlab.freedesktop.org/mesa/mesa/-/issues/3882 Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes:57e6886f98("aco: refactor load_lds to use new helpers") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9332> (cherry picked from commit3a72044ece)
This commit is contained in:
parent
185b9f7c60
commit
0a3adff79e
2 changed files with 2 additions and 2 deletions
|
|
@ -1372,7 +1372,7 @@
|
|||
"description": "aco: add missing usable_read2 check",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "57e6886f981ca629a863544df253b9ecb3604eec"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3489,7 +3489,7 @@ Temp lds_load_callback(Builder& bld, const LoadEmitInfo &info,
|
|||
} else if (bytes_needed >= 8 && align % 8 == 0) {
|
||||
size = 8;
|
||||
op = aco_opcode::ds_read_b64;
|
||||
} else if (bytes_needed >= 8 && align % 4 == 0 && const_offset % 4 == 0) {
|
||||
} else if (bytes_needed >= 8 && align % 4 == 0 && const_offset % 4 == 0 && usable_read2) {
|
||||
size = 8;
|
||||
read2 = true;
|
||||
op = aco_opcode::ds_read2_b32;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue