mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
anv: Add anv_device parameter to anv_gem_munmap.
Also update all of its callers. On the next commit, the device will be used by anv_gem_munmap to choose whether we need to call the valgrind code or not, depending on which type of mmap we are using. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1675>
This commit is contained in:
parent
d1c1ead7cd
commit
0d387da083
5 changed files with 8 additions and 7 deletions
|
|
@ -434,7 +434,7 @@ anv_block_pool_finish(struct anv_block_pool *pool)
|
||||||
{
|
{
|
||||||
anv_block_pool_foreach_bo(bo, pool) {
|
anv_block_pool_foreach_bo(bo, pool) {
|
||||||
if (bo->map)
|
if (bo->map)
|
||||||
anv_gem_munmap(bo->map, bo->size);
|
anv_gem_munmap(pool->device, bo->map, bo->size);
|
||||||
anv_gem_close(pool->device, bo->gem_handle);
|
anv_gem_close(pool->device, bo->gem_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1643,7 +1643,7 @@ anv_device_alloc_bo(struct anv_device *device,
|
||||||
align, alloc_flags, explicit_address);
|
align, alloc_flags, explicit_address);
|
||||||
if (new_bo.offset == 0) {
|
if (new_bo.offset == 0) {
|
||||||
if (new_bo.map)
|
if (new_bo.map)
|
||||||
anv_gem_munmap(new_bo.map, size);
|
anv_gem_munmap(device, new_bo.map, size);
|
||||||
anv_gem_close(device, new_bo.gem_handle);
|
anv_gem_close(device, new_bo.gem_handle);
|
||||||
return vk_errorf(device, NULL, VK_ERROR_OUT_OF_DEVICE_MEMORY,
|
return vk_errorf(device, NULL, VK_ERROR_OUT_OF_DEVICE_MEMORY,
|
||||||
"failed to allocate virtual address for BO");
|
"failed to allocate virtual address for BO");
|
||||||
|
|
@ -1968,7 +1968,7 @@ anv_device_release_bo(struct anv_device *device,
|
||||||
assert(bo->refcount == 0);
|
assert(bo->refcount == 0);
|
||||||
|
|
||||||
if (bo->map && !bo->from_host_ptr)
|
if (bo->map && !bo->from_host_ptr)
|
||||||
anv_gem_munmap(bo->map, bo->size);
|
anv_gem_munmap(device, bo->map, bo->size);
|
||||||
|
|
||||||
if (bo->_ccs_size > 0) {
|
if (bo->_ccs_size > 0) {
|
||||||
assert(device->physical->has_implicit_ccs);
|
assert(device->physical->has_implicit_ccs);
|
||||||
|
|
|
||||||
|
|
@ -3721,12 +3721,13 @@ void anv_UnmapMemory(
|
||||||
VkDevice _device,
|
VkDevice _device,
|
||||||
VkDeviceMemory _memory)
|
VkDeviceMemory _memory)
|
||||||
{
|
{
|
||||||
|
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||||
ANV_FROM_HANDLE(anv_device_memory, mem, _memory);
|
ANV_FROM_HANDLE(anv_device_memory, mem, _memory);
|
||||||
|
|
||||||
if (mem == NULL || mem->host_ptr)
|
if (mem == NULL || mem->host_ptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
anv_gem_munmap(mem->map, mem->map_size);
|
anv_gem_munmap(device, mem->map, mem->map_size);
|
||||||
|
|
||||||
mem->map = NULL;
|
mem->map = NULL;
|
||||||
mem->map_size = 0;
|
mem->map_size = 0;
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
|
||||||
* this map is no longer valid. Pair this with anv_gem_mmap().
|
* this map is no longer valid. Pair this with anv_gem_mmap().
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
anv_gem_munmap(void *p, uint64_t size)
|
anv_gem_munmap(struct anv_device *device, void *p, uint64_t size)
|
||||||
{
|
{
|
||||||
VG(VALGRIND_FREELIKE_BLOCK(p, 0));
|
VG(VALGRIND_FREELIKE_BLOCK(p, 0));
|
||||||
munmap(p, size);
|
munmap(p, size);
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ anv_gem_mmap(struct anv_device *device, uint32_t gem_handle,
|
||||||
* this map is no longer valid. Pair this with anv_gem_mmap().
|
* this map is no longer valid. Pair this with anv_gem_mmap().
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
anv_gem_munmap(void *p, uint64_t size)
|
anv_gem_munmap(struct anv_device *device, void *p, uint64_t size)
|
||||||
{
|
{
|
||||||
munmap(p, size);
|
munmap(p, size);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1471,7 +1471,7 @@ uint64_t anv_get_absolute_timeout(uint64_t timeout);
|
||||||
|
|
||||||
void* anv_gem_mmap(struct anv_device *device,
|
void* anv_gem_mmap(struct anv_device *device,
|
||||||
uint32_t gem_handle, uint64_t offset, uint64_t size, uint32_t flags);
|
uint32_t gem_handle, uint64_t offset, uint64_t size, uint32_t flags);
|
||||||
void anv_gem_munmap(void *p, uint64_t size);
|
void anv_gem_munmap(struct anv_device *device, void *p, uint64_t size);
|
||||||
uint32_t anv_gem_create(struct anv_device *device, uint64_t size);
|
uint32_t anv_gem_create(struct anv_device *device, uint64_t size);
|
||||||
void anv_gem_close(struct anv_device *device, uint32_t gem_handle);
|
void anv_gem_close(struct anv_device *device, uint32_t gem_handle);
|
||||||
uint32_t anv_gem_userptr(struct anv_device *device, void *mem, size_t size);
|
uint32_t anv_gem_userptr(struct anv_device *device, void *mem, size_t size);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue