summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPhilip Schuchardt <vpicaver@gmail.com>2023-11-29 18:27:39 -0600
committerAurélien Brooke <aurelien@bahiasoft.fr>2024-01-16 09:14:17 +0000
commit7dd1fe963d1b27d880f302ccd09e5b71447bd899 (patch)
tree581ee35c63b9092aad58ff3cb926af1c160e90fc /src
parent02fd5255ba03c1f1a5172ec2c9cc917d2e738079 (diff)
Enable uniform buffer for RHI compute shaders
This enables uniform buffers for all rendering stages including the compute stage. [ChangeLog] Enable uniform buffer for RHI compute shaders Fixes: QTBUG-119659 Pick-to: 6.6 6.7 Change-Id: I7c83bc9bf33cef4b925b52b7f4d6cde79e7e62e3 Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/renderers/rhi/renderer/pipelineuboset.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/plugins/renderers/rhi/renderer/pipelineuboset.cpp b/src/plugins/renderers/rhi/renderer/pipelineuboset.cpp
index b9c09125d..8cffaac4f 100644
--- a/src/plugins/renderers/rhi/renderer/pipelineuboset.cpp
+++ b/src/plugins/renderers/rhi/renderer/pipelineuboset.cpp
@@ -243,7 +243,7 @@ std::vector<QRhiShaderResourceBinding> PipelineUBOSet::resourceBindings(const Re
{
RHITextureManager *textureManager = m_resourceManagers->rhiTextureManager();
RHIShader *shader = command.m_rhiShader;
- const QRhiShaderResourceBinding::StageFlags stages = QRhiShaderResourceBinding::VertexStage|QRhiShaderResourceBinding::FragmentStage;
+ const QRhiShaderResourceBinding::StageFlags stages = QRhiShaderResourceBinding::ComputeStage|QRhiShaderResourceBinding::VertexStage|QRhiShaderResourceBinding::FragmentStage;
std::vector<QRhiShaderResourceBinding> bindings = {
QRhiShaderResourceBinding::uniformBuffer(0, stages, m_rvUBO.buffer->rhiBuffer()),
};
@@ -323,9 +323,10 @@ std::vector<QRhiShaderResourceBinding> PipelineUBOSet::resourceBindings(const Re
for (const BlockToSSBO &ssbo : command.m_parameterPack.shaderStorageBuffers()) {
RHIBuffer *buffer = m_resourceManagers->rhiBufferManager()->lookupResource(ssbo.m_bufferID);
if (buffer) {
+ Q_ASSERT(stages & QRhiShaderResourceBinding::ComputeStage);
bindings.push_back(QRhiShaderResourceBinding::bufferLoadStore(
ssbo.m_bindingIndex,
- stages|QRhiShaderResourceBinding::ComputeStage,
+ stages,
buffer->rhiBuffer()));
}
}