FOVE SUPPORT CENTER

SteamVR fails to load driver_fove.dll , error 103

Comments

6 comments

  • Avatar
    Maz

    My first suggestion is, in your FOVE install directory ( C:\Program Files\FOVE\... ) get the file "d3dcompiler_47.dll" and COPY it to where the SteamVR Fove driver is ( C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\fove\bin ) add the file beside FoveClient.dll inside the win32 and win64 folders. Each of these folders should now contain a "driver_fove.dll", "FoveClient.dll" and "d3dcompiler_47.dll".

    Alternatively, you might be able to just copy "d3dcompiler_47.dll" to your C:\Windows\System32 path where the "FoveClient.dll" will find it.

    When we officially support Windows 7, we'll have to include that "d3dcompiler_47.dll" with our SDK and SteamVR plugins etc.

    Good luck.

     

    If you're interested in debugging these kind of issues, I recommend a tool called Dependency Walker ( http://www.dependencywalker.com/ ). When you use this tool to open fove_driver.dll it'll tell you what DLLs it requires and what each of them require etc. At the bottom of the list of dependency libraries, it'll show some lines in red that are the DLLs that are needed that can't be found.

    Just in case you were curious.

  • Avatar
    Nils Roos

    Thanks for pointing me to the dependencywalker - I've mostly developed for linux up to now, so I don't know the tools on Windows platforms very well.

    After adding d3dcompiler_47.dll to SteamVR, the remaining problem is a missing function "CreateFile2" from kernel32.dll. MSDN tells me that this function was introduced with Win8.

    From earlier trials with Unreal Engine, I expected this to become a problem, see also this issue.

    So, SteamVR Driver for FOVE is not yet ready for Win7.

  • Avatar
    Maz

    So a lot of what we're doing for these windows 7 binaries is to compile them targeting the older version of API's. What i'll try and do is to compile us a version of the driver_fove.dll file that has the same targeting applied to it.

    I'll have a go at this and add the file to google drive. I wonder how we can do this in the future without making windows 10 use older APIs

  • Avatar
    Nils Roos

    When I encounter this kind of situation, I usually wrap an internal abstraction around the functionality that uses version-dependent APIs, then at runtime select and insert an implementation that works with the current platform.

    With fundamentally similar platforms like Win7-10 it's probably possible to create implementations for the older versions that just not use newer functions and target and link them for the newest version. In theory^^

    (as far as I can tell, there's something like late dependency resolving in Windows, too)

  • Avatar
    Maz

    The driver_fove.dll doesn't appear to be the one causing issues. If you copy the FoveClient.dll from the runtime install directory into the steam driver folders (the same as d3dcompiler_47.dll) and give it another go, it should work.

    I'll see if i can put some work into win7 support for our game engine plugins and clients. We haven't been doing any of that because we aren't supporting windows 7.

    Tasks have been logged in our work tracking system, let me know if copying the DLL is a workaround for now.

  • Avatar
    Nils Roos

    Using the FoveClient.dll from the runtime installation did help, thank you.

    Now I am at the same point as a couple of others with steam being unable to start the compositor - "Invalid adapter (-1, -1)". This is not a Win7 issue, I guess. edit: I forgot to connect the hdmi cable, doing that solved it.

    Thanks again for your help!

Please sign in to leave a comment.