Add context types.

Change-Id: Ie8f76de97ce2a41c55e78b715b0ab7db039f5b3b
This commit is contained in:
Mrozek, Michal 2018-10-24 12:50:16 +02:00 committed by sys_ocldev
parent d44507708c
commit 41e77d2fdf
2 changed files with 14 additions and 0 deletions

View File

@ -26,6 +26,12 @@ struct OpenCLObjectMapper<_cl_context> {
typedef class Context DerivedType;
};
enum class ContextType {
CONTEXT_TYPE_DEFAULT,
CONTEXT_TYPE_SPECIALIZED,
CONTEXT_TYPE_UNRESTRICTIVE
};
class Context : public BaseObject<_cl_context> {
public:
static const cl_ulong objectMagic = 0xA4234321DC002130LL;
@ -110,6 +116,8 @@ class Context : public BaseObject<_cl_context> {
bool getInteropUserSyncEnabled() { return interopUserSync; }
void setInteropUserSyncEnabled(bool enabled) { interopUserSync = enabled; }
ContextType peekContextType() { return this->contextType; }
protected:
Context(void(CL_CALLBACK *pfnNotify)(const char *, const void *, size_t, void *) = nullptr,
void *userData = nullptr);
@ -131,5 +139,6 @@ class Context : public BaseObject<_cl_context> {
DriverDiagnostics *driverDiagnostics;
bool interopUserSync = false;
cl_bool preferD3dSharedResources = 0u;
ContextType contextType = ContextType::CONTEXT_TYPE_DEFAULT;
};
} // namespace OCLRT

View File

@ -340,3 +340,8 @@ TEST_P(ContextWithAsyncDeleterTest, givenContextWithMemoryManagerWhenAsyncDelete
INSTANTIATE_TEST_CASE_P(ContextTests,
ContextWithAsyncDeleterTest,
::testing::Bool());
TEST(DefaultContext, givenDefaultContextWhenItIsQueriedForTypeThenDefaultTypeIsReturned) {
MockContext context;
EXPECT_EQ(ContextType::CONTEXT_TYPE_DEFAULT, context.peekContextType());
}