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:
parent
1a33dca3ae
commit
978a5ec5d2
|
@ -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,
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Reference in New Issue