diff --git a/renderdoc/driver/gl/gl_debug.cpp b/renderdoc/driver/gl/gl_debug.cpp index 377d56f8e..9039821fd 100644 --- a/renderdoc/driver/gl/gl_debug.cpp +++ b/renderdoc/driver/gl/gl_debug.cpp @@ -408,8 +408,10 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, TextureDisplayOverlay overl GLuint curReadFBO = 0; gl.glGetIntegerv(eGL_DRAW_FRAMEBUFFER_BINDING, (GLint*)&curDrawFBO); gl.glGetIntegerv(eGL_DRAW_FRAMEBUFFER_BINDING, (GLint*)&curReadFBO); + + void *ctx = m_ReplayCtx.ctx; - auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))]; + auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(ctx, curProg))]; if(progDetails.colOutProg == 0) { @@ -626,7 +628,7 @@ ResourceId GLReplay::RenderOverlay(ResourceId texid, TextureDisplayOverlay overl gl.glBindFramebuffer(eGL_DRAW_FRAMEBUFFER, curDrawFBO); gl.glBindFramebuffer(eGL_READ_FRAMEBUFFER, curReadFBO); - return m_pDriver->GetResourceManager()->GetID(TextureRes(DebugData.overlayTex)); + return m_pDriver->GetResourceManager()->GetID(TextureRes(ctx, DebugData.overlayTex)); } void GLReplay::RenderMesh(int frameID, vector eventID, MeshDisplay cfg) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index bc383aa49..b1d1f3378 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -325,8 +325,8 @@ WrappedOpenGL::WrappedOpenGL(const wchar_t *logfile, const GLHookSet &funcs) m_ResourceManager = new GLResourceManager(this); - m_DeviceResourceID = GetResourceManager()->RegisterResource(GLResource(eResSpecial, eSpecialResDevice)); - m_ContextResourceID = GetResourceManager()->RegisterResource(GLResource(eResSpecial, eSpecialResContext)); + m_DeviceResourceID = GetResourceManager()->RegisterResource(GLResource(NULL, eResSpecial, eSpecialResDevice)); + m_ContextResourceID = GetResourceManager()->RegisterResource(GLResource(NULL, eResSpecial, eSpecialResContext)); if(!RenderDoc::Inst().IsReplayApp()) { @@ -791,7 +791,7 @@ bool WrappedOpenGL::Serialise_BeginCaptureFrame(bool applyInitialState) state.FetchState(); } - state.Serialise(m_State, GetResourceManager()); + state.Serialise(m_State, GetCtx(), GetResourceManager()); if(m_State <= EXECUTING && applyInitialState) { @@ -925,7 +925,7 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context) { SERIALISE_ELEMENT(ResourceId, immContextId, ResourceId()); - m_ResourceManager->AddLiveResource(immContextId, GLResource(eResSpecial, eSpecialResContext)); + m_ResourceManager->AddLiveResource(immContextId, GLResource(NULL, eResSpecial, eSpecialResContext)); break; } case GEN_TEXTURE: @@ -1548,8 +1548,8 @@ void WrappedOpenGL::AddDrawcall(FetchDrawcall d, bool hasEvents) draw.depthOut = ResourceId(); GLNOTIMP("Hack, not getting current pipeline state framebufer binding"); - draw.outputs[0] = GetResourceManager()->GetID(TextureRes(m_FakeBB_Color)); - draw.depthOut = GetResourceManager()->GetID(TextureRes(m_FakeBB_DepthStencil)); + draw.outputs[0] = GetResourceManager()->GetID(TextureRes(GetCtx(), m_FakeBB_Color)); + draw.depthOut = GetResourceManager()->GetID(TextureRes(GetCtx(), m_FakeBB_DepthStencil)); m_CurDrawcallID++; if(hasEvents) diff --git a/renderdoc/driver/gl/gl_driver.h b/renderdoc/driver/gl/gl_driver.h index a16507189..3ed80effc 100644 --- a/renderdoc/driver/gl/gl_driver.h +++ b/renderdoc/driver/gl/gl_driver.h @@ -117,7 +117,6 @@ class WrappedOpenGL GLInitParams m_InitParams; map m_ActiveContexts; - void *GetCtx(); ResourceId m_DeviceResourceID; GLResourceRecord *m_DeviceRecord; @@ -253,6 +252,7 @@ class WrappedOpenGL ResourceId GetContextResourceID() { return m_ContextResourceID; } GLReplay *GetReplay() { return &m_Replay; } + void *GetCtx(); // replay interface void Initialise(GLInitParams ¶ms); diff --git a/renderdoc/driver/gl/gl_manager.h b/renderdoc/driver/gl/gl_manager.h index 25c86a66a..2832f6426 100644 --- a/renderdoc/driver/gl/gl_manager.h +++ b/renderdoc/driver/gl/gl_manager.h @@ -115,10 +115,10 @@ class GLResourceManager : public ResourceManager return ResourceManager::GetResourceRecord(GetID(res)); } - void RegisterSync(GLsync sync, GLuint &name, ResourceId &id) + void RegisterSync(void *ctx, GLsync sync, GLuint &name, ResourceId &id) { name = (GLuint)Atomic::Inc64(&m_SyncName); - id = RegisterResource(SyncRes(name)); + id = RegisterResource(SyncRes(ctx, name)); m_SyncIDs[sync] = id; m_CurrentSyncs[name] = sync; diff --git a/renderdoc/driver/gl/gl_renderstate.cpp b/renderdoc/driver/gl/gl_renderstate.cpp index e4d734322..c3b4018dd 100644 --- a/renderdoc/driver/gl/gl_renderstate.cpp +++ b/renderdoc/driver/gl/gl_renderstate.cpp @@ -409,7 +409,7 @@ void GLRenderState::Clear() RDCEraseEl(CullFace); } -void GLRenderState::Serialise(LogState state, GLResourceManager *rm) +void GLRenderState::Serialise(LogState state, void *ctx, GLResourceManager *rm) { // TODO check GL_MAX_* @@ -418,7 +418,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm) for(size_t i=0; i < ARRAY_COUNT(Tex2D); i++) { ResourceId ID = ResourceId(); - if(state >= WRITING) ID = rm->GetID(TextureRes(Tex2D[i])); + if(state >= WRITING) ID = rm->GetID(TextureRes(ctx, Tex2D[i])); m_pSerialiser->Serialise("GL_TEXTURE_BINDING_2D", ID); if(state < WRITING && ID != ResourceId()) Tex2D[i] = rm->GetLiveResource(ID).name; } @@ -428,7 +428,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm) for(size_t i=0; i < ARRAY_COUNT(BufferBindings); i++) { ResourceId ID = ResourceId(); - if(state >= WRITING) ID = rm->GetID(BufferRes(BufferBindings[i])); + if(state >= WRITING) ID = rm->GetID(BufferRes(ctx, BufferBindings[i])); m_pSerialiser->Serialise("GL_BUFFER_BINDING", ID); if(state < WRITING && ID != ResourceId()) BufferBindings[i] = rm->GetLiveResource(ID).name; } @@ -446,7 +446,7 @@ void GLRenderState::Serialise(LogState state, GLResourceManager *rm) for(int i=0; i < idxBufs[b].count; i++) { ResourceId ID = ResourceId(); - if(state >= WRITING) ID = rm->GetID(BufferRes(idxBufs[b].bufs[i].name)); + if(state >= WRITING) ID = rm->GetID(BufferRes(ctx, idxBufs[b].bufs[i].name)); m_pSerialiser->Serialise("BUFFER_BINDING", ID); if(state < WRITING && ID != ResourceId()) idxBufs[b].bufs[i].name = rm->GetLiveResource(ID).name; diff --git a/renderdoc/driver/gl/gl_renderstate.h b/renderdoc/driver/gl/gl_renderstate.h index 42a3fa9b6..77145def5 100644 --- a/renderdoc/driver/gl/gl_renderstate.h +++ b/renderdoc/driver/gl/gl_renderstate.h @@ -173,8 +173,8 @@ struct GLRenderState GLenum CullFace; // - void Serialise(LogState state, GLResourceManager *rm); + void Serialise(LogState state, void *ctx, GLResourceManager *rm); private: Serialiser *m_pSerialiser; const GLHookSet *m_Real; -}; \ No newline at end of file +}; diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index 262fe2a4f..8bc0338df 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -555,7 +555,9 @@ ShaderReflection *GLReplay::GetShader(ResourceId id) GLuint curProg = 0; gl.glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint*)&curProg); - auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))]; + void *ctx = m_ReplayCtx.ctx; + + auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(ctx, curProg))]; auto &shaderDetails = m_pDriver->m_Shaders[id]; auto &refl = shaderDetails.reflection; @@ -777,7 +779,9 @@ void GLReplay::SavePipelineState() GLint curIdxBuf = 0; gl.glGetIntegerv(eGL_ELEMENT_ARRAY_BUFFER_BINDING, &curIdxBuf); - pipe.m_VtxIn.ibuffer.Buffer = rm->GetOriginalID(rm->GetID(BufferRes(curIdxBuf))); + void *ctx = m_ReplayCtx.ctx; + + pipe.m_VtxIn.ibuffer.Buffer = rm->GetOriginalID(rm->GetID(BufferRes(ctx, curIdxBuf))); // Vertex buffers and attributes GLint numVBufferBindings = 16; @@ -793,7 +797,7 @@ void GLReplay::SavePipelineState() { GLint vb = 0; gl.glGetIntegeri_v(eGL_VERTEX_BINDING_BUFFER, i, &vb); - pipe.m_VtxIn.vbuffers[i].Buffer = rm->GetOriginalID(rm->GetID(BufferRes(vb))); + pipe.m_VtxIn.vbuffers[i].Buffer = rm->GetOriginalID(rm->GetID(BufferRes(ctx, vb))); gl.glGetIntegeri_v(eGL_VERTEX_BINDING_STRIDE, i, (GLint *)&pipe.m_VtxIn.vbuffers[i].Stride); gl.glGetIntegeri_v(eGL_VERTEX_BINDING_OFFSET, i, (GLint *)&pipe.m_VtxIn.vbuffers[i].Offset); @@ -972,7 +976,7 @@ void GLReplay::SavePipelineState() } else { - auto &progDetails = m_pDriver->m_Programs[rm->GetID(ProgramRes(curProg))]; + auto &progDetails = m_pDriver->m_Programs[rm->GetID(ProgramRes(ctx, curProg))]; RDCASSERT(progDetails.shaders.size()); @@ -1095,7 +1099,7 @@ void GLReplay::SavePipelineState() GLint firstSlice = 0; gl.glGetTexParameteriv(target, eGL_TEXTURE_VIEW_MIN_LEVEL, &firstSlice); - pipe.Textures[unit].Resource = rm->GetOriginalID(rm->GetID(TextureRes(tex))); + pipe.Textures[unit].Resource = rm->GetOriginalID(rm->GetID(TextureRes(ctx, tex))); pipe.Textures[unit].FirstSlice = (uint32_t)firstSlice; } else @@ -1130,13 +1134,13 @@ void GLReplay::SavePipelineState() gl.glGetFramebufferAttachmentParameteriv(eGL_DRAW_FRAMEBUFFER, eGL_STENCIL_ATTACHMENT, eGL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, (GLint*)&curStencil); } - pipe.m_FB.FBO = rm->GetOriginalID(rm->GetID(FramebufferRes(curFBO))); + pipe.m_FB.FBO = rm->GetOriginalID(rm->GetID(FramebufferRes(ctx, curFBO))); create_array_uninit(pipe.m_FB.Color, numCols); for(GLint i=0; i < numCols; i++) - pipe.m_FB.Color[i] = rm->GetOriginalID(rm->GetID(TextureRes(curCol[i]))); + pipe.m_FB.Color[i] = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curCol[i]))); - pipe.m_FB.Depth = rm->GetOriginalID(rm->GetID(TextureRes(curDepth))); - pipe.m_FB.Stencil = rm->GetOriginalID(rm->GetID(TextureRes(curStencil))); + pipe.m_FB.Depth = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curDepth))); + pipe.m_FB.Stencil = rm->GetOriginalID(rm->GetID(TextureRes(ctx, curStencil))); } void GLReplay::FillCBufferVariables(ResourceId shader, uint32_t cbufSlot, vector &outvars, const vector &data) @@ -1148,7 +1152,7 @@ void GLReplay::FillCBufferVariables(ResourceId shader, uint32_t cbufSlot, vector GLuint curProg = 0; gl.glGetIntegerv(eGL_CURRENT_PROGRAM, (GLint*)&curProg); - auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(curProg))]; + auto &progDetails = m_pDriver->m_Programs[m_pDriver->GetResourceManager()->GetID(ProgramRes(m_ReplayCtx.ctx, curProg))]; auto &shaderDetails = m_pDriver->m_Shaders[shader]; GLint numUniforms = 0; diff --git a/renderdoc/driver/gl/gl_resources.h b/renderdoc/driver/gl/gl_resources.h index 3e78c0d20..67159c8a5 100644 --- a/renderdoc/driver/gl/gl_resources.h +++ b/renderdoc/driver/gl/gl_resources.h @@ -59,13 +59,15 @@ struct GLResource { GLResource() { Namespace = eResUnknown; name = ~0U; } GLResource(NullInitialiser) { Namespace = eResUnknown; name = ~0U; } - GLResource(GLNamespace n, GLuint i) { Namespace = n; name = i; } + GLResource(void *ctx, GLNamespace n, GLuint i) { Context = ctx; Namespace = n; name = i; } + + void *Context; GLNamespace Namespace; GLuint name; bool operator ==(const GLResource &o) const { - return Namespace == o.Namespace && name == o.name; + return Context == o.Context && Namespace == o.Namespace && name == o.name; } bool operator !=(const GLResource &o) const @@ -75,21 +77,26 @@ struct GLResource bool operator <(const GLResource &o) const { + if(Context != o.Context) return Context < o.Context; if(Namespace != o.Namespace) return Namespace < o.Namespace; return name < o.name; } }; -inline GLResource TextureRes(GLuint i) { return GLResource(eResTexture, i); } -inline GLResource SamplerRes(GLuint i) { return GLResource(eResSampler, i); } -inline GLResource FramebufferRes(GLuint i) { return GLResource(eResFramebuffer, i); } -inline GLResource BufferRes(GLuint i) { return GLResource(eResBuffer, i); } -inline GLResource VertexArrayRes(GLuint i) { return GLResource(eResVertexArray, i); } -inline GLResource ShaderRes(GLuint i) { return GLResource(eResShader, i); } -inline GLResource ProgramRes(GLuint i) { return GLResource(eResProgram, i); } -inline GLResource ProgramPipeRes(GLuint i) { return GLResource(eResProgramPipe, i); } -inline GLResource QueryRes(GLuint i) { return GLResource(eResQuery, i); } -inline GLResource SyncRes(GLuint i) { return GLResource(eResSync, i); } +// Shared objects currently ignore the context parameter. +// For correctness we'd need to check if the context is shared and if so move up to a 'parent' +// so the context value ends up being identical for objects being shared, but can be different +// for objects in non-shared contexts +inline GLResource TextureRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResTexture, i); } +inline GLResource SamplerRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResSampler, i); } +inline GLResource FramebufferRes(void *ctx, GLuint i) { return GLResource(ctx, eResFramebuffer, i); } +inline GLResource BufferRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResBuffer, i); } +inline GLResource VertexArrayRes(void *ctx, GLuint i) { return GLResource(ctx, eResVertexArray, i); } +inline GLResource ShaderRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResShader, i); } +inline GLResource ProgramRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResProgram, i); } +inline GLResource ProgramPipeRes(void *ctx, GLuint i) { return GLResource(ctx, eResProgramPipe, i); } +inline GLResource QueryRes(void *ctx, GLuint i) { return GLResource(ctx, eResQuery, i); } +inline GLResource SyncRes(void *ctx, GLuint i) { (void)ctx; return GLResource(NULL, eResSync, i); } struct GLResourceRecord : public ResourceRecord { diff --git a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp index 9fb9768d6..d5458e331 100644 --- a/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_buffer_funcs.cpp @@ -29,14 +29,14 @@ bool WrappedOpenGL::Serialise_glGenBuffers(GLsizei n, GLuint* textures) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(*textures))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), *textures))); if(m_State == READING) { GLuint real = 0; m_Real.glGenBuffers(1, &real); - GLResource res = BufferRes(real); + GLResource res = BufferRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -54,7 +54,7 @@ void WrappedOpenGL::glGenBuffers(GLsizei n, GLuint *buffers) for(GLsizei i=0; i < n; i++) { - GLResource res = BufferRes(buffers[i]); + GLResource res = BufferRes(GetCtx(), buffers[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -108,7 +108,7 @@ size_t WrappedOpenGL::BufferIdx(GLenum buf) bool WrappedOpenGL::Serialise_glBindBuffer(GLenum target, GLuint buffer) { SERIALISE_ELEMENT(GLenum, Target, target); - SERIALISE_ELEMENT(ResourceId, Id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, Id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId())); if(m_State >= WRITING) { @@ -148,7 +148,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer) if(buffer == 0) m_BufferRecord[idx] = NULL; else - m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); { SCOPED_SERIALISE_CONTEXT(BIND_BUFFER); @@ -168,7 +168,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer) if(m_State >= WRITING) { - GLResourceRecord *r = m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *r = m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); // it's legal to re-type buffers, generate another BindBuffer chunk to rename if(r->datatype != target) @@ -189,7 +189,7 @@ void WrappedOpenGL::glBindBuffer(GLenum target, GLuint buffer) bool WrappedOpenGL::Serialise_glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer))); SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size); byte *dummy = NULL; @@ -232,7 +232,7 @@ void WrappedOpenGL::glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, cons if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(BUFFERSTORAGE); @@ -285,7 +285,7 @@ void WrappedOpenGL::glBufferStorage(GLenum target, GLsizeiptr size, const void * bool WrappedOpenGL::Serialise_glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer))); SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size); byte *dummy = NULL; @@ -328,7 +328,7 @@ void WrappedOpenGL::glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const v if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); RDCASSERT(record); // detect buffer orphaning and just update backing store @@ -403,7 +403,7 @@ void WrappedOpenGL::glBufferData(GLenum target, GLsizeiptr size, const void *dat bool WrappedOpenGL::Serialise_glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(buffer))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer))); SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset); SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size); SERIALISE_ELEMENT_BUF(byte *, bytes, data, (size_t)Bytesize); @@ -425,10 +425,10 @@ void WrappedOpenGL::glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsi if(m_State >= WRITING) { - if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) + if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) return; - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(BUFFERSUBDATA); @@ -447,7 +447,7 @@ void WrappedOpenGL::glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsi if(record->UpdateCount > 60) { - m_HighTrafficResources.insert(BufferRes(buffer)); + m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer)); GetResourceManager()->MarkDirtyResource(record->GetResourceID()); } } @@ -478,8 +478,8 @@ void WrappedOpenGL::glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr s bool WrappedOpenGL::Serialise_glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) { - SERIALISE_ELEMENT(ResourceId, readid, GetResourceManager()->GetID(BufferRes(readBuffer))); - SERIALISE_ELEMENT(ResourceId, writeid, GetResourceManager()->GetID(BufferRes(writeBuffer))); + SERIALISE_ELEMENT(ResourceId, readid, GetResourceManager()->GetID(BufferRes(GetCtx(), readBuffer))); + SERIALISE_ELEMENT(ResourceId, writeid, GetResourceManager()->GetID(BufferRes(GetCtx(), writeBuffer))); SERIALISE_ELEMENT(uint64_t, ReadOffset, (uint64_t)readOffset); SERIALISE_ELEMENT(uint64_t, WriteOffset, (uint64_t)writeOffset); SERIALISE_ELEMENT(uint64_t, Bytesize, (uint64_t)size); @@ -500,8 +500,8 @@ void WrappedOpenGL::glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeB if(m_State >= WRITING) { - GLResourceRecord *readrecord = GetResourceManager()->GetResourceRecord(BufferRes(readBuffer)); - GLResourceRecord *writerecord = GetResourceManager()->GetResourceRecord(BufferRes(writeBuffer)); + GLResourceRecord *readrecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), readBuffer)); + GLResourceRecord *writerecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), writeBuffer)); RDCASSERT(readrecord && writerecord); SCOPED_SERIALISE_CONTEXT(COPYBUFFERSUBDATA); @@ -554,7 +554,7 @@ bool WrappedOpenGL::Serialise_glBindBufferBase(GLenum target, GLuint index, GLui { SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(uint32_t, Index, index); - SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId())); if(m_State < WRITING) { @@ -581,7 +581,7 @@ void WrappedOpenGL::glBindBufferBase(GLenum target, GLuint index, GLuint buffer) if(buffer == 0) m_BufferRecord[idx] = NULL; else - m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); } if(m_State == WRITING_CAPFRAME) @@ -599,7 +599,7 @@ bool WrappedOpenGL::Serialise_glBindBufferRange(GLenum target, GLuint index, GLu { SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(uint32_t, Index, index); - SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(buffer)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId())); SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset); SERIALISE_ELEMENT(uint64_t, Size, (uint64_t)size); @@ -628,7 +628,7 @@ void WrappedOpenGL::glBindBufferRange(GLenum target, GLuint index, GLuint buffer if(buffer == 0) m_BufferRecord[idx] = NULL; else - m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + m_BufferRecord[idx] = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); } if(m_State == WRITING_CAPFRAME) @@ -646,13 +646,13 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access) { if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); GLint length; m_Real.glGetNamedBufferParameterivEXT(buffer, eGL_BUFFER_SIZE, &length); bool straightUp = false; - if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) + if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) straightUp = true; if(GetResourceManager()->IsResourceDirty(record->GetResourceID()) && m_State != WRITING_CAPFRAME) @@ -661,7 +661,7 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access) if(!straightUp && (access == eGL_WRITE_ONLY || access == eGL_READ_WRITE) && m_State != WRITING_CAPFRAME) { straightUp = true; - m_HighTrafficResources.insert(BufferRes(buffer)); + m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer)); if(m_State != WRITING_CAPFRAME) GetResourceManager()->MarkDirtyResource(record->GetResourceID()); } @@ -737,7 +737,7 @@ void *WrappedOpenGL::glMapNamedBufferEXT(GLuint buffer, GLenum access) record->UpdateCount++; if(record->UpdateCount > 60) - m_HighTrafficResources.insert(BufferRes(buffer)); + m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer)); } } @@ -769,10 +769,10 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL { if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); bool straightUp = false; - if(m_HighTrafficResources.find(BufferRes(buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) + if(m_HighTrafficResources.find(BufferRes(GetCtx(), buffer)) != m_HighTrafficResources.end() && m_State != WRITING_CAPFRAME) straightUp = true; if(GetResourceManager()->IsResourceDirty(record->GetResourceID()) && m_State != WRITING_CAPFRAME) @@ -783,7 +783,7 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL if(!straightUp && !invalidateMap && (access & GL_MAP_WRITE_BIT) && m_State != WRITING_CAPFRAME) { straightUp = true; - m_HighTrafficResources.insert(BufferRes(buffer)); + m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer)); if(m_State != WRITING_CAPFRAME) GetResourceManager()->MarkDirtyResource(record->GetResourceID()); } @@ -890,7 +890,7 @@ void *WrappedOpenGL::glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GL record->UpdateCount++; if(record->UpdateCount > 60) - m_HighTrafficResources.insert(BufferRes(buffer)); + m_HighTrafficResources.insert(BufferRes(GetCtx(), buffer)); } } @@ -921,7 +921,7 @@ bool WrappedOpenGL::Serialise_glUnmapNamedBufferEXT(GLuint buffer) GLResourceRecord *record = NULL; if(m_State >= WRITING) - record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); ResourceId bufID; uint64_t offs = 0; @@ -1010,7 +1010,7 @@ GLboolean WrappedOpenGL::glUnmapNamedBufferEXT(GLuint buffer) { if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(buffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)); auto status = record->Map.status; GLboolean ret = GL_TRUE; @@ -1283,14 +1283,14 @@ void WrappedOpenGL::glDisableVertexAttribArray(GLuint index) bool WrappedOpenGL::Serialise_glGenVertexArrays(GLsizei n, GLuint* arrays) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(VertexArrayRes(*arrays))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(VertexArrayRes(GetCtx(), *arrays))); if(m_State == READING) { GLuint real = 0; m_Real.glGenVertexArrays(1, &real); - GLResource res = VertexArrayRes(real); + GLResource res = VertexArrayRes(GetCtx(), real); m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -1305,7 +1305,7 @@ void WrappedOpenGL::glGenVertexArrays(GLsizei n, GLuint *arrays) for(GLsizei i=0; i < n; i++) { - GLResource res = VertexArrayRes(arrays[i]); + GLResource res = VertexArrayRes(GetCtx(), arrays[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -1333,7 +1333,7 @@ void WrappedOpenGL::glGenVertexArrays(GLsizei n, GLuint *arrays) bool WrappedOpenGL::Serialise_glBindVertexArray(GLuint array) { - SERIALISE_ELEMENT(ResourceId, id, (array ? GetResourceManager()->GetID(VertexArrayRes(array)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, id, (array ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), array)) : ResourceId())); if(m_State <= EXECUTING) { @@ -1363,7 +1363,7 @@ void WrappedOpenGL::glBindVertexArray(GLuint array) } else { - m_VertexArrayRecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(array)); + m_VertexArrayRecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), array)); } } @@ -1381,7 +1381,7 @@ void WrappedOpenGL::glDeleteBuffers(GLsizei n, const GLuint *buffers) m_Real.glDeleteBuffers(n, buffers); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(BufferRes(buffers[i])); + GetResourceManager()->UnregisterResource(BufferRes(GetCtx(), buffers[i])); } void WrappedOpenGL::glDeleteVertexArrays(GLsizei n, const GLuint *arrays) @@ -1389,5 +1389,5 @@ void WrappedOpenGL::glDeleteVertexArrays(GLsizei n, const GLuint *arrays) m_Real.glDeleteVertexArrays(n, arrays); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(VertexArrayRes(arrays[i])); + GetResourceManager()->UnregisterResource(VertexArrayRes(GetCtx(), arrays[i])); } diff --git a/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp index b3dea4c9b..7139ee310 100644 --- a/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_debug_funcs.cpp @@ -47,10 +47,10 @@ bool WrappedOpenGL::Serialise_glObjectLabel(GLenum identifier, GLuint name, GLsi switch(identifier) { case eGL_TEXTURE: - liveid = GetResourceManager()->GetID(TextureRes(name)); + liveid = GetResourceManager()->GetID(TextureRes(GetCtx(), name)); break; case eGL_BUFFER: - liveid = GetResourceManager()->GetID(BufferRes(name)); + liveid = GetResourceManager()->GetID(BufferRes(GetCtx(), name)); break; default: RDCERR("Unhandled namespace in glObjectLabel"); diff --git a/renderdoc/driver/gl/wrappers/gl_framebuffer_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_framebuffer_funcs.cpp index 66074f125..1f7c9c133 100644 --- a/renderdoc/driver/gl/wrappers/gl_framebuffer_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_framebuffer_funcs.cpp @@ -28,14 +28,14 @@ bool WrappedOpenGL::Serialise_glGenFramebuffers(GLsizei n, GLuint* framebuffers) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(FramebufferRes(*framebuffers))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(FramebufferRes(GetCtx(), *framebuffers))); if(m_State == READING) { GLuint real = 0; m_Real.glGenFramebuffers(1, &real); - GLResource res = FramebufferRes(real); + GLResource res = FramebufferRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -50,7 +50,7 @@ void WrappedOpenGL::glGenFramebuffers(GLsizei n, GLuint *framebuffers) for(GLsizei i=0; i < n; i++) { - GLResource res = FramebufferRes(framebuffers[i]); + GLResource res = FramebufferRes(GetCtx(), framebuffers[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -79,9 +79,9 @@ void WrappedOpenGL::glGenFramebuffers(GLsizei n, GLuint *framebuffers) bool WrappedOpenGL::Serialise_glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) { SERIALISE_ELEMENT(GLenum, Attach, attachment); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT(int32_t, Level, level); - SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer)))); + SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)))); if(m_State < WRITING) { @@ -106,7 +106,7 @@ void WrappedOpenGL::glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum atta if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEX); Serialise_glNamedFramebufferTextureEXT(framebuffer, attachment, texture, level); @@ -149,10 +149,10 @@ void WrappedOpenGL::glFramebufferTexture(GLenum target, GLenum attachment, GLuin bool WrappedOpenGL::Serialise_glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { SERIALISE_ELEMENT(GLenum, Attach, attachment); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT(GLenum, TexTarget, textarget); SERIALISE_ELEMENT(int32_t, Level, level); - SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer)))); + SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)))); if(m_State < WRITING) { @@ -177,7 +177,7 @@ void WrappedOpenGL::glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum at if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEX2D); Serialise_glNamedFramebufferTexture2DEXT(framebuffer, attachment, textarget, texture, level); @@ -220,10 +220,10 @@ void WrappedOpenGL::glFramebufferTexture2D(GLenum target, GLenum attachment, GLe bool WrappedOpenGL::Serialise_glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) { SERIALISE_ELEMENT(GLenum, Attach, attachment); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT(int32_t, Level, level); SERIALISE_ELEMENT(int32_t, Layer, layer); - SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(framebuffer)))); + SERIALISE_ELEMENT(ResourceId, fbid, (framebuffer == 0 ? ResourceId() : GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)))); if(m_State < WRITING) { @@ -248,7 +248,7 @@ void WrappedOpenGL::glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); SCOPED_SERIALISE_CONTEXT(FRAMEBUFFER_TEXLAYER); Serialise_glNamedFramebufferTextureLayerEXT(framebuffer, attachment, texture, level, layer); @@ -343,7 +343,7 @@ void WrappedOpenGL::glReadBuffer(GLenum mode) bool WrappedOpenGL::Serialise_glBindFramebuffer(GLenum target, GLuint framebuffer) { SERIALISE_ELEMENT(GLenum, Target, target); - SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(framebuffer)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)) : ResourceId())); if(m_State <= EXECUTING) { @@ -375,9 +375,9 @@ void WrappedOpenGL::glBindFramebuffer(GLenum target, GLuint framebuffer) framebuffer = m_FakeBB_FBO; if(target == eGL_DRAW_FRAMEBUFFER || target == eGL_FRAMEBUFFER) - m_DrawFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + m_DrawFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); else - m_ReadFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + m_ReadFramebufferRecord = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); m_Real.glBindFramebuffer(target, framebuffer); } @@ -415,7 +415,7 @@ void WrappedOpenGL::glDrawBuffer(GLenum buf) bool WrappedOpenGL::Serialise_glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs) { - SERIALISE_ELEMENT(ResourceId, Id, GetResourceManager()->GetID(FramebufferRes(framebuffer))); + SERIALISE_ELEMENT(ResourceId, Id, GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer))); SERIALISE_ELEMENT(uint32_t, num, n); SERIALISE_ELEMENT_ARR(GLenum, buffers, bufs, num); @@ -454,7 +454,7 @@ void WrappedOpenGL::glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, c SCOPED_SERIALISE_CONTEXT(DRAW_BUFFERS); Serialise_glFramebufferDrawBuffersEXT(framebuffer, n, bufs); - ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(framebuffer)); + ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer)); record->AddChunk(scope.Get()); } } @@ -514,5 +514,5 @@ void WrappedOpenGL::glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers) m_Real.glDeleteFramebuffers(n, framebuffers); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(FramebufferRes(framebuffers[i])); + GetResourceManager()->UnregisterResource(FramebufferRes(GetCtx(), framebuffers[i])); } diff --git a/renderdoc/driver/gl/wrappers/gl_query_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_query_funcs.cpp index 3b8520dcc..f2790f759 100644 --- a/renderdoc/driver/gl/wrappers/gl_query_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_query_funcs.cpp @@ -38,9 +38,9 @@ bool WrappedOpenGL::Serialise_glFenceSync(GLsync real, GLenum condition, GLbitfi GLuint name = 0; ResourceId liveid = ResourceId(); - GetResourceManager()->RegisterSync(real, name, liveid); + GetResourceManager()->RegisterSync(GetCtx(), real, name, liveid); - GLResource res = SyncRes(name); + GLResource res = SyncRes(GetCtx(), name); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -55,8 +55,8 @@ GLsync WrappedOpenGL::glFenceSync(GLenum condition, GLbitfield flags) GLuint name = 0; ResourceId id = ResourceId(); - GetResourceManager()->RegisterSync(sync, name, id); - GLResource res = SyncRes(name); + GetResourceManager()->RegisterSync(GetCtx(), sync, name, id); + GLResource res = SyncRes(GetCtx(), name); if(m_State == WRITING_CAPFRAME) { @@ -154,14 +154,14 @@ void WrappedOpenGL::glDeleteSync(GLsync sync) bool WrappedOpenGL::Serialise_glGenQueries(GLsizei n, GLuint* ids) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(*ids))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(GetCtx(), *ids))); if(m_State == READING) { GLuint real = 0; m_Real.glGenSamplers(1, &real); - GLResource res = QueryRes(real); + GLResource res = QueryRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -176,7 +176,7 @@ void WrappedOpenGL::glGenQueries(GLsizei count, GLuint *ids) for(GLsizei i=0; i < count; i++) { - GLResource res = QueryRes(ids[i]); + GLResource res = QueryRes(GetCtx(), ids[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -205,7 +205,7 @@ void WrappedOpenGL::glGenQueries(GLsizei count, GLuint *ids) bool WrappedOpenGL::Serialise_glBeginQuery(GLenum target, GLuint qid) { SERIALISE_ELEMENT(GLenum, Target, target); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(qid))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(QueryRes(GetCtx(), qid))); if(m_State < WRITING) { @@ -258,5 +258,5 @@ void WrappedOpenGL::glDeleteQueries(GLsizei n, const GLuint *ids) m_Real.glDeleteQueries(n, ids); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(QueryRes(ids[i])); + GetResourceManager()->UnregisterResource(QueryRes(GetCtx(), ids[i])); } diff --git a/renderdoc/driver/gl/wrappers/gl_sampler_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_sampler_funcs.cpp index 1658e3bc9..b1e4aa7cc 100644 --- a/renderdoc/driver/gl/wrappers/gl_sampler_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_sampler_funcs.cpp @@ -28,14 +28,14 @@ bool WrappedOpenGL::Serialise_glGenSamplers(GLsizei n, GLuint* samplers) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(*samplers))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), *samplers))); if(m_State == READING) { GLuint real = 0; m_Real.glGenSamplers(1, &real); - GLResource res = SamplerRes(real); + GLResource res = SamplerRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -50,7 +50,7 @@ void WrappedOpenGL::glGenSamplers(GLsizei count, GLuint *samplers) for(GLsizei i=0; i < count; i++) { - GLResource res = SamplerRes(samplers[i]); + GLResource res = SamplerRes(GetCtx(), samplers[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -79,7 +79,7 @@ void WrappedOpenGL::glGenSamplers(GLsizei count, GLuint *samplers) bool WrappedOpenGL::Serialise_glBindSampler(GLuint unit, GLuint sampler) { SERIALISE_ELEMENT(uint32_t, Unit, unit); - SERIALISE_ELEMENT(ResourceId, id, sampler ? GetResourceManager()->GetID(SamplerRes(sampler)) : ResourceId()); + SERIALISE_ELEMENT(ResourceId, id, sampler ? GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler)) : ResourceId()); if(m_State < WRITING) { @@ -112,7 +112,7 @@ void WrappedOpenGL::glBindSampler(GLuint unit, GLuint sampler) bool WrappedOpenGL::Serialise_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); SERIALISE_ELEMENT(int32_t, Param, param); @@ -135,7 +135,7 @@ void WrappedOpenGL::glSamplerParameteri(GLuint sampler, GLenum pname, GLint para Serialise_glSamplerParameteri(sampler, pname, param); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -143,7 +143,7 @@ void WrappedOpenGL::glSamplerParameteri(GLuint sampler, GLenum pname, GLint para bool WrappedOpenGL::Serialise_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); SERIALISE_ELEMENT(float, Param, param); @@ -166,7 +166,7 @@ void WrappedOpenGL::glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat pa Serialise_glSamplerParameterf(sampler, pname, param); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -174,7 +174,7 @@ void WrappedOpenGL::glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat pa bool WrappedOpenGL::Serialise_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U); SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams); @@ -200,7 +200,7 @@ void WrappedOpenGL::glSamplerParameteriv(GLuint sampler, GLenum pname, const GLi Serialise_glSamplerParameteriv(sampler, pname, params); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -208,7 +208,7 @@ void WrappedOpenGL::glSamplerParameteriv(GLuint sampler, GLenum pname, const GLi bool WrappedOpenGL::Serialise_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U); SERIALISE_ELEMENT_ARR(float, Params, params, nParams); @@ -234,7 +234,7 @@ void WrappedOpenGL::glSamplerParameterfv(GLuint sampler, GLenum pname, const GLf Serialise_glSamplerParameterfv(sampler, pname, params); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -242,7 +242,7 @@ void WrappedOpenGL::glSamplerParameterfv(GLuint sampler, GLenum pname, const GLf bool WrappedOpenGL::Serialise_glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U); SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams); @@ -268,7 +268,7 @@ void WrappedOpenGL::glSamplerParameterIiv(GLuint sampler, GLenum pname, const GL Serialise_glSamplerParameterIiv(sampler, pname, params); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -276,7 +276,7 @@ void WrappedOpenGL::glSamplerParameterIiv(GLuint sampler, GLenum pname, const GL bool WrappedOpenGL::Serialise_glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(sampler))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(SamplerRes(GetCtx(), sampler))); SERIALISE_ELEMENT(GLenum, PName, pname); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR ? 4U : 1U); SERIALISE_ELEMENT_ARR(uint32_t, Params, params, nParams); @@ -302,7 +302,7 @@ void WrappedOpenGL::glSamplerParameterIuiv(GLuint sampler, GLenum pname, const G Serialise_glSamplerParameterIuiv(sampler, pname, params); if(m_State == WRITING_IDLE) - GetResourceManager()->GetResourceRecord(SamplerRes(sampler))->AddChunk(scope.Get()); + GetResourceManager()->GetResourceRecord(SamplerRes(GetCtx(), sampler))->AddChunk(scope.Get()); else m_ContextRecord->AddChunk(scope.Get()); } @@ -313,5 +313,5 @@ void WrappedOpenGL::glDeleteSamplers(GLsizei n, const GLuint *ids) m_Real.glDeleteSamplers(n, ids); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(SamplerRes(ids[i])); + GetResourceManager()->UnregisterResource(SamplerRes(GetCtx(), ids[i])); } diff --git a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp index 9bcabdbc2..15aa2ddd5 100644 --- a/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_shader_funcs.cpp @@ -32,13 +32,13 @@ bool WrappedOpenGL::Serialise_glCreateShader(GLuint shader, GLenum type) { SERIALISE_ELEMENT(GLenum, Type, type); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader))); if(m_State == READING) { GLuint real = m_Real.glCreateShader(Type); - GLResource res = ShaderRes(real); + GLResource res = ShaderRes(GetCtx(), real); ResourceId liveId = GetResourceManager()->RegisterResource(res); @@ -54,7 +54,7 @@ GLuint WrappedOpenGL::glCreateShader(GLenum type) { GLuint real = m_Real.glCreateShader(type); - GLResource res = ShaderRes(real); + GLResource res = ShaderRes(GetCtx(), real); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -83,7 +83,7 @@ GLuint WrappedOpenGL::glCreateShader(GLenum type) bool WrappedOpenGL::Serialise_glShaderSource(GLuint shader, GLsizei count, const GLchar* const *source, const GLint *length) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader))); SERIALISE_ELEMENT(uint32_t, Count, count); vector srcs; @@ -123,7 +123,7 @@ void WrappedOpenGL::glShaderSource(GLuint shader, GLsizei count, const GLchar* c if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(shader)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(SHADERSOURCE); @@ -136,7 +136,7 @@ void WrappedOpenGL::glShaderSource(GLuint shader, GLsizei count, const GLchar* c bool WrappedOpenGL::Serialise_glCompileShader(GLuint shader) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(shader))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader))); if(m_State == READING) { @@ -152,7 +152,7 @@ void WrappedOpenGL::glCompileShader(GLuint shader) if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(shader)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(COMPILESHADER); @@ -172,13 +172,13 @@ void WrappedOpenGL::glDeleteShader(GLuint shader) { m_Real.glDeleteShader(shader); - GetResourceManager()->UnregisterResource(ShaderRes(shader)); + GetResourceManager()->UnregisterResource(ShaderRes(GetCtx(), shader)); } bool WrappedOpenGL::Serialise_glAttachShader(GLuint program, GLuint shader) { - SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(program))); - SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(shader))); + SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); + SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader))); if(m_State == READING) { @@ -200,8 +200,8 @@ void WrappedOpenGL::glAttachShader(GLuint program, GLuint shader) if(m_State >= WRITING) { - GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(program)); - GLResourceRecord *shadRecord = GetResourceManager()->GetResourceRecord(ShaderRes(shader)); + GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); + GLResourceRecord *shadRecord = GetResourceManager()->GetResourceRecord(ShaderRes(GetCtx(), shader)); RDCASSERT(progRecord && shadRecord); { SCOPED_SERIALISE_CONTEXT(ATTACHSHADER); @@ -215,8 +215,8 @@ void WrappedOpenGL::glAttachShader(GLuint program, GLuint shader) bool WrappedOpenGL::Serialise_glDetachShader(GLuint program, GLuint shader) { - SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(program))); - SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(shader))); + SERIALISE_ELEMENT(ResourceId, progid, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); + SERIALISE_ELEMENT(ResourceId, shadid, GetResourceManager()->GetID(ShaderRes(GetCtx(), shader))); if(m_State == READING) { @@ -249,7 +249,7 @@ void WrappedOpenGL::glDetachShader(GLuint program, GLuint shader) if(m_State >= WRITING) { - GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *progRecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(progRecord); { SCOPED_SERIALISE_CONTEXT(DETACHSHADER); @@ -268,7 +268,7 @@ bool WrappedOpenGL::Serialise_glCreateShaderProgramv(GLuint program, GLenum type { SERIALISE_ELEMENT(GLenum, Type, type); SERIALISE_ELEMENT(int32_t, Count, count); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); vector src; @@ -291,7 +291,7 @@ bool WrappedOpenGL::Serialise_glCreateShaderProgramv(GLuint program, GLenum type delete[] sources; - GLResource res = ProgramRes(real); + GLResource res = ProgramRes(GetCtx(), real); m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -304,7 +304,7 @@ GLuint WrappedOpenGL::glCreateShaderProgramv(GLenum type, GLsizei count, const G { GLuint real = m_Real.glCreateShaderProgramv(type, count, strings); - GLResource res = ProgramRes(real); + GLResource res = ProgramRes(GetCtx(), real); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -333,13 +333,13 @@ GLuint WrappedOpenGL::glCreateShaderProgramv(GLenum type, GLsizei count, const G bool WrappedOpenGL::Serialise_glCreateProgram(GLuint program) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); if(m_State == READING) { GLuint real = m_Real.glCreateProgram(); - GLResource res = ProgramRes(real); + GLResource res = ProgramRes(GetCtx(), real); m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -352,7 +352,7 @@ GLuint WrappedOpenGL::glCreateProgram() { GLuint real = m_Real.glCreateProgram(); - GLResource res = ProgramRes(real); + GLResource res = ProgramRes(GetCtx(), real); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -381,7 +381,7 @@ GLuint WrappedOpenGL::glCreateProgram() bool WrappedOpenGL::Serialise_glLinkProgram(GLuint program) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); if(m_State == READING) { @@ -401,7 +401,7 @@ void WrappedOpenGL::glLinkProgram(GLuint program) if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(LINKPROGRAM); @@ -414,7 +414,7 @@ void WrappedOpenGL::glLinkProgram(GLuint program) bool WrappedOpenGL::Serialise_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); SERIALISE_ELEMENT(uint32_t, index, uniformBlockIndex); SERIALISE_ELEMENT(uint32_t, binding, uniformBlockBinding); @@ -432,7 +432,7 @@ void WrappedOpenGL::glUniformBlockBinding(GLuint program, GLuint uniformBlockInd if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(UNIFORM_BLOCKBIND); @@ -445,7 +445,7 @@ void WrappedOpenGL::glUniformBlockBinding(GLuint program, GLuint uniformBlockInd bool WrappedOpenGL::Serialise_glBindAttribLocation(GLuint program, GLuint index, const GLchar *name_) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); SERIALISE_ELEMENT(uint32_t, idx, index); string name = name_ ? name_ : ""; @@ -465,7 +465,7 @@ void WrappedOpenGL::glBindAttribLocation(GLuint program, GLuint index, const GLc if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(BINDATTRIB_LOCATION); @@ -478,7 +478,7 @@ void WrappedOpenGL::glBindAttribLocation(GLuint program, GLuint index, const GLc bool WrappedOpenGL::Serialise_glProgramParameteri(GLuint program, GLenum pname, GLint value) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); SERIALISE_ELEMENT(GLenum, PName, pname); SERIALISE_ELEMENT(int32_t, Value, value); @@ -496,7 +496,7 @@ void WrappedOpenGL::glProgramParameteri(GLuint program, GLenum pname, GLint valu if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); { SCOPED_SERIALISE_CONTEXT(PROGRAMPARAMETER); @@ -511,12 +511,12 @@ void WrappedOpenGL::glDeleteProgram(GLuint program) { m_Real.glDeleteProgram(program); - GetResourceManager()->UnregisterResource(ProgramRes(program)); + GetResourceManager()->UnregisterResource(ProgramRes(GetCtx(), program)); } bool WrappedOpenGL::Serialise_glUseProgram(GLuint program) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); if(m_State <= EXECUTING) { @@ -555,9 +555,9 @@ void WrappedOpenGL::glValidateProgramPipeline(GLuint pipeline) bool WrappedOpenGL::Serialise_glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program) { - SERIALISE_ELEMENT(ResourceId, pipe, GetResourceManager()->GetID(ProgramPipeRes(pipeline))); + SERIALISE_ELEMENT(ResourceId, pipe, GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), pipeline))); SERIALISE_ELEMENT(uint32_t, Stages, stages); - SERIALISE_ELEMENT(ResourceId, prog, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, prog, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); if(m_State < WRITING) { @@ -583,25 +583,25 @@ void WrappedOpenGL::glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuin SCOPED_SERIALISE_CONTEXT(USE_PROGRAMSTAGES); Serialise_glUseProgramStages(pipeline, stages, program); - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramPipeRes(pipeline)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramPipeRes(GetCtx(), pipeline)); RDCASSERT(record); record->AddChunk(scope.Get()); - GLResourceRecord *progrecord = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *progrecord = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); record->AddParent(progrecord); } } bool WrappedOpenGL::Serialise_glGenProgramPipelines(GLsizei n, GLuint* pipelines) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramPipeRes(*pipelines))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), *pipelines))); if(m_State == READING) { GLuint real = 0; m_Real.glGenProgramPipelines(1, &real); - GLResource res = ProgramPipeRes(real); + GLResource res = ProgramPipeRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -616,7 +616,7 @@ void WrappedOpenGL::glGenProgramPipelines(GLsizei n, GLuint *pipelines) for(GLsizei i=0; i < n; i++) { - GLResource res = ProgramPipeRes(pipelines[i]); + GLResource res = ProgramPipeRes(GetCtx(), pipelines[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -644,7 +644,7 @@ void WrappedOpenGL::glGenProgramPipelines(GLsizei n, GLuint *pipelines) bool WrappedOpenGL::Serialise_glBindProgramPipeline(GLuint pipeline) { - SERIALISE_ELEMENT(ResourceId, id, (pipeline ? GetResourceManager()->GetID(ProgramPipeRes(pipeline)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, id, (pipeline ? GetResourceManager()->GetID(ProgramPipeRes(GetCtx(), pipeline)) : ResourceId())); if(m_State <= EXECUTING) { @@ -680,7 +680,7 @@ void WrappedOpenGL::glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines) m_Real.glDeleteProgramPipelines(n, pipelines); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(ProgramPipeRes(pipelines[i])); + GetResourceManager()->UnregisterResource(ProgramPipeRes(GetCtx(), pipelines[i])); } #pragma endregion diff --git a/renderdoc/driver/gl/wrappers/gl_texture_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_texture_funcs.cpp index 225aeda9e..a90211ab6 100644 --- a/renderdoc/driver/gl/wrappers/gl_texture_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_texture_funcs.cpp @@ -28,14 +28,14 @@ bool WrappedOpenGL::Serialise_glGenTextures(GLsizei n, GLuint* textures) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(*textures))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), *textures))); if(m_State == READING) { GLuint real = 0; m_Real.glGenTextures(1, &real); - GLResource res = TextureRes(real); + GLResource res = TextureRes(GetCtx(), real); ResourceId live = m_ResourceManager->RegisterResource(res); GetResourceManager()->AddLiveResource(id, res); @@ -53,7 +53,7 @@ void WrappedOpenGL::glGenTextures(GLsizei n, GLuint* textures) for(GLsizei i=0; i < n; i++) { - GLResource res = TextureRes(textures[i]); + GLResource res = TextureRes(GetCtx(), textures[i]); ResourceId id = GetResourceManager()->RegisterResource(res); if(m_State >= WRITING) @@ -86,13 +86,13 @@ void WrappedOpenGL::glDeleteTextures(GLsizei n, const GLuint *textures) m_Real.glDeleteTextures(n, textures); for(GLsizei i=0; i < n; i++) - GetResourceManager()->UnregisterResource(TextureRes(textures[i])); + GetResourceManager()->UnregisterResource(TextureRes(GetCtx(), textures[i])); } bool WrappedOpenGL::Serialise_glBindTexture(GLenum target, GLuint texture) { SERIALISE_ELEMENT(GLenum, Target, target); - SERIALISE_ELEMENT(ResourceId, Id, (texture ? GetResourceManager()->GetID(TextureRes(texture)) : ResourceId())); + SERIALISE_ELEMENT(ResourceId, Id, (texture ? GetResourceManager()->GetID(TextureRes(GetCtx(), texture)) : ResourceId())); if(m_State == WRITING_IDLE) { @@ -135,7 +135,7 @@ void WrappedOpenGL::glBindTexture(GLenum target, GLuint texture) } else if(m_State < WRITING) { - m_Textures[GetResourceManager()->GetID(TextureRes(texture))].curType = target; + m_Textures[GetResourceManager()->GetID(TextureRes(GetCtx(), texture))].curType = target; } if(texture == 0) @@ -146,7 +146,7 @@ void WrappedOpenGL::glBindTexture(GLenum target, GLuint texture) if(m_State >= WRITING) { - GLResourceRecord *r = m_TextureRecord[m_TextureUnit] = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *r = m_TextureRecord[m_TextureUnit] = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); if(r->datatype) { @@ -177,8 +177,8 @@ bool WrappedOpenGL::Serialise_glTextureView(GLuint texture, GLenum target, GLuin SERIALISE_ELEMENT(uint32_t, NumLevels, numlevels); SERIALISE_ELEMENT(uint32_t, MinLayer, minlayer); SERIALISE_ELEMENT(uint32_t, NumLayers, numlayers); - SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(texture))); - SERIALISE_ELEMENT(ResourceId, origid, GetResourceManager()->GetID(TextureRes(origtexture))); + SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); + SERIALISE_ELEMENT(ResourceId, origid, GetResourceManager()->GetID(TextureRes(GetCtx(), origtexture))); if(m_State == READING) { @@ -198,8 +198,8 @@ void WrappedOpenGL::glTextureView(GLuint texture, GLenum target, GLuint origtext if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); - GLResourceRecord *origrecord = GetResourceManager()->GetResourceRecord(TextureRes(origtexture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); + GLResourceRecord *origrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), origtexture)); RDCASSERT(record && origrecord); SCOPED_SERIALISE_CONTEXT(TEXTURE_VIEW); @@ -219,7 +219,7 @@ void WrappedOpenGL::glTextureView(GLuint texture, GLenum target, GLuint origtext bool WrappedOpenGL::Serialise_glGenerateTextureMipmapEXT(GLuint texture, GLenum target) { SERIALISE_ELEMENT(GLenum, Target, target); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State == READING) { @@ -245,7 +245,7 @@ void WrappedOpenGL::glGenerateTextureMipmapEXT(GLuint texture, GLenum target) SCOPED_SERIALISE_CONTEXT(GENERATE_MIPMAP); Serialise_glGenerateTextureMipmapEXT(texture, target); - ResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + ResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); if(record) record->AddChunk(scope.Get()); @@ -285,8 +285,8 @@ bool WrappedOpenGL::Serialise_glCopyImageSubData(GLuint srcName, GLenum srcTarge GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) { - SERIALISE_ELEMENT(ResourceId, srcid, GetResourceManager()->GetID(TextureRes(srcName))); - SERIALISE_ELEMENT(ResourceId, dstid, GetResourceManager()->GetID(TextureRes(dstName))); + SERIALISE_ELEMENT(ResourceId, srcid, GetResourceManager()->GetID(TextureRes(GetCtx(), srcName))); + SERIALISE_ELEMENT(ResourceId, dstid, GetResourceManager()->GetID(TextureRes(GetCtx(), dstName))); SERIALISE_ELEMENT(GLenum, SourceTarget, srcTarget); SERIALISE_ELEMENT(GLenum, DestTarget, dstTarget); SERIALISE_ELEMENT(uint32_t, SourceLevel, srcLevel); @@ -322,8 +322,8 @@ void WrappedOpenGL::glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint s if(m_State >= WRITING) { - GLResourceRecord *srcrecord = GetResourceManager()->GetResourceRecord(TextureRes(srcName)); - GLResourceRecord *dstrecord = GetResourceManager()->GetResourceRecord(TextureRes(dstName)); + GLResourceRecord *srcrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), srcName)); + GLResourceRecord *dstrecord = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), dstName)); RDCASSERT(srcrecord && dstrecord); SCOPED_SERIALISE_CONTEXT(COPY_SUBIMAGE); @@ -350,7 +350,7 @@ bool WrappedOpenGL::Serialise_glTextureParameteriEXT(GLuint texture, GLenum targ SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(GLenum, PName, pname); SERIALISE_ELEMENT(int32_t, Param, param); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State < WRITING) { @@ -366,7 +366,7 @@ void WrappedOpenGL::glTextureParameteriEXT(GLuint texture, GLenum target, GLenum if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXPARAMETERI); @@ -403,7 +403,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterivEXT(GLuint texture, GLenum tar { SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(GLenum, PName, pname); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR || PName == eGL_TEXTURE_SWIZZLE_RGBA ? 4U : 1U); SERIALISE_ELEMENT_ARR(int32_t, Params, params, nParams); @@ -423,7 +423,7 @@ void WrappedOpenGL::glTextureParameterivEXT(GLuint texture, GLenum target, GLenu if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXPARAMETERIV); @@ -461,7 +461,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterfEXT(GLuint texture, GLenum targ SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(GLenum, PName, pname); SERIALISE_ELEMENT(float, Param, param); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State < WRITING) { @@ -477,7 +477,7 @@ void WrappedOpenGL::glTextureParameterfEXT(GLuint texture, GLenum target, GLenum if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXPARAMETERF); @@ -514,7 +514,7 @@ bool WrappedOpenGL::Serialise_glTextureParameterfvEXT(GLuint texture, GLenum tar { SERIALISE_ELEMENT(GLenum, Target, target); SERIALISE_ELEMENT(GLenum, PName, pname); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); const size_t nParams = (PName == eGL_TEXTURE_BORDER_COLOR || PName == eGL_TEXTURE_SWIZZLE_RGBA ? 4U : 1U); SERIALISE_ELEMENT_ARR(float, Params, params, nParams); @@ -534,7 +534,7 @@ void WrappedOpenGL::glTextureParameterfvEXT(GLuint texture, GLenum target, GLenu if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXPARAMETERFV); @@ -726,7 +726,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage1DEXT(GLuint texture, GLenum targe SERIALISE_ELEMENT(uint32_t, Levels, levels); SERIALISE_ELEMENT(GLenum, Format, internalformat); SERIALISE_ELEMENT(uint32_t, Width, width); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State == READING) { @@ -748,7 +748,7 @@ void WrappedOpenGL::glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSTORAGE1D); @@ -788,7 +788,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage2DEXT(GLuint texture, GLenum targe SERIALISE_ELEMENT(GLenum, Format, internalformat); SERIALISE_ELEMENT(uint32_t, Width, width); SERIALISE_ELEMENT(uint32_t, Height, height); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State == READING) { @@ -810,7 +810,7 @@ void WrappedOpenGL::glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSTORAGE2D); @@ -857,7 +857,7 @@ bool WrappedOpenGL::Serialise_glTextureStorage3DEXT(GLuint texture, GLenum targe SERIALISE_ELEMENT(uint32_t, Width, width); SERIALISE_ELEMENT(uint32_t, Height, height); SERIALISE_ELEMENT(uint32_t, Depth, depth); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); if(m_State == READING) { @@ -879,7 +879,7 @@ void WrappedOpenGL::glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSTORAGE3D); @@ -926,7 +926,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage1DEXT(GLuint texture, GLenum targ SERIALISE_ELEMENT(uint32_t, Width, width); SERIALISE_ELEMENT(GLenum, Format, format); SERIALISE_ELEMENT(GLenum, Type, type); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); GLint align = 1; m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align); @@ -954,7 +954,7 @@ void WrappedOpenGL::glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE1D); @@ -997,7 +997,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage2DEXT(GLuint texture, GLenum targ SERIALISE_ELEMENT(uint32_t, Height, height); SERIALISE_ELEMENT(GLenum, Format, format); SERIALISE_ELEMENT(GLenum, Type, type); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); GLint align = 1; m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align); @@ -1028,7 +1028,7 @@ void WrappedOpenGL::glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE2D); @@ -1073,7 +1073,7 @@ bool WrappedOpenGL::Serialise_glTextureSubImage3DEXT(GLuint texture, GLenum targ SERIALISE_ELEMENT(uint32_t, Depth, depth); SERIALISE_ELEMENT(GLenum, Format, format); SERIALISE_ELEMENT(GLenum, Type, type); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); GLint align = 1; m_Real.glGetIntegerv(eGL_UNPACK_ALIGNMENT, &align); @@ -1104,7 +1104,7 @@ void WrappedOpenGL::glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE3D); @@ -1145,7 +1145,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage1DEXT(GLuint texture, G SERIALISE_ELEMENT(uint32_t, Width, width); SERIALISE_ELEMENT(GLenum, fmt, format); SERIALISE_ELEMENT(uint32_t, byteSize, imageSize); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize); @@ -1165,7 +1165,7 @@ void WrappedOpenGL::glCompressedTextureSubImage1DEXT(GLuint texture, GLenum targ if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE1D_COMPRESSED); @@ -1208,7 +1208,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage2DEXT(GLuint texture, G SERIALISE_ELEMENT(uint32_t, Height, height); SERIALISE_ELEMENT(GLenum, fmt, format); SERIALISE_ELEMENT(uint32_t, byteSize, imageSize); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize); @@ -1228,7 +1228,7 @@ void WrappedOpenGL::glCompressedTextureSubImage2DEXT(GLuint texture, GLenum targ if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE2D_COMPRESSED); @@ -1273,7 +1273,7 @@ bool WrappedOpenGL::Serialise_glCompressedTextureSubImage3DEXT(GLuint texture, G SERIALISE_ELEMENT(uint32_t, Depth, depth); SERIALISE_ELEMENT(GLenum, fmt, format); SERIALISE_ELEMENT(uint32_t, byteSize, imageSize); - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(texture))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); SERIALISE_ELEMENT_BUF(byte *, buf, pixels, byteSize); @@ -1293,7 +1293,7 @@ void WrappedOpenGL::glCompressedTextureSubImage3DEXT(GLuint texture, GLenum targ if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXSUBIMAGE3D_COMPRESSED); @@ -1332,8 +1332,8 @@ bool WrappedOpenGL::Serialise_glTextureBufferRangeEXT(GLuint texture, GLenum tar SERIALISE_ELEMENT(uint64_t, offs, (uint64_t)offset); SERIALISE_ELEMENT(uint64_t, Size, (uint64_t)size); SERIALISE_ELEMENT(GLenum, fmt, internalformat); - SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(texture))); - SERIALISE_ELEMENT(ResourceId, bufid, GetResourceManager()->GetID(TextureRes(buffer))); + SERIALISE_ELEMENT(ResourceId, texid, GetResourceManager()->GetID(TextureRes(GetCtx(), texture))); + SERIALISE_ELEMENT(ResourceId, bufid, GetResourceManager()->GetID(TextureRes(GetCtx(), buffer))); if(m_State == READING) { @@ -1352,7 +1352,7 @@ void WrappedOpenGL::glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenu if(m_State >= WRITING) { - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(texture)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(TextureRes(GetCtx(), texture)); RDCASSERT(record); SCOPED_SERIALISE_CONTEXT(TEXBUFFER_RANGE); diff --git a/renderdoc/driver/gl/wrappers/gl_uniform_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_uniform_funcs.cpp index 1067b7f02..650364526 100644 --- a/renderdoc/driver/gl/wrappers/gl_uniform_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_uniform_funcs.cpp @@ -310,7 +310,7 @@ void WrappedOpenGL::glUniform4fv(GLint location, GLsizei count, const GLfloat *v bool WrappedOpenGL::Serialise_glProgramUniformVector(GLuint program, GLint location, GLsizei count, const void *value, UniformType type) { - SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(program))); + SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(ProgramRes(GetCtx(), program))); SERIALISE_ELEMENT(UniformType, Type, type); SERIALISE_ELEMENT(int32_t, Loc, location); SERIALISE_ELEMENT(uint32_t, Count, count); @@ -416,7 +416,7 @@ void WrappedOpenGL::glProgramUniform1i(GLuint program, GLint location, GLint v0) else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -439,7 +439,7 @@ void WrappedOpenGL::glProgramUniform1iv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -462,7 +462,7 @@ void WrappedOpenGL::glProgramUniform1fv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -485,7 +485,7 @@ void WrappedOpenGL::glProgramUniform1uiv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -508,7 +508,7 @@ void WrappedOpenGL::glProgramUniform2fv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -531,7 +531,7 @@ void WrappedOpenGL::glProgramUniform3fv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); } @@ -554,7 +554,7 @@ void WrappedOpenGL::glProgramUniform4fv(GLuint program, GLint location, GLsizei else { // TODO grab this at capture time as initial state for program resources - GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(program)); + GLResourceRecord *record = GetResourceManager()->GetResourceRecord(ProgramRes(GetCtx(), program)); RDCASSERT(record); record->AddChunk(scope.Get()); }