diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-09-03 11:59:24 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-09-09 20:42:38 +0200 |
commit | 7af6649e884f4ba9fa3fde0333090b93f62a13c0 (patch) | |
tree | 50c8123a114b6f29a949c910751ce999e9bc7c81 /src/gui/rhi/qrhivulkan.cpp | |
parent | 89d0a03c067b42155b1a2d310f8514f595abfd61 (diff) |
rhi: gl, metal, d3d: Reuse shader objects when source is the same
Now that Qt Quick's batch renderer misses one level of shader source
caching due to the nature of pipeline state objects, it can be useful
to keep and reuse shader objects when the hash of the source code
matches.
The goal here is to allow Qt Quick to be on par with what the direct
OpenGL path has when it comes to caching shader sources and compilation
results. The program binary disk cache is not in scope in this patch.
Also adds QRhi::releaseCachedResources(), similarly to what the scenegraph
has. This can be called to clear caches such as the shader object
cache we keep here.
Change-Id: Ie3d81d823f61fa65ec814439e882c498f7774d43
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/gui/rhi/qrhivulkan.cpp')
-rw-r--r-- | src/gui/rhi/qrhivulkan.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index dfc85fb853..4f550c6a90 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -3744,6 +3744,11 @@ void QRhiVulkan::makeThreadLocalNativeContextCurrent() // nothing to do here } +void QRhiVulkan::releaseCachedResources() +{ + // nothing to do here +} + QRhiRenderBuffer *QRhiVulkan::createRenderBuffer(QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags) { |