You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not sure why this happens. I've noticed some weird behavior with D3D12 though. Here is an extremely simple example D3D12 proxy DLL which illustrates said weird behavior:
#include <Windows.h>
FARPROC p[3];
void* pp = &p[0];
extern "C" {
void RunAsm();
HMODULE originalDll = 0;
FARPROC funcAddr = NULL;
// This works. Using individual FARPROC variables also works.
void Proxy_D3D12CreateDevice() { funcAddr = *((FARPROC*)pp + 0); RunAsm(); }
void Proxy_D3D12GetDebugInterface() { funcAddr = *((FARPROC*)pp + 1); RunAsm(); }
void Proxy_D3D12SerializeRootSignature() { funcAddr = *((FARPROC*)pp + 2); RunAsm(); }
// Declaring the functions like this does not work and causes an instant crash, seems to be unique to proxying D3D12...
// No popups when crashing, crash cause is an access violation when checking with debugger
// Game in question only imports these 3 functions, proxying everything does not make a difference.
void Proxy_D3D12CreateDevice() { funcAddr = p[0]; RunAsm(); }
void Proxy_D3D12GetDebugInterface() { funcAddr = p[1]; RunAsm(); }
void Proxy_D3D12SerializeRootSignature() { funcAddr = p[2]; RunAsm(); }
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
originalDll = LoadLibraryEx(L".\\d3d12.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32);
p[0] = GetProcAddress(originalDll, "D3D12CreateDevice");
p[1] = GetProcAddress(originalDll, "D3D12GetDebugInterface");
p[2] = GetProcAddress(originalDll, "D3D12SerializeRootSignature");
}
return TRUE;
}
This weird behavior may or may not be related to the crashing.
The text was updated successfully, but these errors were encountered:
Not sure why this happens. I've noticed some weird behavior with D3D12 though. Here is an extremely simple example D3D12 proxy DLL which illustrates said weird behavior:
This weird behavior may or may not be related to the crashing.
The text was updated successfully, but these errors were encountered: