mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 15:20:10 +01:00
venus: fix vn_buffer_get_max_buffer_size
The binary search can lead to infinite loop. Fixes
dEQP-VK.api.object_management.alloc_callback_fail.device where
vn_CreateBuffer can always fail.
Fixes: a74f2495ca ("venus: implement vn_buffer_get_max_buffer_size")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14184>
This commit is contained in:
parent
d92e353a11
commit
65576eec2e
1 changed files with 3 additions and 3 deletions
|
|
@ -136,16 +136,16 @@ vn_buffer_get_max_buffer_size(struct vn_device *dev,
|
|||
uint8_t begin = 0;
|
||||
uint8_t end = 64;
|
||||
|
||||
while (begin <= end) {
|
||||
while (begin < end) {
|
||||
uint8_t mid = (begin + end) >> 1;
|
||||
create_info.size = 1 << mid;
|
||||
create_info.size = 1ull << mid;
|
||||
if (vn_CreateBuffer(dev_handle, &create_info, alloc, &buf_handle) ==
|
||||
VK_SUCCESS) {
|
||||
vn_DestroyBuffer(dev_handle, buf_handle, alloc);
|
||||
max_buffer_size = create_info.size;
|
||||
begin = mid + 1;
|
||||
} else {
|
||||
end = mid - 1;
|
||||
end = mid;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue