LINUX.ORG.RU

Версия opengl

 


0

3

Привет. Пытаюсь одолеть, в качестве руководства использую https://habr.com/post/310790/. Автор использует opengl не меньше 3.3, в его примерах так:

   //Задается минимальная требуемая версия OpenGL. 
   //Мажорная 
   glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
   //Минорная
   glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

Когда начал читать, то сразу возникли сомнения - у меня уже очень старая видеокарта (GeForce G 105M, в игры не играю, как-то и не заморачивался. А тут возникла нужда строить навороченные графики, с прокруткой, с графическими построениями ...).

pavlick@pc ~ $ glxinfo | grep version
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
Max core profile version: 3.3
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.1.1
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.1 Mesa 18.1.1
OpenGL shading language version string: 1.40
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

Судя по этому выхлопу, какая у меня версия )), то ли 3.1, то ли 3.3 ? Я для пробы собрал пример, где автор выводит треугольник, всё получилось. Знаю, что вопрос нубовский, я с гуём вообще дел почти не имел, надо определиться - грызть ли дальше тему/забить/менять карту.

OpenGL version string: 3.1 Mesa 18.1.1

Это версия для совместимости.

OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.1.1

А это максимальная версия опенгл, она реквестируется приложением.

Skullnet ★★★ ()

Чтобы зафорсить версию опенгл и протестить что-либо, в драйверах месы есть переменная MESA_GL_VERSION_OVERRIDE.

Например:

$ MESA_GL_VERSION_OVERRIDE=3.3 glxinfo

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

Это не «форсит версию опенгл» а просто лжёт приложению.

anonymous ()
Ответ на: комментарий от pavlick

Начиная с какой-то там версии сделали чистку апи от устаревшего хлама(сделали опциональным). Разумеется в обделённых швабодных дровах это не поддерживатеся, а в закрытых есть.

anonymous ()
Ответ на: комментарий от pavlick

Почему не берешь Qt3D или прочие готовые движки? Ты пытаешься сделать себе велосипед из хлама, а рядом поршэ стоит бесплатное.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Как вариант, что бы учиться делать что-то самостоятельно, а не как мартышка уметь только пользовать готовое, что дали?

CatsCantFly ()

Верни видеокарту в музей.

OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon (TM) RX 470 Graphics (POLARIS10, DRM 3.25.0, 4.17.0-1-amd64, LLVM 6.0.1)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.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.1 Mesa 18.1.3
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 18.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
OpenGL ES profile extensions:

anonymous ()

Вегу уже купи, нищук.

anonymous ()

Сейчас бы топить за АМДшный мусор. Фанатики такие фанатики.

anonymous ()

OpenGL 3.3

ИМХО это легаси, еслиб у тебя была современнее видеокарат, то я бы (как не профи, но кодер с опытом разбора всяких фреймворков) порекомендовал бы начать кодить на webgl 2.0, (aka OpenGL ES 3.0) который является подмножеством OGL 4.3 без некоторых операций в конвейере. Что ИМХО должно позволить научится работать с OGL стейт машиной без сложностей инициализации OGL контекста на конкретной платформе и работе с I/O. А дальше, если уже понравится, то нырять во все тяжкие.

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

порекомендовал бы начать кодить на webgl 2.0, (aka OpenGL ES 3.0) который является подмножеством OGL 4.3

ИМХО это легаси

ппц у тебя каша в голове

GLES3.0 это обрезанный OpenGL3.0 (который еще и тормозит в браузере раз в 10 сильнее чем обычный)

только GLES3.2 стал близок к возможностям 4.0 OpenGL

с каких пор OpenGL 3.0 стал «легаси» я без понятия

сайтики еще первый webgl не осилили, а это OpenGL 2.0 (в 2018)

anonymous ()
Ответ на: комментарий от i-rinat

с возможностями браузерного джаваскрипта и тем что большая часть webgl2.0 функций пробрасывается через ANGLEE даже без инициализации webgl2.0

можно считать что webgl=OpenGL2.0 а не ES

но я для простоты написал, такое уточнение очевидно

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

Верни видеокарту в музей.

менее 10% браузеров поддерживают webgl2.0

менее половины webgl

его карта более чем современна раз входит в 10%

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

А там какие-нибудь настройки конфиденциальности в браузере не влияют на соответствие по поддержке?

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

ага

сделали такие разрабы imgur сайт(картинко галерею, огромную) на шейдерах в вебгл2.0
ничего не тормозит все летает, 5% нагрузка на проц
для совместимости портировали на webgl и canvas2d и заодно html4.0
и смотрят статистику через месяц
50% юзеров юзают html4 сайт
30% юзают canvas2d порт так как нет webgl поддержки у них
и из 20% оставшихся лишь 5% юзают webgl2.0 версию сайта
и думают такие-и нафига мы тратили в 3 раза дольше времени, когда нужен только canvas2d и html4 интерфейс сайта

