Jump to content
  • 0

Linux/Proton: A call to an OS function failed


itsdnoftheworld

Question

Hello, I have been having an annoying issue running Dyndolod 3 on my Proton setup related to texconv. While running Dyndolod after successfully generating xlodgen and texgen, I am unable to proceed with generating Dyndolod, as I eventually get a message saying "Could not execute "Z:\home\dillon\Games\DynDOLOD\Edit Scripts\Texconvx64.exe" -nologo -gpu 0 -y -m 1 -aw 256 -f R8G8B8A8_UNORM -o "C:\users\steamuser\Temp\DynDOLOD_SSE" "C:\users\steamuser\Temp\DynDOLOD_SSE\379794EC272A4EF98BAF93F0B0726085.dds". Then I get a pop-up about Call to an OS Function Failed. No .esp is mentioned.

Since I am on Linux, I don't have UAC or AV on my computer, and after changing permissions of some of the folders, specifically my game folder, mods folder, and the Dyndolod folder I have been able to run it once or twice. However, after changing a texture mod, I have been completely unable to get around this Texconv issue. I believe that Texconv should be running, since I can see it in the task manager and I can see some .dds files being converted. I also was able to run texgen and xlodgen with no issue. In fact I have run Dyndolod successfully earlier today! I have tried placing Dyndolod folder in both my Z: drive (the native Linux system) and my C: drive (the emulated Windows drive), and both run into the same error. I also reinstalled and repaired dotnet and C++, and I was able to run texconv (the official one from Github) with the below output. I also was able to convert images into .dds from the command line. However I could not replicate this with the one downloaded alongside Dyndolod. Is this expected behavior?

I am currently unable to test on Windows since my install is all messed up, but I am just looking to see if there is anything I have missed in troubleshooting. Any advice would be greatly appreciated.
 

Bug Report: https://pastebin.com/B3Te9XG4

SSE Log: https://paste.ee/p/Hhg78

Texconv Test: https://paste.ee/p/6vtVc

Link to comment
Share on other sites

Recommended Posts

  • 1
55 minutes ago, itsdnoftheworld said:

Hello, I have been having an annoying issue running Dyndolod 3 on my Proton setup related to texconv. While running Dyndolod after successfully generating xlodgen and texgen, I am unable to proceed with generating Dyndolod, as I eventually get a message saying "Could not execute "Z:\home\dillon\Games\DynDOLOD\Edit Scripts\Texconvx64.exe" -nologo -gpu 0 -y -m 1 -aw 256 -f R8G8B8A8_UNORM -o "C:\users\steamuser\Temp\DynDOLOD_SSE" "C:\users\steamuser\Temp\DynDOLOD_SSE\379794EC272A4EF98BAF93F0B0726085.dds". Then I get a pop-up about Call to an OS Function Failed. No .esp is mentioned.

Since I am on Linux, I don't have UAC or AV on my computer, and after changing permissions of some of the folders, specifically my game folder, mods folder, and the Dyndolod folder I have been able to run it once or twice. However, after changing a texture mod, I have been completely unable to get around this Texconv issue. I believe that Texconv should be running, since I can see it in the task manager and I can see some .dds files being converted. I also was able to run texgen and xlodgen with no issue. In fact I have run Dyndolod successfully earlier today! I have tried placing Dyndolod folder in both my Z: drive (the native Linux system) and my C: drive (the emulated Windows drive), and both run into the same error. I also reinstalled and repaired dotnet and C++, and I was able to run texconv (the official one from Github) with the below output. I also was able to convert images into .dds from the command line. However I could not replicate this with the one downloaded alongside Dyndolod. Is this expected behavior?

I am currently unable to test on Windows since my install is all messed up, but I am just looking to see if there is anything I have missed in troubleshooting. Any advice would be greatly appreciated.
 

Bug Report: https://pastebin.com/B3Te9XG4

SSE Log: https://paste.ee/p/Hhg78

Texconv Test: https://paste.ee/p/6vtVc

