summaryrefslogtreecommitdiffstats
path: root/src/gui/rhi/qrhimetal.mm
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2020-10-11 22:02:43 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2020-10-12 07:55:37 +0200
commit2189e0f2fc2aadf84ed53a7ae6210e2bbe04b45e (patch)
tree5cdc23693256752f6b7ad624efa1d270fd7bd247 /src/gui/rhi/qrhimetal.mm
parente7c456d3395826a427b863c0cfc8c60aa4ab7d6c (diff)
rhi: Make the new direct buffer update available for non-uniform buffers
The original restriction to UniformBuffer was due to the GL backend where there is no GL buffer object for QRhiBuffers with usage UniformBuffer. However, we can still implement this for cases when there is a true GL buffer object underneath. With other backends it should all work as-is already. This becomes useful when one has buffers with usage Vertex that need full updates every frame. (f.ex. instance data) Unfortunately this involves renaming the function. But while at it, add an autotest case as well. Change-Id: Iff59e4509a8bae06654cc92fe8428bd79eb012fb Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/gui/rhi/qrhimetal.mm')
-rw-r--r--src/gui/rhi/qrhimetal.mm8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm
index 5bbcd50047..9108ad825f 100644
--- a/src/gui/rhi/qrhimetal.mm
+++ b/src/gui/rhi/qrhimetal.mm
@@ -2254,14 +2254,14 @@ QRhiBuffer::NativeBuffer QMetalBuffer::nativeBuffer()
return { { &d->buf[0] }, 1 };
}
-char *QMetalBuffer::beginFullDynamicUniformBufferUpdateForCurrentFrame()
+char *QMetalBuffer::beginFullDynamicBufferUpdateForCurrentFrame()
{
// Shortcut the entire buffer update mechanism and allow the client to do
// the host writes directly to the buffer. This will lead to unexpected
// results when combined with QRhiResourceUpdateBatch-based updates for the
- // buffer, but provides a fast path for uniform buffers that have all their
+ // buffer, but provides a fast path for dynamic buffers that have all their
// content changed in every frame.
- Q_ASSERT(m_type == Dynamic && m_usage.testFlag(UniformBuffer));
+ Q_ASSERT(m_type == Dynamic);
QRHI_RES_RHI(QRhiMetal);
Q_ASSERT(rhiD->inFrame);
const int slot = rhiD->currentFrameSlot;
@@ -2269,7 +2269,7 @@ char *QMetalBuffer::beginFullDynamicUniformBufferUpdateForCurrentFrame()
return static_cast<char *>(p);
}
-void QMetalBuffer::endFullDynamicUniformBufferUpdateForCurrentFrame()
+void QMetalBuffer::endFullDynamicBufferUpdateForCurrentFrame()
{
#ifdef Q_OS_MACOS
if (d->managed) {