Details
-
Bug
-
Resolution: Done
-
P4: Low
-
5.5.1, 5.12.3
-
Windows 7 x64, VS 2013
-
abab792c4f0977a4599e5b7b2e97a5ee586fe388 (qt/qtmultimedia/dev) 1c9da622dc7e8ac6fa42f5263a5410098073b662 (qt/tqtc-qtmultimedia/tqtc/lts-5.15)
Description
Just came across a bug, while trying to use a 'Video' Qml type in my QML offscreen renderer. Error description was 'Failed to find shader biplanaryuvvideo_core.frag' and 'Failed to find shader biplanaryuvvideo_core.vert'.
Turns out that rendering QML to a QSurfaceFormat::CoreProfile always appends '_core' to the shader source names, and no such shaders are present in 'qtmultimedia/src/qtmultimediaquicktools/shaders'. Check QSGShaderSourceBuilder::appendSourceFile(const QString &fileName)
which in turn calls resolveShaderPath(fileName) that does the appending of '_core'. IMHO proper solution would be to add the *_core files to the shaders in 'qtmultimedia/src/qtmultimediaquicktools/shaders'.
Until a fix to the issue, using QSurfaceFormat::CompatibilityProfile profile, solves the issue.
Attachments
Issue Links
- is duplicated by
-
QTBUG-70967 Enabling the OpenGL core profile can result in broken web video due to invalid shaders
- Closed
- relates to
-
QTBUG-62694 Setting default surface format with 3.2 core profile breaks video decoding with a custom QAbstractVideoSurface on macOS
- Closed