anv: anv_gem_mmap() returns MAP_FAILED as mapping error
Take it into account when checking if the mapping failed. v2: - Remove map == NULL and its related comment (Emil) Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Fixes:6f3e3c715a
("vk/allocator: Add a BO pool") Fixes:9919a2d34d
("anv/image: Memset hiz surfaces to 0 when binding memory") Cc: "17.0 17.1" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
a6fb943f3e
commit
b546c9d318
|
@ -889,7 +889,7 @@ anv_bo_pool_alloc(struct anv_bo_pool *pool, struct anv_bo *bo, uint32_t size)
|
|||
assert(new_bo.size == pow2_size);
|
||||
|
||||
new_bo.map = anv_gem_mmap(pool->device, new_bo.gem_handle, 0, pow2_size, 0);
|
||||
if (new_bo.map == NULL) {
|
||||
if (new_bo.map == MAP_FAILED) {
|
||||
anv_gem_close(pool->device, new_bo.gem_handle);
|
||||
return vk_error(VK_ERROR_MEMORY_MAP_FAILED);
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#include "anv_private.h"
|
||||
#include "util/debug.h"
|
||||
|
@ -363,11 +364,8 @@ VkResult anv_BindImageMemory(
|
|||
image->aux_surface.isl.size,
|
||||
device->info.has_llc ? 0 : I915_MMAP_WC);
|
||||
|
||||
/* If anv_gem_mmap returns NULL, it's likely that the kernel was
|
||||
* not able to find space on the host to create a proper mapping.
|
||||
*/
|
||||
if (map == NULL)
|
||||
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
if (map == MAP_FAILED)
|
||||
return vk_error(VK_ERROR_MEMORY_MAP_FAILED);
|
||||
|
||||
memset(map, 0, image->aux_surface.isl.size);
|
||||
|
||||
|
|
Loading…
Reference in New Issue