Войти
ПрограммированиеФорумОбщее

Почему у меня нету gl_InstanceID?

#0
22:59, 9 июня 2019

Собственно, компилятор выдает, мол нету gl_InstanceID. Я конечно понимаю, у меня дрова древние, но у меня ведь работает расширение GL_ARB_draw_instanced (Еще что удивительно. что при относительно низкой версии у меня работает большинство функций как раз через расширения). Я бы не стал это тут задавать, но пока я искал, почему это может не работать, я наткнулся на это https://bugs.freedesktop.org/show_bug.cgi?id=35425. У меня вот тоже Mesa. Я конечно не эксперт, но может ли быть, что если у меня нету этого злополучного EXT_gpu_shader4(а у меня его кстати и нету только какой - то GL_EXT_gpu_shader5 , в описание ченжлога которого нет ни слова о gl_InstanceID), то и инстансинга мне не видать?

Вот такой вывод дает компилятор:

+ Показать

Шейдер


#1
2:23, 10 июня 2019

Так собирается:
http://shader-playground.timjones.io/8d373ad9055d722e732e939506757b19
gl_InstanceID нужно было скастить в uint и расширение по идее уже должно быть в core профиле 3.3

#2
10:22, 10 июня 2019

Даже так не собирается. Я вот чекал зависимости GL_ARB_draw_instanced, и там написано мол надо  EXT_gpu_shader4 и еще что то, что у меня есть. И это немного странно, ведь если у меня реализован GL_ARB_draw_instanced, разве это не значит, что и все его зависимости должны быть так же реализованы?
+ я проверял в принципе свою видеокарту на возможность поддержки этой ерунды https://feedback.wildfiregames.com/report/opengl/device/Radeon%20HD%206400M На этом сайте написано, что моя видеокарта может в инстансинг. Может быть дело в мезе?
Вот кстати полный вывод glxinfo:
Вывод glxinfo

#3
10:36, 10 июня 2019

Examnes
> и там написано мол надо EXT_gpu_shader4

Там если вчитаться, то дело в другом - что когда то оно должно было называться gl_InstanceIDARB, но потом со временем реализации так часто (конкретно из-за EXT_gpu_shader4) стали содержать просто gl_InstanceID, что спеки сейчас говорят, что должны поддерживаться оба названия: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_draw_instanced.txt

  (1) Should instanceID be provided by this extension, or should it be
      provided by the core OpenGL 3.0 (similarly to how it was done with
      EXT_gpu_shader4)?
     
        Resolved: Provide both instanceID and instanceIDARB.  The original
        intention was that instanceID and other language changes should be
        provided by this extension and properly decorated with the ARB suffix.
        However, many vendors shipped implementations that supported both, and
        some applications came to depend on this out-of-spec behavior.  It
        appears that the EXT_gpu_shader4 incorrectly neglected to specify the
        suffix EXT suffix for gl_InstanceID.

Можешь ради эксперимента попробовать изменить на gl_InstanceIDARB, если дрова какие то совсем уж дремучие.

#4
19:27, 10 июня 2019

Ага, ха, дело то конечно в дровах, но скорее не в том, что их нет для новой версии, а в том, что версия mesa 3d для ubuntu не поддерживает на моей видеокарте opengl версии выше 3.1
Мне не слишком это принципиально, но нет ли на ubuntu чего-то кроме mesa?

PS: а вот на windows проприертатными дровами я могу даже в opengl 4.2 и там у меня все работает!

#5
19:57, 10 июня 2019

Examnes
> но нет ли на ubuntu чего-то кроме mesa?
Есть драйвер amdgpu, но он поддерживает карты gcn и выше. Я хз, какая у тебя архитектура.

#6
2:39, 11 июня 2019

Не знаю как сейчас, но я ещё лет 15 назад понял, что линукс без нвидии это отсутствие аппаратного ускорения в опенгл. С тех пор возникла привычка покупать видюхи только нвидии а принтеры только hp, чтобы быть линуксбоем без слез.

#7
12:45, 11 июня 2019

=A=L=X=
> что линукс без нвидии это отсутствие аппаратного ускорения в опенгл.
А я, наоборот, отказался от нвидии потому, что мне надоело бороться с ее глюками.

Проблемы с vsync и скоростью вращения вентиляторов на двухмониторных конфигурациях.

Теперь сижу на интеле, благо в игры особо не играю:
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
#8
17:40, 11 июня 2019

}:+()___ [Smile]
И Интел, и Нвидиа карты хорошие, АМД дерьмо... не осиливает расшаривание контекста... Была у меня один раз ATI, потом скоропостижненько проапгрейдился на Нвидиа и забыл это уёбище :)

#9
20:39, 11 июня 2019

Daniil Petrov
> Нвидиа карты хорошие
Нвидиа местами глючные попадаются, видимо это последние выпуски такие с 2010. Но я пока с них не слез.

#10
(Правка: 22:42) 22:41, 11 июня 2019

foxes
Я единственное на гигабайтовской Нвидии пролетел, сгорела, мамка ихняя ещё стоит, тоже то ещё дерьмо, теперь Гигабайт у меня в чёрном списке и буду только сам компьютер собирать... скорее всего только Асус...

ПрограммированиеФорумОбщее