anv: Get rid of the ANV_CALL macro

This macro was needed by meta in order to make gen-specific calls from
gen-agnostic code.  Now that we don't have meta, the remaining two uses are
fairly trivial to get rid of.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Jason Ekstrand
2016-10-07 15:41:17 -07:00
parent ac77528f7d
commit 4c9dec80ed
4 changed files with 8 additions and 14 deletions

View File

@@ -1117,7 +1117,7 @@ VkResult anv_QueueWaitIdle(
{ {
ANV_FROM_HANDLE(anv_queue, queue, _queue); ANV_FROM_HANDLE(anv_queue, queue, _queue);
return ANV_CALL(DeviceWaitIdle)(anv_device_to_handle(queue->device)); return anv_DeviceWaitIdle(anv_device_to_handle(queue->device));
} }
VkResult anv_DeviceWaitIdle( VkResult anv_DeviceWaitIdle(

View File

@@ -112,7 +112,11 @@ dump_image_do_blit(struct anv_device *device, struct dump_image *image,
VkImageAspectFlagBits aspect, VkImageAspectFlagBits aspect,
unsigned miplevel, unsigned array_layer) unsigned miplevel, unsigned array_layer)
{ {
ANV_CALL(CmdPipelineBarrier)(anv_cmd_buffer_to_handle(cmd_buffer), PFN_vkCmdPipelineBarrier CmdPipelineBarrier =
(void *)anv_GetDeviceProcAddr(anv_device_to_handle(device),
"vkCmdPipelineBarrier");
CmdPipelineBarrier(anv_cmd_buffer_to_handle(cmd_buffer),
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
0, 0, NULL, 0, NULL, 1, 0, 0, NULL, 0, NULL, 1,
@@ -169,7 +173,7 @@ dump_image_do_blit(struct anv_device *device, struct dump_image *image,
src->usage = old_usage; src->usage = old_usage;
ANV_CALL(CmdPipelineBarrier)(anv_cmd_buffer_to_handle(cmd_buffer), CmdPipelineBarrier(anv_cmd_buffer_to_handle(cmd_buffer),
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
0, 0, NULL, 0, NULL, 1, 0, 0, NULL, 0, NULL, 1,

View File

@@ -222,7 +222,7 @@ anv_set_dispatch_devinfo(const struct gen_device_info *devinfo)
dispatch_devinfo = *devinfo; dispatch_devinfo = *devinfo;
} }
void * __attribute__ ((noinline)) static void * __attribute__ ((noinline))
anv_resolve_entrypoint(uint32_t index) anv_resolve_entrypoint(uint32_t index)
{ {
if (dispatch_devinfo.gen == 0) { if (dispatch_devinfo.gen == 0) {

View File

@@ -497,18 +497,8 @@ struct anv_bo *anv_scratch_pool_alloc(struct anv_device *device,
gl_shader_stage stage, gl_shader_stage stage,
unsigned per_thread_scratch); unsigned per_thread_scratch);
void *anv_resolve_entrypoint(uint32_t index);
extern struct anv_dispatch_table dtable; extern struct anv_dispatch_table dtable;
#define ANV_CALL(func) ({ \
if (dtable.func == NULL) { \
size_t idx = offsetof(struct anv_dispatch_table, func) / sizeof(void *); \
dtable.entrypoints[idx] = anv_resolve_entrypoint(idx); \
} \
dtable.func; \
})
static inline void * static inline void *
anv_alloc(const VkAllocationCallbacks *alloc, anv_alloc(const VkAllocationCallbacks *alloc,
size_t size, size_t align, size_t size, size_t align,