Разные реализации GLTextureStorage2D GLES на одной и той же машине ведут себя по-разному - PullRequest
1 голос
/ 01 апреля 2020

Я звоню glTextureStorage2D , чтобы сгенерировать кадровый буфер в моем движке. Я использую Google Angle на windows и libglfw3-dev & libgles2-mesa-dev на Ubuntu, работающем на той же машине.

Создание 8-битных RGBA-текстур подходит для обеих платформ, но форматы с более высокой битовой глубиной, такие как GL_RGBA32F, GL_RGBA16F, GL_RGBA16F, GL_RGBA_F2, GL_RGBA16I & GL_R11F_G11F_B10F, молча завершаются сбоем в Ubuntu и при проверке (с использованием RenderDo * 101) автоматически выводятся на экран (при использовании RenderDo) к стандартной текстуре RGBA.

Меня интересует как выяснить, доступен ли на какой-либо конкретной платформе формат текстуры, так и почему набор библиотек, которые я использую, кажется, не поддерживает эти форматы, когда машина явно способна их поддерживать. Я знаю, что glGetInternalformativ существует в более современных реализациях gl, но вряд ли будет доступен на машинах с более низкой скоростью c, на которых я хотел бы протестировать.

Я попытался установить 'libgles3-mesa-dev', но его не существует, и кроме того, все заголовки для gles3 есть, и все работает, просто молча не удается создать форматы текстур, которые мне нужны. Будем благодарны за любые намеки на то, почему это так.

...