mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 22:12:59 +08:00
Move ult dxgi/dxcore factories to shared
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a5e686cf3a
commit
271e0ee7fe
@@ -62,10 +62,6 @@ set(IGDRCL_SRCS_LIB_ULT_ENV_WINDOWS
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/create_wddm_memory_manager.cpp
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/options.cpp
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/sys_calls.cpp
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/ult_dxcore_factory.cpp
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/ult_dxcore_factory.h
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/ult_dxgi_factory.cpp
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/ult_dxgi_factory.h
|
||||
${NEO_SOURCE_DIR}/opencl/test/unit_test/os_interface/windows/wddm_calls.cpp
|
||||
)
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "opencl/test/unit_test/os_interface/windows/ult_dxcore_factory.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
HRESULT WINAPI ULTDXCoreCreateAdapterFactory(REFIID riid, void **ppFactory) {
|
||||
*reinterpret_cast<UltDXCoreAdapterFactory **>(ppFactory) = new UltDXCoreAdapterFactory;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
void WINAPI ULTGetSystemInfo(SYSTEM_INFO *pSystemInfo) {
|
||||
pSystemInfo->lpMaximumApplicationAddress = is32bit ? (LPVOID)MemoryConstants::max32BitAppAddress : (LPVOID)MemoryConstants::max64BitAppAddress;
|
||||
}
|
||||
|
||||
const char *UltDxCoreAdapter::description = "Intel";
|
||||
bool UltDXCoreAdapterList::firstInvalid = false;
|
||||
|
||||
extern uint32_t numRootDevicesToEnum = 1;
|
||||
|
||||
} // namespace NEO
|
||||
@@ -1,260 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "shared/source/helpers/constants.h"
|
||||
#include "shared/source/helpers/debug_helpers.h"
|
||||
|
||||
#include <cwchar>
|
||||
#include <dxcore.h>
|
||||
#include <dxgi.h>
|
||||
|
||||
namespace NEO {
|
||||
static constexpr auto error = 1;
|
||||
|
||||
class UltDxCoreAdapter : public IDXCoreAdapter {
|
||||
public:
|
||||
const static char *description;
|
||||
LUID luid = {0u, 0x1234u};
|
||||
bool STDMETHODCALLTYPE IsValid() override {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsAttributeSupported(REFGUID attributeGUID) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsPropertySupported(DXCoreAdapterProperty property) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetProperty(DXCoreAdapterProperty property, size_t bufferSize,
|
||||
_Out_writes_bytes_(bufferSize) void *propertyData) override {
|
||||
size_t requiredSize;
|
||||
GetPropertySize(property, &requiredSize);
|
||||
if (bufferSize < requiredSize) {
|
||||
return error;
|
||||
}
|
||||
switch (property) {
|
||||
default:
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
case DXCoreAdapterProperty::IsHardware:
|
||||
*reinterpret_cast<bool *>(propertyData) = true;
|
||||
break;
|
||||
case DXCoreAdapterProperty::DriverDescription:
|
||||
memcpy_s(propertyData, bufferSize, description, requiredSize);
|
||||
break;
|
||||
case DXCoreAdapterProperty::InstanceLuid:
|
||||
reinterpret_cast<LUID *>(propertyData)->HighPart = luid.HighPart;
|
||||
reinterpret_cast<LUID *>(propertyData)->LowPart = luid.LowPart;
|
||||
break;
|
||||
case DXCoreAdapterProperty::HardwareID: {
|
||||
DXCoreHardwareID ret = {};
|
||||
ret.deviceID = 0x1234;
|
||||
*reinterpret_cast<DXCoreHardwareID *>(propertyData) = ret;
|
||||
} break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetPropertySize(DXCoreAdapterProperty property, _Out_ size_t *bufferSize) override {
|
||||
switch (property) {
|
||||
default:
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
case DXCoreAdapterProperty::IsHardware:
|
||||
*bufferSize = sizeof(bool);
|
||||
break;
|
||||
case DXCoreAdapterProperty::DriverDescription:
|
||||
*bufferSize = strlen(description) + 1;
|
||||
break;
|
||||
case DXCoreAdapterProperty::InstanceLuid:
|
||||
*bufferSize = sizeof(LUID);
|
||||
break;
|
||||
case DXCoreAdapterProperty::HardwareID:
|
||||
*bufferSize = sizeof(DXCoreHardwareID);
|
||||
break;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsQueryStateSupported(DXCoreAdapterState property) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE QueryState(DXCoreAdapterState state, size_t inputStateDetailsSize,
|
||||
_In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails,
|
||||
size_t outputBufferSize, _Out_writes_bytes_(outputBufferSize) void *outputBuffer) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsSetStateSupported(DXCoreAdapterState property) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE SetState(DXCoreAdapterState state, size_t inputStateDetailsSize,
|
||||
_In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails,
|
||||
size_t inputDataSize, _In_reads_bytes_(inputDataSize) const void *inputData) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetFactory(REFIID riid, _COM_Outptr_ void **ppvFactory) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
// IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef(void) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE Release(void) override {
|
||||
// this must be the last instruction
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
extern uint32_t numRootDevicesToEnum;
|
||||
class UltDXCoreAdapterList : public IDXCoreAdapterList {
|
||||
public:
|
||||
static bool firstInvalid;
|
||||
HRESULT STDMETHODCALLTYPE GetAdapter(uint32_t index, REFIID riid, _COM_Outptr_ void **ppvAdapter) override {
|
||||
auto adapter = new UltDxCoreAdapter;
|
||||
if (firstInvalid && 0 == index) {
|
||||
adapter->luid.HighPart = 0u;
|
||||
adapter->luid.LowPart = 0u;
|
||||
}
|
||||
|
||||
*reinterpret_cast<UltDxCoreAdapter **>(ppvAdapter) = adapter;
|
||||
return S_OK;
|
||||
}
|
||||
uint32_t STDMETHODCALLTYPE GetAdapterCount() override {
|
||||
return numRootDevicesToEnum;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsStale() override {
|
||||
return false;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetFactory(REFIID riid, _COM_Outptr_ void **ppvFactory) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE Sort(uint32_t numPreferences, _In_reads_(numPreferences) const DXCoreAdapterPreference *preferences) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsAdapterPreferenceSupported(DXCoreAdapterPreference preference) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
// IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef(void) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE Release(void) override {
|
||||
// this must be the last instruction
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
extern uint32_t numRootDevicesToEnum;
|
||||
class UltDXCoreAdapterFactory : public IDXCoreAdapterFactory {
|
||||
public:
|
||||
struct CreateAdapterListArgs {
|
||||
uint32_t numAttributes;
|
||||
const GUID *filterAttributesPtr;
|
||||
std::vector<const GUID *> filterAttributesCopy;
|
||||
REFIID riid;
|
||||
void **ppvAdapterList;
|
||||
};
|
||||
|
||||
std::vector<CreateAdapterListArgs> argsOfCreateAdapterListRequests;
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CreateAdapterList(uint32_t numAttributes, _In_reads_(numAttributes) const GUID *filterAttributes,
|
||||
REFIID riid, _COM_Outptr_ void **ppvAdapterList) override {
|
||||
argsOfCreateAdapterListRequests.push_back({numAttributes,
|
||||
filterAttributes,
|
||||
std::vector<const GUID *>{filterAttributes, filterAttributes + numAttributes},
|
||||
riid, ppvAdapterList});
|
||||
|
||||
*reinterpret_cast<UltDXCoreAdapterList **>(ppvAdapterList) = new UltDXCoreAdapterList;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetAdapterByLuid(const LUID &adapterLUID, REFIID riid, _COM_Outptr_ void **ppvAdapter) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
bool STDMETHODCALLTYPE IsNotificationTypeSupported(DXCoreNotificationType notificationType) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE RegisterEventNotification(_In_ IUnknown *dxCoreObject, DXCoreNotificationType notificationType,
|
||||
_In_ PFN_DXCORE_NOTIFICATION_CALLBACK callbackFunction,
|
||||
_In_opt_ void *callbackContext, _Out_ uint32_t *eventCookie) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE UnregisterEventNotification(uint32_t eventCookie) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
// IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void __RPC_FAR *__RPC_FAR *ppvObject) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return error;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef(void) override {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE Release(void) override {
|
||||
// this must be the last instruction
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
HRESULT WINAPI ULTDXCoreCreateAdapterFactory(REFIID riid, void **ppFactory);
|
||||
void WINAPI ULTGetSystemInfo(SYSTEM_INFO *pSystemInfo);
|
||||
|
||||
} // namespace NEO
|
||||
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "opencl/test/unit_test/os_interface/windows/ult_dxgi_factory.h"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
HRESULT WINAPI ULTCreateDXGIFactory(REFIID riid, void **ppFactory) {
|
||||
|
||||
UltIDXGIFactory1 *factory = new UltIDXGIFactory1;
|
||||
|
||||
*(UltIDXGIFactory1 **)ppFactory = factory;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
const wchar_t *UltIDXGIAdapter1::description = L"Intel";
|
||||
|
||||
} // namespace NEO
|
||||
@@ -1,191 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "shared/source/helpers/constants.h"
|
||||
|
||||
#include <cwchar>
|
||||
#include <dxgi.h>
|
||||
|
||||
namespace NEO {
|
||||
class UltIDXGIAdapter1 : public IDXGIAdapter1 {
|
||||
public:
|
||||
const static wchar_t *description;
|
||||
// IDXGIAdapter1
|
||||
HRESULT STDMETHODCALLTYPE GetDesc1(
|
||||
_Out_ DXGI_ADAPTER_DESC1 *pDesc) {
|
||||
|
||||
if (pDesc == nullptr) {
|
||||
return S_FALSE;
|
||||
}
|
||||
swprintf(pDesc->Description, 128, description);
|
||||
pDesc->AdapterLuid.HighPart = 0x1234;
|
||||
pDesc->DeviceId = 0x1234;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IDXGIAdapter
|
||||
HRESULT STDMETHODCALLTYPE EnumOutputs(
|
||||
UINT Output,
|
||||
IDXGIOutput **ppOutput) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetDesc(
|
||||
DXGI_ADAPTER_DESC *pDesc) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
|
||||
_In_ REFGUID InterfaceName,
|
||||
_Out_ LARGE_INTEGER *pUMDVersion) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IDXGIObject
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateData(
|
||||
_In_ REFGUID Name,
|
||||
UINT DataSize,
|
||||
const void *pData) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
|
||||
_In_ REFGUID Name,
|
||||
_In_opt_ const IUnknown *pUnknown) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetPrivateData(
|
||||
_In_ REFGUID Name,
|
||||
_Inout_ UINT *pDataSize,
|
||||
_Out_writes_bytes_(*pDataSize) void *pData) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetParent(
|
||||
_In_ REFIID riid,
|
||||
_COM_Outptr_ void **ppParent) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(
|
||||
REFIID riid,
|
||||
void __RPC_FAR *__RPC_FAR *ppvObject) {
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE Release(void) {
|
||||
// this must be the last instruction
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
extern uint32_t numRootDevicesToEnum;
|
||||
class UltIDXGIFactory1 : public IDXGIFactory1 {
|
||||
public:
|
||||
HRESULT STDMETHODCALLTYPE EnumAdapters1(
|
||||
UINT Adapter,
|
||||
IDXGIAdapter1 **ppAdapter) {
|
||||
if (Adapter >= numRootDevicesToEnum) {
|
||||
*(IDXGIAdapter1 **)ppAdapter = nullptr;
|
||||
return DXGI_ERROR_NOT_FOUND;
|
||||
}
|
||||
*(IDXGIAdapter1 **)ppAdapter = new UltIDXGIAdapter1;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
BOOL STDMETHODCALLTYPE IsCurrent(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE EnumAdapters(
|
||||
UINT Adapter,
|
||||
IDXGIAdapter **ppAdapter) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
|
||||
HWND WindowHandle,
|
||||
UINT Flags) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetWindowAssociation(
|
||||
_Out_ HWND *pWindowHandle) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CreateSwapChain(
|
||||
_In_ IUnknown *pDevice,
|
||||
_In_ DXGI_SWAP_CHAIN_DESC *pDesc,
|
||||
IDXGISwapChain **ppSwapChain) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
|
||||
HMODULE Module,
|
||||
IDXGIAdapter **ppAdapter) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IDXGIObject
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateData(
|
||||
_In_ REFGUID Name,
|
||||
UINT DataSize,
|
||||
const void *pData) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
|
||||
_In_ REFGUID Name,
|
||||
_In_opt_ const IUnknown *pUnknown) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetPrivateData(
|
||||
_In_ REFGUID Name,
|
||||
_Inout_ UINT *pDataSize,
|
||||
_Out_writes_bytes_(*pDataSize) void *pData) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT STDMETHODCALLTYPE GetParent(
|
||||
_In_ REFIID riid,
|
||||
_COM_Outptr_ void **ppParent) {
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
// IUnknown
|
||||
HRESULT STDMETHODCALLTYPE QueryInterface(
|
||||
REFIID riid,
|
||||
void __RPC_FAR *__RPC_FAR *ppvObject) {
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE AddRef(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
ULONG STDMETHODCALLTYPE Release(void) {
|
||||
// this must be the last instruction
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
HRESULT WINAPI ULTCreateDXGIFactory(REFIID riid, void **ppFactory);
|
||||
|
||||
} // namespace NEO
|
||||
@@ -30,10 +30,10 @@
|
||||
#include "shared/test/common/mocks/mock_io_functions.h"
|
||||
#include "shared/test/common/mocks/mock_memory_manager.h"
|
||||
#include "shared/test/common/mocks/mock_wddm_residency_logger.h"
|
||||
#include "shared/test/common/os_interface/windows/ult_dxcore_factory.h"
|
||||
#include "shared/test/common/os_interface/windows/wddm_fixture.h"
|
||||
|
||||
#include "opencl/test/unit_test/os_interface/windows/mock_wddm_allocation.h"
|
||||
#include "opencl/test/unit_test/os_interface/windows/ult_dxcore_factory.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
|
||||
@@ -7,9 +7,8 @@
|
||||
|
||||
#include "shared/source/memory_manager/host_ptr_defines.h"
|
||||
#include "shared/test/common/mocks/mock_wddm.h"
|
||||
|
||||
#include "opencl/test/unit_test/os_interface/windows/ult_dxcore_factory.h"
|
||||
#include "opencl/test/unit_test/os_interface/windows/ult_dxgi_factory.h"
|
||||
#include "shared/test/common/os_interface/windows/ult_dxcore_factory.h"
|
||||
#include "shared/test/common/os_interface/windows/ult_dxgi_factory.h"
|
||||
|
||||
namespace NEO {
|
||||
Wddm::CreateDXGIFactoryFcn getCreateDxgiFactory() {
|
||||
|
||||
Reference in New Issue
Block a user