summaryrefslogtreecommitdiffstats
path: root/src/plugins/renderers/rhi/io/rhibuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/renderers/rhi/io/rhibuffer.cpp')
-rw-r--r--src/plugins/renderers/rhi/io/rhibuffer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/plugins/renderers/rhi/io/rhibuffer.cpp b/src/plugins/renderers/rhi/io/rhibuffer.cpp
index 33818e69e..f20d3c4d1 100644
--- a/src/plugins/renderers/rhi/io/rhibuffer.cpp
+++ b/src/plugins/renderers/rhi/io/rhibuffer.cpp
@@ -53,8 +53,13 @@ QRhiBuffer::UsageFlags bufferTypeToRhi(RHIBuffer::Type t)
{
QRhiBuffer::UsageFlags flag{};
- if (t & RHIBuffer::Type::ArrayBuffer)
+ if (t & RHIBuffer::Type::ArrayBuffer ||
+ t & RHIBuffer::Type::ShaderStorageBuffer) {
+ // We have no easy way to know if a SSBO is used as a VertexBuffer
+ // and vice versa, so we set both flags when either type is requested
+ flag |= QRhiBuffer::StorageBuffer;
flag |= QRhiBuffer::VertexBuffer;
+ }
if (t & RHIBuffer::Type::IndexBuffer)
flag |= QRhiBuffer::IndexBuffer;
@@ -62,9 +67,6 @@ QRhiBuffer::UsageFlags bufferTypeToRhi(RHIBuffer::Type t)
if (t & RHIBuffer::Type::UniformBuffer)
flag |= QRhiBuffer::UniformBuffer;
- if (t & RHIBuffer::Type::ShaderStorageBuffer)
- flag |= QRhiBuffer::StorageBuffer;
-
return flag;
}
}