Read https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs which DynDOLOD debug log to also upload when making posts.

>I also was able to run texgen and xlodgen with no issue.
>In fact I have run Dyndolod successfully earlier today!
>Is this expected behavior?
Yes.

DynDOLOD tried to execute the command line tool via a standard OS function. That OS function returned the error message.
This might mean Texconv might not have even executed at all. There might be more descriptive information in the winedebug log. You might also want to enable debug logging in MO2 and then check its log.

In any case, you might want to test with this version https://mega.nz/file/YNIlXQ7C#-NY9FcWU1B8N_QdSxtRyNrgIih7cSxSPNy0EJKBF834 to see if it makes a difference.

Test if adding LockTexconv=1 under [DynDOLOD] in Z:\home\dillon\Games\DynDOLOD\Edit Scripts\DynDOLOD\DynDOLOD_SSE.INI changes anything.

Link to comment
Share on other sites

  • 1
8 hours ago, Delkry said:

I've been having the exact same problem since yesterday when I try to run DynDOLOD 3 (latest version at the moment) on my Linux machine. Here are my logs:

https://file.io/2pbvPPebJGlO

You might notice that there are logs that aren't usually there (the lines with the writing and reading from files in the Temp directory mostly), because those are most likely there because I swapped the Texconvx64.exe file you provided with the one in the official repo (https://github.com/microsoft/DirectXTex/releases, the December 31st one). However, that didn't do anything and the error is still happening.

The steam log is there because the way my MO2 is set up, it opens when I open Skyrim SE on Steam instead of the launcher.

Also, I don't know how useful it is but I have a usvfs log in there. However I do know that every time the error happened

callContext.lastError()=1359

was in those logs.

Also, I tried what you said earlier in this thread (adding LockTexconv=1 to DynDOLOD_SSE.ini file under [DynDOLOD]), but that didn't do anything. I still haven't managed to run DynDOLOD successfully.

Let me know if that's useful.

This is an error message returned from the OS. 1359 seems to be defined as an internal error occurred.

I can not really fix or are proficient in troubleshooting problems with the OS/wine/proton. Unfortunately the log is quite full of exceptions and what not, so it is hard to find which Texconv call relates to one with the actual error, because of the different timestamp formats.

You could try to minimize the need for Texconv by having less textures use BC7. For example set compression in TexGen to DXT1 and DXT5 for example.

You could test running DynDOLOD directly from a command prompt like
WINEESYNC=1 WINEFSYNC=1 protontricks-launch --appid 489830 "/linux/path/to/DynDOLOD/DynDOLODx64.exe"
to see if it runs through for the vanilla game without MO2 in the mix.

In that case install DynDOLOD Resources SE and TexGen output manually.

Link to comment
Share on other sites

  • 1
10 hours ago, Gazotti said:

I've had this before with texconv. Running DynDOLOD in a terminal had it print an error along the lines of "you need .NET 4.X", so I installed it with winetricks and it worked properly.

.NET Core Desktop 7 was installed, but it seems we also need Desktop 6 (for LodGenX64Win) and 4.8 for texconv and LodGenX64.

https://dyndolod.info/Downloads#Additional-Requirements
Microsoft Visual C++ Redistributable packages for Visual Studio 2015, 2017, 2019 and 2022 for Texconvx64.exe
.NET Framework 4.8 (typically included with Windows 10/11) for LODGenx64.exe
.NET Desktop Runtime 6 for LODGenx64Win.exe

https://dyndolod.info/Installation-Instructions
Install Microsoft Visual C++ Redistributable packages for Visual Studio 2015, 2017, 2019 and 2022. Install .NET Desktop Runtime 6.

Link to comment
Share on other sites

  • 0

I was experiencing this myself recently when trying to run DynDOLOD through Wine/Proton. After a few days of confusion, it appears to be this Wine bug that causes Texconv to fail if -nowic isn't supplied as an argument. This Wine bug has been fixed since Wine 9.0-rc2, and I was able to successfully generate DynDOLOD after upgrading to Wine 9.0 (in my case, I installed the full 9.0 release).

