Ошибка glBeginQuery GL_OUT_OF_MEMORYC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка glBeginQuery GL_OUT_OF_MEMORY

Сообщение Anonymous »

Я использую glQuery для получения информации о количестве FPS в моем приложении:

Код: Выделить всё

CollectDataBegin();

/*all drawing operations with OpenGL*/

CollectDataEnd();
Где:

Код: Выделить всё

void RenderingInfo::CollectDataBegin()
{
//FPS begin
available = 0;
GLenum eError;
// UPDATE 1 START
if (!bQueryGenerated){
glGenQueries(1, queries);
bQueryGenerated = true;
}
// UPDATE 1 END
//GL_NO_ERROR from glGetError();
glBeginQuery(GL_TIME_ELAPSED, queries[0]);
//GL_OUT_OF_MEMORY error from glGetError();
//FPS end
}

void RenderingInfo::CollectDataEnd()
{
//FPS begin
glEndQuery(GL_TIME_ELAPSED);

iFramesCount++;

if (iFramesCount == 20)
{
iFramesCount = 0;

while (!available) {
glGetQueryObjectiv(queries[0], GL_QUERY_RESULT_AVAILABLE, &available);
}

glGetQueryObjectui64v(queries[0], GL_QUERY_RESULT, &timeElapsed);

float jeb = static_cast(timeElapsed) / std::pow(10, 9);

xRenderStats.fFPS = static_cast(1.0 / jeb);

sFPS = std::to_string(xRenderStats.fFPS);
// UPDATE 1 START
if (bQueryGenerated){
glDeleteQueries(1, queries);
bQueryGenerated = false;
}
// UPDATE 1 END
}
}
Частные члены класса RenderingInfo:

Код: Выделить всё

GLuint queries[] = {0};
GLint available = 0;
GLuint64 timeElapsed;
int iFramesCount = 0;
bool bQueryGenerated = false; //UPADTE 1
Я написал и протестировал этот код, используя Nvidia GeForce GTX760 с новейшими драйверами, и у меня не возникло никаких проблем.
Но после перехода на встроенную графику Intel HD Graphics 4600 Я получаю GL_OUT_OF_MEMORY после вызова glBeginQuery(). Интересно то, что я получаю эту ошибку не сразу, а после нескольких вызовов glBeginQuery().

Мне не удалось найти любые сообщения, связанные с этим вопросом, поэтому я прошу вашей помощи в решении этой проблемы.

ОБНОВЛЕНИЕ 1:
Я изменил свой код в соответствии с советами @Ike , но я все равно получаю ошибку GL_OUT_OF_MEMORY.

Подробнее здесь: https://stackoverflow.com/questions/336 ... mory-error

Вернуться в «C++»