mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 09:00:10 +01:00
radv: fix emitting descriptor pointers with LLVM < 7
This was terribly wrong, I forced use of 32-bit pointers when
emitting shader descriptor pointers. This fixes GPU hangs with
LLVM 5&6 because 32-bit pointers are only supported with LLVM 7.
Fixes: 88d1ed0f81 ("radv: emit shader descriptor pointers consecutively")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
04fff21c62
commit
02c7916298
1 changed files with 4 additions and 2 deletions
|
|
@ -624,12 +624,14 @@ radv_emit_descriptor_pointers(struct radv_cmd_buffer *cmd_buffer,
|
||||||
struct radv_userdata_info *loc = &locs->descriptor_sets[start];
|
struct radv_userdata_info *loc = &locs->descriptor_sets[start];
|
||||||
unsigned sh_offset = sh_base + loc->sgpr_idx * 4;
|
unsigned sh_offset = sh_base + loc->sgpr_idx * 4;
|
||||||
|
|
||||||
radv_emit_shader_pointer_head(cs, sh_offset, count, true);
|
radv_emit_shader_pointer_head(cs, sh_offset, count,
|
||||||
|
HAVE_32BIT_POINTERS);
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
struct radv_descriptor_set *set =
|
struct radv_descriptor_set *set =
|
||||||
descriptors_state->sets[start + i];
|
descriptors_state->sets[start + i];
|
||||||
|
|
||||||
radv_emit_shader_pointer_body(device, cs, set->va, true);
|
radv_emit_shader_pointer_body(device, cs, set->va,
|
||||||
|
HAVE_32BIT_POINTERS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue