pvr: Use common vk_buffer implementation.

Signed-off-by: Rajnesh Kanwal <rajnesh.kanwal@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17719>
This commit is contained in:
Rajnesh Kanwal 2022-07-04 18:00:18 +01:00
parent 405a407d42
commit 8ef42c25a6
4 changed files with 14 additions and 16 deletions

View File

@ -2017,7 +2017,7 @@ void pvr_CmdBindIndexBuffer(VkCommandBuffer commandBuffer,
PVR_FROM_HANDLE(pvr_buffer, index_buffer, buffer);
struct pvr_cmd_buffer_state *const state = &cmd_buffer->state;
assert(offset < index_buffer->size);
assert(offset < index_buffer->vk.size);
assert(indexType == VK_INDEX_TYPE_UINT32 ||
indexType == VK_INDEX_TYPE_UINT16);

View File

@ -1355,12 +1355,12 @@ pvr_descriptor_update_buffer_info(const struct pvr_device *device,
const pvr_dev_addr_t addr =
PVR_DEV_ADDR_OFFSET(buffer->dev_addr, buffer_info->offset);
uint32_t range = (buffer_info->range == VK_WHOLE_SIZE)
? (buffer->size - buffer_info->offset)
? (buffer->vk.size - buffer_info->offset)
: (buffer_info->range);
set->descriptors[desc_idx].type = write_set->descriptorType;
set->descriptors[desc_idx].buffer_dev_addr = addr;
set->descriptors[desc_idx].buffer_create_info_size = buffer->size;
set->descriptors[desc_idx].buffer_create_info_size = buffer->vk.size;
set->descriptors[desc_idx].buffer_desc_range = range;
if (is_dynamic)

View File

@ -1755,7 +1755,7 @@ VkResult pvr_BindBufferMemory2(VkDevice _device,
VkResult result = pvr_bind_memory(device,
mem,
pBindInfos[i].memoryOffset,
buffer->size,
buffer->vk.size,
buffer->alignment,
&buffer->vma,
&buffer->dev_addr);
@ -1834,14 +1834,11 @@ VkResult pvr_CreateBuffer(VkDevice _device,
if (pCreateInfo->size >= ULONG_MAX - alignment)
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
buffer = vk_object_zalloc(&device->vk,
pAllocator,
sizeof(*buffer),
VK_OBJECT_TYPE_BUFFER);
buffer =
vk_buffer_create(&device->vk, pCreateInfo, pAllocator, sizeof(*buffer));
if (!buffer)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
buffer->size = pCreateInfo->size;
buffer->alignment = alignment;
*pBuffer = pvr_buffer_to_handle(buffer);
@ -1862,7 +1859,7 @@ void pvr_DestroyBuffer(VkDevice _device,
if (buffer->vma)
pvr_unbind_memory(device, buffer->vma);
vk_object_free(&device->vk, pAllocator, buffer);
vk_buffer_destroy(&device->vk, pAllocator, &buffer->vk);
}
VkResult pvr_gpu_upload(struct pvr_device *device,
@ -2434,7 +2431,7 @@ void pvr_GetBufferMemoryRequirements2(
pMemoryRequirements->memoryRequirements.alignment = buffer->alignment;
pMemoryRequirements->memoryRequirements.size =
ALIGN_POT(buffer->size, buffer->alignment);
ALIGN_POT(buffer->vk.size, buffer->alignment);
}
void pvr_GetImageMemoryRequirements2(VkDevice _device,

View File

@ -53,6 +53,7 @@
#include "util/log.h"
#include "util/macros.h"
#include "util/u_dynarray.h"
#include "vk_buffer.h"
#include "vk_command_buffer.h"
#include "vk_device.h"
#include "vk_image.h"
@ -322,10 +323,7 @@ struct pvr_image {
};
struct pvr_buffer {
struct vk_object_base base;
/* Saved information from pCreateInfo */
VkDeviceSize size;
struct vk_buffer vk;
/* Derived and other state */
uint32_t alignment;
@ -1361,7 +1359,10 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_pipeline_cache,
base,
VkPipelineCache,
VK_OBJECT_TYPE_PIPELINE_CACHE)
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_buffer, base, VkBuffer, VK_OBJECT_TYPE_BUFFER)
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_buffer,
vk.base,
VkBuffer,
VK_OBJECT_TYPE_BUFFER)
VK_DEFINE_NONDISP_HANDLE_CASTS(pvr_image_view,
vk.base,
VkImageView,