Войти
ПрограммированиеФорумГрафика

Откуда брать EGL библиотеки? (libEGL.dll и libGLESv2.dll)

#0
5:05, 7 апр. 2018

В общем ситуация такая. Качнул я отсюда SDK:
https://developer.amd.com/amd-opengl-es-sdk/
И заюзал egl. Все работало до тех пор, пока я не стал использовать обычный GL и EGL одновременно в одном треде.
Оно начало валится в драйвере с AV на вызове wglMakeCurrent(dc, rc);

Буквально делаем так:
1. Создаем WGL контекст
2. Создаем EGL контекст
Далее просто пишем 6 строчек кода:

wglMakeCurrent(dc, wgl_rc);
wglMakeCurrent(0, 0);

eglMakeCurrent(display, surface, surface, egl_rc);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

wglMakeCurrent(dc, wgl_rc); //тут будет краш с AV
wglMakeCurrent(0, 0);

Так все работает:

eglMakeCurrent(display, surface, surface, egl_rc);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

eglMakeCurrent(display, surface, surface, egl_rc);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

eglMakeCurrent(display, surface, surface, egl_rc);
eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);

И так все работает:

wglMakeCurrent(dc, wgl_rc);
wglMakeCurrent(0, 0);

wglMakeCurrent(dc, wgl_rc);
wglMakeCurrent(0, 0);

wglMakeCurrent(dc, wgl_rc);
wglMakeCurrent(0, 0);

А когда начинаешь "смешивать" биндинги оно крешится во всяких nvogl64v.dll

Уже не знал что делать, но тут совершенно случайно обнаружил. Если взять libEGL.dll и libGLESv2.dll из другой программы (они видимо другой версии), то все работает отлично, а креши происходят именно когда используются dll-ки из SDK ( https://developer.amd.com/amd-opengl-es-sdk/ )

Глядя на дату: 08/20/2015 понимаю, что библиотеки даааавно уже не обновлялись. Длл-ки которые работают с копирайтами гугла, но вроде как старее, чем версия на сайте:

+ Показать

Так где же лежат последние версии этих libEGL.dll и libGLESv2.dll ? Или их исходники чтобы собрать.

#1
7:48, 7 апр. 2018

Это для PC что ли?  https://chromium.googlesource.com/angle/angle

#2
9:53, 7 апр. 2018

MrShoor
>А когда начинаешь "смешивать" биндинги оно крешится во всяких nvogl64v.dll
Объяснение простое.
OpenGL ES от AMD используют нативную реализацию и будет работать только на AMD(со смешиванием wgl/egl не пробовал), у них прямо в Windows\System32\atio6axx.dll есть вызовы egl функций.
Тебе прямо принципиально брать у AMD ? там ошибки с MSAA есть, изображение перевернуто.
вот отсюда можно взять на выбор
PoverVR SDK - это лучшее
Adreno SDK
ARM Mali OpenGL ES SDK
Можно собрать Angle самому там он самый свежий и работает отлично.
В основном пользуюсь реализацией от Imagination Technologies, она мне показалась лучшей.

#3
10:57, 7 апр. 2018

MrShoor
> Все работало до тех пор, пока я не стал использовать обычный GL и EGL одновременно в одном треде.
Чисто из любопыства :) а зачем оно?

#4
11:08, 7 апр. 2018

Andrey
> OpenGL ES от AMD используют нативную реализацию и будет работать только на AMD
Аналогично крешится на AMD в ихней atio***.dll

> вот отсюда можно взять на выбор
> PoverVR SDK - это лучшее
> Adreno SDK
> ARM Mali OpenGL ES SDK
> Можно собрать Angle самому там он самый свежий и работает отлично.
Ок, посмотрю. Спасибо.

Daniil Petrov
> Чисто из любопыства :) а зачем оно?
Валидатор GLSL+GLES шейдеров пишу.

#5
13:18, 7 апр. 2018

MrShoor
> Аналогично крешится на AMD в ихней atio***.dll
Ну если мешать wgl/egl вполне может. Если нет, это баг, на форуме писали некоторые баги с ней, например тот-же MSAA - ответа нуту. Вообще не думаю что они будут дальше развивать эту либо, так что крайне не рекомендую ее использовать, если только просто протестировать OpenGL ES на разных реализациях.

#6
14:34, 7 апр. 2018

innuendo
> используй DX !
> нужно юзать вулкан
o_O

#7
14:48, 7 апр. 2018

Daniil Petrov
Он шизик, не обращай внимание.

#8
15:02, 7 апр. 2018

MrShoor
> ANGLE libGLESv2 Dynamic Link Library
> Так где же лежат последние версии этих libEGL.dll и libGLESv2.dll ? Или их исходники чтобы собрать.
Разве не это? https://github.com/google/angle

#9
19:38, 7 апр. 2018

Dampire
> Разве не это? https://github.com/google/angle
это тоже пойдет, Microsoft просто вносит исправления для windows Store:
ms-master contains a copy of ANGLE that is regularly updated from the ANGLE master branch. It also contains recent changes made by Microsoft that have not yet been merged back to ANGLE master (our goal is to eventually merge everything, but if you want the latest and greatest Windows Store features, you will find them here first)

по этой ссылке еще готовые solution для Visual Studio есть.

ПрограммированиеФорумГрафика

Тема в архиве.