aboutsummaryrefslogtreecommitdiff
path: root/src/vulkan/engine_vulkan.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/vulkan/engine_vulkan.cc')
-rw-r--r--src/vulkan/engine_vulkan.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/vulkan/engine_vulkan.cc b/src/vulkan/engine_vulkan.cc
index dc10f01..b0b6ae2 100644
--- a/src/vulkan/engine_vulkan.cc
+++ b/src/vulkan/engine_vulkan.cc
@@ -191,16 +191,15 @@ Result EngineVulkan::CreatePipeline(amber::Pipeline* pipeline) {
info.vk_pipeline = std::move(vk_pipeline);
for (const auto& vtex_info : pipeline->GetVertexBuffers()) {
- auto& fmt = vtex_info.buffer->IsFormatBuffer()
- ? vtex_info.buffer->AsFormatBuffer()->GetFormat()
- : Format();
+ auto fmt =
+ vtex_info.buffer->IsFormatBuffer()
+ ? vtex_info.buffer->AsFormatBuffer()->GetFormat()
+ : vtex_info.buffer->AsDataBuffer()->GetDatumType().AsFormat();
+
if (!device_->IsFormatSupportedByPhysicalDevice(fmt, vtex_info.buffer))
return Result("Vulkan vertex buffer format is not supported");
-
if (!info.vertex_buffer)
info.vertex_buffer = MakeUnique<VertexBuffer>(device_.get());
- if (!vtex_info.buffer->IsFormatBuffer())
- return Result("Vulkan vertex buffer is not a format buffer");
info.vertex_buffer->SetData(static_cast<uint8_t>(vtex_info.location),
vtex_info.buffer->AsFormatBuffer());