Hope this helps.

Link to comment
Share on other sites

  • 0
7 hours ago, Baguettedood said:

I was experiencing this myself recently when trying to run DynDOLOD through Wine/Proton. After a few days of confusion, it appears to be this Wine bug that causes Texconv to fail if -nowic isn't supplied as an argument. This Wine bug has been fixed since Wine 9.0-rc2, and I was able to successfully generate DynDOLOD after upgrading to Wine 9.0 (in my case, I installed the full 9.0 release).

Hope this helps.

See https://dyndolod.info/Changelog for Version 3.00 Alpha 36.
Use Texconv included in the DynDOLOD 3 Standalone archive.

"A call to an OS function failed" is a message from the OS and not the same as "FAILED [mipmaps] 80070057: Invalid parameter"

Link to comment
Share on other sites

  • 0

I actually got it to work a day after I made my original post, but again, I'm not sure how/forgot how. I was testing with the 32bit version of Texgen/Dyndolod and it worked fine, although of course, when running with my full mod list it runs out of memory. Later, I was switching back to 64bit and it worked that time. So I guess something on my end isn't playing well with the 64bit version of Texconv. 

Link to comment
Share on other sites

  • 0

I've been having the exact same problem since yesterday when I try to run DynDOLOD 3 (latest version at the moment) on my Linux machine. Here are my logs:

https://file.io/2pbvPPebJGlO

You might notice that there are logs that aren't usually there (the lines with the writing and reading from files in the Temp directory mostly), because those are most likely there because I swapped the Texconvx64.exe file you provided with the one in the official repo (https://github.com/microsoft/DirectXTex/releases, the December 31st one). However, that didn't do anything and the error is still happening.

The steam log is there because the way my MO2 is set up, it opens when I open Skyrim SE on Steam instead of the launcher.

Also, I don't know how useful it is but I have a usvfs log in there. However I do know that every time the error happened

callContext.lastError()=1359

was in those logs.

Also, I tried what you said earlier in this thread (adding LockTexconv=1 to DynDOLOD_SSE.ini file under [DynDOLOD]), but that didn't do anything. I still haven't managed to run DynDOLOD successfully.

Let me know if that's useful.

Link to comment
Share on other sites

  • 0

I managed to run it successfully after setting all compression to DXT5 as you said above! I have one question though: will this result in noticeably lower quality in game compared to BC7?

I still can't say for sure that it wouldn't have worked eventually if I ran it enough time with BC7 compressed textures, but setting compression to DXT5 seems to increase the probability of DynDOLOD running successfully in this case.

Thanks for the help.

Link to comment
Share on other sites

  • 0
28 minutes ago, Delkry said:

I managed to run it successfully after setting all compression to DXT5 as you said above! I have one question though: will this result in noticeably lower quality in game compared to BC7?

I still can't say for sure that it wouldn't have worked eventually if I ran it enough time with BC7 compressed textures, but setting compression to DXT5 seems to increase the probability of DynDOLOD running successfully in this case.

Thanks for the help.

You typically not really going to see a difference. Maybe if you compare close up directly between screenshots, but overall it will pretty much look the same.

Link to comment
Share on other sites

  • 0

Hi!

I'm trying to run xLODGen, but it fails after some time, showing different errors every time. The most common is "A call to an OS function failed", with TexConv64.exe.

I tried following the suggestions I found here:

But nothing worked.

I'm on Archlinux, tried proton GE, 8, 7 and 6 via Steam.

I compressed the logs all in this file: https://1drv.ms/u/s!AhMlyqThKuq1k4wj_uXXq-s2PgXOAg?e=X3SeWG

Link to comment
Share on other sites

  • 0
On 5/9/2024 at 2:06 AM, dkfljaslkdfh said:

Hi!

I'm trying to run xLODGen, but it fails after some time, showing different errors every time. The most common is "A call to an OS function failed", with TexConv64.exe.

