This commit is contained in:
cdozdil
2025-11-26 00:35:11 +03:00
12 changed files with 425 additions and 436 deletions
+3 -3
View File
@@ -6,9 +6,9 @@
#include <shlobj.h>
typedef LONG(WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
typedef DWORD (*PFN_GetFileVersionInfoSizeW)(LPCWSTR lptstrFilename, LPDWORD lpdwHandle);
typedef BOOL (*PFN_GetFileVersionInfoW)(LPCWSTR lptstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData);
typedef BOOL (*PFN_VerQueryValueW)(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID* lplpBuffer, PUINT puLen);
typedef decltype(&GetFileVersionInfoSizeW) PFN_GetFileVersionInfoSizeW;
typedef decltype(&GetFileVersionInfoW) PFN_GetFileVersionInfoW;
typedef decltype(&VerQueryValueW) PFN_VerQueryValueW;
static IID streamlineRiid {};
+3 -4
View File
@@ -8,10 +8,9 @@
const HKEY signatureMark = (HKEY) 0xFFFFFFFF13372137;
typedef LSTATUS (*PFN_RegOpenKeyExW)(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
typedef LSTATUS (*PFN_RegEnumValueW)(HKEY hKey, DWORD dwIndex, LPWSTR lpValueName, LPDWORD lpcchValueName,
LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
typedef LSTATUS (*PFN_RegCloseKey)(HKEY hKey);
typedef decltype(&RegOpenKeyExW) PFN_RegOpenKeyExW;
typedef decltype(&RegEnumValueW) PFN_RegEnumValueW;
typedef decltype(&RegCloseKey) PFN_RegCloseKey;
static PFN_RegOpenKeyExW o_RegOpenKeyExW = nullptr;
static PFN_RegEnumValueW o_RegEnumValueW = nullptr;
+2 -4
View File
@@ -7,10 +7,8 @@
#include "detours/detours.h"
#include <wincrypt.h>
typedef BOOL (*PFN_CryptQueryObject)(DWORD dwObjectType, const void* pvObject, DWORD dwExpectedContentTypeFlags,
DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD* pdwMsgAndCertEncodingType,
DWORD* pdwContentType, DWORD* pdwFormatType, HCERTSTORE* phCertStore,
HCRYPTMSG* phMsg, const void** ppvContext);
typedef decltype(&CryptQueryObject) PFN_CryptQueryObject;
static PFN_CryptQueryObject o_CryptQueryObject = nullptr;
static BOOL hkCryptQueryObject(DWORD dwObjectType, const void* pvObject, DWORD dwExpectedContentTypeFlags,
+1 -1
View File
@@ -8,7 +8,7 @@
#include <WinTrust.h>
#include <Softpub.h>
typedef LONG (*PFN_WinVerifyTrust)(HWND hwnd, GUID* pgActionID, LPVOID pWVTData);
typedef decltype(&WinVerifyTrust) PFN_WinVerifyTrust;
static PFN_WinVerifyTrust o_WinVerifyTrust = nullptr;
static LONG hkWinVerifyTrust(HWND hwnd, GUID* pgActionID, LPVOID pWVTData)
+6 -6
View File
@@ -83,12 +83,12 @@ class MenuCommon
#pragma region "Hooks & WndProc"
// for hooking
typedef BOOL (*PFN_SetCursorPos)(int x, int y);
typedef BOOL (*PFN_ClipCursor)(const RECT* lpRect);
typedef UINT (*PFN_SendInput)(UINT cInputs, LPINPUT pInputs, int cbSize);
typedef void (*PFN_mouse_event)(DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo);
typedef BOOL (*PFN_GetCursorPos)(LPPOINT lpPoint);
typedef LRESULT (*PFN_SendMessageW)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
typedef decltype(&SetCursorPos) PFN_SetCursorPos;
typedef decltype(&ClipCursor) PFN_ClipCursor;
typedef decltype(&SendInput) PFN_SendInput;
typedef decltype(&mouse_event) PFN_mouse_event;
typedef decltype(&GetCursorPos) PFN_GetCursorPos;
typedef decltype(&SendMessageW) PFN_SendMessageW;
inline static PFN_SetCursorPos pfn_SetPhysicalCursorPos = nullptr;
inline static PFN_SetCursorPos pfn_SetCursorPos = nullptr;
File diff suppressed because it is too large Load Diff
+12 -14
View File
@@ -13,20 +13,18 @@
class Kernel32Proxy
{
public:
typedef BOOL(WINAPI* PFN_FreeLibrary)(HMODULE lpLibrary);
typedef HMODULE(WINAPI* PFN_LoadLibraryA)(LPCSTR lpLibFileName);
typedef HMODULE(WINAPI* PFN_LoadLibraryW)(LPCWSTR lpLibFileName);
typedef HMODULE(WINAPI* PFN_LoadLibraryExA)(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
typedef HMODULE(WINAPI* PFN_LoadLibraryExW)(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
typedef FARPROC(WINAPI* PFN_GetProcAddress)(HMODULE hModule, LPCSTR lpProcName);
typedef HMODULE(WINAPI* PFN_GetModuleHandleA)(LPCSTR lpModuleName);
typedef HMODULE(WINAPI* PFN_GetModuleHandleW)(LPCWSTR lpModuleName);
typedef BOOL(WINAPI* PFN_GetModuleHandleExA)(DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule);
typedef BOOL(WINAPI* PFN_GetModuleHandleExW)(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule);
typedef DWORD(WINAPI* PFN_GetFileAttributesW)(LPCWSTR lpFileName);
typedef HANDLE(WINAPI* PFN_CreateFileW)(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
typedef decltype(&FreeLibrary) PFN_FreeLibrary;
typedef decltype(&LoadLibraryA) PFN_LoadLibraryA;
typedef decltype(&LoadLibraryW) PFN_LoadLibraryW;
typedef decltype(&LoadLibraryExA) PFN_LoadLibraryExA;
typedef decltype(&LoadLibraryExW) PFN_LoadLibraryExW;
typedef decltype(&GetProcAddress) PFN_GetProcAddress;
typedef decltype(&GetModuleHandleA) PFN_GetModuleHandleA;
typedef decltype(&GetModuleHandleW) PFN_GetModuleHandleW;
typedef decltype(&GetModuleHandleExA) PFN_GetModuleHandleExA;
typedef decltype(&GetModuleHandleExW) PFN_GetModuleHandleExW;
typedef decltype(&GetFileAttributesW) PFN_GetFileAttributesW;
typedef decltype(&CreateFileW) PFN_CreateFileW;
static void Init()
{
+10 -10
View File
@@ -7,16 +7,16 @@
class KernelBaseProxy
{
public:
typedef BOOL(WINAPI* PFN_FreeLibrary)(HMODULE lpLibrary);
typedef HMODULE(WINAPI* PFN_LoadLibraryA)(LPCSTR lpLibFileName);
typedef HMODULE(WINAPI* PFN_LoadLibraryW)(LPCWSTR lpLibFileName);
typedef HMODULE(WINAPI* PFN_LoadLibraryExA)(LPCSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
typedef HMODULE(WINAPI* PFN_LoadLibraryExW)(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags);
typedef FARPROC(WINAPI* PFN_GetProcAddress)(HMODULE hModule, LPCSTR lpProcName);
typedef HMODULE(WINAPI* PFN_GetModuleHandleA)(LPCSTR lpModuleName);
typedef HMODULE(WINAPI* PFN_GetModuleHandleW)(LPCWSTR lpModuleName);
typedef BOOL(WINAPI* PFN_GetModuleHandleExA)(DWORD dwFlags, LPCSTR lpModuleName, HMODULE* phModule);
typedef BOOL(WINAPI* PFN_GetModuleHandleExW)(DWORD dwFlags, LPCWSTR lpModuleName, HMODULE* phModule);
typedef decltype(&FreeLibrary) PFN_FreeLibrary;
typedef decltype(&LoadLibraryA) PFN_LoadLibraryA;
typedef decltype(&LoadLibraryW) PFN_LoadLibraryW;
typedef decltype(&LoadLibraryExA) PFN_LoadLibraryExA;
typedef decltype(&LoadLibraryExW) PFN_LoadLibraryExW;
typedef decltype(&GetProcAddress) PFN_GetProcAddress;
typedef decltype(&GetModuleHandleA) PFN_GetModuleHandleA;
typedef decltype(&GetModuleHandleW) PFN_GetModuleHandleW;
typedef decltype(&GetModuleHandleExA) PFN_GetModuleHandleExA;
typedef decltype(&GetModuleHandleExW) PFN_GetModuleHandleExW;
static void Init()
{
+2 -2
View File
@@ -107,8 +107,8 @@ class NtdllProxy
}
private:
typedef VOID(NTAPI* PFN_RtlInitUnicodeString)(PUNICODE_STRING DestinationString, PCWSTR SourceString);
typedef ULONG(NTAPI* PFN_RtlNtStatusToDosError)(NTSTATUS Status);
typedef decltype(&RtlInitUnicodeString) PFN_RtlInitUnicodeString;
typedef decltype(&RtlNtStatusToDosError) PFN_RtlNtStatusToDosError;
inline static HMODULE _dll = nullptr;
+19 -42
View File
@@ -15,52 +15,29 @@
#pragma comment(lib, "Version.lib")
// Common
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetVersion)(xefg_swapchain_version_t* pVersion);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetProperties)(xefg_swapchain_handle_t hSwapChain,
xefg_swapchain_properties_t* pProperties);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainTagFrameConstants)(
xefg_swapchain_handle_t hSwapChain, uint32_t presentId, const xefg_swapchain_frame_constant_data_t* pConstants);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetEnabled)(xefg_swapchain_handle_t hSwapChain, uint32_t enable);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetPresentId)(xefg_swapchain_handle_t hSwapChain,
uint32_t presentId);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetLastPresentStatus)(
xefg_swapchain_handle_t hSwapChain, xefg_swapchain_present_status_t* pPresentStatus);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetLoggingCallback)(
xefg_swapchain_handle_t hSwapChain, xefg_swapchain_logging_level_t loggingLevel,
xefg_swapchain_app_log_callback_t loggingCallback, void* userData);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainDestroy)(xefg_swapchain_handle_t hSwapChain);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetLatencyReduction)(xefg_swapchain_handle_t hSwapChain,
void* hXeLLContext);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainSetSceneChangeThreshold)(xefg_swapchain_handle_t hSwapChain,
float threshold);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainGetPipelineBuildStatus)(xefg_swapchain_handle_t hSwapChain);
typedef decltype(&xefgSwapChainGetVersion) PFN_xefgSwapChainGetVersion;
typedef decltype(&xefgSwapChainGetProperties) PFN_xefgSwapChainGetProperties;
typedef decltype(&xefgSwapChainTagFrameConstants) PFN_xefgSwapChainTagFrameConstants;
typedef decltype(&xefgSwapChainSetEnabled) PFN_xefgSwapChainSetEnabled;
typedef decltype(&xefgSwapChainSetPresentId) PFN_xefgSwapChainSetPresentId;
typedef decltype(&xefgSwapChainGetLastPresentStatus) PFN_xefgSwapChainGetLastPresentStatus;
typedef decltype(&xefgSwapChainSetLoggingCallback) PFN_xefgSwapChainSetLoggingCallback;
typedef decltype(&xefgSwapChainDestroy) PFN_xefgSwapChainDestroy;
typedef decltype(&xefgSwapChainSetLatencyReduction) PFN_xefgSwapChainSetLatencyReduction;
typedef decltype(&xefgSwapChainSetSceneChangeThreshold) PFN_xefgSwapChainSetSceneChangeThreshold;
typedef decltype(&xefgSwapChainGetPipelineBuildStatus) PFN_xefgSwapChainGetPipelineBuildStatus;
// Dx12
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12CreateContext)(ID3D12Device* pDevice,
xefg_swapchain_handle_t* phSwapChain);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12BuildPipelines)(xefg_swapchain_handle_t hSwapChain,
ID3D12PipelineLibrary* pPipelineLibrary,
bool blocking, uint32_t initFlags);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12InitFromSwapChain)(
xefg_swapchain_handle_t hSwapChain, ID3D12CommandQueue* pCmdQueue,
const xefg_swapchain_d3d12_init_params_t* pInitParams);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12InitFromSwapChainDesc)(
xefg_swapchain_handle_t hSwapChain, HWND hWnd, const DXGI_SWAP_CHAIN_DESC1* pSwapChainDesc,
const DXGI_SWAP_CHAIN_FULLSCREEN_DESC* pFullscreenDesc, ID3D12CommandQueue* pCmdQueue, IDXGIFactory2* pDxgiFactory,
const xefg_swapchain_d3d12_init_params_t* pInitParams);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12GetSwapChainPtr)(xefg_swapchain_handle_t hSwapChain,
REFIID riid, void** ppSwapChain);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12TagFrameResource)(
xefg_swapchain_handle_t hSwapChain, ID3D12CommandList* pCmdList, uint32_t presentId,
const xefg_swapchain_d3d12_resource_data_t* pResData);
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainD3D12SetDescriptorHeap)(xefg_swapchain_handle_t hSwapChain,
ID3D12DescriptorHeap* pDescriptorHeap,
uint32_t descriptorHeapOffsetInBytes);
typedef decltype(&xefgSwapChainD3D12CreateContext) PFN_xefgSwapChainD3D12CreateContext;
typedef decltype(&xefgSwapChainD3D12BuildPipelines) PFN_xefgSwapChainD3D12BuildPipelines;
typedef decltype(&xefgSwapChainD3D12InitFromSwapChain) PFN_xefgSwapChainD3D12InitFromSwapChain;
typedef decltype(&xefgSwapChainD3D12InitFromSwapChainDesc) PFN_xefgSwapChainD3D12InitFromSwapChainDesc;
typedef decltype(&xefgSwapChainD3D12GetSwapChainPtr) PFN_xefgSwapChainD3D12GetSwapChainPtr;
typedef decltype(&xefgSwapChainD3D12TagFrameResource) PFN_xefgSwapChainD3D12TagFrameResource;
typedef decltype(&xefgSwapChainD3D12SetDescriptorHeap) PFN_xefgSwapChainD3D12SetDescriptorHeap;
// Debug
typedef xefg_swapchain_result_t (*PFN_xefgSwapChainEnableDebugFeature)(xefg_swapchain_handle_t hSwapChain,
xefg_swapchain_debug_feature_t featureId,
uint32_t enable, void* pArgument);
typedef decltype(&xefgSwapChainEnableDebugFeature) PFN_xefgSwapChainEnableDebugFeature;
class XeFGProxy
{
+8 -10
View File
@@ -16,18 +16,16 @@
#pragma comment(lib, "Version.lib")
// Common
typedef xell_result_t (*PFN_xellDestroyContext)(xell_context_handle_t context);
typedef xell_result_t (*PFN_xellSetSleepMode)(xell_context_handle_t context, const xell_sleep_params_t* param);
typedef xell_result_t (*PFN_xellGetSleepMode)(xell_context_handle_t context, xell_sleep_params_t* param);
typedef xell_result_t (*PFN_xellSleep)(xell_context_handle_t context, uint32_t frame_id);
typedef xell_result_t (*PFN_xellAddMarkerData)(xell_context_handle_t context, uint32_t frame_id,
xell_latency_marker_type_t marker);
typedef xell_result_t (*PFN_xellGetVersion)(xell_version_t* pVersion);
typedef xell_result_t (*PFN_xellSetLoggingCallback)(xell_context_handle_t hContext, xell_logging_level_t loggingLevel,
xell_app_log_callback_t loggingCallback);
typedef decltype(&xellDestroyContext) PFN_xellDestroyContext;
typedef decltype(&xellSetSleepMode) PFN_xellSetSleepMode;
typedef decltype(&xellGetSleepMode) PFN_xellGetSleepMode;
typedef decltype(&xellSleep) PFN_xellSleep;
typedef decltype(&xellAddMarkerData) PFN_xellAddMarkerData;
typedef decltype(&xellGetVersion) PFN_xellGetVersion;
typedef decltype(&xellSetLoggingCallback) PFN_xellSetLoggingCallback;
// Dx12
typedef xell_result_t (*PFN_xellD3D12CreateContext)(ID3D12Device* device, xell_context_handle_t* out_context);
typedef decltype(&xellD3D12CreateContext) PFN_xellD3D12CreateContext;
class XeLLProxy
{
+42 -66
View File
@@ -24,75 +24,51 @@
#pragma comment(lib, "Version.lib")
typedef xess_result_t (*PFN_xessD3D12CreateContext)(ID3D12Device* pDevice, xess_context_handle_t* phContext);
typedef xess_result_t (*PFN_xessD3D12BuildPipelines)(xess_context_handle_t hContext,
ID3D12PipelineLibrary* pPipelineLibrary, bool blocking,
uint32_t initFlags);
typedef xess_result_t (*PRN_xessD3D12Init)(xess_context_handle_t hContext, const xess_d3d12_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessD3D12Execute)(xess_context_handle_t hContext, ID3D12GraphicsCommandList* pCommandList,
const xess_d3d12_execute_params_t* pExecParams);
typedef xess_result_t (*PFN_xessSelectNetworkModel)(xess_context_handle_t hContext, xess_network_model_t network);
typedef xess_result_t (*PFN_xessStartDump)(xess_context_handle_t hContext,
const xess_dump_parameters_t* dump_parameters);
typedef xess_result_t (*PFN_xessGetVersion)(xess_version_t* pVersion);
typedef xess_result_t (*PFN_xessIsOptimalDriver)(xess_context_handle_t hContext);
typedef xess_result_t (*PFN_xessSetLoggingCallback)(xess_context_handle_t hContext, xess_logging_level_t loggingLevel,
xess_app_log_callback_t loggingCallback);
typedef xess_result_t (*PFN_xessGetProperties)(xess_context_handle_t hContext, const xess_2d_t* pOutputResolution,
xess_properties_t* pBindingProperties);
typedef xess_result_t (*PFN_xessDestroyContext)(xess_context_handle_t hContext);
typedef xess_result_t (*PFN_xessSetVelocityScale)(xess_context_handle_t hContext, float x, float y);
typedef decltype(&xessD3D12CreateContext) PFN_xessD3D12CreateContext;
typedef decltype(&xessD3D12BuildPipelines) PFN_xessD3D12BuildPipelines;
typedef decltype(&xessD3D12Init) PFN_xessD3D12Init;
typedef decltype(&xessD3D12Execute) PFN_xessD3D12Execute;
typedef decltype(&xessSelectNetworkModel) PFN_xessSelectNetworkModel;
typedef decltype(&xessStartDump) PFN_xessStartDump;
typedef decltype(&xessGetVersion) PFN_xessGetVersion;
typedef decltype(&xessIsOptimalDriver) PFN_xessIsOptimalDriver;
typedef decltype(&xessSetLoggingCallback) PFN_xessSetLoggingCallback;
typedef decltype(&xessGetProperties) PFN_xessGetProperties;
typedef decltype(&xessDestroyContext) PFN_xessDestroyContext;
typedef decltype(&xessSetVelocityScale) PFN_xessSetVelocityScale;
typedef xess_result_t (*PFN_xessD3D12GetInitParams)(xess_context_handle_t hContext,
xess_d3d12_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessForceLegacyScaleFactors)(xess_context_handle_t hContext, bool force);
typedef xess_result_t (*PFN_xessGetExposureMultiplier)(xess_context_handle_t hContext, float* pScale);
typedef xess_result_t (*PFN_xessGetInputResolution)(xess_context_handle_t hContext, const xess_2d_t* pOutputResolution,
xess_quality_settings_t qualitySettings,
xess_2d_t* pInputResolution);
typedef xess_result_t (*PFN_xessGetIntelXeFXVersion)(xess_context_handle_t hContext, xess_version_t* pVersion);
typedef xess_result_t (*PFN_xessGetJitterScale)(xess_context_handle_t hContext, float* pX, float* pY);
typedef xess_result_t (*PFN_xessGetOptimalInputResolution)(
xess_context_handle_t hContext, const xess_2d_t* pOutputResolution, xess_quality_settings_t qualitySettings,
xess_2d_t* pInputResolutionOptimal, xess_2d_t* pInputResolutionMin, xess_2d_t* pInputResolutionMax);
typedef xess_result_t (*PFN_xessSetExposureMultiplier)(xess_context_handle_t hContext, float scale);
typedef xess_result_t (*PFN_xessSetJitterScale)(xess_context_handle_t hContext, float x, float y);
typedef decltype(&xessD3D12GetInitParams) PFN_xessD3D12GetInitParams;
typedef decltype(&xessForceLegacyScaleFactors) PFN_xessForceLegacyScaleFactors;
typedef decltype(&xessGetExposureMultiplier) PFN_xessGetExposureMultiplier;
typedef decltype(&xessGetInputResolution) PFN_xessGetInputResolution;
typedef decltype(&xessGetIntelXeFXVersion) PFN_xessGetIntelXeFXVersion;
typedef decltype(&xessGetJitterScale) PFN_xessGetJitterScale;
typedef decltype(&xessGetOptimalInputResolution) PFN_xessGetOptimalInputResolution;
typedef decltype(&xessSetExposureMultiplier) PFN_xessSetExposureMultiplier;
typedef decltype(&xessSetJitterScale) PFN_xessSetJitterScale;
typedef xess_result_t (*PFN_xessD3D12GetResourcesToDump)(xess_context_handle_t hContext,
xess_resources_to_dump_t** pResourcesToDump);
typedef xess_result_t (*PFN_xessD3D12GetProfilingData)(xess_context_handle_t hContext,
xess_profiling_data_t** pProfilingData);
typedef decltype(&xessD3D12GetResourcesToDump) PFN_xessD3D12GetResourcesToDump;
typedef decltype(&xessD3D12GetProfilingData) PFN_xessD3D12GetProfilingData;
typedef xess_result_t (*PFN_xessSetContextParameterF)();
typedef xess_result_t (*PFN_xessGetPipelineBuildStatus)(xess_context_handle_t hContext);
typedef xess_result_t (*PFN_xessSetContextParameterF)(); // XeSS' headers don't export this
typedef decltype(&xessGetPipelineBuildStatus) PFN_xessGetPipelineBuildStatus;
// Vulkan?!?
typedef xess_result_t (*PFN_xessVKGetRequiredInstanceExtensions)(uint32_t* instanceExtensionsCount,
const char* const** instanceExtensions,
uint32_t* minVkApiVersion);
typedef xess_result_t (*PFN_xessVKGetRequiredDeviceExtensions)(VkInstance instance, VkPhysicalDevice physicalDevice,
uint32_t* deviceExtensionsCount,
const char* const** deviceExtensions);
typedef xess_result_t (*PFN_xessVKGetRequiredDeviceFeatures)(VkInstance instance, VkPhysicalDevice physicalDevice,
void** features);
typedef xess_result_t (*PFN_xessVKCreateContext)(VkInstance instance, VkPhysicalDevice physicalDevice, VkDevice device,
xess_context_handle_t* phContext);
typedef xess_result_t (*PFN_xessVKBuildPipelines)(xess_context_handle_t hContext, VkPipelineCache pipelineCache,
bool blocking, uint32_t initFlags);
typedef xess_result_t (*PFN_xessVKInit)(xess_context_handle_t hContext, const xess_vk_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessVKGetInitParams)(xess_context_handle_t hContext, xess_vk_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessVKExecute)(xess_context_handle_t hContext, VkCommandBuffer commandBuffer,
const xess_vk_execute_params_t* pExecParams);
typedef xess_result_t (*PFN_xessVKGetResourcesToDump)(xess_context_handle_t hContext,
xess_vk_resources_to_dump_t** pResourcesToDump);
typedef decltype(&xessVKGetRequiredInstanceExtensions) PFN_xessVKGetRequiredInstanceExtensions;
typedef decltype(&xessVKGetRequiredDeviceExtensions) PFN_xessVKGetRequiredDeviceExtensions;
typedef decltype(&xessVKGetRequiredDeviceFeatures) PFN_xessVKGetRequiredDeviceFeatures;
typedef decltype(&xessVKCreateContext) PFN_xessVKCreateContext;
typedef decltype(&xessVKBuildPipelines) PFN_xessVKBuildPipelines;
typedef decltype(&xessVKInit) PFN_xessVKInit;
typedef decltype(&xessVKGetInitParams) PFN_xessVKGetInitParams;
typedef decltype(&xessVKExecute) PFN_xessVKExecute;
typedef decltype(&xessVKGetResourcesToDump) PFN_xessVKGetResourcesToDump;
// Dx11
typedef xess_result_t (*PFN_xessD3D11CreateContext)(ID3D11Device* device, xess_context_handle_t* phContext);
typedef xess_result_t (*PFN_xessD3D11Init)(xess_context_handle_t hContext, const xess_d3d11_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessD3D11GetInitParams)(xess_context_handle_t hContext,
xess_d3d11_init_params_t* pInitParams);
typedef xess_result_t (*PFN_xessD3D11Execute)(xess_context_handle_t hContext,
const xess_d3d11_execute_params_t* pExecParams);
typedef decltype(&xessD3D11CreateContext) PFN_xessD3D11CreateContext;
typedef decltype(&xessD3D11Init) PFN_xessD3D11Init;
typedef decltype(&xessD3D11GetInitParams) PFN_xessD3D11GetInitParams;
typedef decltype(&xessD3D11Execute) PFN_xessD3D11Execute;
class XeSSProxy
{
@@ -105,7 +81,7 @@ class XeSSProxy
inline static PFN_xessD3D12CreateContext _xessD3D12CreateContext = nullptr;
inline static PFN_xessD3D12BuildPipelines _xessD3D12BuildPipelines = nullptr;
inline static PRN_xessD3D12Init _xessD3D12Init = nullptr;
inline static PFN_xessD3D12Init _xessD3D12Init = nullptr;
inline static PFN_xessD3D12Execute _xessD3D12Execute = nullptr;
inline static PFN_xessSelectNetworkModel _xessSelectNetworkModel = nullptr;
inline static PFN_xessStartDump _xessStartDump = nullptr;
@@ -361,7 +337,7 @@ class XeSSProxy
(PFN_xessD3D12CreateContext) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12CreateContext");
_xessD3D12BuildPipelines =
(PFN_xessD3D12BuildPipelines) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12BuildPipelines");
_xessD3D12Init = (PRN_xessD3D12Init) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Init");
_xessD3D12Init = (PFN_xessD3D12Init) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Init");
_xessD3D12Execute = (PFN_xessD3D12Execute) KernelBaseProxy::GetProcAddress_()(_dll, "xessD3D12Execute");
_xessSelectNetworkModel =
(PFN_xessSelectNetworkModel) KernelBaseProxy::GetProcAddress_()(_dll, "xessSelectNetworkModel");
@@ -432,7 +408,7 @@ class XeSSProxy
(PFN_xessD3D12CreateContext) DetourFindFunction("libxess.dll", "xessD3D12CreateContext");
_xessD3D12BuildPipelines =
(PFN_xessD3D12BuildPipelines) DetourFindFunction("libxess.dll", "xessD3D12BuildPipelines");
_xessD3D12Init = (PRN_xessD3D12Init) DetourFindFunction("libxess.dll", "xessD3D12Init");
_xessD3D12Init = (PFN_xessD3D12Init) DetourFindFunction("libxess.dll", "xessD3D12Init");
_xessGetVersion = (PFN_xessGetVersion) DetourFindFunction("libxess.dll", "xessGetVersion");
_xessD3D12Execute = (PFN_xessD3D12Execute) DetourFindFunction("libxess.dll", "xessD3D12Execute");
_xessSelectNetworkModel =
@@ -888,7 +864,7 @@ class XeSSProxy
static PFN_xessD3D12CreateContext D3D12CreateContext() { return _xessD3D12CreateContext; }
static PFN_xessD3D12BuildPipelines D3D12BuildPipelines() { return _xessD3D12BuildPipelines; }
static PRN_xessD3D12Init D3D12Init() { return _xessD3D12Init; }
static PFN_xessD3D12Init D3D12Init() { return _xessD3D12Init; }
static PFN_xessD3D12Execute D3D12Execute() { return _xessD3D12Execute; }
static PFN_xessSelectNetworkModel SelectNetworkModel() { return _xessSelectNetworkModel; }
static PFN_xessStartDump StartDump() { return _xessStartDump; }