radv: rework and rename radv_make_buffer_descriptor()

Pass the VA directly and rename to radv_make_texel_buffer_descriptor().
This helper will be re-used for future work.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18750>
This commit is contained in:
Samuel Pitoiset
2022-09-21 13:35:42 +02:00
committed by Marge Bot
parent 81d7a6bdff
commit 31dc15b977
2 changed files with 10 additions and 7 deletions
+6 -7
View File
@@ -704,14 +704,12 @@ radv_compose_swizzle(const struct util_format_description *desc, const VkCompone
}
}
static void
radv_make_buffer_descriptor(struct radv_device *device, struct radv_buffer *buffer,
VkFormat vk_format, unsigned offset, unsigned range, uint32_t *state)
void
radv_make_texel_buffer_descriptor(struct radv_device *device, uint64_t va, VkFormat vk_format,
unsigned offset, unsigned range, uint32_t *state)
{
const struct util_format_description *desc;
unsigned stride;
uint64_t gpu_address = radv_buffer_get_va(buffer->bo);
uint64_t va = gpu_address + buffer->offset;
unsigned num_format, data_format;
int first_non_void;
enum pipe_swizzle swizzle[4];
@@ -2548,14 +2546,15 @@ radv_buffer_view_init(struct radv_buffer_view *view, struct radv_device *device,
const VkBufferViewCreateInfo *pCreateInfo)
{
RADV_FROM_HANDLE(radv_buffer, buffer, pCreateInfo->buffer);
uint64_t va = radv_buffer_get_va(buffer->bo) + buffer->offset;
vk_object_base_init(&device->vk, &view->base, VK_OBJECT_TYPE_BUFFER_VIEW);
view->bo = buffer->bo;
view->range = vk_buffer_range(&buffer->vk, pCreateInfo->offset, pCreateInfo->range);
radv_make_buffer_descriptor(device, buffer, pCreateInfo->format, pCreateInfo->offset, view->range,
view->state);
radv_make_texel_buffer_descriptor(device, va, pCreateInfo->format, pCreateInfo->offset,
view->range, view->state);
}
void
+4
View File
@@ -2722,6 +2722,10 @@ void radv_meta_push_descriptor_set(struct radv_cmd_buffer *cmd_buffer,
uint32_t set, uint32_t descriptorWriteCount,
const VkWriteDescriptorSet *pDescriptorWrites);
void radv_make_texel_buffer_descriptor(struct radv_device *device, uint64_t va,
VkFormat vk_format, unsigned offset, unsigned range,
uint32_t *state);
uint32_t radv_init_dcc(struct radv_cmd_buffer *cmd_buffer, struct radv_image *image,
const VkImageSubresourceRange *range, uint32_t value);