summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2020-10-28 13:01:05 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-11-02 15:30:04 +0000
commitf9a9a6308c7f69ba38c04afc83496a373a1fe6a6 (patch)
tree36009bf1359203a634635e1a68b7cf3c4acef777
parenta786831f538de1142a4374928e73a4266abebb39 (diff)
Add dedicated Qt3D.Renderer.ShaderCache logging category
Might come in handy to troubleshoot issues with the ShaderBuilder caching of generated shaders. Change-Id: I2ccb68608857fa86ff20cb95047d38497df4b3ad Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 2f4a55e833c970b5bb72f2208ed7b2517324f5ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/render/materialsystem/shaderbuilder.cpp21
-rw-r--r--src/render/renderlogging.cpp1
-rw-r--r--src/render/renderlogging_p.h1
3 files changed, 17 insertions, 6 deletions
diff --git a/src/render/materialsystem/shaderbuilder.cpp b/src/render/materialsystem/shaderbuilder.cpp
index d7ccea7da..2b8938eb9 100644
--- a/src/render/materialsystem/shaderbuilder.cpp
+++ b/src/render/materialsystem/shaderbuilder.cpp
@@ -50,6 +50,7 @@
#include <Qt3DRender/private/qshadergraphloader_p.h>
#include <Qt3DRender/private/qshadergenerator_p.h>
#include <Qt3DRender/private/qshadernodesloader_p.h>
+#include <Qt3DRender/private/renderlogging_p.h>
#include <QFile>
#include <QFileInfo>
@@ -250,6 +251,7 @@ void ShaderBuilder::generateCode(QShaderProgram::ShaderType type)
// If that's the case it's faster to load the pre generated shader file
if (m_renderer && m_renderer->containsGeneratedShaderGraph(cacheKey)) {
+ qCDebug(ShaderCache) << "Using runtime cache for shader graph with key" << cacheKey;
updateShaderCodeAndClearDirty(m_renderer->cachedGeneratedShaderGraph(cacheKey));
return;
}
@@ -257,16 +259,19 @@ void ShaderBuilder::generateCode(QShaderProgram::ShaderType type)
// else check if a cachedShader file exists
if (cachedShaderFile.exists()) {
if (!cachedShaderFile.open(QFile::ReadOnly)) {
- qWarning() << "Couldn't open cached shader file:" << graphPath;
+ qCWarning(ShaderCache) << "Couldn't open cached shader file:" << graphPath;
// Too bad, we have to generate the shader below
} else {
// Use cached shader
+ qCDebug(ShaderCache) << "Using cached shader file" << cachedFilterPath;
const QByteArray shaderCode = cachedShaderFile.readAll();
updateShaderCodeAndClearDirty(shaderCode);
// Record to runtime cache
- if (m_renderer)
+ if (m_renderer) {
+ qCDebug(ShaderCache) << "Insert shader " << cacheKey << "into runtime cache";
m_renderer->insertGeneratedShaderGraph(cacheKey, shaderCode);
+ }
return;
}
}
@@ -305,14 +310,18 @@ void ShaderBuilder::generateCode(QShaderProgram::ShaderType type)
// Record to runtime cache
if (useCache || forceRegenerate) {
- if (m_renderer)
+ if (m_renderer) {
+ qCDebug(ShaderCache) << "Insert shader " << cacheKey << "into runtime cache";
m_renderer->insertGeneratedShaderGraph(cacheKey, deincludified);
+ }
// Record to file cache
- if (cachedShaderFile.open(QFile::WriteOnly))
+ if (cachedShaderFile.open(QFile::WriteOnly)) {
cachedShaderFile.write(deincludified);
- else
- qWarning() << "Unable to write cached shader file";
+ qCDebug(ShaderCache) << "Saving cached shader file" << cachedFilterPath;
+ } else {
+ qCWarning(ShaderCache) << "Unable to write cached shader file";
+ }
}
}
diff --git a/src/render/renderlogging.cpp b/src/render/renderlogging.cpp
index 2eb1835e6..fef284c3a 100644
--- a/src/render/renderlogging.cpp
+++ b/src/render/renderlogging.cpp
@@ -57,6 +57,7 @@ Q_LOGGING_CATEGORY(Memory, "Qt3D.Renderer.Memory", QtWarningMsg)
Q_LOGGING_CATEGORY(Shaders, "Qt3D.Renderer.Shaders", QtWarningMsg)
Q_LOGGING_CATEGORY(RenderStates, "Qt3D.Renderer.RenderStates", QtWarningMsg)
Q_LOGGING_CATEGORY(VSyncAdvanceService, "Qt3D.Renderer.VsyncAdvanceService", QtWarningMsg)
+Q_LOGGING_CATEGORY(ShaderCache, "Qt3D.Renderer.ShaderCache", QtWarningMsg)
} // namespace Render
diff --git a/src/render/renderlogging_p.h b/src/render/renderlogging_p.h
index 00ae572f4..54f304327 100644
--- a/src/render/renderlogging_p.h
+++ b/src/render/renderlogging_p.h
@@ -71,6 +71,7 @@ Q_DECLARE_LOGGING_CATEGORY(Memory)
Q_DECLARE_LOGGING_CATEGORY(Shaders)
Q_DECLARE_LOGGING_CATEGORY(RenderStates)
Q_DECLARE_LOGGING_CATEGORY(VSyncAdvanceService)
+Q_DECLARE_LOGGING_CATEGORY(ShaderCache)
} // namespace Render