Files
DoomRTX/neo/engine/opengl/d3d12/d3dshadercacheregistration.idl
T
Justin Marshall 76f642286e Added modelviewer.
Added neural network code(turned off by default).
Lots of editor and rendering fixes.
2026-05-17 22:09:25 -07:00

195 lines
7.3 KiB
Plaintext

/*-------------------------------------------------------------------------------------
*
* Copyright (c) Microsoft Corporation
* Licensed under the MIT license
*
*-------------------------------------------------------------------------------------*/
#pragma once
import "oaidl.idl";
import "ocidl.idl";
cpp_quote("DEFINE_GUID(CLSID_D3DShaderCacheInstallerFactory, 0x16195a0b, 0x607c, 0x41f1, 0xbf, 0x03, 0xc7, 0x69, 0x4d, 0x60, 0xa8, 0xd4);")
typedef enum D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE
{
D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_USER,
D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_SYSTEM
} D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE;
interface ID3DShaderCacheInstaller;
// This interface is implemented by the game installer
[uuid(a16ee930-d9f6-4222-a514-244473e5d266), object, local, pointer_default(unique)]
interface ID3DShaderCacheInstallerClient
{
HRESULT GetInstallerName(
[annotation("_Inout_")] SIZE_T* pNameLength,
[annotation("_Out_writes_opt_(*pNameLength)")] wchar_t* pName);
D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE GetInstallerScope();
HRESULT HandleDriverUpdate(
[annotation("_In_")] ID3DShaderCacheInstaller* pInstaller);
};
typedef struct D3D_SHADER_CACHE_PSDB_PROPERTIES
{
const wchar_t* pAdapterFamily;
const wchar_t* pPsdbPath;
} D3D_SHADER_CACHE_PSDB_PROPERTIES;
[uuid(eed1bf00-f5c7-4cf7-885c-d0f9c0cb4828), object, local, pointer_default(unique)]
interface ID3DShaderCacheComponent : IUnknown
{
HRESULT GetComponentName(
[annotation("_Out_")] const wchar_t** pName);
HRESULT GetStateObjectDatabasePath(
[annotation("_Out_")] const wchar_t** pPath);
HRESULT GetPrecompiledCachePath(
[annotation("_In_")] const wchar_t* pAdapterFamily,
[annotation("_Inout_")] const wchar_t** pPath);
UINT GetPrecompiledShaderDatabaseCount();
HRESULT GetPrecompiledShaderDatabases(
UINT ArraySize,
[annotation("_Out_writes_(ArraySize)")] D3D_SHADER_CACHE_PSDB_PROPERTIES * pPSDBs);
};
typedef enum D3D_SHADER_CACHE_TARGET_FLAGS
{
D3D_SHADER_CACHE_TARGET_FLAG_NONE = 0,
}D3D_SHADER_CACHE_TARGET_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D_SHADER_CACHE_TARGET_FLAGS )")
typedef union D3D_VERSION_NUMBER
{
UINT64 Version;
UINT16 VersionParts[4];
} D3D_VERSION_NUMBER;
typedef struct D3D_SHADER_CACHE_COMPILER_PROPERTIES
{
wchar_t szAdapterFamily[128];
UINT64 MinimumABISupportVersion;
UINT64 MaximumABISupportVersion;
D3D_VERSION_NUMBER CompilerVersion;
D3D_VERSION_NUMBER ApplicationProfileVersion;
} D3D_SHADER_CACHE_COMPILER_PROPERTIES;
typedef struct D3D_SHADER_CACHE_APPLICATION_DESC
{
const wchar_t* pExeFilename;
const wchar_t* pName;
D3D_VERSION_NUMBER Version;
const wchar_t* pEngineName;
D3D_VERSION_NUMBER EngineVersion;
} D3D_SHADER_CACHE_APPLICATION_DESC;
[uuid(fc688ee2-1b35-4913-93be-1ca3fa7df39e), object, local, pointer_default(unique)]
interface ID3DShaderCacheApplication : IUnknown
{
HRESULT GetExePath(
[annotation("_Out_")] const wchar_t** pExePath);
HRESULT GetDesc(
[annotation("_Out_")] D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc);
HRESULT RegisterComponent(
[annotation("_In_")] const wchar_t* pName,
[annotation("_In_")] const wchar_t* pStateObjectDBPath,
[annotation("_In_")] UINT NumPSDB,
[annotation("_In_reads_(NumPSDB)")] const D3D_SHADER_CACHE_PSDB_PROPERTIES* pPSDBs,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvComponent);
HRESULT RemoveComponent(
[annotation("_In_")] ID3DShaderCacheComponent* pComponent);
UINT GetComponentCount();
HRESULT GetComponent(
[annotation("_In_")] UINT index,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvComponent);
UINT GetPrecompileTargetCount(D3D_SHADER_CACHE_TARGET_FLAGS flags);
HRESULT GetPrecompileTargets(
[annotation("_In_")] UINT ArraySize,
[annotation("_In_reads_(ArraySize)")] D3D_SHADER_CACHE_COMPILER_PROPERTIES* pArray,
D3D_SHADER_CACHE_TARGET_FLAGS flags);
HRESULT GetInstallerName(
[annotation("_Out_")] const wchar_t** pInstallerName);
};
typedef struct SC_HANDLE__ *SC_HANDLE;
[uuid(bbe30de1-6318-4526-ae17-776693191bb4), object, local, pointer_default(unique)]
interface ID3DShaderCacheInstaller : IUnknown
{
HRESULT RegisterDriverUpdateListener();
HRESULT UnregisterDriverUpdateListener();
HRESULT RegisterServiceDriverUpdateTrigger(SC_HANDLE hServiceHandle);
HRESULT UnregisterServiceDriverUpdateTrigger(SC_HANDLE hServiceHandle);
HRESULT RegisterApplication(
[annotation("_In_")] const wchar_t* pExePath,
[annotation("_In_")] const D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication
HRESULT RemoveApplication(
[annotation("_In_")] ID3DShaderCacheApplication* pApplication); // Expected: ID3DShaderCacheApplication
UINT GetApplicationCount();
HRESULT GetApplication(
[annotation("_In_")] UINT index,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication
HRESULT ClearAllState();
UINT GetMaxPrecompileTargetCount();
HRESULT GetPrecompileTargets(
[annotation("_In_opt_")] const D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc,
[annotation("_Inout_")] UINT* pArraySize,
[annotation("_Out_writes_(*pArraySize)")] D3D_SHADER_CACHE_COMPILER_PROPERTIES* pArray,
D3D_SHADER_CACHE_TARGET_FLAGS flags);
};
[uuid(90432322-32f5-487f-9264-e9390fa58b2a), object, local, pointer_default(unique)]
interface ID3DShaderCacheExplorer : IUnknown
{
HRESULT GetApplicationFromExePath(
[annotation("_In_")] const wchar_t* pFullExePath,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication
};
[uuid(09b2dfe4-840f-401a-804c-0dd8aadc9e9f), object, local, pointer_default(unique)]
interface ID3DShaderCacheInstallerFactory : IUnknown
{
HRESULT CreateInstaller(
[annotation("_In_")] ID3DShaderCacheInstallerClient* pClient,
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvInstaller);
HRESULT CreateExplorer(
[in] IUnknown* pUnknown, // Expected: ID3D12Device, IDXCoreAdapter, IDXGIAdapter
[in] REFIID riid,
[out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvExplorer); // Expected: ID3DShaderCacheExplorer
};
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstallerClient,0xa16ee930,0xd9f6,0x4222,0xa5,0x14,0x24,0x44,0x73,0xe5,0xd2,0x66);" )
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheComponent,0xeed1bf00,0xf5c7,0x4cf7,0x88,0x5c,0xd0,0xf9,0xc0,0xcb,0x48,0x28);" )
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheApplication,0xfc688ee2,0x1b35,0x4913,0x93,0xbe,0x1c,0xa3,0xfa,0x7d,0xf3,0x9e);" )
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstaller,0xbbe30de1,0x6318,0x4526,0xae,0x17,0x77,0x66,0x93,0x19,0x1b,0xb4);" )
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheExplorer,0x90432322,0x32f5,0x487f,0x92,0x64,0xe9,0x39,0x0f,0xa5,0x8b,0x2a);" )
cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstallerFactory,0x09b2dfe4,0x840f,0x401a,0x80,0x4c,0x0d,0xd8,0xaa,0xdc,0x9e,0x9f);" )