I tried following the suggestions I found here:

But nothing worked.

I'm on Archlinux, tried proton GE, 8, 7 and 6 via Steam.

I compressed the logs all in this file: https://1drv.ms/u/s!AhMlyqThKuq1k4wj_uXXq-s2PgXOAg?e=X3SeWG

The SSELODGen_log.txt shows only one error message.
The bugreport.txt shows an out of memory error. Use the x64 version.

"Nothing worked" does not tell us anything. Instead list what was tried and how it failed.

There is not much a program can do if the OS reports an unspecified error.
It seems this error means Wine has some kind of problem to read or write to the disk.

Make sure the system is stable.
Make sure nothing interferes with file access.

If the used disk(s) are using NTFS, use different ones that use a native Linux file system.
At least the temp and output directories, for example -t:"z:\home\[USER]\xLODGen_Temp\" -o:"z:\home\[USER]\xLODGen_Output\"

If you use MO2, test without it.

A workaround might be to use 888 texture format and compress textures afterwards.

Link to comment
Share on other sites

  • 0

Hey! Thank you for helping me! :)

I was able to generate the files just restarting xLODGen every time it failed.

Quote

The bugreport.txt shows an out of memory error. Use the x64 version.

I'm using a 1TB SSD with ext4 file system, 32GB of RAM, and I created a swap file of 6GB. The swap definitely helped with TexGen, but not with xLODGen.

I tried both versions of the exe.

Quote

If the used disk(s) are using NTFS, use different ones that use a native Linux file system.
At least the temp and output directories, for example -t:"z:\home\[USER]\xLODGen_Temp\" -o:"z:\home\[USER]\xLODGen_Output\"

The output directories were set according to the STEP instructions, in exclusive folders, separated from the game.

I didn't try the other options you mentioned because in the end, it worked. And now I have a bigger problem, Dyndolod is making fun of me! :crying:

But I'll try to solve the problem on my own before asking for help. Thanks again!

Link to comment
Share on other sites

  • 0
Posted (edited)

Hi!

I'm having the same issue, now with Dyndolod. This is strange, because I was having the same issue with xLODGen, but now it's working fine.

It's exactly as described in the OP. The only thing that changes is the mod being processed at the time.

Can you take a look at the logs, please?

bugreport: https://paste.ee/p/z6QJ6
log: https://paste.ee/p/zaiPI

Thank you! :)

EDIT: I forgot to mention that the tools are on a drive outside of the MO2 and the system folders. Also, I'm using the x64 version. I tried with the x86 and it worked with a clean install of the game, but with the full mods it stopped without giving me an error, it just hanged.

 

Edited by dkfljaslkdfh
Link to comment
Share on other sites

  • 0
On 5/16/2024 at 3:52 AM, dkfljaslkdfh said:

Hi!

I'm having the same issue, now with Dyndolod. This is strange, because I was having the same issue with xLODGen, but now it's working fine.

It's exactly as described in the OP. The only thing that changes is the mod being processed at the time.

Can you take a look at the logs, please?

bugreport: https://paste.ee/p/z6QJ6
log: https://paste.ee/p/zaiPI

Thank you! :)

EDIT: I forgot to mention that the tools are on a drive outside of the MO2 and the system folders. Also, I'm using the x64 version. I tried with the x86 and it worked with a clean install of the game, but with the full mods it stopped without giving me an error, it just hanged.

Read https://dyndolod.info/Official-DynDOLOD-Support-Forum#Post-Logs which DynDOLOD debug log to also upload when making posts.

If you have the exact same issue, then the exact same explanations and tips apply.
Use backslashes only in paths.
Map drive letters to the mounted drives in the winetricks configuration to reduce path lengths.
Do not use -o command line with TexGen/DynDOLOD, let them use their default output folders or set them via the interface option.

The OS reports that it has a problem. This most likely has to do with file access problems, maybe because of file system drivers, their settings or MO2 virtual folders. Hence the repeated tip to test without MO2. Using MO2 works fine here, though.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.