mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-26 22:35:43 +00:00
* Migrate winml to Microsoft Namespace (packaging changes are pending) * add ns_prefix toggle * fix packaging * Users/sheilk/add missing raw header (#3484) * add dualapipartition * wrong variable for repo root Co-authored-by: Sheil Kumar <sheilk@microsoft.com> * remove existence check to force failures * extra paren * dualapipartition needs to be referenced from the source * add microsoft.ai.machinelearning.dll to the output dir * rename the idl file so that assembly info is correctly added into the winmd * fix namespaces * update namespaces * default to microsoft, and add namespace override as build argument * update cmakesetings.json as well * remove from cmakelists.txt Co-authored-by: Sheil Kumar <sheilk@microsoft.com> Co-authored-by: Changming Sun <chasun@microsoft.com>
49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
#include <dxgi1_6.h>
|
|
#include <initguid.h>
|
|
#include <d3d11.h>
|
|
|
|
#if __has_include("dxcore.h")
|
|
#define ENABLE_DXCORE 1
|
|
#endif
|
|
#ifdef ENABLE_DXCORE
|
|
#include <dxcore.h>
|
|
#endif
|
|
|
|
//
|
|
// Exception information
|
|
//
|
|
#ifndef FACILITY_VISUALCPP
|
|
#define FACILITY_VISUALCPP ((LONG)0x6d)
|
|
#endif
|
|
|
|
#define VcppException(sev, err) ((sev) | (FACILITY_VISUALCPP << 16) | err)
|
|
|
|
namespace CommonDeviceHelpers {
|
|
struct AdapterEnumerationSupport {
|
|
bool has_dxgi;
|
|
bool has_dxcore;
|
|
};
|
|
|
|
// uses Structured Exception Handling (SEH) to detect for delay load failures of target API.
|
|
// You cannot mix and match SEH with C++ exception and object unwinding
|
|
// In this case we will catch it, and report up to the caller via HRESULT so our callers can use
|
|
// C++ exceptions
|
|
template <typename TFunc, typename... TArgs>
|
|
HRESULT RunDelayLoadedApi(TFunc& tfunc, TArgs&&... args) {
|
|
__try {
|
|
return tfunc(std::forward<TArgs>(args)...);
|
|
} __except (GetExceptionCode() == VcppException(ERROR_SEVERITY_ERROR, ERROR_MOD_NOT_FOUND) ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) {
|
|
// this could be ok, just let people know that it failed to load
|
|
return HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND);
|
|
}
|
|
}
|
|
|
|
HRESULT GetAdapterEnumerationSupport(AdapterEnumerationSupport* support);
|
|
bool IsFloat16Supported(ID3D12Device* device);
|
|
bool IsFloat16Supported(const winml::LearningModelDevice& device);
|
|
} // namespace CommonDeviceHelpers
|