eglCreateFramebuffer () вызывает EGL_BAD_CONFIG (неверная конфигурация буфера кадра EGL) - PullRequest
0 голосов
/ 27 января 2019

Мое приложение в Google Play вызывает эту ошибку на клиентских устройствах (но не на моих тестовых устройствах и не на устройствах с предварительными отчетами Google).

EGL_BAD_CONFIG (недопустимая конфигурация буфера кадра EGL)

При выполнении этого звонка: eglCreateContext( display, config, NULL, contextAttribs );

Атрибуты, которые я передаю:

const EGLint contextAttribs[] =
{
  EGL_CONTEXT_CLIENT_VERSION, 3,
  EGL_NONE
};

Отображение успешно восстановлено следующим образом:

EGLDisplay display = eglGetDisplay( EGL_DEFAULT_DISPLAY );

Конфигурация была успешно получена с помощью: eglChooseConfig() с использованием этих атрибутов ...

        const EGLint attribs[] = {
                EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
                EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
                EGL_DEPTH_SIZE, withDepthBuffer ? 16 : 0,
                EGL_BLUE_SIZE, 8,
                EGL_GREEN_SIZE, 8,
                EGL_RED_SIZE, 8,
                EGL_NONE
        };

... и эти резервные атрибуты, если ни один из них не соответствует:

        const EGLint attribs_fallback[] = {
                EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
                EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
                EGL_DEPTH_SIZE, 16,
                EGL_BLUE_SIZE, 5,
                EGL_GREEN_SIZE, 6,
                EGL_RED_SIZE, 5,
                EGL_NONE
        };

После eglChooseConfig() предпочтительного или резервного конфигурации значение numConfigs должно быть не менее 1.

Кроме того, предыдущий вызов eglCreateWindowSurface() также завершается успешно.

Это с:

EGL VENDOR : Android

EGL ВЕРСИЯ : 1.4 Android META-EGL

Что вызывает сбой некоторых устройств при вызове eglCreateContext ()?

А если он недействителен, почему eglChooseConfig возвращает неправильную конфигурацию?

1 Ответ

0 голосов
/ 15 февраля 2019

Нужна дополнительная информация.Запросите все атрибуты конфигурации, которую вы выбираете - распечатайте, посмотрите, не смешно ли там.

Я с Брэмом, возможно, вы выбираете конфигурацию ES2, а затем вам необходим контекст ES3.

...