Pass Context to Fence Impl methods.
This is needed for the error refactoring and also for the Vulkan
implementation.
Bug: angleproject:2738
Change-Id: I4e1bed7f67ef17feb5554b5838a2ed5feb22bba0
Reviewed-on: https://chromium-review.googlesource.com/1150091
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index d081a37..4ceda20 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -4987,7 +4987,7 @@
void Context::getSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)
{
const Sync *syncObject = getSync(sync);
- handleError(QuerySynciv(syncObject, pname, bufSize, length, values));
+ handleError(QuerySynciv(this, syncObject, pname, bufSize, length, values));
}
void Context::getFramebufferParameteriv(GLenum target, GLenum pname, GLint *params)
@@ -6119,7 +6119,7 @@
GLsync syncHandle = reinterpret_cast<GLsync>(static_cast<uintptr_t>(handle));
Sync *syncObject = getSync(syncHandle);
- Error error = syncObject->set(condition, flags);
+ Error error = syncObject->set(this, condition, flags);
if (error.isError())
{
deleteSync(syncHandle);
@@ -6140,14 +6140,14 @@
Sync *syncObject = getSync(sync);
GLenum result = GL_WAIT_FAILED;
- handleError(syncObject->clientWait(flags, timeout, &result));
+ handleError(syncObject->clientWait(this, flags, timeout, &result));
return result;
}
void Context::waitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
{
Sync *syncObject = getSync(sync);
- handleError(syncObject->serverWait(flags, timeout));
+ handleError(syncObject->serverWait(this, flags, timeout));
}
void Context::getInteger64v(GLenum pname, GLint64 *params)
@@ -6550,7 +6550,7 @@
FenceNV *fenceObject = getFenceNV(fence);
ASSERT(fenceObject && fenceObject->isSet());
- handleError(fenceObject->finish());
+ handleError(fenceObject->finish(this));
}
void Context::getFenceivNV(GLuint fence, GLenum pname, GLint *params)
@@ -6570,7 +6570,7 @@
GLboolean status = GL_TRUE;
if (fenceObject->getStatus() != GL_TRUE)
{
- ANGLE_CONTEXT_TRY(fenceObject->test(&status));
+ ANGLE_CONTEXT_TRY(fenceObject->test(this, &status));
}
*params = status;
break;
@@ -6673,7 +6673,7 @@
FenceNV *fenceObject = getFenceNV(fence);
ASSERT(fenceObject != nullptr);
- handleError(fenceObject->set(condition));
+ handleError(fenceObject->set(this, condition));
}
GLboolean Context::testFenceNV(GLuint fence)
@@ -6684,7 +6684,7 @@
ASSERT(fenceObject->isSet() == GL_TRUE);
GLboolean result = GL_TRUE;
- Error error = fenceObject->test(&result);
+ Error error = fenceObject->test(this, &result);
if (error.isError())
{
handleError(error);
diff --git a/src/libANGLE/Fence.cpp b/src/libANGLE/Fence.cpp
index 9c4d381..a424a8c 100644
--- a/src/libANGLE/Fence.cpp
+++ b/src/libANGLE/Fence.cpp
@@ -31,13 +31,9 @@
SafeDelete(mFence);
}
-Error FenceNV::set(GLenum condition)
+Error FenceNV::set(const Context *context, GLenum condition)
{
- Error error = mFence->set(condition);
- if (error.isError())
- {
- return error;
- }
+ ANGLE_TRY(mFence->set(context, condition));
mCondition = condition;
mStatus = GL_FALSE;
@@ -46,28 +42,20 @@
return NoError();
}
-Error FenceNV::test(GLboolean *outResult)
+Error FenceNV::test(const Context *context, GLboolean *outResult)
{
// Flush the command buffer by default
- Error error = mFence->test(&mStatus);
- if (error.isError())
- {
- return error;
- }
+ ANGLE_TRY(mFence->test(context, &mStatus));
*outResult = mStatus;
return NoError();
}
-Error FenceNV::finish()
+Error FenceNV::finish(const Context *context)
{
ASSERT(mIsSet);
- gl::Error error = mFence->finish();
- if (error.isError())
- {
- return error;
- }
+ ANGLE_TRY(mFence->finish(context));
mStatus = GL_TRUE;
@@ -103,33 +91,32 @@
return mLabel;
}
-Error Sync::set(GLenum condition, GLbitfield flags)
+Error Sync::set(const Context *context, GLenum condition, GLbitfield flags)
{
- Error error = mFence->set(condition, flags);
- if (error.isError())
- {
- return error;
- }
+ ANGLE_TRY(mFence->set(context, condition, flags));
mCondition = condition;
mFlags = flags;
return NoError();
}
-Error Sync::clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult)
+Error Sync::clientWait(const Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult)
{
ASSERT(mCondition != GL_NONE);
- return mFence->clientWait(flags, timeout, outResult);
+ return mFence->clientWait(context, flags, timeout, outResult);
}
-Error Sync::serverWait(GLbitfield flags, GLuint64 timeout)
+Error Sync::serverWait(const Context *context, GLbitfield flags, GLuint64 timeout)
{
- return mFence->serverWait(flags, timeout);
+ return mFence->serverWait(context, flags, timeout);
}
-Error Sync::getStatus(GLint *outResult) const
+Error Sync::getStatus(const Context *context, GLint *outResult) const
{
- return mFence->getStatus(outResult);
+ return mFence->getStatus(context, outResult);
}
} // namespace gl
diff --git a/src/libANGLE/Fence.h b/src/libANGLE/Fence.h
index 24bc689..22a6fbe 100644
--- a/src/libANGLE/Fence.h
+++ b/src/libANGLE/Fence.h
@@ -31,9 +31,9 @@
explicit FenceNV(rx::FenceNVImpl *impl);
virtual ~FenceNV();
- Error set(GLenum condition);
- Error test(GLboolean *outResult);
- Error finish();
+ Error set(const Context *context, GLenum condition);
+ Error test(const Context *context, GLboolean *outResult);
+ Error finish(const Context *context);
bool isSet() const { return mIsSet; }
GLboolean getStatus() const { return mStatus; }
@@ -59,10 +59,10 @@
void setLabel(const std::string &label) override;
const std::string &getLabel() const override;
- Error set(GLenum condition, GLbitfield flags);
- Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult);
- Error serverWait(GLbitfield flags, GLuint64 timeout);
- Error getStatus(GLint *outResult) const;
+ Error set(const Context *context, GLenum condition, GLbitfield flags);
+ Error clientWait(const Context *context, GLbitfield flags, GLuint64 timeout, GLenum *outResult);
+ Error serverWait(const Context *context, GLbitfield flags, GLuint64 timeout);
+ Error getStatus(const Context *context, GLint *outResult) const;
GLenum getCondition() const { return mCondition; }
GLbitfield getFlags() const { return mFlags; }
diff --git a/src/libANGLE/Fence_unittest.cpp b/src/libANGLE/Fence_unittest.cpp
index edc5501..418ec9d 100644
--- a/src/libANGLE/Fence_unittest.cpp
+++ b/src/libANGLE/Fence_unittest.cpp
@@ -25,9 +25,9 @@
public:
virtual ~MockFenceNVImpl() { destroy(); }
- MOCK_METHOD1(set, gl::Error(GLenum));
- MOCK_METHOD1(test, gl::Error(GLboolean *));
- MOCK_METHOD0(finish, gl::Error());
+ MOCK_METHOD2(set, gl::Error(const gl::Context *, GLenum));
+ MOCK_METHOD2(test, gl::Error(const gl::Context *, GLboolean *));
+ MOCK_METHOD1(finish, gl::Error(const gl::Context *));
MOCK_METHOD0(destroy, void());
};
@@ -67,19 +67,19 @@
TEST_F(FenceNVTest, SetAndTestBehavior)
{
- EXPECT_CALL(*mImpl, set(_)).WillOnce(Return(gl::NoError())).RetiresOnSaturation();
+ EXPECT_CALL(*mImpl, set(_, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation();
EXPECT_FALSE(mFence->isSet());
- EXPECT_FALSE(mFence->set(GL_ALL_COMPLETED_NV).isError());
+ EXPECT_FALSE(mFence->set(nullptr, GL_ALL_COMPLETED_NV).isError());
EXPECT_TRUE(mFence->isSet());
// Fake the behavior of testing the fence before and after it's passed.
- EXPECT_CALL(*mImpl, test(_))
- .WillOnce(DoAll(SetArgumentPointee<0>(GL_FALSE), Return(gl::NoError())))
- .WillOnce(DoAll(SetArgumentPointee<0>(GL_TRUE), Return(gl::NoError())))
+ EXPECT_CALL(*mImpl, test(_, _))
+ .WillOnce(DoAll(SetArgumentPointee<1>(GL_FALSE), Return(gl::NoError())))
+ .WillOnce(DoAll(SetArgumentPointee<1>(GL_TRUE), Return(gl::NoError())))
.RetiresOnSaturation();
GLboolean out;
- EXPECT_FALSE(mFence->test(&out).isError());
+ EXPECT_FALSE(mFence->test(nullptr, &out).isError());
EXPECT_EQ(GL_FALSE, out);
- EXPECT_FALSE(mFence->test(&out).isError());
+ EXPECT_FALSE(mFence->test(nullptr, &out).isError());
EXPECT_EQ(GL_TRUE, out);
}
@@ -92,10 +92,10 @@
public:
virtual ~MockSyncImpl() { destroy(); }
- MOCK_METHOD2(set, gl::Error(GLenum, GLbitfield));
- MOCK_METHOD3(clientWait, gl::Error(GLbitfield, GLuint64, GLenum *));
- MOCK_METHOD2(serverWait, gl::Error(GLbitfield, GLuint64));
- MOCK_METHOD1(getStatus, gl::Error(GLint *));
+ MOCK_METHOD3(set, gl::Error(const gl::Context *, GLenum, GLbitfield));
+ MOCK_METHOD4(clientWait, gl::Error(const gl::Context *, GLbitfield, GLuint64, GLenum *));
+ MOCK_METHOD3(serverWait, gl::Error(const gl::Context *, GLbitfield, GLuint64));
+ MOCK_METHOD2(getStatus, gl::Error(const gl::Context *, GLint *));
MOCK_METHOD0(destroy, void());
};
@@ -134,18 +134,18 @@
TEST_F(FenceSyncTest, SetAndGetStatusBehavior)
{
- EXPECT_CALL(*mImpl, set(_, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation();
- EXPECT_FALSE(mFence->set(GL_SYNC_GPU_COMMANDS_COMPLETE, 0).isError());
+ EXPECT_CALL(*mImpl, set(_, _, _)).WillOnce(Return(gl::NoError())).RetiresOnSaturation();
+ EXPECT_FALSE(mFence->set(nullptr, GL_SYNC_GPU_COMMANDS_COMPLETE, 0).isError());
EXPECT_EQ(static_cast<GLenum>(GL_SYNC_GPU_COMMANDS_COMPLETE), mFence->getCondition());
// Fake the behavior of testing the fence before and after it's passed.
- EXPECT_CALL(*mImpl, getStatus(_))
- .WillOnce(DoAll(SetArgumentPointee<0>(GL_UNSIGNALED), Return(gl::NoError())))
- .WillOnce(DoAll(SetArgumentPointee<0>(GL_SIGNALED), Return(gl::NoError())))
+ EXPECT_CALL(*mImpl, getStatus(_, _))
+ .WillOnce(DoAll(SetArgumentPointee<1>(GL_UNSIGNALED), Return(gl::NoError())))
+ .WillOnce(DoAll(SetArgumentPointee<1>(GL_SIGNALED), Return(gl::NoError())))
.RetiresOnSaturation();
GLint out;
- EXPECT_FALSE(mFence->getStatus(&out).isError());
+ EXPECT_FALSE(mFence->getStatus(nullptr, &out).isError());
EXPECT_EQ(GL_UNSIGNALED, out);
- EXPECT_FALSE(mFence->getStatus(&out).isError());
+ EXPECT_FALSE(mFence->getStatus(nullptr, &out).isError());
EXPECT_EQ(GL_SIGNALED, out);
}
diff --git a/src/libANGLE/queryutils.cpp b/src/libANGLE/queryutils.cpp
index 751c5e2..eaf57fa 100644
--- a/src/libANGLE/queryutils.cpp
+++ b/src/libANGLE/queryutils.cpp
@@ -1330,7 +1330,12 @@
}
}
-Error QuerySynciv(const Sync *sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)
+Error QuerySynciv(const Context *context,
+ const Sync *sync,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei *length,
+ GLint *values)
{
ASSERT(sync);
@@ -1356,7 +1361,7 @@
*values = clampCast<GLint>(sync->getFlags());
break;
case GL_SYNC_STATUS:
- ANGLE_TRY(sync->getStatus(values));
+ ANGLE_TRY(sync->getStatus(context, values));
break;
default:
diff --git a/src/libANGLE/queryutils.h b/src/libANGLE/queryutils.h
index 5be1609..b19eeaa 100644
--- a/src/libANGLE/queryutils.h
+++ b/src/libANGLE/queryutils.h
@@ -100,7 +100,12 @@
void QueryFramebufferParameteriv(const Framebuffer *framebuffer, GLenum pname, GLint *params);
-Error QuerySynciv(const Sync *sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
+Error QuerySynciv(const Context *context,
+ const Sync *sync,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei *length,
+ GLint *values);
void SetTexParameterf(Context *context, Texture *texture, GLenum pname, GLfloat param);
void SetTexParameterfv(Context *context, Texture *texture, GLenum pname, const GLfloat *params);
diff --git a/src/libANGLE/renderer/FenceNVImpl.h b/src/libANGLE/renderer/FenceNVImpl.h
index a534914..4a85bb2 100644
--- a/src/libANGLE/renderer/FenceNVImpl.h
+++ b/src/libANGLE/renderer/FenceNVImpl.h
@@ -15,20 +15,23 @@
#include "angle_gl.h"
+namespace gl
+{
+class Context;
+} // namespace gl
+
namespace rx
{
-
class FenceNVImpl : angle::NonCopyable
{
public:
FenceNVImpl() { };
virtual ~FenceNVImpl() { };
- virtual gl::Error set(GLenum condition) = 0;
- virtual gl::Error test(GLboolean *outFinished) = 0;
- virtual gl::Error finish() = 0;
+ virtual gl::Error set(const gl::Context *context, GLenum condition) = 0;
+ virtual gl::Error test(const gl::Context *context, GLboolean *outFinished) = 0;
+ virtual gl::Error finish(const gl::Context *context) = 0;
};
-
-}
+} // namespace rx
#endif // LIBANGLE_RENDERER_FENCENVIMPL_H_
diff --git a/src/libANGLE/renderer/SyncImpl.h b/src/libANGLE/renderer/SyncImpl.h
index 22c92c3..949ac9e 100644
--- a/src/libANGLE/renderer/SyncImpl.h
+++ b/src/libANGLE/renderer/SyncImpl.h
@@ -15,20 +15,29 @@
#include "angle_gl.h"
+namespace gl
+{
+class Context;
+} // namespace gl
+
namespace rx
{
-
class SyncImpl : angle::NonCopyable
{
public:
SyncImpl(){};
virtual ~SyncImpl(){};
- virtual gl::Error set(GLenum condition, GLbitfield flags) = 0;
- virtual gl::Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult) = 0;
- virtual gl::Error serverWait(GLbitfield flags, GLuint64 timeout) = 0;
- virtual gl::Error getStatus(GLint *outResult) = 0;
+ virtual gl::Error set(const gl::Context *context, GLenum condition, GLbitfield flags) = 0;
+ virtual gl::Error clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult) = 0;
+ virtual gl::Error serverWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout) = 0;
+ virtual gl::Error getStatus(const gl::Context *context, GLint *outResult) = 0;
};
-}
+} // namespace rx
#endif // LIBANGLE_RENDERER_FENCESYNCIMPL_H_
diff --git a/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp b/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp
index 140cb67..65ab132 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp
@@ -71,17 +71,17 @@
SafeRelease(mQuery);
}
-gl::Error FenceNV11::set(GLenum condition)
+gl::Error FenceNV11::set(const gl::Context *context, GLenum condition)
{
return FenceSetHelper(this);
}
-gl::Error FenceNV11::test(GLboolean *outFinished)
+gl::Error FenceNV11::test(const gl::Context *context, GLboolean *outFinished)
{
return FenceTestHelper(this, true, outFinished);
}
-gl::Error FenceNV11::finish()
+gl::Error FenceNV11::finish(const gl::Context *context)
{
GLboolean finished = GL_FALSE;
@@ -132,13 +132,16 @@
SafeRelease(mQuery);
}
-gl::Error Sync11::set(GLenum condition, GLbitfield flags)
+gl::Error Sync11::set(const gl::Context *context, GLenum condition, GLbitfield flags)
{
ASSERT(condition == GL_SYNC_GPU_COMMANDS_COMPLETE && flags == 0);
return FenceSetHelper(this);
}
-gl::Error Sync11::clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult)
+gl::Error Sync11::clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult)
{
ASSERT(outResult);
@@ -212,7 +215,7 @@
return gl::NoError();
}
-gl::Error Sync11::serverWait(GLbitfield flags, GLuint64 timeout)
+gl::Error Sync11::serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout)
{
// Because our API is currently designed to be called from a single thread, we don't need to do
// extra work for a server-side fence. GPU commands issued after the fence is created will
@@ -220,7 +223,7 @@
return gl::NoError();
}
-gl::Error Sync11::getStatus(GLint *outResult)
+gl::Error Sync11::getStatus(const gl::Context *context, GLint *outResult)
{
GLboolean result = GL_FALSE;
gl::Error error = FenceTestHelper(this, false, &result);
diff --git a/src/libANGLE/renderer/d3d/d3d11/Fence11.h b/src/libANGLE/renderer/d3d/d3d11/Fence11.h
index 4168df5..2e62c1a 100644
--- a/src/libANGLE/renderer/d3d/d3d11/Fence11.h
+++ b/src/libANGLE/renderer/d3d/d3d11/Fence11.h
@@ -23,9 +23,9 @@
explicit FenceNV11(Renderer11 *renderer);
~FenceNV11() override;
- gl::Error set(GLenum condition) override;
- gl::Error test(GLboolean *outFinished) override;
- gl::Error finish() override;
+ gl::Error set(const gl::Context *context, GLenum condition) override;
+ gl::Error test(const gl::Context *context, GLboolean *outFinished) override;
+ gl::Error finish(const gl::Context *context) override;
private:
template<class T> friend gl::Error FenceSetHelper(T *fence);
@@ -41,10 +41,13 @@
explicit Sync11(Renderer11 *renderer);
~Sync11() override;
- gl::Error set(GLenum condition, GLbitfield flags) override;
- gl::Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult) override;
- gl::Error serverWait(GLbitfield flags, GLuint64 timeout) override;
- gl::Error getStatus(GLint *outResult) override;
+ gl::Error set(const gl::Context *context, GLenum condition, GLbitfield flags) override;
+ gl::Error clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult) override;
+ gl::Error serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout) override;
+ gl::Error getStatus(const gl::Context *context, GLint *outResult) override;
private:
template<class T> friend gl::Error FenceSetHelper(T *fence);
diff --git a/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp b/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp
index bff3881..bc7faa8 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp
@@ -22,7 +22,7 @@
SafeRelease(mQuery);
}
-gl::Error FenceNV9::set(GLenum condition)
+gl::Error FenceNV9::set(const gl::Context *context, GLenum condition)
{
if (!mQuery)
{
@@ -44,12 +44,12 @@
return gl::NoError();
}
-gl::Error FenceNV9::test(GLboolean *outFinished)
+gl::Error FenceNV9::test(const gl::Context *context, GLboolean *outFinished)
{
return testHelper(true, outFinished);
}
-gl::Error FenceNV9::finish()
+gl::Error FenceNV9::finish(const gl::Context *context)
{
GLboolean finished = GL_FALSE;
while (finished != GL_TRUE)
@@ -88,4 +88,4 @@
return gl::NoError();
}
-}
+} // namespace rx
diff --git a/src/libANGLE/renderer/d3d/d3d9/Fence9.h b/src/libANGLE/renderer/d3d/d3d9/Fence9.h
index de0ff20..d23e42d 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Fence9.h
+++ b/src/libANGLE/renderer/d3d/d3d9/Fence9.h
@@ -22,9 +22,9 @@
explicit FenceNV9(Renderer9 *renderer);
~FenceNV9() override;
- gl::Error set(GLenum condition) override;
- gl::Error test(GLboolean *outFinished) override;
- gl::Error finish() override;
+ gl::Error set(const gl::Context *context, GLenum condition) override;
+ gl::Error test(const gl::Context *context, GLboolean *outFinished) override;
+ gl::Error finish(const gl::Context *context) override;
private:
gl::Error testHelper(bool flushCommandBuffer, GLboolean *outFinished);
@@ -32,7 +32,6 @@
Renderer9 *mRenderer;
IDirect3DQuery9 *mQuery;
};
-
-}
+} // namespace rx
#endif // LIBANGLE_RENDERER_D3D_D3D9_FENCE9_H_
diff --git a/src/libANGLE/renderer/gl/FenceNVGL.cpp b/src/libANGLE/renderer/gl/FenceNVGL.cpp
index f4c3778..5c785ca 100644
--- a/src/libANGLE/renderer/gl/FenceNVGL.cpp
+++ b/src/libANGLE/renderer/gl/FenceNVGL.cpp
@@ -28,21 +28,21 @@
mFence = 0;
}
-gl::Error FenceNVGL::set(GLenum condition)
+gl::Error FenceNVGL::set(const gl::Context *context, GLenum condition)
{
ASSERT(condition == GL_ALL_COMPLETED_NV);
mFunctions->setFenceNV(mFence, condition);
return gl::NoError();
}
-gl::Error FenceNVGL::test(GLboolean *outFinished)
+gl::Error FenceNVGL::test(const gl::Context *context, GLboolean *outFinished)
{
ASSERT(outFinished);
*outFinished = mFunctions->testFenceNV(mFence);
return gl::NoError();
}
-gl::Error FenceNVGL::finish()
+gl::Error FenceNVGL::finish(const gl::Context *context)
{
mFunctions->finishFenceNV(mFence);
return gl::NoError();
diff --git a/src/libANGLE/renderer/gl/FenceNVGL.h b/src/libANGLE/renderer/gl/FenceNVGL.h
index ffeca85..a40bdb0 100644
--- a/src/libANGLE/renderer/gl/FenceNVGL.h
+++ b/src/libANGLE/renderer/gl/FenceNVGL.h
@@ -21,9 +21,9 @@
explicit FenceNVGL(const FunctionsGL *functions);
~FenceNVGL() override;
- gl::Error set(GLenum condition) override;
- gl::Error test(GLboolean *outFinished) override;
- gl::Error finish() override;
+ gl::Error set(const gl::Context *context, GLenum condition) override;
+ gl::Error test(const gl::Context *context, GLboolean *outFinished) override;
+ gl::Error finish(const gl::Context *context) override;
private:
GLuint mFence;
diff --git a/src/libANGLE/renderer/gl/SyncGL.cpp b/src/libANGLE/renderer/gl/SyncGL.cpp
index 15759cf..fecc56b 100644
--- a/src/libANGLE/renderer/gl/SyncGL.cpp
+++ b/src/libANGLE/renderer/gl/SyncGL.cpp
@@ -27,7 +27,7 @@
}
}
-gl::Error SyncGL::set(GLenum condition, GLbitfield flags)
+gl::Error SyncGL::set(const gl::Context *context, GLenum condition, GLbitfield flags)
{
ASSERT(condition == GL_SYNC_GPU_COMMANDS_COMPLETE && flags == 0);
mSyncObject = mFunctions->fenceSync(condition, flags);
@@ -40,21 +40,24 @@
return gl::NoError();
}
-gl::Error SyncGL::clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult)
+gl::Error SyncGL::clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult)
{
ASSERT(mSyncObject != 0);
*outResult = mFunctions->clientWaitSync(mSyncObject, flags, timeout);
return gl::NoError();
}
-gl::Error SyncGL::serverWait(GLbitfield flags, GLuint64 timeout)
+gl::Error SyncGL::serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout)
{
ASSERT(mSyncObject != 0);
mFunctions->waitSync(mSyncObject, flags, timeout);
return gl::NoError();
}
-gl::Error SyncGL::getStatus(GLint *outResult)
+gl::Error SyncGL::getStatus(const gl::Context *context, GLint *outResult)
{
ASSERT(mSyncObject != 0);
mFunctions->getSynciv(mSyncObject, GL_SYNC_STATUS, 1, nullptr, outResult);
diff --git a/src/libANGLE/renderer/gl/SyncGL.h b/src/libANGLE/renderer/gl/SyncGL.h
index 8e36604..aab06c6 100644
--- a/src/libANGLE/renderer/gl/SyncGL.h
+++ b/src/libANGLE/renderer/gl/SyncGL.h
@@ -21,10 +21,13 @@
explicit SyncGL(const FunctionsGL *functions);
~SyncGL() override;
- gl::Error set(GLenum condition, GLbitfield flags) override;
- gl::Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult) override;
- gl::Error serverWait(GLbitfield flags, GLuint64 timeout) override;
- gl::Error getStatus(GLint *outResult) override;
+ gl::Error set(const gl::Context *context, GLenum condition, GLbitfield flags) override;
+ gl::Error clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult) override;
+ gl::Error serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout) override;
+ gl::Error getStatus(const gl::Context *context, GLint *outResult) override;
private:
const FunctionsGL *mFunctions;
diff --git a/src/libANGLE/renderer/null/FenceNVNULL.cpp b/src/libANGLE/renderer/null/FenceNVNULL.cpp
index 5684379..a10ca74 100644
--- a/src/libANGLE/renderer/null/FenceNVNULL.cpp
+++ b/src/libANGLE/renderer/null/FenceNVNULL.cpp
@@ -22,18 +22,18 @@
{
}
-gl::Error FenceNVNULL::set(GLenum condition)
+gl::Error FenceNVNULL::set(const gl::Context *context, GLenum condition)
{
return gl::NoError();
}
-gl::Error FenceNVNULL::test(GLboolean *outFinished)
+gl::Error FenceNVNULL::test(const gl::Context *context, GLboolean *outFinished)
{
*outFinished = GL_TRUE;
return gl::NoError();
}
-gl::Error FenceNVNULL::finish()
+gl::Error FenceNVNULL::finish(const gl::Context *context)
{
return gl::NoError();
}
diff --git a/src/libANGLE/renderer/null/FenceNVNULL.h b/src/libANGLE/renderer/null/FenceNVNULL.h
index 10cf5c2..a1d5028 100644
--- a/src/libANGLE/renderer/null/FenceNVNULL.h
+++ b/src/libANGLE/renderer/null/FenceNVNULL.h
@@ -14,18 +14,16 @@
namespace rx
{
-
class FenceNVNULL : public FenceNVImpl
{
public:
FenceNVNULL();
~FenceNVNULL() override;
- gl::Error set(GLenum condition) override;
- gl::Error test(GLboolean *outFinished) override;
- gl::Error finish() override;
+ gl::Error set(const gl::Context *context, GLenum condition) override;
+ gl::Error test(const gl::Context *context, GLboolean *outFinished) override;
+ gl::Error finish(const gl::Context *context) override;
};
-
} // namespace rx
#endif // LIBANGLE_RENDERER_NULL_FENCENVNULL_H_
diff --git a/src/libANGLE/renderer/null/SyncNULL.cpp b/src/libANGLE/renderer/null/SyncNULL.cpp
index e75deb3..50c0d6f 100644
--- a/src/libANGLE/renderer/null/SyncNULL.cpp
+++ b/src/libANGLE/renderer/null/SyncNULL.cpp
@@ -22,23 +22,26 @@
{
}
-gl::Error SyncNULL::set(GLenum condition, GLbitfield flags)
+gl::Error SyncNULL::set(const gl::Context *context, GLenum condition, GLbitfield flags)
{
return gl::NoError();
}
-gl::Error SyncNULL::clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult)
+gl::Error SyncNULL::clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult)
{
*outResult = GL_ALREADY_SIGNALED;
return gl::NoError();
}
-gl::Error SyncNULL::serverWait(GLbitfield flags, GLuint64 timeout)
+gl::Error SyncNULL::serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout)
{
return gl::NoError();
}
-gl::Error SyncNULL::getStatus(GLint *outResult)
+gl::Error SyncNULL::getStatus(const gl::Context *context, GLint *outResult)
{
*outResult = GL_SIGNALED;
return gl::NoError();
diff --git a/src/libANGLE/renderer/null/SyncNULL.h b/src/libANGLE/renderer/null/SyncNULL.h
index 10096a2..24eab05 100644
--- a/src/libANGLE/renderer/null/SyncNULL.h
+++ b/src/libANGLE/renderer/null/SyncNULL.h
@@ -14,19 +14,20 @@
namespace rx
{
-
class SyncNULL : public SyncImpl
{
public:
SyncNULL();
~SyncNULL() override;
- gl::Error set(GLenum condition, GLbitfield flags) override;
- gl::Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult) override;
- gl::Error serverWait(GLbitfield flags, GLuint64 timeout) override;
- gl::Error getStatus(GLint *outResult) override;
+ gl::Error set(const gl::Context *context, GLenum condition, GLbitfield flags) override;
+ gl::Error clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult) override;
+ gl::Error serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout) override;
+ gl::Error getStatus(const gl::Context *context, GLint *outResult) override;
};
-
} // namespace rx
#endif // LIBANGLE_RENDERER_NULL_FENCESYNCNULL_H_
diff --git a/src/libANGLE/renderer/vulkan/FenceNVVk.cpp b/src/libANGLE/renderer/vulkan/FenceNVVk.cpp
index 805fc8c..8e46f2f 100644
--- a/src/libANGLE/renderer/vulkan/FenceNVVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FenceNVVk.cpp
@@ -22,19 +22,19 @@
{
}
-gl::Error FenceNVVk::set(GLenum condition)
+gl::Error FenceNVVk::set(const gl::Context *context, GLenum condition)
{
UNIMPLEMENTED();
return gl::InternalError();
}
-gl::Error FenceNVVk::test(GLboolean *outFinished)
+gl::Error FenceNVVk::test(const gl::Context *context, GLboolean *outFinished)
{
UNIMPLEMENTED();
return gl::InternalError();
}
-gl::Error FenceNVVk::finish()
+gl::Error FenceNVVk::finish(const gl::Context *context)
{
UNIMPLEMENTED();
return gl::InternalError();
diff --git a/src/libANGLE/renderer/vulkan/FenceNVVk.h b/src/libANGLE/renderer/vulkan/FenceNVVk.h
index be05471..85b09f6 100644
--- a/src/libANGLE/renderer/vulkan/FenceNVVk.h
+++ b/src/libANGLE/renderer/vulkan/FenceNVVk.h
@@ -14,18 +14,16 @@
namespace rx
{
-
class FenceNVVk : public FenceNVImpl
{
public:
FenceNVVk();
~FenceNVVk() override;
- gl::Error set(GLenum condition) override;
- gl::Error test(GLboolean *outFinished) override;
- gl::Error finish() override;
+ gl::Error set(const gl::Context *context, GLenum condition) override;
+ gl::Error test(const gl::Context *context, GLboolean *outFinished) override;
+ gl::Error finish(const gl::Context *context) override;
};
-
} // namespace rx
#endif // LIBANGLE_RENDERER_VULKAN_FENCENVVK_H_
diff --git a/src/libANGLE/renderer/vulkan/SyncVk.cpp b/src/libANGLE/renderer/vulkan/SyncVk.cpp
index cd2be0a..f6003e5 100644
--- a/src/libANGLE/renderer/vulkan/SyncVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SyncVk.cpp
@@ -22,25 +22,28 @@
{
}
-gl::Error SyncVk::set(GLenum condition, GLbitfield flags)
+gl::Error SyncVk::set(const gl::Context *context, GLenum condition, GLbitfield flags)
{
UNIMPLEMENTED();
return gl::InternalError();
}
-gl::Error SyncVk::clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult)
+gl::Error SyncVk::clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult)
{
UNIMPLEMENTED();
return gl::InternalError();
}
-gl::Error SyncVk::serverWait(GLbitfield flags, GLuint64 timeout)
+gl::Error SyncVk::serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout)
{
UNIMPLEMENTED();
return gl::InternalError();
}
-gl::Error SyncVk::getStatus(GLint *outResult)
+gl::Error SyncVk::getStatus(const gl::Context *context, GLint *outResult)
{
UNIMPLEMENTED();
return gl::InternalError();
diff --git a/src/libANGLE/renderer/vulkan/SyncVk.h b/src/libANGLE/renderer/vulkan/SyncVk.h
index 316c3ad..519c9d8 100644
--- a/src/libANGLE/renderer/vulkan/SyncVk.h
+++ b/src/libANGLE/renderer/vulkan/SyncVk.h
@@ -14,19 +14,20 @@
namespace rx
{
-
class SyncVk : public SyncImpl
{
public:
SyncVk();
~SyncVk() override;
- gl::Error set(GLenum condition, GLbitfield flags) override;
- gl::Error clientWait(GLbitfield flags, GLuint64 timeout, GLenum *outResult) override;
- gl::Error serverWait(GLbitfield flags, GLuint64 timeout) override;
- gl::Error getStatus(GLint *outResult) override;
+ gl::Error set(const gl::Context *context, GLenum condition, GLbitfield flags) override;
+ gl::Error clientWait(const gl::Context *context,
+ GLbitfield flags,
+ GLuint64 timeout,
+ GLenum *outResult) override;
+ gl::Error serverWait(const gl::Context *context, GLbitfield flags, GLuint64 timeout) override;
+ gl::Error getStatus(const gl::Context *context, GLint *outResult) override;
};
-
} // namespace rx
#endif // LIBANGLE_RENDERER_VULKAN_FENCESYNCVK_H_