и юзеры такие сидят пыхтят со 100% нагрузкой на проц, вместо 5%, а все из за настроек приватности, да?

ах да еще и фейсбук и твитор и вконтакте сидят без webgl и досихпор таскают по 10мб джаваскрипта на страницу, вот чисто из за заговора, все хотят откусить 100% процессора юзера!

даже тут, часть лора с 9xx+ видеокартами(2015 год) и гигабайтами видеопамяти там, самостоятельно повыключали поддержку webgl, в интернете статей умных начитались
еще часть лора считает что «я не игрун» поэтому буду сидеть на великолепной встроеннной карте интела, в которой ниодин браузер webgl не поддерживает, ведь видеокарты нужны только игрунам, зачем видеокарта тормозному файсбуку онже быстрее не станет работать

и это предрасудки на «техническом ресурсе»
шо твориться в головах обывателей страшно представлять (очередной папаша слышал слово «видеокарта» идет покупать телефон/планшет/ноут/комп «мне без видеокарты пожалуйста», ой а тут видеокарта мои дети смогут играть тут, мне только без видеокарты понимаете, обращаются к эникейщику-«мне выключить видеокарту надо чтоб дети не играли», а можно мне телефон чтоб на нем в игры нельзя играть было... страх и ужас)

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

Webgl это нехеровый такой вектор атак, почище пробивания песочницы житом. Умные люди ещё и канвас отключают чтобы трекать уникальность было невозможно. Только хромиумные дополнения работать не будут. Налицо заговор, лол.

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

зачем видеокарта тормозному файсбуку

А ведь и правда, нафейхуа?

imgur
папаша

Ты зачем все в кучу намешал? За грехи вебмакак теперь и ты, и я, и наши дети будут страдать. Вот что главное.

Галерея - сайтик с картиночками - тормозит, ой я не могу. 2018 год, «Поствебмакапокалипсис». Web100500.0, 5GHz, жир.

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

Ты зачем все в кучу намешал?

почемуже?
как будто веб-макака не сидит на проце i9 со встроенной видеокартой и не лепит очередной вебсервис на 15 фпсах, считая что «все в порядке», на лоре половина пятизвездочных таких(с выпученными глазами бегают по всему форуму, и не понимают как на i3 или пентиумах можно иметь 60фпс в интерфейсе)

Галерея - сайтик с картиночками - тормозит, ой я не могу. 2018 год,

для джаваскрипта норма вполне, или ты думал рейсайз картинок как делается? Онже в джаваскрипте(джс-либой) попиксельно циклом отрисовывается
отрисовка и ресайз картинок одно и самых узких мест джаваскрипта, тут глупо с нативными программами сравнивать

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

Я не очень понял, сарказм или нет. Но суть в том, что в 2000х порно-галереи не тормозили, а в 2018 вдрг стали тормозить. Загадка. А нет, подожди. Ведь в то время, знание о том, что предпросмотр можно нагенерить статически, не было еще утеряно. А про progressive jpeg знали сколько-нибудь грамотные существа, способные тыкнуть в кнопку на экране.

Предложение: вебмакак надо сажать в вальер с 256Кбит/c и 100ms latency. Даже не о i3 и видео речь. Тогда оно и будет все работать по-человечески, а не по макачье.

можно иметь 60фпс в интерфейсе

это +, я оценил.

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

4.2. В свободных драйверах 4.4 Compatibility Profile.

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

с каких пор OpenGL 3.0 стал «легаси» я без понятия

С тех самых, как вышел OpenGL4. Но сегодня и он легаси уже, ведь есть Vulkan.

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

Что за нехорошие люди, меняют эти стандарты как перчатки - не получается скомпилировать шейдеры с «#version 330 core»:

ERROR::SHADER::VERTEX::COMPILATION_FAILED 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

ERROR::SHADER::FRAGMENT::COMPILATION_FAILED 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.00 ES, and 3.00 ES

ERROR::SHADER::PROGRAM::LINKING_FAILED error: linking with uncompiled/unspecialized shadererror: linking with uncompiled/unspecialized shader

Ну это я переживу, буду писать шейдеры на старом языке. Вопрос: а о чём говорит эта строка в выхлопе glxinfo:

OpenGL core profile shading language version string: 3.30

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

Это только в core profile есть 3.30. А ты используешь compatibility profile, который в швабодных дровах недоделанный.

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

Я в этой терминологии вообще деревянный. Как я могу начать пользоваться «core profile» версией? Надо сменить драйвер?

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

Проблема решилась добавлением строчек:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
Ерунда какая-то. Т.е. на борту есть свежий opengl и shading language, но дефолтно используется старая версия, маразм какой-то.

pavlick ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.