[Vulkan] BufferCache: Add VertexBuffer struct
This commit is contained in:
parent
db53559611
commit
776b5eff36
|
@ -284,13 +284,6 @@ std::pair<VkDeviceSize, VkDeviceSize> BufferCache::UploadConstantRegisters(
|
||||||
std::pair<VkBuffer, VkDeviceSize> BufferCache::UploadIndexBuffer(
|
std::pair<VkBuffer, VkDeviceSize> BufferCache::UploadIndexBuffer(
|
||||||
VkCommandBuffer command_buffer, uint32_t source_addr,
|
VkCommandBuffer command_buffer, uint32_t source_addr,
|
||||||
uint32_t source_length, IndexFormat format, VkFence fence) {
|
uint32_t source_length, IndexFormat format, VkFence fence) {
|
||||||
/*
|
|
||||||
auto offset = FindCachedTransientData(source_addr, source_length);
|
|
||||||
if (offset != VK_WHOLE_SIZE) {
|
|
||||||
return {transient_buffer_->gpu_buffer(), offset};
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Allocate space in the buffer for our data.
|
// Allocate space in the buffer for our data.
|
||||||
auto offset = AllocateTransientData(source_length, fence);
|
auto offset = AllocateTransientData(source_length, fence);
|
||||||
if (offset == VK_WHOLE_SIZE) {
|
if (offset == VK_WHOLE_SIZE) {
|
||||||
|
@ -331,7 +324,6 @@ std::pair<VkBuffer, VkDeviceSize> BufferCache::UploadIndexBuffer(
|
||||||
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0, 0, nullptr, 1,
|
VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0, 0, nullptr, 1,
|
||||||
&barrier, 0, nullptr);
|
&barrier, 0, nullptr);
|
||||||
|
|
||||||
// CacheTransientData(source_addr, source_length, offset);
|
|
||||||
return {transient_buffer_->gpu_buffer(), offset};
|
return {transient_buffer_->gpu_buffer(), offset};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,15 @@ class BufferCache {
|
||||||
void Scavenge();
|
void Scavenge();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// This represents an uploaded vertex buffer.
|
||||||
|
struct VertexBuffer {
|
||||||
|
uint32_t guest_address;
|
||||||
|
uint32_t size;
|
||||||
|
|
||||||
|
VmaAllocation alloc;
|
||||||
|
VmaAllocationInfo alloc_info;
|
||||||
|
};
|
||||||
|
|
||||||
// Allocates a block of memory in the transient buffer.
|
// Allocates a block of memory in the transient buffer.
|
||||||
// When memory is not available fences are checked and space is reclaimed.
|
// When memory is not available fences are checked and space is reclaimed.
|
||||||
// Returns VK_WHOLE_SIZE if requested amount of memory is not available.
|
// Returns VK_WHOLE_SIZE if requested amount of memory is not available.
|
||||||
|
|
Loading…
Reference in New Issue