• X xray-16
  • Информация о проекте
    • Информация о проекте
    • Активность
    • Метки
    • Участники
  • Репозиторий
    • Репозиторий
    • Файлы
    • Коммиты
    • Ветки
    • Теги
    • Участники
    • Диаграмма
    • Сравнение
  • Задачи 216
    • Задачи 216
    • Список
    • Доски
    • Спринты
  • Запросы на слияние 31
    • Запросы на слияние 31
  • CI/CD
    • CI/CD
    • Конвейеры
    • Задания
    • Расписания
  • Развертывания
    • Развертывания
    • Окружения
    • Релизы
  • Пакеты и реестры
    • Пакеты и реестры
    • Реестр пакетов
    • Реестр контейнеров
  • Мониторинг
    • Мониторинг
    • Инциденты
  • Аналитика
    • Аналитика
    • Поток ценности
    • CI/CD
    • Репозиторий
  • Wiki
    • Wiki
  • Сниппеты
    • Сниппеты
  • Активность
  • Диаграмма
  • Создать новую задачу
  • Задания
  • Коммиты
  • Доски с задачами
Свернуть панель
  • OpenXRay
  • xray-16
  • Запросы на слияние
  • !701

xrRender: fixed OpenGL errors queue behavior (close #647)

  • Ревью изменений

  • Скачать
  • Почтовые патчи
  • Простое отличие
Закрыто xottab-duty запросил слияние github/fork/eanmos/fix-647 в dev Дек 17, 2020
  • Обзор 0
  • Коммиты 1
  • Конвейеры 0
  • Изменения 1

Created by: eanmos

I've managed to reproduce the bug. When the green screen appears the following message is seen in log:

	intro_start intro_game
	Invalid video stream: 0x500

This leads to file xrRenderGL/glSH_Texture.cpp:

            GLenum err = glGetError();
            if (err != GL_NO_ERROR)
            {
                Msg("Invalid video stream: 0x%x", err);
                xr_delete(pTheora);
                pSurface = 0;
            }

However the actual errors appears a few lines above:

	Preload();

After this function call the OpenGL errors queue contains an 0x500 error. If we check what is happening in the end of this function:

	void CTexture::Preload()
	{
	    m_bumpmap = RImplementation.Resources->m_textures_description.GetBumpName(cName);
	    m_material = RImplementation.Resources->m_textures_description.GetMaterial(cName);

	    if (glGetError() != GL_NO_ERROR)
		    Msg("Warning: can't preload texture %s", cName.c_str());
	}

we will get

	Warning: can't preload texture water\water_flowing_nmap

So, I guess this texture is just broken.

This check actually fixes the bug because it clears the OpenGL errors queue and the following code could work correctly.

Ответственный
Назначить
Проверяющие
Запросить ревью
Оценка трудозатрат
Исходная ветка: github/fork/eanmos/fix-647