mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-10-08 13:21:45 +00:00
Add a vendor check to detect if FBOs or VAOs are actually shared
* This lets us detect if the FBO/VAO behaviour is different from the main spec, and so we won't miss deletes or other events if the context is different since we'll treat them as shared like any other object.
This commit is contained in:
1 parent
a777a13021
commit
9be802082f
9 files changed
+153
-37
No files matched your search
@@ -286,7 +286,7 @@ bool GLResourceManager::Prepare_InitialState(GLResource res)
|
||||
// nvidia specific.
|
||||
// In most cases a program isn't going to rely on the contents of a depth-stencil buffer (shadow maps that it might
|
||||
// require would be depth-only formatted).
|
||||
if(details.internalFormat == eGL_DEPTH32F_STENCIL8 && VendorCheck(VendorCheck_NV_avoid_D32S8_copy))
|
||||
if(details.internalFormat == eGL_DEPTH32F_STENCIL8 && VendorCheck[VendorCheck_NV_avoid_D32S8_copy])
|
||||
RDCDEBUG("Not fetching initial contents of D32F_S8 texture");
|
||||
else
|
||||
gl.glCopyImageSubData(res.name, details.curType, i, 0, 0, 0, tex, details.curType, i, 0, 0, 0, w, h, d);
|
||||
@@ -573,7 +573,7 @@ bool GLResourceManager::Serialise_InitialState(GLResource res)
|
||||
|
||||
// sometimes cubemaps return the compressed image size for the whole texture, but we read it
|
||||
// face by face
|
||||
if(VendorCheck(VendorCheck_EXT_compressed_cube_size) && t == eGL_TEXTURE_CUBE_MAP)
|
||||
if(VendorCheck[VendorCheck_EXT_compressed_cube_size] && t == eGL_TEXTURE_CUBE_MAP)
|
||||
size /= 6;
|
||||
|
||||
byte *buf = new byte[size];
|
||||
@@ -969,7 +969,7 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i
|
||||
// nvidia specific.
|
||||
// In most cases a program isn't going to rely on the contents of a depth-stencil buffer (shadow maps that it might
|
||||
// require would be depth-only formatted).
|
||||
if(details.internalFormat == eGL_DEPTH32F_STENCIL8 && VendorCheck(VendorCheck_NV_avoid_D32S8_copy))
|
||||
if(details.internalFormat == eGL_DEPTH32F_STENCIL8 && VendorCheck[VendorCheck_NV_avoid_D32S8_copy])
|
||||
RDCDEBUG("Not fetching initial contents of D32F_S8 texture");
|
||||
else
|
||||
gl.glCopyImageSubData(tex, details.curType, i, 0, 0, 0, live.name, details.curType, i, 0, 0, 0, w, h, d);
|
||||
|
||||
Reference in new issue
Block a user