fix 0 size vulkan index buffers

This commit is contained in:
ohyzha
2024-07-22 13:04:47 +03:00
parent 6ed4136393
commit fd9697aac6
2 changed files with 4 additions and 3 deletions

View File

@@ -152,8 +152,9 @@ namespace OpenVulkano::Vulkan
{ {
ManagedBuffer::Ptr vertexBuffer = ManagedBuffer::Ptr vertexBuffer =
CreateDeviceOnlyBufferWithData(sizeof(Vertex) * geometry->GetVertexCount(), vk::BufferUsageFlagBits::eVertexBuffer, geometry->GetVertices()); CreateDeviceOnlyBufferWithData(sizeof(Vertex) * geometry->GetVertexCount(), vk::BufferUsageFlagBits::eVertexBuffer, geometry->GetVertices());
ManagedBuffer::Ptr indexBuffer = ManagedBuffer::Ptr indexBuffer;
CreateDeviceOnlyBufferWithData(Utils::EnumAsInt(geometry->indexType) * geometry->GetIndexCount(), vk::BufferUsageFlagBits::eIndexBuffer, geometry->GetIndices()); if (geometry->GetIndexCount())
indexBuffer = CreateDeviceOnlyBufferWithData(Utils::EnumAsInt(geometry->indexType) * geometry->GetIndexCount(), vk::BufferUsageFlagBits::eIndexBuffer, geometry->GetIndices());
VulkanGeometry* vkGeo = new VulkanGeometry(geometry, vertexBuffer, indexBuffer); VulkanGeometry* vkGeo = new VulkanGeometry(geometry, vertexBuffer, indexBuffer);
geometries.emplace_back(vkGeo); geometries.emplace_back(vkGeo);
geometry->renderGeo = vkGeo; geometry->renderGeo = vkGeo;

View File

@@ -47,7 +47,7 @@ namespace OpenVulkano::Vulkan
void RecordBind(vk::CommandBuffer& cmdBuffer) void RecordBind(vk::CommandBuffer& cmdBuffer)
{ {
cmdBuffer.bindVertexBuffers(0, 1, &m_vertexBuffer->buffer, &m_offsets); cmdBuffer.bindVertexBuffers(0, 1, &m_vertexBuffer->buffer, &m_offsets);
cmdBuffer.bindIndexBuffer(m_indexBuffer->buffer, 0, m_indexType); if (m_indexBuffer) { cmdBuffer.bindIndexBuffer(m_indexBuffer->buffer, 0, m_indexType); }
} }
void RecordDraw(vk::CommandBuffer& cmdBuffer) void RecordDraw(vk::CommandBuffer& cmdBuffer)