diff options
-rw-r--r-- | src/render/backend/computecommand.cpp | 3 | ||||
-rw-r--r-- | tests/auto/render/computecommand/tst_computecommand.cpp | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/render/backend/computecommand.cpp b/src/render/backend/computecommand.cpp index b961ffc53..adf7a2099 100644 --- a/src/render/backend/computecommand.cpp +++ b/src/render/backend/computecommand.cpp @@ -81,7 +81,10 @@ void ComputeCommand::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firs if (!node) return; + const bool wasEnabled = isEnabled(); BackendNode::syncFromFrontEnd(frontEnd, firstTime); + if (wasEnabled != isEnabled()) + markDirty(AbstractRenderer::ComputeDirty); if (m_workGroups[0] != node->workGroupX()) { m_workGroups[0] = node->workGroupX(); diff --git a/tests/auto/render/computecommand/tst_computecommand.cpp b/tests/auto/render/computecommand/tst_computecommand.cpp index d6fa1d579..e583a9c61 100644 --- a/tests/auto/render/computecommand/tst_computecommand.cpp +++ b/tests/auto/render/computecommand/tst_computecommand.cpp @@ -141,6 +141,10 @@ private Q_SLOTS: backendComputeCommand.setRenderer(&renderer); simulateInitializationSync(&computeCommand, &backendComputeCommand); + // THEN + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); + { // WHEN const bool newValue = false; @@ -149,6 +153,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.isEnabled(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -158,6 +164,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.x(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -167,6 +175,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.y(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -176,6 +186,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.z(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -185,6 +197,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.runType(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -194,6 +208,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.frameCount(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } } |