From ab7920ba142b9cfd97a261ac20ce232d381fa734 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Mon, 23 Jul 2018 10:06:00 +0200 Subject: [PATCH] Gmm Memory: initialize client context in constructor Change-Id: Iaaa40f5485faceb022e018be7930777e14575b46 --- runtime/gmm_helper/gmm_memory_base.cpp | 7 ++----- runtime/gmm_helper/gmm_memory_base.h | 3 +-- .../os_interface/windows/gmm_memory_tests.cpp | 20 +++---------------- 3 files changed, 6 insertions(+), 24 deletions(-) diff --git a/runtime/gmm_helper/gmm_memory_base.cpp b/runtime/gmm_helper/gmm_memory_base.cpp index e659b25418..3f7e420d08 100644 --- a/runtime/gmm_helper/gmm_memory_base.cpp +++ b/runtime/gmm_helper/gmm_memory_base.cpp @@ -25,10 +25,8 @@ #include "runtime/gmm_helper/gmm_helper.h" namespace OCLRT { -void GmmMemoryBase::ensureClientContext() { - if (!clientContext) { - clientContext = GmmHelper::gmmClientContext->getHandle(); - } +GmmMemoryBase::GmmMemoryBase() { + clientContext = GmmHelper::gmmClientContext->getHandle(); } bool GmmMemoryBase::configureDeviceAddressSpace(GMM_ESCAPE_HANDLE hAdapter, GMM_ESCAPE_HANDLE hDevice, @@ -39,7 +37,6 @@ bool GmmMemoryBase::configureDeviceAddressSpace(GMM_ESCAPE_HANDLE hAdapter, BOOLEAN BDWL3Coherency, GMM_GFX_SIZE_T SizeOverride, GMM_GFX_SIZE_T SlmGfxSpaceReserve) { - ensureClientContext(); return clientContext->ConfigureDeviceAddressSpace( {hAdapter}, {hDevice}, diff --git a/runtime/gmm_helper/gmm_memory_base.h b/runtime/gmm_helper/gmm_memory_base.h index c73da51021..4772787e37 100644 --- a/runtime/gmm_helper/gmm_memory_base.h +++ b/runtime/gmm_helper/gmm_memory_base.h @@ -40,8 +40,7 @@ class GmmMemoryBase { GMM_GFX_SIZE_T SlmGfxSpaceReserve); protected: - GmmMemoryBase() = default; - void ensureClientContext(); + GmmMemoryBase(); GMM_CLIENT_CONTEXT *clientContext = nullptr; }; } // namespace OCLRT diff --git a/unit_tests/os_interface/windows/gmm_memory_tests.cpp b/unit_tests/os_interface/windows/gmm_memory_tests.cpp index e6ad136117..bd54506846 100644 --- a/unit_tests/os_interface/windows/gmm_memory_tests.cpp +++ b/unit_tests/os_interface/windows/gmm_memory_tests.cpp @@ -30,25 +30,11 @@ using namespace OCLRT; class PublicGmmMemory : public GmmMemory { public: using GmmMemory::clientContext; - using GmmMemory::ensureClientContext; }; -TEST(GmmMemoryTest, givenGmmMemoryWithoutSetClientContextWhenEnsureClientContextThenSetClientContext) { - PublicGmmMemory gmmMemory; +TEST(GmmMemoryTest, givenGmmHelperWhenCreateGmmMemoryThenItHasClientContextFromGmmHelper) { GmmHelper gmmHelper(*platformDevices); - EXPECT_EQ(nullptr, gmmMemory.clientContext); - gmmMemory.ensureClientContext(); - EXPECT_NE(nullptr, gmmMemory.clientContext); + ASSERT_NE(nullptr, GmmHelper::gmmClientContext); + PublicGmmMemory gmmMemory; EXPECT_EQ(gmmMemory.clientContext, GmmHelper::gmmClientContext->getHandle()); } - -TEST(GmmMemoryTest, givenGmmMemoryWithSetClientContextWhenEnsureClientContextThenDontOverrideClientContext) { - PublicGmmMemory gmmMemory; - GmmHelper gmmHelper(*platformDevices); - auto dummyPtr = reinterpret_cast(0x123); - gmmMemory.clientContext = dummyPtr; - EXPECT_EQ(dummyPtr, gmmMemory.clientContext); - EXPECT_NE(dummyPtr, GmmHelper::gmmClientContext->getHandle()); - gmmMemory.ensureClientContext(); - EXPECT_EQ(dummyPtr, gmmMemory.clientContext); -}