mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 15:20:17 +01:00
aco: fix partial copies on GFX6/7
While we don't allow partial subdword copies, we still need to be able to split 64bit registers Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5663>
This commit is contained in:
parent
66482303f6
commit
5c0f82b0d7
1 changed files with 3 additions and 2 deletions
|
|
@ -1323,7 +1323,7 @@ void handle_operands(std::map<PhysReg, copy_operation>& copy_map, lower_context*
|
|||
return;
|
||||
}
|
||||
if (it == copy_map.end()) {
|
||||
if (!skip_partial_copies || ctx->program->chip_class < GFX8)
|
||||
if (!skip_partial_copies)
|
||||
break;
|
||||
skip_partial_copies = false;
|
||||
it = copy_map.begin();
|
||||
|
|
@ -1423,7 +1423,8 @@ void handle_operands(std::map<PhysReg, copy_operation>& copy_map, lower_context*
|
|||
* a partial copy allows further copies, it should be done instead. */
|
||||
bool partial_copy = (has_zero_use_bytes == 0xf) || (has_zero_use_bytes == 0xf0);
|
||||
for (std::pair<const PhysReg, copy_operation>& copy : copy_map) {
|
||||
if (partial_copy)
|
||||
/* on GFX6/7, we can only do copies with full registers */
|
||||
if (partial_copy || ctx->program->chip_class <= GFX7)
|
||||
break;
|
||||
for (uint16_t i = 0; i < copy.second.bytes; i++) {
|
||||
/* distance might underflow */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue