From 1689cacc47e7b026fc9517f49767c55ac89f2c3b Mon Sep 17 00:00:00 2001 From: WinterSnowfall Date: Sun, 6 Oct 2024 00:59:17 +0300 Subject: [PATCH] [d3d8] Stub ValidatePixelShader and ValidateVertexShader --- src/d3d8/d3d8.def | 3 +++ src/d3d8/d3d8.sym | 2 ++ src/d3d8/d3d8_main.cpp | 41 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/d3d8/d3d8.def b/src/d3d8/d3d8.def index 62aca0c9b..8627b3b2b 100644 --- a/src/d3d8/d3d8.def +++ b/src/d3d8/d3d8.def @@ -1,3 +1,6 @@ LIBRARY D3D8.DLL EXPORTS + ValidatePixelShader @ 2 + ValidateVertexShader @ 3 + Direct3DCreate8 @ 5 diff --git a/src/d3d8/d3d8.sym b/src/d3d8/d3d8.sym index 357113c3c..33951d0e6 100644 --- a/src/d3d8/d3d8.sym +++ b/src/d3d8/d3d8.sym @@ -1,5 +1,7 @@ { global: + ValidatePixelShader; + ValidateVertexShader; Direct3DCreate8; local: diff --git a/src/d3d8/d3d8_main.cpp b/src/d3d8/d3d8_main.cpp index 265a5baab..ce8512b3f 100644 --- a/src/d3d8/d3d8_main.cpp +++ b/src/d3d8/d3d8_main.cpp @@ -12,7 +12,45 @@ namespace dxvk { } } -extern "C" { +extern "C" { + + DLLEXPORT HRESULT __stdcall ValidatePixelShader( + const DWORD* pixelshader, + const D3DCAPS8* caps, + BOOL boolValue, + char** errorString) { + dxvk::Logger::warn("D3D8: ValidatePixelShader: Stub"); + + if (unlikely(pixelshader == nullptr)) + return E_FAIL; + + if (likely(errorString != nullptr)) { + const char* errorMessage = ""; + *errorString = (char *) errorMessage; + } + + return S_OK; + } + + DLLEXPORT HRESULT __stdcall ValidateVertexShader( + const DWORD* vertexShader, + const DWORD* vertexDecl, + const D3DCAPS8* caps, + BOOL boolValue, + char** errorString) { + dxvk::Logger::warn("D3D8: ValidateVertexShader: Stub"); + + if (unlikely(vertexShader == nullptr)) + return E_FAIL; + + if (likely(errorString != nullptr)) { + const char* errorMessage = ""; + *errorString = (char *) errorMessage; + } + + return S_OK; + } + DLLEXPORT IDirect3D8* __stdcall Direct3DCreate8(UINT nSDKVersion) { dxvk::Logger::trace("Direct3DCreate8 called"); @@ -21,4 +59,5 @@ extern "C" { return pDirect3D; } + }