У меня Ubuntu 20.04 и Qt6.4.2. Когда я пытаюсь запустить пример Qt3D Основные формы, он показывает ошибку:
Qt3D.Renderer.RHI.Backend: Initializing RHI with OpenGL backend
No GLSL shader code found (versions tried: QList(130, 120) ) in baked shader QShader(stage=0 shaders=QList(ShaderKey(1 Version(300 QFlags()) 0)) desc.isValid=true)
No GLSL shader code found (versions tried: QList(130, 120) ) in baked shader QShader(stage=4 shaders=QList(ShaderKey(1 Version(300 QFlags()) 0)) desc.isValid=true)
No GLSL shader code found (versions tried: QList(130, 120) ) in baked shader QShader(stage=0 shaders=QList(ShaderKey(1 Version(300 QFlags()) 0)) desc.isValid=true)
Qt3D.Renderer.RHI.Backend: Failed to build graphics pipeline: Creation Failed
Что это значит?
ОБНОВЛЕНО:
Вывод «glxinfo -B | меньше»:
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel Open Source Technology Center (0x8086)
Device: Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2) (0x166)
Version: 21.2.6
Accelerated: yes
Video memory: 1536MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.2
Max compat profile version: 3.0
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 21.2.6
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 3.0 Mesa 21.2.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 21.2.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
Какая у вас видеокарта и версии OpenGL? У вас есть графическая карта? пожалуйста, проверьте glxinfo -B | less
@Parisa.HR Я добавил вывод этой команды в свое сообщение.
Я предполагаю, что они изменили один из основных 3D-классов в qt 6.4.0, и для этого требуется видеокарта.
Прежде всего, я тестирую этот пример в Qt 6.4.0
и Qt 6.2.3
.
и для этого теста я использую графический процессор NVIDIA и свой Intel.
Это моя конфигурация Intel
и когда я запускаю этот пример в Qt 6.4.0
, я получаю ту же ошибку, что и вы.
Но когда я меняю свой GPU на NVIDIA, он работает правильно!
Я тестирую эту программу с Qt 6.2.3
и графическим процессором Intel, и она работает и работает правильно!
Спасибо. Меня устраивает. Я добавил DRI_PRIME=1 в /etc/environment. И это помогает мне переключить GPU на AMD.
идите и посмотрите исходный код qt (у вас есть несколько строк для поиска).