radv: Fix various non-critical integer overflows
The result of 0xf << 28 is a signed integer and hence overflows into the sign bit. In practice compilers did the right thing here, since the intent of the code was unsigned arithmetic anyway. These conditions were observed in: * dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.r4g4b4a4_unorm_pack16.count_8.size.512x1 * dEQP-VK.binding_model.descriptorset_random.sets32.noarray.ubolimitlow.sbolimitlow.sampledimglow.outimgonly.noiub.nouab.frag.ialimithigh.0 Cc: mesa-stable Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6568>
This commit is contained in:
@@ -68,7 +68,7 @@ set_loc_desc(struct radv_shader_args *args, int idx, uint8_t *sgpr_idx)
|
||||
|
||||
set_loc(ud_info, sgpr_idx, 1);
|
||||
|
||||
locs->descriptor_sets_enabled |= 1 << idx;
|
||||
locs->descriptor_sets_enabled |= 1u << idx;
|
||||
}
|
||||
|
||||
struct user_sgpr_info {
|
||||
|
Reference in New Issue
Block a user