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
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.
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 theConvert 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:
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