turnip: Move to common DEFINE_HANDLE_CASTS casting macro

We create some VK objects internally, so we have to set type
for them.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12957>
This commit is contained in:
Danylo Piliaiev 2021-09-21 14:36:32 +03:00 committed by Marge Bot
parent 1a33dca3ae
commit 978a5ec5d2
4 changed files with 51 additions and 54 deletions

View File

@ -1754,11 +1754,12 @@ tu_copy_image_to_image(struct tu_cmd_buffer *cmd,
tu_image_view_copy(&src, src_image, src_format, &info->srcSubresource, src_offset.z, false); tu_image_view_copy(&src, src_image, src_format, &info->srcSubresource, src_offset.z, false);
struct tu_image staging_image = { struct tu_image staging_image = {
.base.type = VK_OBJECT_TYPE_IMAGE,
.vk_format = src_format, .vk_format = src_format,
.level_count = 1, .level_count = 1,
.layer_count = info->srcSubresource.layerCount, .layer_count = info->srcSubresource.layerCount,
.bo_offset = 0, .bo_offset = 0,
}; };
VkImageSubresourceLayers staging_subresource = { VkImageSubresourceLayers staging_subresource = {
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,

View File

@ -1458,6 +1458,7 @@ tu_reset_cmd_buffer(struct tu_cmd_buffer *cmd_buffer)
for (unsigned i = 0; i < MAX_BIND_POINTS; i++) { for (unsigned i = 0; i < MAX_BIND_POINTS; i++) {
memset(&cmd_buffer->descriptors[i].sets, 0, sizeof(cmd_buffer->descriptors[i].sets)); memset(&cmd_buffer->descriptors[i].sets, 0, sizeof(cmd_buffer->descriptors[i].sets));
memset(&cmd_buffer->descriptors[i].push_set, 0, sizeof(cmd_buffer->descriptors[i].push_set)); memset(&cmd_buffer->descriptors[i].push_set, 0, sizeof(cmd_buffer->descriptors[i].push_set));
cmd_buffer->descriptors[i].push_set.base.type = VK_OBJECT_TYPE_DESCRIPTOR_SET;
} }
u_trace_fini(&cmd_buffer->trace); u_trace_fini(&cmd_buffer->trace);

View File

@ -887,11 +887,10 @@ write_combined_image_sampler_descriptor(uint32_t *dst,
const VkDescriptorImageInfo *image_info, const VkDescriptorImageInfo *image_info,
bool has_sampler) bool has_sampler)
{ {
TU_FROM_HANDLE(tu_sampler, sampler, image_info->sampler);
write_image_descriptor(dst, descriptor_type, image_info); write_image_descriptor(dst, descriptor_type, image_info);
/* copy over sampler state */ /* copy over sampler state */
if (has_sampler) { if (has_sampler) {
TU_FROM_HANDLE(tu_sampler, sampler, image_info->sampler);
memcpy(dst + A6XX_TEX_CONST_DWORDS, sampler->descriptor, sizeof(sampler->descriptor)); memcpy(dst + A6XX_TEX_CONST_DWORDS, sampler->descriptor, sizeof(sampler->descriptor));
} }
} }

View File

@ -1761,60 +1761,56 @@ struct tu_u_trace_flush_data
struct tu_u_trace_cmd_data *cmd_trace_data; struct tu_u_trace_cmd_data *cmd_trace_data;
}; };
#define TU_DEFINE_HANDLE_CASTS(__tu_type, __VkType) \
\
static inline struct __tu_type *__tu_type##_from_handle(__VkType _handle) \
{ \
return (struct __tu_type *) _handle; \
} \
\
static inline __VkType __tu_type##_to_handle(struct __tu_type *_obj) \
{ \
return (__VkType) _obj; \
}
#define TU_DEFINE_NONDISP_HANDLE_CASTS(__tu_type, __VkType) \
\
static inline struct __tu_type *__tu_type##_from_handle(__VkType _handle) \
{ \
return (struct __tu_type *) (uintptr_t) _handle; \
} \
\
static inline __VkType __tu_type##_to_handle(struct __tu_type *_obj) \
{ \
return (__VkType)(uintptr_t) _obj; \
}
#define TU_FROM_HANDLE(__tu_type, __name, __handle) \ #define TU_FROM_HANDLE(__tu_type, __name, __handle) \
struct __tu_type *__name = __tu_type##_from_handle(__handle) VK_FROM_HANDLE(__tu_type, __name, __handle)
TU_DEFINE_HANDLE_CASTS(tu_cmd_buffer, VkCommandBuffer) VK_DEFINE_HANDLE_CASTS(tu_cmd_buffer, base, VkCommandBuffer,
TU_DEFINE_HANDLE_CASTS(tu_device, VkDevice) VK_OBJECT_TYPE_COMMAND_BUFFER)
TU_DEFINE_HANDLE_CASTS(tu_instance, VkInstance) VK_DEFINE_HANDLE_CASTS(tu_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE)
TU_DEFINE_HANDLE_CASTS(tu_physical_device, VkPhysicalDevice) VK_DEFINE_HANDLE_CASTS(tu_instance, vk.base, VkInstance,
TU_DEFINE_HANDLE_CASTS(tu_queue, VkQueue) VK_OBJECT_TYPE_INSTANCE)
VK_DEFINE_HANDLE_CASTS(tu_physical_device, vk.base, VkPhysicalDevice,
VK_OBJECT_TYPE_PHYSICAL_DEVICE)
VK_DEFINE_HANDLE_CASTS(tu_queue, base, VkQueue, VK_OBJECT_TYPE_QUEUE)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_cmd_pool, VkCommandPool) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_cmd_pool, base, VkCommandPool,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_buffer, VkBuffer) VK_OBJECT_TYPE_COMMAND_POOL)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_buffer_view, VkBufferView) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_buffer, base, VkBuffer,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_pool, VkDescriptorPool) VK_OBJECT_TYPE_BUFFER)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_set, VkDescriptorSet) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_buffer_view, base, VkBufferView,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_set_layout, VK_OBJECT_TYPE_BUFFER_VIEW)
VkDescriptorSetLayout) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_pool, base, VkDescriptorPool,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_update_template, VK_OBJECT_TYPE_DESCRIPTOR_POOL)
VkDescriptorUpdateTemplate) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_set, base, VkDescriptorSet,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_device_memory, VkDeviceMemory) VK_OBJECT_TYPE_DESCRIPTOR_SET)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_event, VkEvent) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_set_layout, base,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_framebuffer, VkFramebuffer) VkDescriptorSetLayout,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_image, VkImage) VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_image_view, VkImageView); VK_DEFINE_NONDISP_HANDLE_CASTS(tu_descriptor_update_template, base,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline_cache, VkPipelineCache) VkDescriptorUpdateTemplate,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline, VkPipeline) VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline_layout, VkPipelineLayout) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_device_memory, base, VkDeviceMemory,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_query_pool, VkQueryPool) VK_OBJECT_TYPE_DEVICE_MEMORY)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_render_pass, VkRenderPass) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_event, base, VkEvent, VK_OBJECT_TYPE_EVENT)
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_sampler, VkSampler) VK_DEFINE_NONDISP_HANDLE_CASTS(tu_framebuffer, base, VkFramebuffer,
TU_DEFINE_NONDISP_HANDLE_CASTS(tu_sampler_ycbcr_conversion, VkSamplerYcbcrConversion) VK_OBJECT_TYPE_FRAMEBUFFER)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_image, base, VkImage, VK_OBJECT_TYPE_IMAGE)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_image_view, base, VkImageView,
VK_OBJECT_TYPE_IMAGE_VIEW);
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline_cache, base, VkPipelineCache,
VK_OBJECT_TYPE_PIPELINE_CACHE)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline, base, VkPipeline,
VK_OBJECT_TYPE_PIPELINE)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_pipeline_layout, base, VkPipelineLayout,
VK_OBJECT_TYPE_PIPELINE_LAYOUT)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_query_pool, base, VkQueryPool,
VK_OBJECT_TYPE_QUERY_POOL)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_render_pass, base, VkRenderPass,
VK_OBJECT_TYPE_RENDER_PASS)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_sampler, base, VkSampler,
VK_OBJECT_TYPE_SAMPLER)
VK_DEFINE_NONDISP_HANDLE_CASTS(tu_sampler_ycbcr_conversion, base, VkSamplerYcbcrConversion,
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION)
/* for TU_FROM_HANDLE with both VkFence and VkSemaphore: */ /* for TU_FROM_HANDLE with both VkFence and VkSemaphore: */
#define tu_syncobj_from_handle(x) ((struct tu_syncobj*) (uintptr_t) (x)) #define tu_syncobj_from_handle(x) ((struct tu_syncobj*) (uintptr_t) (x))