LINUX.ORG.RU

Непонятки с Intel HD 4000

 , , ,


1

0

Есть интеграшка Intel HD 4000 в процессоре на Ivy Bridge. Судя по новостям, она должна уже поддерживать OpenGL 4 и выше. Новость от 2017 года.

Но в 2021, если погрепать glxinfo, то видно вот такое сумасшествие:

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.0.2
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 21.0.2
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 21.0.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

Т.е. приложениям отдаётся версия 3.0, но Core Profile - это 4.2. Это как вообще?

Ладно, подменяем версию хотя бы до 3.3 через MESA_GL_VERSION_OVERRIDE. Одно приложение заработало один раз и крашнулось. Другое заработало, но начало испражняться ошибками в консоль и не отрисовало некоторые элементы.

Так для HD 4000 есть OpenGL 4 или нет? Или я не тот драйвер использую (сейчас используется i915)?

Вроде, есть. Но это я под виндой проверял.

tiinn ★★★★ ()
Ответ на: комментарий от LikeABoss

Чет как-то грустно. У младшего 4600 Haswell

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 21.1.3
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 21.1.3
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 21.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

Linux lenovo-pc 5.12.12-arch1-1 #1 SMP PREEMPT Fri, 18 Jun 2021 21:59:22 +0000 x86_64 GNU/Linux

xDShot ★★★★★ ()
Ответ на: комментарий от xDShot

Чет как-то грустно

Вот на Nvidia:

$ glxinfo | grep -i opengl
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 465.89
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 465.89
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 465.89
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

$ uname
MINGW64_NT-10.0-19043
fsb4000 ★★★★★ ()
Ответ на: комментарий от fsb4000
$ glxinfo | grep -i opengl
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 5700 (NAVI10, DRM 3.40.0, 5.12.12-169-tkg-pds, LLVM 12.0.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.1.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.1.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

Что сказать хотел?

xDShot ★★★★★ ()

Если кратко, у новых версий opengl есть два профиля работы: core и compatibility. Compatibility считается устаревшим, и его в mesa сделали только для драйверов amd, т.к. им больше всех надо. Ещё вроде для нуво что-то пилили, но допилили или нет я не знаю.

Khnazile ★★★★★ ()
Ответ на: комментарий от xDShot

Ничего. Просто тут тема где делятся выхлопом glxinfo.

fsb4000 ★★★★★ ()

У меня тоже хд4000. Насколько я знаю, под виндой опенгл4 работает, а под линуксом нет. Только опенгл3.

utanho ★★ ()
Ответ на: комментарий от LikeABoss

Да. Для этого требуется их переписать. Из Core профиля убрали тяжкое наследие OpenGL 1.x (ну, отчасти). По идее, должно считаться дурным тоном использовать совместимый профиль, но переделывать работающее никто не хочет.

Khnazile ★★★★★ ()
Ответ на: комментарий от LikeABoss

Потому что совместимость. Раньше не было никаких профилей. И если программа самостоятельно не просит core profile, ей дают максимальный доступный compatibility profile. Это чтобы у тебя программы из 90-х продолжали работать.

Khnazile ★★★★★ ()
Последнее исправление: Khnazile (всего исправлений: 1)

Полистай опции drirc, там была опция принудительно разрешающая compatibility для gl4, по крайней мере для gallium. Т.к для ивика поддерживается только classic реализация, возможно у тебя такого и нет. Тогда или копаться в сорцах или прокидывать с core профиля gl4 через virgl

      <option name="allow_higher_compat_version" type="bool" default="false">
        <description lang="en" text="Allow a higher compat profile (version 3.1+) for apps that request it"/>
      </option>

mittorn ★★★★★ ()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от LikeABoss

попробуй через zink, однако поддержка вулкана на ивике такая что вряд ли получится что-то выше 3.0

mittorn ★★★★★ ()

В Mesa 21.2 недавно добавили новый Gallium драйвер (Crocus) для старых интеграшек Intel (Gen4-Gen7), можешь его попробовать.

MESA_LOADER_DRIVER_OVERRIDE=crocus glxinfo -B
Kron4ek ★★★★★ ()
Последнее исправление: Kron4ek (всего исправлений: 2)

А в чем залючается проблема? То, что некотрые приложения падают, если подменить версию >3.0 – так это естественно, обратной совместимости нет.

Приложения, умеющие работать с opengl3.1+ (Blender, например) – успешно с ним работают.

i586 ★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей