ValveSoftware / ValveSoftware/Proton

IsADirectoryError: trying to copy openvr_api_dxvk.dll

Open
#3,119 12 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
32.8k
Forks
1.6k
PR merge metrics
PR metrics pending

Description

When I run a VR game I get a lot of the tracebacks in my logs.
I have no idea if they are serious or not, but I couldn't find any info about them:

Traceback (most recent call last):
  File "/home/user/.local/share/Steam/steamapps/common/Proton 4.11/proton", line 709, in <module>
    g_session.init_session()
  File "/home/user/.local/share/Steam/steamapps/common/Proton 4.11/proton", line 552, in init_session
    g_compatdata.setup_prefix()
  File "/home/user/.local/share/Steam/steamapps/common/Proton 4.11/proton", line 334, in setup_prefix
    try_copy(g_proton.lib_dir + "wine/dxvk/openvr_api_dxvk.dll", self.prefix_dir + "/drive_c/windows/syswow64/")
  File "/home/user/.local/share/Steam/steamapps/common/Proton 4.11/proton", line 61, in try_copy
    shutil.copy(src, dst)
  File "/usr/lib/python3.7/shutil.py", line 248, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.7/shutil.py", line 121, in copyfile
    with open(dst, 'wb') as fdst:
IsADirectoryError: [Errno 21] Is a directory: '/home/user/SteamLibrary/steamapps/compatdata/620980/pfx//drive_c/windows/syswow64/'

It is indeed true that syswow64 is a directory...
I guess the openvr_api_dxvk.dll should be copied into this directory..?

BTW the openvr_api_dxvk.dll (somehow) managed to live in this directory/location (already)...

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the setup_prefix call on line 334 and try_copy in the proton script at line 61, then reproduce the VR-game launch to inspect the traceback. Check the handling of openvr_api_dxvk.dll when the destination is the syswow64 directory. Done means the launch no longer reports IsADirectoryError and the DLL is placed in that directory.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
operating-systems
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.