v3dv: Add a create_image_view helper for internal views

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16376>
This commit is contained in:
Jason Ekstrand
2022-03-25 17:57:37 -05:00
committed by Marge Bot
parent 8510d5daa3
commit f5e1b06622
3 changed files with 34 additions and 12 deletions
+24 -6
View File
@@ -491,13 +491,12 @@ v3dv_image_type_to_view_type(VkImageType type)
}
}
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_CreateImageView(VkDevice _device,
const VkImageViewCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkImageView *pView)
static VkResult
create_image_view(struct v3dv_device *device,
const VkImageViewCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkImageView *pView)
{
V3DV_FROM_HANDLE(v3dv_device, device, _device);
V3DV_FROM_HANDLE(v3dv_image, image, pCreateInfo->image);
struct v3dv_image_view *iview;
@@ -562,6 +561,25 @@ v3dv_CreateImageView(VkDevice _device,
return VK_SUCCESS;
}
VkResult
v3dv_create_image_view(struct v3dv_device *device,
const VkImageViewCreateInfo *pCreateInfo,
VkImageView *pView)
{
return create_image_view(device, pCreateInfo, NULL, pView);
}
VKAPI_ATTR VkResult VKAPI_CALL
v3dv_CreateImageView(VkDevice _device,
const VkImageViewCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkImageView *pView)
{
V3DV_FROM_HANDLE(v3dv_device, device, _device);
return create_image_view(device, pCreateInfo, pAllocator, pView);
}
VKAPI_ATTR void VKAPI_CALL
v3dv_DestroyImageView(VkDevice _device,
VkImageView imageView,
+6 -6
View File
@@ -2114,8 +2114,8 @@ texel_buffer_shader_copy(struct v3dv_cmd_buffer *cmd_buffer,
},
};
VkImageView image_view;
result = v3dv_CreateImageView(_device, &image_view_info,
&cmd_buffer->device->vk.alloc, &image_view);
result = v3dv_create_image_view(cmd_buffer->device,
&image_view_info, &image_view);
if (result != VK_SUCCESS)
goto fail;
@@ -4071,8 +4071,8 @@ blit_shader(struct v3dv_cmd_buffer *cmd_buffer,
},
};
VkImageView dst_image_view;
result = v3dv_CreateImageView(_device, &dst_image_view_info,
&device->vk.alloc, &dst_image_view);
result = v3dv_create_image_view(device, &dst_image_view_info,
&dst_image_view);
if (result != VK_SUCCESS)
goto fail;
@@ -4131,8 +4131,8 @@ blit_shader(struct v3dv_cmd_buffer *cmd_buffer,
},
};
VkImageView src_image_view;
result = v3dv_CreateImageView(_device, &src_image_view_info,
&device->vk.alloc, &src_image_view);
result = v3dv_create_image_view(device, &src_image_view_info,
&src_image_view);
if (result != VK_SUCCESS)
goto fail;
+4
View File
@@ -633,6 +633,10 @@ struct v3dv_image_view {
uint8_t texture_shader_state[2][V3DV_TEXTURE_SHADER_STATE_LENGTH];
};
VkResult v3dv_create_image_view(struct v3dv_device *device,
const VkImageViewCreateInfo *pCreateInfo,
VkImageView *pView);
uint32_t v3dv_layer_offset(const struct v3dv_image *image, uint32_t level, uint32_t layer);
struct v3dv_buffer {