mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
lavapipe: move to the common casting interfaces
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9550>
This commit is contained in:
parent
bd623d6cd6
commit
8475ab7f92
2 changed files with 53 additions and 61 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue