From 79821f5d76e7304a00aa3bfa650cad04d262df22 Mon Sep 17 00:00:00 2001 From: Maciej Dziuban Date: Tue, 30 Jun 2020 16:44:12 +0200 Subject: [PATCH] Do not create shareable 64k paged allocations Change-Id: I25620848533dbe96172e8582b64a53655c3e7d0e Signed-off-by: Maciej Dziuban Resolves: NEO-4720 --- .../source/os_interface/windows/wddm/wddm.cpp | 2 +- .../os_interface/windows/CMakeLists.txt | 1 + .../os_interface/windows/wddm_tests.cpp | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 shared/test/unit_test/os_interface/windows/wddm_tests.cpp diff --git a/shared/source/os_interface/windows/wddm/wddm.cpp b/shared/source/os_interface/windows/wddm/wddm.cpp index 391f778aa6..b83079bb68 100644 --- a/shared/source/os_interface/windows/wddm/wddm.cpp +++ b/shared/source/os_interface/windows/wddm/wddm.cpp @@ -499,7 +499,7 @@ bool Wddm::createAllocation64k(const Gmm *gmm, D3DKMT_HANDLE &outHandle) { CreateAllocation.NumAllocations = 1; CreateAllocation.pPrivateRuntimeData = NULL; CreateAllocation.pPrivateDriverData = NULL; - CreateAllocation.Flags.CreateResource = TRUE; + CreateAllocation.Flags.CreateResource = FALSE; CreateAllocation.pAllocationInfo = &AllocationInfo; CreateAllocation.hDevice = device; diff --git a/shared/test/unit_test/os_interface/windows/CMakeLists.txt b/shared/test/unit_test/os_interface/windows/CMakeLists.txt index 9914205940..d4ed2e23f4 100644 --- a/shared/test/unit_test/os_interface/windows/CMakeLists.txt +++ b/shared/test/unit_test/os_interface/windows/CMakeLists.txt @@ -11,6 +11,7 @@ set(NEO_CORE_OS_INTERFACE_TESTS_WINDOWS ${CMAKE_CURRENT_SOURCE_DIR}/mock_gdi_interface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/mock_gdi_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/wddm_preemption_tests.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/wddm_tests.cpp ) set_property(GLOBAL PROPERTY NEO_CORE_OS_INTERFACE_TESTS_WINDOWS ${NEO_CORE_OS_INTERFACE_TESTS_WINDOWS}) diff --git a/shared/test/unit_test/os_interface/windows/wddm_tests.cpp b/shared/test/unit_test/os_interface/windows/wddm_tests.cpp new file mode 100644 index 0000000000..aa90e10c07 --- /dev/null +++ b/shared/test/unit_test/os_interface/windows/wddm_tests.cpp @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2018-2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "shared/source/gmm_helper/gmm.h" + +#include "opencl/test/unit_test/os_interface/windows/wddm_fixture.h" +#include "test.h" + +namespace NEO { + +using WddmTests = WddmTestWithMockGdiDll; + +TEST_F(WddmTests, whenCreatingAllocation64kThenDoNotCreateResource) { + init(); + + D3DKMT_HANDLE handle; + Gmm gmm(executionEnvironment->rootDeviceEnvironments[0]->getGmmClientContext(), nullptr, 20, false, true, true, {}); + + EXPECT_TRUE(wddm->createAllocation64k(&gmm, handle)); + auto gdiParam = getMockAllocationFcn(); + EXPECT_EQ(FALSE, gdiParam->Flags.CreateResource); +} + +} // namespace NEO