Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Texture optimization no longer works #160

Open
msnspk opened this issue Mar 3, 2024 · 1 comment
Open

Texture optimization no longer works #160

msnspk opened this issue Mar 3, 2024 · 1 comment

Comments

@msnspk
Copy link

msnspk commented Mar 3, 2024

Apologies for the vague title, I haven't been able to track down the specific cause of the bug(s) yet, but the texture optimization feature no longer works. I previously used RimPy and the texture conversion feature the last time I played RimWorld in May 2023 and everything was working great.

First, no .dds files are actually created. When I select a mod and convert its textures, none of the resulting .dds files are actually written to the file system. This was pretty easy to verify by converting a bunch of textures (roughly 67,000) and then using a fuzzy finder to search for them, only to see that they were missing and never created. Evidence of this bug also shows up when converting mods multiple times with the Convert new textures only option selected. The expected behavior is that previously-converted mods would not generate any new converted textures/.dds files, but since those files are never actually being written to the file system, RimPy goes ahead and keeps doing the full conversion every time.

When running the texture conversion feature, RimPy spits out this error to the console:

/bin/sh: symbol lookup error: /bin/sh: undefined symbol: rl_trim_arg_from_keyseq

Second, sometimes the texture conversion process hangs and has to be cancelled manually, or else it will never complete. When this occurs, RimPy gives this error in the console:

Exception in thread Thread-10:
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "/home/user/Games/RimWorld/RimPy/shutil.py", line 791, in move
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.steam/steam/steamapps/workshop/content/294100/2895299310/Textures/TDbadtime_rimpy_converted.dds' -> '/home/user/.steam/steam/steamapps/workshop/content/294100/2895299310/Textures/TDbadtime.dds'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/Games/RimWorld/RimPy/multiprocessing/pool.py", line 125, in worker
  File "/home/user/Games/RimWorld/RimPy/utils/utils.py", line 99, in convertToBC7
  File "/home/user/Games/RimWorld/RimPy/shutil.py", line 811, in move
  File "/home/user/Games/RimWorld/RimPy/shutil.py", line 435, in copy2
  File "/home/user/Games/RimWorld/RimPy/shutil.py", line 264, in copyfile
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.steam/steam/steamapps/workshop/content/294100/2895299310/Textures/TDbadtime_rimpy_converted.dds'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/user/Games/RimWorld/RimPy/threading.py", line 932, in _bootstrap_inner
  File "/home/user/Games/RimWorld/RimPy/threading.py", line 870, in run
  File "/home/user/Games/RimWorld/RimPy/rimpy.py", line 1315, in <lambda>
  File "/home/user/Games/RimWorld/RimPy/rimpy.py", line 1330, in multiProcessing
  File "/home/user/Games/RimWorld/RimPy/multiprocessing/pool.py", line 868, in next
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.steam/steam/steamapps/workshop/content/294100/2895299310/Textures/TDbadtime_rimpy_converted.dds'

Manually creating the offending file ('/home/user/.steam/steam/steamapps/workshop/content/294100/2895299310/Textures/TDbadtime_rimpy_converted.dds') allows the texture conversion process to finish, but again, no .dds files are actually written.

Out of the 644 mods that I have subscribed to/installed (though don't necessarily play the game with), only three of them caused the texture conversion process to hang:

In my testing, these issues consistently occur on Linux and Windows, though I only observed RimPy's console output on Linux. The issues occur regardless of what encoder is used.

My Windows installation is an up-to-date version of Windows 11 with Python 3.12.2

My Linux installation is an up-to-date version of Arch Linux with kernel version 6.7.7 and Python 3.11.7

Repository owner deleted a comment from 32bitx64bit Mar 26, 2024
@nakomaru
Copy link

nakomaru commented Apr 6, 2024

It's still working fine on Windows for me. I wonder if this is a file system permissions issue. RimSort's todds is no comparison as it does not have RimPy's waifu2x conditional upscaling, but should work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants