anv: Use vk_command_pool
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917>
This commit is contained in:

committed by
Marge Bot

parent
a10b6d1c6f
commit
c5b8ee8810
@@ -349,7 +349,7 @@ anv_batch_bo_create(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
{
|
{
|
||||||
VkResult result;
|
VkResult result;
|
||||||
|
|
||||||
struct anv_batch_bo *bbo = vk_alloc(&cmd_buffer->pool->alloc, sizeof(*bbo),
|
struct anv_batch_bo *bbo = vk_alloc(&cmd_buffer->pool->vk.alloc, sizeof(*bbo),
|
||||||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (bbo == NULL)
|
if (bbo == NULL)
|
||||||
return vk_error(cmd_buffer, VK_ERROR_OUT_OF_HOST_MEMORY);
|
return vk_error(cmd_buffer, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||||
@@ -359,7 +359,7 @@ anv_batch_bo_create(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (result != VK_SUCCESS)
|
if (result != VK_SUCCESS)
|
||||||
goto fail_alloc;
|
goto fail_alloc;
|
||||||
|
|
||||||
result = anv_reloc_list_init(&bbo->relocs, &cmd_buffer->pool->alloc);
|
result = anv_reloc_list_init(&bbo->relocs, &cmd_buffer->pool->vk.alloc);
|
||||||
if (result != VK_SUCCESS)
|
if (result != VK_SUCCESS)
|
||||||
goto fail_bo_alloc;
|
goto fail_bo_alloc;
|
||||||
|
|
||||||
@@ -370,7 +370,7 @@ anv_batch_bo_create(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
fail_bo_alloc:
|
fail_bo_alloc:
|
||||||
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
||||||
fail_alloc:
|
fail_alloc:
|
||||||
vk_free(&cmd_buffer->pool->alloc, bbo);
|
vk_free(&cmd_buffer->pool->vk.alloc, bbo);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -382,7 +382,7 @@ anv_batch_bo_clone(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
{
|
{
|
||||||
VkResult result;
|
VkResult result;
|
||||||
|
|
||||||
struct anv_batch_bo *bbo = vk_alloc(&cmd_buffer->pool->alloc, sizeof(*bbo),
|
struct anv_batch_bo *bbo = vk_alloc(&cmd_buffer->pool->vk.alloc, sizeof(*bbo),
|
||||||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (bbo == NULL)
|
if (bbo == NULL)
|
||||||
return vk_error(cmd_buffer, VK_ERROR_OUT_OF_HOST_MEMORY);
|
return vk_error(cmd_buffer, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||||
@@ -392,7 +392,7 @@ anv_batch_bo_clone(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (result != VK_SUCCESS)
|
if (result != VK_SUCCESS)
|
||||||
goto fail_alloc;
|
goto fail_alloc;
|
||||||
|
|
||||||
result = anv_reloc_list_init_clone(&bbo->relocs, &cmd_buffer->pool->alloc,
|
result = anv_reloc_list_init_clone(&bbo->relocs, &cmd_buffer->pool->vk.alloc,
|
||||||
&other_bbo->relocs);
|
&other_bbo->relocs);
|
||||||
if (result != VK_SUCCESS)
|
if (result != VK_SUCCESS)
|
||||||
goto fail_bo_alloc;
|
goto fail_bo_alloc;
|
||||||
@@ -406,7 +406,7 @@ anv_batch_bo_clone(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
fail_bo_alloc:
|
fail_bo_alloc:
|
||||||
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
||||||
fail_alloc:
|
fail_alloc:
|
||||||
vk_free(&cmd_buffer->pool->alloc, bbo);
|
vk_free(&cmd_buffer->pool->vk.alloc, bbo);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -508,9 +508,9 @@ static void
|
|||||||
anv_batch_bo_destroy(struct anv_batch_bo *bbo,
|
anv_batch_bo_destroy(struct anv_batch_bo *bbo,
|
||||||
struct anv_cmd_buffer *cmd_buffer)
|
struct anv_cmd_buffer *cmd_buffer)
|
||||||
{
|
{
|
||||||
anv_reloc_list_finish(&bbo->relocs, &cmd_buffer->pool->alloc);
|
anv_reloc_list_finish(&bbo->relocs, &cmd_buffer->pool->vk.alloc);
|
||||||
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
anv_bo_pool_free(&cmd_buffer->device->batch_bo_pool, bbo->bo);
|
||||||
vk_free(&cmd_buffer->pool->alloc, bbo);
|
vk_free(&cmd_buffer->pool->vk.alloc, bbo);
|
||||||
}
|
}
|
||||||
|
|
||||||
static VkResult
|
static VkResult
|
||||||
@@ -639,7 +639,7 @@ anv_cmd_buffer_record_chain_submit(struct anv_cmd_buffer *cmd_buffer_from,
|
|||||||
.start = last_bbo->bo->map,
|
.start = last_bbo->bo->map,
|
||||||
.end = last_bbo->bo->map + last_bbo->bo->size,
|
.end = last_bbo->bo->map + last_bbo->bo->size,
|
||||||
.relocs = &last_bbo->relocs,
|
.relocs = &last_bbo->relocs,
|
||||||
.alloc = &cmd_buffer_from->pool->alloc,
|
.alloc = &cmd_buffer_from->pool->vk.alloc,
|
||||||
};
|
};
|
||||||
|
|
||||||
__anv_cmd_pack(GFX8_MI_BATCH_BUFFER_START)(&local_batch, bb_start, &gen_bb_start);
|
__anv_cmd_pack(GFX8_MI_BATCH_BUFFER_START)(&local_batch, bb_start, &gen_bb_start);
|
||||||
@@ -852,7 +852,7 @@ anv_cmd_buffer_init_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
|
|
||||||
list_addtail(&batch_bo->link, &cmd_buffer->batch_bos);
|
list_addtail(&batch_bo->link, &cmd_buffer->batch_bos);
|
||||||
|
|
||||||
cmd_buffer->batch.alloc = &cmd_buffer->pool->alloc;
|
cmd_buffer->batch.alloc = &cmd_buffer->pool->vk.alloc;
|
||||||
cmd_buffer->batch.user_data = cmd_buffer;
|
cmd_buffer->batch.user_data = cmd_buffer;
|
||||||
|
|
||||||
if (cmd_buffer->device->can_chain_batches) {
|
if (cmd_buffer->device->can_chain_batches) {
|
||||||
@@ -877,7 +877,7 @@ anv_cmd_buffer_init_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
goto fail_seen_bbos;
|
goto fail_seen_bbos;
|
||||||
|
|
||||||
result = anv_reloc_list_init(&cmd_buffer->surface_relocs,
|
result = anv_reloc_list_init(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc);
|
&cmd_buffer->pool->vk.alloc);
|
||||||
if (result != VK_SUCCESS)
|
if (result != VK_SUCCESS)
|
||||||
goto fail_bt_blocks;
|
goto fail_bt_blocks;
|
||||||
cmd_buffer->last_ss_pool_center = 0;
|
cmd_buffer->last_ss_pool_center = 0;
|
||||||
@@ -906,7 +906,7 @@ anv_cmd_buffer_fini_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
anv_binding_table_pool_free(cmd_buffer->device, *bt_block);
|
anv_binding_table_pool_free(cmd_buffer->device, *bt_block);
|
||||||
u_vector_finish(&cmd_buffer->bt_block_states);
|
u_vector_finish(&cmd_buffer->bt_block_states);
|
||||||
|
|
||||||
anv_reloc_list_finish(&cmd_buffer->surface_relocs, &cmd_buffer->pool->alloc);
|
anv_reloc_list_finish(&cmd_buffer->surface_relocs, &cmd_buffer->pool->vk.alloc);
|
||||||
|
|
||||||
u_vector_finish(&cmd_buffer->seen_bbos);
|
u_vector_finish(&cmd_buffer->seen_bbos);
|
||||||
|
|
||||||
@@ -1167,7 +1167,7 @@ anv_cmd_buffer_add_secondary(struct anv_cmd_buffer *primary,
|
|||||||
assert(!"Invalid execution mode");
|
assert(!"Invalid execution mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
anv_reloc_list_append(&primary->surface_relocs, &primary->pool->alloc,
|
anv_reloc_list_append(&primary->surface_relocs, &primary->pool->vk.alloc,
|
||||||
&secondary->surface_relocs, 0);
|
&secondary->surface_relocs, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -238,7 +238,7 @@ anv_cmd_pipeline_state_finish(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (pipe_state->push_descriptors[i]) {
|
if (pipe_state->push_descriptors[i]) {
|
||||||
anv_descriptor_set_layout_unref(cmd_buffer->device,
|
anv_descriptor_set_layout_unref(cmd_buffer->device,
|
||||||
pipe_state->push_descriptors[i]->set.layout);
|
pipe_state->push_descriptors[i]->set.layout);
|
||||||
vk_free(&cmd_buffer->pool->alloc, pipe_state->push_descriptors[i]);
|
vk_free(&cmd_buffer->pool->vk.alloc, pipe_state->push_descriptors[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -251,7 +251,7 @@ anv_cmd_state_finish(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
anv_cmd_pipeline_state_finish(cmd_buffer, &state->gfx.base);
|
anv_cmd_pipeline_state_finish(cmd_buffer, &state->gfx.base);
|
||||||
anv_cmd_pipeline_state_finish(cmd_buffer, &state->compute.base);
|
anv_cmd_pipeline_state_finish(cmd_buffer, &state->compute.base);
|
||||||
|
|
||||||
vk_free(&cmd_buffer->pool->alloc, state->attachments);
|
vk_free(&cmd_buffer->pool->vk.alloc, state->attachments);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -270,7 +270,7 @@ static VkResult anv_create_cmd_buffer(
|
|||||||
struct anv_cmd_buffer *cmd_buffer;
|
struct anv_cmd_buffer *cmd_buffer;
|
||||||
VkResult result;
|
VkResult result;
|
||||||
|
|
||||||
cmd_buffer = vk_alloc2(&device->vk.alloc, &pool->alloc, sizeof(*cmd_buffer),
|
cmd_buffer = vk_alloc2(&device->vk.alloc, &pool->vk.alloc, sizeof(*cmd_buffer),
|
||||||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (cmd_buffer == NULL)
|
if (cmd_buffer == NULL)
|
||||||
return vk_error(pool, VK_ERROR_OUT_OF_HOST_MEMORY);
|
return vk_error(pool, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||||
@@ -312,7 +312,7 @@ static VkResult anv_create_cmd_buffer(
|
|||||||
fail_vk:
|
fail_vk:
|
||||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||||
fail_alloc:
|
fail_alloc:
|
||||||
vk_free2(&device->vk.alloc, &pool->alloc, cmd_buffer);
|
vk_free2(&device->vk.alloc, &pool->vk.alloc, cmd_buffer);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -362,10 +362,10 @@ anv_cmd_buffer_destroy(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
|
|
||||||
anv_cmd_state_finish(cmd_buffer);
|
anv_cmd_state_finish(cmd_buffer);
|
||||||
|
|
||||||
vk_free(&cmd_buffer->pool->alloc, cmd_buffer->self_mod_locations);
|
vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer->self_mod_locations);
|
||||||
|
|
||||||
vk_command_buffer_finish(&cmd_buffer->vk);
|
vk_command_buffer_finish(&cmd_buffer->vk);
|
||||||
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->alloc,
|
vk_free2(&cmd_buffer->device->vk.alloc, &cmd_buffer->pool->vk.alloc,
|
||||||
cmd_buffer);
|
cmd_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1375,24 +1375,24 @@ VkResult anv_CreateCommandPool(
|
|||||||
ANV_FROM_HANDLE(anv_device, device, _device);
|
ANV_FROM_HANDLE(anv_device, device, _device);
|
||||||
struct anv_cmd_pool *pool;
|
struct anv_cmd_pool *pool;
|
||||||
|
|
||||||
pool = vk_object_alloc(&device->vk, pAllocator, sizeof(*pool),
|
pool = vk_alloc2(&device->vk.alloc, pAllocator, sizeof(*pool), 8,
|
||||||
VK_OBJECT_TYPE_COMMAND_POOL);
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (pool == NULL)
|
if (pool == NULL)
|
||||||
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||||
|
|
||||||
|
VkResult result = vk_command_pool_init(&pool->vk, &device->vk,
|
||||||
|
pCreateInfo, pAllocator);
|
||||||
|
if (result != VK_SUCCESS) {
|
||||||
|
vk_free2(&device->vk.alloc, pAllocator, pool);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
assert(pCreateInfo->queueFamilyIndex < device->physical->queue.family_count);
|
assert(pCreateInfo->queueFamilyIndex < device->physical->queue.family_count);
|
||||||
pool->queue_family =
|
pool->queue_family =
|
||||||
&device->physical->queue.families[pCreateInfo->queueFamilyIndex];
|
&device->physical->queue.families[pCreateInfo->queueFamilyIndex];
|
||||||
|
|
||||||
if (pAllocator)
|
|
||||||
pool->alloc = *pAllocator;
|
|
||||||
else
|
|
||||||
pool->alloc = device->vk.alloc;
|
|
||||||
|
|
||||||
list_inithead(&pool->cmd_buffers);
|
list_inithead(&pool->cmd_buffers);
|
||||||
|
|
||||||
pool->flags = pCreateInfo->flags;
|
|
||||||
|
|
||||||
*pCmdPool = anv_cmd_pool_to_handle(pool);
|
*pCmdPool = anv_cmd_pool_to_handle(pool);
|
||||||
|
|
||||||
return VK_SUCCESS;
|
return VK_SUCCESS;
|
||||||
@@ -1414,7 +1414,8 @@ void anv_DestroyCommandPool(
|
|||||||
anv_cmd_buffer_destroy(cmd_buffer);
|
anv_cmd_buffer_destroy(cmd_buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
vk_object_free(&device->vk, pAllocator, pool);
|
vk_command_pool_finish(&pool->vk);
|
||||||
|
vk_free2(&device->vk.alloc, pAllocator, pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
VkResult anv_ResetCommandPool(
|
VkResult anv_ResetCommandPool(
|
||||||
@@ -1527,7 +1528,7 @@ anv_cmd_buffer_push_descriptor_set(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
&pipe_state->push_descriptors[_set];
|
&pipe_state->push_descriptors[_set];
|
||||||
|
|
||||||
if (*push_set == NULL) {
|
if (*push_set == NULL) {
|
||||||
*push_set = vk_zalloc(&cmd_buffer->pool->alloc,
|
*push_set = vk_zalloc(&cmd_buffer->pool->vk.alloc,
|
||||||
sizeof(struct anv_push_descriptor_set), 8,
|
sizeof(struct anv_push_descriptor_set), 8,
|
||||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
if (*push_set == NULL) {
|
if (*push_set == NULL) {
|
||||||
|
@@ -108,7 +108,7 @@ anv_measure_init(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
const size_t batch_bytes = sizeof(struct anv_measure_batch) +
|
const size_t batch_bytes = sizeof(struct anv_measure_batch) +
|
||||||
config->batch_size * sizeof(struct intel_measure_snapshot);
|
config->batch_size * sizeof(struct intel_measure_snapshot);
|
||||||
struct anv_measure_batch * measure =
|
struct anv_measure_batch * measure =
|
||||||
vk_alloc(&cmd_buffer->pool->alloc,
|
vk_alloc(&cmd_buffer->pool->vk.alloc,
|
||||||
batch_bytes, 8,
|
batch_bytes, 8,
|
||||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
|
|
||||||
@@ -363,7 +363,7 @@ anv_measure_destroy(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
intel_measure_gather(&physical->measure_device, &physical->info);
|
intel_measure_gather(&physical->measure_device, &physical->info);
|
||||||
|
|
||||||
anv_device_release_bo(device, measure->bo);
|
anv_device_release_bo(device, measure->bo);
|
||||||
vk_free(&cmd_buffer->pool->alloc, measure);
|
vk_free(&cmd_buffer->pool->vk.alloc, measure);
|
||||||
cmd_buffer->measure = NULL;
|
cmd_buffer->measure = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -67,6 +67,8 @@
|
|||||||
#include "util/vma.h"
|
#include "util/vma.h"
|
||||||
#include "util/xmlconfig.h"
|
#include "util/xmlconfig.h"
|
||||||
#include "vk_alloc.h"
|
#include "vk_alloc.h"
|
||||||
|
#include "vk_command_buffer.h"
|
||||||
|
#include "vk_command_pool.h"
|
||||||
#include "vk_debug_report.h"
|
#include "vk_debug_report.h"
|
||||||
#include "vk_device.h"
|
#include "vk_device.h"
|
||||||
#include "vk_drm_syncobj.h"
|
#include "vk_drm_syncobj.h"
|
||||||
@@ -78,7 +80,6 @@
|
|||||||
#include "vk_sync.h"
|
#include "vk_sync.h"
|
||||||
#include "vk_sync_timeline.h"
|
#include "vk_sync_timeline.h"
|
||||||
#include "vk_util.h"
|
#include "vk_util.h"
|
||||||
#include "vk_command_buffer.h"
|
|
||||||
#include "vk_queue.h"
|
#include "vk_queue.h"
|
||||||
#include "vk_log.h"
|
#include "vk_log.h"
|
||||||
|
|
||||||
@@ -3129,11 +3130,8 @@ struct anv_cmd_state {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct anv_cmd_pool {
|
struct anv_cmd_pool {
|
||||||
struct vk_object_base base;
|
struct vk_command_pool vk;
|
||||||
VkAllocationCallbacks alloc;
|
|
||||||
struct list_head cmd_buffers;
|
struct list_head cmd_buffers;
|
||||||
|
|
||||||
VkCommandPoolCreateFlags flags;
|
|
||||||
struct anv_queue_family * queue_family;
|
struct anv_queue_family * queue_family;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4728,7 +4726,7 @@ VK_DEFINE_HANDLE_CASTS(anv_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE)
|
|||||||
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_acceleration_structure, base,
|
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_acceleration_structure, base,
|
||||||
VkAccelerationStructureKHR,
|
VkAccelerationStructureKHR,
|
||||||
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR)
|
VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR)
|
||||||
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_cmd_pool, base, VkCommandPool,
|
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_cmd_pool, vk.base, VkCommandPool,
|
||||||
VK_OBJECT_TYPE_COMMAND_POOL)
|
VK_OBJECT_TYPE_COMMAND_POOL)
|
||||||
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer, base, VkBuffer,
|
VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer, base, VkBuffer,
|
||||||
VK_OBJECT_TYPE_BUFFER)
|
VK_OBJECT_TYPE_BUFFER)
|
||||||
|
@@ -86,7 +86,7 @@ blorp_surface_reloc(struct blorp_batch *batch, uint32_t ss_offset,
|
|||||||
|
|
||||||
if (ANV_ALWAYS_SOFTPIN) {
|
if (ANV_ALWAYS_SOFTPIN) {
|
||||||
result = anv_reloc_list_add_bo(&cmd_buffer->surface_relocs,
|
result = anv_reloc_list_add_bo(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
address.buffer);
|
address.buffer);
|
||||||
if (unlikely(result != VK_SUCCESS))
|
if (unlikely(result != VK_SUCCESS))
|
||||||
anv_batch_set_error(&cmd_buffer->batch, result);
|
anv_batch_set_error(&cmd_buffer->batch, result);
|
||||||
@@ -95,7 +95,7 @@ blorp_surface_reloc(struct blorp_batch *batch, uint32_t ss_offset,
|
|||||||
|
|
||||||
uint64_t address_u64 = 0;
|
uint64_t address_u64 = 0;
|
||||||
result = anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
result = anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
ss_offset, address.buffer,
|
ss_offset, address.buffer,
|
||||||
address.offset + delta,
|
address.offset + delta,
|
||||||
&address_u64);
|
&address_u64);
|
||||||
|
@@ -295,12 +295,12 @@ add_surface_reloc(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (anv_use_relocations(cmd_buffer->device->physical)) {
|
if (anv_use_relocations(cmd_buffer->device->physical)) {
|
||||||
const struct isl_device *isl_dev = &cmd_buffer->device->isl_dev;
|
const struct isl_device *isl_dev = &cmd_buffer->device->isl_dev;
|
||||||
result = anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
result = anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
state.offset + isl_dev->ss.addr_offset,
|
state.offset + isl_dev->ss.addr_offset,
|
||||||
addr.bo, addr.offset, NULL);
|
addr.bo, addr.offset, NULL);
|
||||||
} else {
|
} else {
|
||||||
result = anv_reloc_list_add_bo(&cmd_buffer->surface_relocs,
|
result = anv_reloc_list_add_bo(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
addr.bo);
|
addr.bo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ add_surface_state_relocs(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (!anv_address_is_null(state.aux_address)) {
|
if (!anv_address_is_null(state.aux_address)) {
|
||||||
VkResult result =
|
VkResult result =
|
||||||
anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
state.state.offset + isl_dev->ss.aux_addr_offset,
|
state.state.offset + isl_dev->ss.aux_addr_offset,
|
||||||
state.aux_address.bo,
|
state.aux_address.bo,
|
||||||
state.aux_address.offset,
|
state.aux_address.offset,
|
||||||
@@ -332,7 +332,7 @@ add_surface_state_relocs(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
if (!anv_address_is_null(state.clear_address)) {
|
if (!anv_address_is_null(state.clear_address)) {
|
||||||
VkResult result =
|
VkResult result =
|
||||||
anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
anv_reloc_list_add(&cmd_buffer->surface_relocs,
|
||||||
&cmd_buffer->pool->alloc,
|
&cmd_buffer->pool->vk.alloc,
|
||||||
state.state.offset +
|
state.state.offset +
|
||||||
isl_dev->ss.clear_color_state_offset,
|
isl_dev->ss.clear_color_state_offset,
|
||||||
state.clear_address.bo,
|
state.clear_address.bo,
|
||||||
@@ -1544,10 +1544,10 @@ cmd_buffer_alloc_state_attachments(struct anv_cmd_buffer *cmd_buffer,
|
|||||||
{
|
{
|
||||||
struct anv_cmd_state *state = &cmd_buffer->state;
|
struct anv_cmd_state *state = &cmd_buffer->state;
|
||||||
|
|
||||||
vk_free(&cmd_buffer->pool->alloc, state->attachments);
|
vk_free(&cmd_buffer->pool->vk.alloc, state->attachments);
|
||||||
|
|
||||||
if (attachment_count > 0) {
|
if (attachment_count > 0) {
|
||||||
state->attachments = vk_zalloc(&cmd_buffer->pool->alloc,
|
state->attachments = vk_zalloc(&cmd_buffer->pool->vk.alloc,
|
||||||
attachment_count *
|
attachment_count *
|
||||||
sizeof(state->attachments[0]),
|
sizeof(state->attachments[0]),
|
||||||
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
|
@@ -335,7 +335,7 @@ khr_perf_query_ensure_relocs(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
const struct anv_physical_device *pdevice = device->physical;
|
const struct anv_physical_device *pdevice = device->physical;
|
||||||
|
|
||||||
cmd_buffer->self_mod_locations =
|
cmd_buffer->self_mod_locations =
|
||||||
vk_alloc(&cmd_buffer->pool->alloc,
|
vk_alloc(&cmd_buffer->pool->vk.alloc,
|
||||||
pdevice->n_perf_query_commands * sizeof(*cmd_buffer->self_mod_locations), 8,
|
pdevice->n_perf_query_commands * sizeof(*cmd_buffer->self_mod_locations), 8,
|
||||||
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user