Module: Mesa Branch: master Commit: 8475ab7f92a18482f9e511c1163fda0973664d07 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8475ab7f92a18482f9e511c1163fda0973664d07
Author: Dave Airlie <[email protected]> Date: Fri Mar 12 17:03:07 2021 +1000 lavapipe: move to the common casting interfaces Reviewed-By: Mike Blumenkrantz <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9550> --- src/gallium/frontends/lavapipe/lvp_private.h | 111 +++++++++++++-------------- src/gallium/frontends/lavapipe/lvp_wsi.h | 3 - 2 files changed, 53 insertions(+), 61 deletions(-) diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index d4f941c8dd9..3e67950b706 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -86,70 +86,13 @@ bool lvp_device_entrypoint_is_enabled(int index, uint32_t core_version, const struct vk_instance_extension_table *instance, const struct vk_device_extension_table *device); -#define LVP_DEFINE_HANDLE_CASTS(__lvp_type, __VkType) \ - \ - static inline struct __lvp_type * \ - __lvp_type ## _from_handle(__VkType _handle) \ - { \ - return (struct __lvp_type *) _handle; \ - } \ - \ - static inline __VkType \ - __lvp_type ## _to_handle(struct __lvp_type *_obj) \ - { \ - return (__VkType) _obj; \ - } - -#define LVP_DEFINE_NONDISP_HANDLE_CASTS(__lvp_type, __VkType) \ - \ - static inline struct __lvp_type * \ - __lvp_type ## _from_handle(__VkType _handle) \ - { \ - return (struct __lvp_type *)(uintptr_t) _handle; \ - } \ - \ - static inline __VkType \ - __lvp_type ## _to_handle(struct __lvp_type *_obj) \ - { \ - return (__VkType)(uintptr_t) _obj; \ - } - -#define LVP_FROM_HANDLE(__lvp_type, __name, __handle) \ - struct __lvp_type *__name = __lvp_type ## _from_handle(__handle) - -LVP_DEFINE_HANDLE_CASTS(lvp_cmd_buffer, VkCommandBuffer) -LVP_DEFINE_HANDLE_CASTS(lvp_device, VkDevice) -LVP_DEFINE_HANDLE_CASTS(lvp_instance, VkInstance) -LVP_DEFINE_HANDLE_CASTS(lvp_physical_device, VkPhysicalDevice) -LVP_DEFINE_HANDLE_CASTS(lvp_queue, VkQueue) - -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, VkCommandPool) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer, VkBuffer) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer_view, VkBufferView) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_pool, VkDescriptorPool) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set, VkDescriptorSet) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set_layout, VkDescriptorSetLayout) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_update_template, VkDescriptorUpdateTemplate) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_device_memory, VkDeviceMemory) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_event, VkEvent) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_framebuffer, VkFramebuffer) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_image, VkImage) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_image_view, VkImageView); -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline_cache, VkPipelineCache) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline, VkPipeline) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline_layout, VkPipelineLayout) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_query_pool, VkQueryPool) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_render_pass, VkRenderPass) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_sampler, VkSampler) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_shader_module, VkShaderModule) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_fence, VkFence); -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_semaphore, VkSemaphore); /* Whenever we generate an error, pass it through this function. Useful for * debugging, where we can break on it. Only call at error site, not when * propagating errors. Might be useful to plug in a stack trace here. */ +struct lvp_instance; VkResult __vk_errorf(struct lvp_instance *instance, VkResult error, const char *file, int line, const char *format, ...); #define LVP_DEBUG_ALL_ENTRYPOINTS (1 << 0) @@ -626,6 +569,58 @@ struct lvp_cmd_buffer { uint8_t push_constants[MAX_PUSH_CONSTANTS_SIZE]; }; + +#define LVP_FROM_HANDLE(__lvp_type, __name, __handle) \ + struct __lvp_type *__name = __lvp_type ## _from_handle(__handle) + +VK_DEFINE_HANDLE_CASTS(lvp_cmd_buffer, base, VkCommandBuffer, + VK_OBJECT_TYPE_COMMAND_BUFFER) +VK_DEFINE_HANDLE_CASTS(lvp_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE) +VK_DEFINE_HANDLE_CASTS(lvp_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE) +VK_DEFINE_HANDLE_CASTS(lvp_physical_device, vk.base, VkPhysicalDevice, + VK_OBJECT_TYPE_PHYSICAL_DEVICE) +VK_DEFINE_HANDLE_CASTS(lvp_queue, base, VkQueue, VK_OBJECT_TYPE_QUEUE) + + VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, base,VkCommandPool, + VK_OBJECT_TYPE_COMMAND_POOL) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer, base, VkBuffer, + VK_OBJECT_TYPE_BUFFER) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer_view, base, VkBufferView, + VK_OBJECT_TYPE_BUFFER_VIEW) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_pool, base, VkDescriptorPool, + VK_OBJECT_TYPE_DESCRIPTOR_POOL) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set, base, VkDescriptorSet, + VK_OBJECT_TYPE_DESCRIPTOR_SET) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_set_layout, base, VkDescriptorSetLayout, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_descriptor_update_template, base, VkDescriptorUpdateTemplate, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_device_memory, base, VkDeviceMemory, + VK_OBJECT_TYPE_DEVICE_MEMORY) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_event, base, VkEvent, VK_OBJECT_TYPE_EVENT) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_framebuffer, base, VkFramebuffer, + VK_OBJECT_TYPE_FRAMEBUFFER) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_image, base, VkImage, VK_OBJECT_TYPE_IMAGE) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_image_view, base, VkImageView, + VK_OBJECT_TYPE_IMAGE_VIEW); +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline_cache, base, VkPipelineCache, + VK_OBJECT_TYPE_PIPELINE_CACHE) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline, base, VkPipeline, + VK_OBJECT_TYPE_PIPELINE) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_pipeline_layout, base, VkPipelineLayout, + VK_OBJECT_TYPE_PIPELINE_LAYOUT) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_query_pool, base, VkQueryPool, + VK_OBJECT_TYPE_QUERY_POOL) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_render_pass, base, VkRenderPass, + VK_OBJECT_TYPE_RENDER_PASS) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_sampler, base, VkSampler, + VK_OBJECT_TYPE_SAMPLER) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_shader_module, base, VkShaderModule, + VK_OBJECT_TYPE_SHADER_MODULE) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_fence, base, VkFence, VK_OBJECT_TYPE_FENCE); +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_semaphore, base, VkSemaphore, + VK_OBJECT_TYPE_SEMAPHORE); + /* in same order and buffer building commands in spec. */ enum lvp_cmds { LVP_CMD_BIND_PIPELINE, diff --git a/src/gallium/frontends/lavapipe/lvp_wsi.h b/src/gallium/frontends/lavapipe/lvp_wsi.h index b3530e4c179..2532739439a 100644 --- a/src/gallium/frontends/lavapipe/lvp_wsi.h +++ b/src/gallium/frontends/lavapipe/lvp_wsi.h @@ -65,9 +65,6 @@ struct lvp_swapchain { uint32_t image_index); }; -LVP_DEFINE_NONDISP_HANDLE_CASTS(_VkIcdSurfaceBase, VkSurfaceKHR) -LVP_DEFINE_NONDISP_HANDLE_CASTS(lvp_swapchain, VkSwapchainKHR) - VkResult lvp_x11_init_wsi(struct lvp_instance *instance); void lvp_x11_finish_wsi(struct lvp_instance *instance); VkResult lvp_wl_init_wsi(struct lvp_instance *instance); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
