http://bugs.winehq.org/show_bug.cgi?id=3837
------- Additional Comments From xerox_xerox2000@yahoo.co.uk 2006-07-09 15:32 ------- Created an attachment (id=3560) --> (http://bugs.winehq.org/attachment.cgi?id=3560&action=view) test with 5 paramaters
Ok, here's another attempt, one day this bug will be fixed ;)
Test attached is: #include <d3d8.h> #include "wine/test.h"
static HRESULT (WINAPI *ValidateVertexShader)(LPVOID,int,LONG,int,LPVOID);
static void test_ValidateVertexShader(void) { HRESULT ret; ret=ValidateVertexShader(0,0,0,1,0); ok(ret==E_FAIL,"ValidateVertexShader returned %lx but expected E_FAIL\n",ret); }
START_TEST(d3d8_main) { HMODULE d3d8_handle = LoadLibraryA( "d3d8.dll" ); ValidateVertexShader = (void*)GetProcAddress (d3d8_handle, "ValidateVertexShader" ); test_ValidateVertexShader(); }
I'm just passing dumb zero's to the function, except the 4th parameter, which takes a 1. The 1 is for example passed by http://www.codesampler.com/source/dx8_vs11_shader_simple.zip This test fails in wine (run 'wine d3d8_crosstest5.exe d3d8_main')
However, you can just call ValidateVertexShader from a native d3d8.dll in wine, so WINEDLLOVERRIDES="d3d8=n" wine d3d8_crosstest.exe d3d8_main succeeds just fine.
I'll attach hereafter the test based on _current_ "implementation" of ValidatevertexShader, and that fails with native d3d8.dll