PDA

View Full Version : GL context robustness modes



john_connor
04-20-2017, 08:01 AM
hi everyone,

i'm trying to figure out what "robustness" of a context means, my window creation library in GLFW and it allows 3 different modes:
-- GLFW_LOSE_CONTEXT_ON_RESET
-- GLFW_NO_RESET_NOTIFICATION
-- GLFW_NO_ROBUSTNESS, which means it is not "robust"

whats the difference between the 2 other, "lose context on reset" and "no reset notification" ?
i've read about it in the 4.5 specs, but i didnt find anything about the 2 modes.

as far as i know, i can only query IF it is robust, but not the mode:

GLint contextflags = 0;
glGetIntegerv(GL_CONTEXT_FLAGS, &contextflags);
bool IsRobustAccessContext = contextflags & GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT;

thanks in advance!

GClements
04-20-2017, 09:21 AM
i'm trying to figure out what "robustness" of a context means, my window creation library in GLFW and it allows 3 different modes:
-- GLFW_LOSE_CONTEXT_ON_RESET
-- GLFW_NO_RESET_NOTIFICATION
-- GLFW_NO_ROBUSTNESS, which means it is not "robust"

whats the difference between the 2 other, "lose context on reset" and "no reset notification" ?

GLFW is conflating two different concepts here (probably because they're both defined by the ARB_robustness (https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_robustness.txt) extension). Robustness is about avoiding out-of-bounds array access (buffer overruns). Reset notification is about recovery from hardware errors.

Specifying either mode (GLFW_LOSE_CONTEXT_ON_RESET or GLFW_NO_RESET_NOTIFICATION) causes robustness to be enabled for the context. If you specify GLFW_LOSE_CONTEXT_ON_RESET, you can use glGetGraphicsResetStatus() to determine when a reset has occurred, and why.