v3dv: implement vkUnmapMemory
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
This commit is contained in:
parent
cff9f08d31
commit
e06831454a
|
@ -1126,6 +1126,24 @@ device_map(struct v3dv_device *device,
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
device_unmap(struct v3dv_device *device, struct v3dv_device_memory *mem)
|
||||||
|
{
|
||||||
|
assert(mem->map && mem->map_size > 0);
|
||||||
|
|
||||||
|
munmap(mem->map, mem->map_size);
|
||||||
|
VG(VALGRIND_FREELIKE_BLOCK(mem->map, 0));
|
||||||
|
mem->map = NULL;
|
||||||
|
mem->map_size = 0;
|
||||||
|
|
||||||
|
struct drm_gem_close c;
|
||||||
|
memset(&c, 0, sizeof(c));
|
||||||
|
c.handle = mem->handle;
|
||||||
|
int ret = v3dv_ioctl(device->fd, DRM_IOCTL_GEM_CLOSE, &c);
|
||||||
|
if (ret != 0)
|
||||||
|
fprintf(stderr, "close object %d: %s\n", mem->handle, strerror(errno));
|
||||||
|
}
|
||||||
|
|
||||||
VkResult
|
VkResult
|
||||||
v3dv_AllocateMemory(VkDevice _device,
|
v3dv_AllocateMemory(VkDevice _device,
|
||||||
const VkMemoryAllocateInfo *pAllocateInfo,
|
const VkMemoryAllocateInfo *pAllocateInfo,
|
||||||
|
@ -1213,7 +1231,13 @@ void
|
||||||
v3dv_UnmapMemory(VkDevice _device,
|
v3dv_UnmapMemory(VkDevice _device,
|
||||||
VkDeviceMemory _memory)
|
VkDeviceMemory _memory)
|
||||||
{
|
{
|
||||||
/* FIXME: stub */
|
V3DV_FROM_HANDLE(v3dv_device, device, _device);
|
||||||
|
V3DV_FROM_HANDLE(v3dv_device_memory, mem, _memory);
|
||||||
|
|
||||||
|
if (mem == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
device_unmap(device, mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
VkResult
|
VkResult
|
||||||
|
|
Loading…
Reference in New Issue