You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since the EGL back end uses FBOs to emulate Pbuffers, the "default framebuffer" (0) is really a named FBO. Thus, the EGL back end should interpose all named framebuffer functions that allow the default framebuffer (0) to be specified as an argument:
Function
OpenGL version or extension
Comments
glBlitNamedFramebuffer()
4.5
glCheckNamedFramebufferStatus()
4.5
glCheckNamedFramebufferStatusEXT()
GL_EXT_direct_state_access
glClearNamedFramebufferiv()
4.5
glClearNamedFramebufferuiv()
4.5
glClearNamedFramebufferfv()
4.5
glClearNamedFramebufferfi()
4.5
glGetFramebufferParameterivEXT()
GL_EXT_direct_state_access
glGetNamedFramebufferAttachmentParameteriv()
4.5
glGetNamedFramebufferAttachmentParameterivEXT()
GL_EXT_direct_state_access
glInvalidateNamedFramebufferData()
4.5
glInvalidateNamedFramebufferSubData()
4.5
glIsFramebuffer()
3.0
Non-issue if the calling application only passes FBO names returned from glGenFramebuffers() to this function, but it would be an issue if the calling application does something stupid like iterating through all possible FBO names.
glIsFramebufferEXT()
GL_EXT_framebuffer_object
Ditto
The text was updated successfully, but these errors were encountered:
dcommander
changed the title
EGL back end: Support for named framebuffer functions
EGL back end: Support for additional named framebuffer functions
Sep 11, 2020
piglit either does not cover the functions mentioned above or never uses them with the default framebuffer.
The piglit object-namespace-pollution test is an example of an application that iterates through all possible FBO names. That test only works with the EGL back end because VGL doesn't interpose glIsFramebuffer*(). If VGL did interpose those functions, then piglit would assume that the FBO names corresponding to the default framebuffer were available, and it would stomp on them. :( That suggests that interposing those functions isn't the right thing to do.
Since the EGL back end uses FBOs to emulate Pbuffers, the "default framebuffer" (0) is really a named FBO. Thus, the EGL back end should interpose all named framebuffer functions that allow the default framebuffer (0) to be specified as an argument:
glBlitNamedFramebuffer()
glCheckNamedFramebufferStatus()
glCheckNamedFramebufferStatusEXT()
GL_EXT_direct_state_access
glClearNamedFramebufferiv()
glClearNamedFramebufferuiv()
glClearNamedFramebufferfv()
glClearNamedFramebufferfi()
glGetFramebufferParameterivEXT()
GL_EXT_direct_state_access
glGetNamedFramebufferAttachmentParameteriv()
glGetNamedFramebufferAttachmentParameterivEXT()
GL_EXT_direct_state_access
glInvalidateNamedFramebufferData()
glInvalidateNamedFramebufferSubData()
glIsFramebuffer()
glGenFramebuffers()
to this function, but it would be an issue if the calling application does something stupid like iterating through all possible FBO names.glIsFramebufferEXT()
GL_EXT_framebuffer_object
The text was updated successfully, but these errors were encountered: