[Bug 34285] New: Vanguard: Saga of Heroes fails with "Couldn't load HLSL shader header 'VS_UIRectangle.fx'"
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Aug 17 18:13:26 CDT 2013
http://bugs.winehq.org/show_bug.cgi?id=34285
Bug #: 34285
Summary: Vanguard: Saga of Heroes fails with "Couldn't load
HLSL shader header 'VS_UIRectangle.fx'"
Product: Wine
Version: 1.7.0
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ntdll
AssignedTo: wine-bugs at winehq.org
ReportedBy: focht at gmx.net
Classification: Unclassified
Hello folks,
as the summary says...
This forum talks about the problem:
https://forums.station.sony.com/vg/index.php?threads/f2p-update-and-wine.68254/
A CodeWeavers ticket:
http://www.codeweavers.com/compatibility/browse/name/?app_id=3023;forum=1;msg=131367
The client log reveals:
--- snip ---
VGClient.log: Logging initialized.
VGClient.log: Init: Name subsystem initialized
VGClient.log: Init: Detected: Microsoft Windows XP 5.1 (Build: 2600)
VGClient.log: Init: Version: 1.238.1.138261
VGClient.log: Init: Compiled: Aug 7 2013 14:39:45
VGClient.log: Init: Threadsafe Core: No
VGClient.log: Init: Base directory: C:\Program Files\Sony Online
Entertainment\Installed Games\Vanguard\bin\.
VGClient.log: Init: Character set: Unicode
VGClient.log: Init: Object subsystem initialized
...
VGClient.log: Critical: Couldn't load HLSL shader header 'VS_UIRectangle.fx'
VGClient.log: Critical: Couldn't load HLSL shader header 'VS_UIRectangle.fx'
VGClient.log: Critical: Windows GetLastError: Success. (0)
VGClient.log: Critical: Windows GetLastError: Success. (0)
VGClient.log: Exit: Executing UObject::StaticShutdownAfterError
VGClient.log: Exit: Executing UObject::StaticShutdownAfterError
VGClient.log: Exit: Executing UWindowsClient::ShutdownAfterError
VGClient.log: Exit: Executing UWindowsClient::ShutdownAfterError
VGClient.log: Exit: OpenAL Audio subsystem shut down.
VGClient.log: Exit: OpenAL Audio subsystem shut down.
VGClient.log: Critical: FD3DHardwareShader::CompileShaderFromFile
VGClient.log: Critical: FD3DHardwareShader::CompileShaderFromFile
VGClient.log: Critical: FD3DHardwareShader::Initialize
VGClient.log: Critical: FD3DHardwareShader::Initialize
VGClient.log: Critical: UD3DRenderDevice::GetVertexShader
VGClient.log: Critical: UD3DRenderDevice::GetVertexShader
--- snip ---
The problem is actually the path retrieved by GetFullPathNameW().
--- snip ---
[~/.wine/drive_c/Program Files/Sony Online Entertainment/Installed
Games/Vanguard/bin] wine ./VGClient.exe --sessionid=foo --commercesessionid=bar
...
0025:Call KERNEL32.GetFullPathNameW(0033e96c L"C:.",00000100,018b7f28,0033e964)
ret=00daacdf
0025:Ret KERNEL32.GetFullPathNameW() retval=00000047 ret=00daacdf
...
0025:Call KERNEL32.WideCharToMultiByte(00000000,00000000,018b7f28 L"C:\\Program
Files\\Sony Online Entertainment\\Installed
Games\\Vanguard\\bin\\.",ffffffff,00000000,00000000,00000000,00000000)
ret=00ac2fc9
0025:Ret KERNEL32.WideCharToMultiByte() retval=0000004a ret=00ac2fc9
...
0025:Call KERNEL32.SetCurrentDirectoryA(0033ea60 "C:\\Program Files\\Sony
Online Entertainment\\Installed Games\\Vanguard\\bin\\.") ret=0040e1ed
0025:Ret KERNEL32.SetCurrentDirectoryA() retval=00000001 ret=0040e1ed
...
0025:Call KERNEL32.SetCurrentDirectoryW(018b7f28 L"C:\\Program Files\\Sony
Online Entertainment\\Installed Games\\Vanguard\\bin\\.") ret=0040e1a6
0025:Ret KERNEL32.SetCurrentDirectoryW() retval=00000001 ret=0040e1a6
...
<CompileShaderFromFile>
...
0025:Call KERNEL32.CreateFileW(1396d910 L"C:\\Program Files\\Sony Online
Entertainment\\Installed
Games\\Vanguard\\bin\\.VS_UIRectangle.fx",80000000,00000001,00000000,00000003,40000000,00000000)
ret=0040d7ce
0025:Ret KERNEL32.CreateFileW() retval=ffffffff ret=0040d7ce
...
--- snip ---
GetFullPathName( "C:.") should never return a (full) path containing a trailing
dot (add a test case to test_RtlGetFullPathName_U()).
Because of this, the user supplied include callbacks called by (native) shader
compiler from D3DXCompileShaderFromFile() can't correctly deduce/build a
redirected path from the input path.
Note: Wine's shader compiler file loader code is missing this feature (another
bug) hence games which rely on user callbacks to find and load the file
supplied with D3DXCompileShaderFromFile() only work with native d3dx9_3x.dll
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list