Linux Support (Wine)

While there’s threads requesting native linux support (and I’d love that), I’m more asking about having versions running in Wine. With a new Wine prefix with the OS set to Windows 11 (or any version 7 onwards), the following versions do work (no gpu though):

DeNoise: 3.7.0 (3.7.1 shows a splash screen and then crashes - this is a pain as 3.7.0 isn’t on the downloads page anymore)
Sharpen: 4.1.0
Gigapixel: 5.8.0 (6.3.3 is broken)
PhotoAI: No version has worked to date

If anybody has any tricks to get more recent versions to work in Wine, I’d greatly appreciate it.

I support the suggestion. It is probably unrealistic to ask for native Linux versions of the programs at this point, but given that the programs mostly seem to work (or almost work) under Wine, it seems that it would not require an overwhelming amount of effort to iron out the remaining wrinkles.

I would buy the products (either Photo AI or the IQ trio) if Topaz Labs said something along the lines: “Although Linux is not one of our supported platforms, we do want our products to work under Wine. We cannot guarantee that future versions will work, but we are willing to help customers and Wine developers by providing information regarding changed requirements when a new version breaks Wine compatibility.”

We probably shouldn’t expect Topaz Labs to reveal their proprietary source code, but a willingness to help explain requirements when something breaks, would go a long way. Even if we cannot expect a lot of practical work, a friendly rather than indifferent attitude would convince me to buy and use their products. Provided of course that I can get reasonably recent versions to run properly under Linux/Wine (and that seems to be the case for some products and almost for others). If the programs run reasonably well under Wine, Topaz Labs may gain more than a few new Linux customers.

Unfortunately, DeNoise 3.7.2 behaves the same way as 3.7.1 on Wine 8.2/Win10.

Same for me with Wine 8.2/Win 11:

 wine Topaz\ DeNoise\ AI.exe
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0084:fixme:wineusb:query_id Unhandled ID query type 0x5.
0108:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (000000000011F390 1 C) semi-stub
0108:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (000000000011F430 1 C) semi-stub
0108:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (000000000011F410 1 C) semi-stub
qt.scenegraph.general: Using QRhi with backend OpenGL
  Graphics API debug/validation layers: 0
  QRhi profiling and debug markers: 0
  Shader/pipeline cache collection: 0
20:19:42.947  Parent process ID: 32 "start" (ExternalEditorDetection::isExternalEditor-..\common
app\externaleditordetection.cpp:18)
20:19:42.947  Process name "start" not recognized. Assuming it's an external editor. (ExternalEd
itorDetection::Impl::isExternalImpl-..\commonapp\externaleditordetection.cpp:55)
20:19:42.947  External editor mode was set, but no files were passed in. Going back to Standalon
e mode. (main-main.cpp:113)
20:19:42.951 qt.qpa.windows:  setProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AW
ARE_V2) failed: COM error 0x57  (Invalid parameter.) (unknown-unknown:0)
0108:fixme:win:RegisterPowerSettingNotification (0000000000010062,{02731015-4510-4526-99e6-e5a17ebd1aea},0): stub
0108:fixme:system:QueryDisplayConfig (00000002 000000000011D624 00000000088121C0 000000000011D628 000000000881BED0 0000000000000000): semi-stub
0108:fixme:system:QueryDisplayConfig (00000002 000000000011D624 000000000881BED0 000000000011D628 000000000881BF70 0000000000000000): semi-stub
0108:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0108:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
20:19:43.089  Settings Location:: "\\HKEY_CURRENT_USER\\Software\\Topaz Labs LLC\\Topaz DeNoise 
AI" (main-main.cpp:174)
0108:fixme:combase:RoGetActivationFactory (L"Windows.System.UserProfile.GlobalizationPreferences", {01bf4326-ed37-4e96-b0e9-c1340d1ea158}, 000000000011DED8): semi-stub
0108:err:module:import_dll Library Qt6Svg.dll (which is needed by L"C:\\Program Files\\Topaz Labs LLC\\Topaz DeNoise AI\\imageformats\\qsvg.dll") not found
0108:fixme:win:IsTouchWindow hwnd 0000000000020074, flags 000000000011E190 stub!
0074:fixme:imm:ImeSetActiveContext (0000000000010026, 0): stub
0074:fixme:imm:ImmReleaseContext (0000000000010020, 0000000000010026): stub
0108:fixme:imm:ImeSetActiveContext (0000000000010060, 1): stub
0108:fixme:imm:ImmReleaseContext (0000000000020074, 0000000000010060): stub
0108:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
0108:fixme:dwmapi:DwmEnableBlurBehindWindow 000000000004007C 0000000000116E40
0108:fixme:win:IsTouchWindow hwnd 000000000004007C, flags 0000000000116E30 stub!
011c:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
011c:fixme:wgl:X11DRV_wglGetPixelFormatAttribivARB unsupported 2008 WGL Attribute
0108:fixme:dwmapi:DwmEnableBlurBehindWindow 0000000000030088 000000000011AB40
0108:fixme:win:IsTouchWindow hwnd 0000000000030088, flags 000000000011AB30 stub!
0108:fixme:font:NtGdiRemoveFontMemResourceEx (0xf9bbb4c1) stub
0108:fixme:font:NtGdiRemoveFontMemResourceEx (0xf984d241) stub
0108:fixme:font:find_matching_face Untranslated charset 255
0108:fixme:font:get_nearest_charset returning DEFAULT_CHARSET face->fs.fsCsb[0] = 00000000 file = L"\\??\\Z:\\usr\\share\\fonts\\TTF\\odokai-ExtB.ttf"
0108:fixme:font:get_gasp_flags Unsupported gasp table: ver 65535 size 8 recs 1
0108:fixme:font:find_matching_face Untranslated charset 255
0108:fixme:font:get_nearest_charset returning DEFAULT_CHARSET face->fs.fsCsb[0] = 00000000 file = L"\\??\\Z:\\usr\\share\\fonts\\OTF\\SyrCOMEdessa.otf"

Looks to me like the ‘Qt6Svg.dll’ file is in fact missing. I don’t have it in my installation either. Not sure why this wouldn’t be a problem in windows…

I thought that to be the case, but Denoise 3.7.0 works with wine and the logs have the same error.

I’ve also noticed that 3.7.2 fails just like 3.7.1. Having to stick to 3.7.0 for now. I just hope this failure doesn’t become a thing for all future versions.

1 Like

Wine is frequently updated, so I thought I’d check whether DeNoise 3.7.2 would work using Wine 8.11. Unfortunately, it doesn’t.

FWIW I got Photo AI working on linux. Still no GPU though.

How? Wine? Any specific libraries?

Yes WINE. I’ll update this post in a bit with a quick guide. I’m just doing some final testing to see if I can get the GPU working.

I use Bottles to manage WINE prefixes. Download GE-Proton 8-4 and add it to the runners folder of your Bottles install (a newer version of GE-Proton might work too but I haven’t tested). Create an application bottle for Photo AI. Here are the dependencies I have installed for my bottle. I’m sure not all of them are necessary but I just installed a bunch to try and get it working.


Here are the componant versions to use in the settings of your Bottle.

I also have a dll override for concrt140. This was necessary for Giagapixel, I’m not sure if its also necessary for Photo AI.
temp3

Now install the most recent version of Photo AI. The install will nearly complete and then fail with no explanation. The failure happens when it tries to download the model files. Do NOT close the installer as it will erase all the files before closing. Instead using Bottles force stop all processes. You have to install Photo AI on a Windows installation/VM and copy the model files from that installation to your Linux install. It should work at this point. GPU still is a no go and face restoration throws an exception.

1 Like

Interesting. Thanks for the info on how to install Photo AI on Linux.

It is unfortunate that you had to install it on Windows and copy the model files from there, at least for those of us who don’t have access to a Windows machine (or license for a VM install).

I wonder if there is any reason to think that the Topaz team would like to keep it that way or if they would be willing to fix that step either by making the installer download the files under Wine or by providing them for a manual installation? If one asked them nicely. Do you think that the Topaz people read this thread or what would be the appropriate way to request this (hopefully trivial) modification of the installer?

I do want to buy a license for DeNoise AI or Photo AI, whichever works best on Linux. I am willing to go through some extra hoops to get it running on Linux, but I’m not willing to accept too much uncertainty as to whether it will work reliably.

I tried to replicate the settings and the installation of Photo AI. Unfortunately, I didn’t even get as far as to the stage where it tries to download the model files.

However, using the same settings I was able to install the current version of DeNoise AI (3.7.2), something I wasn’t able to do before!

One thing I forgot to mention which might make a difference is I gave Bottles permission to access system files using the Flatseal app. I seem to remember it making a difference in the past.

Thank you so much for this post! I’d not even heard of Bottles. I run Ubuntu 22.04 and installed bottles from flatpak, and ended up installing GE-Proton 8-9 manually from the tar archive. After doing that, I was able to create a custom bottle with Proton selected as the Runner, and then installed all of the options you screen - capped here.

I have the older version of AI Noise and AI Sharpen and both are working great, and running about 100x better than under VMware Workstation Pro, which was barely usable for some odd reason.

cheers

1 Like

Quick add to this that I have tried many combinations of runners and other settings and I can get the software to run using the CPU with several combinations but if I try to use the GPU I get the crash on face recovery.

If Topaz could let us know what libraries it is using there it might be helpful since I cannot find anything in the logs.

For what it’s worth I just upgraded to PhotoAI 2.0 and am using GE-Proton-8.14 and am no longer getting the crash with face recovery.

I tried to install PhotoAI 2.0 using Bottles with lutris-GE-Proton8-14-x86_64, but it won’t install. Perhaps it would work better if I had a Steam client installed…?

No, did you read my guide above? The installer will fail but you can work around it. Also don’t miss my follow up post about giving Bottles filesystem permission. Also a general FYI Proton runners can be download directly in Bottles now, and no longer have to be added manually.

Yes, I’ve read and tried to follow your guide. Thanks for providing it.

Having downloaded all the suggested dependencies and components, everything looks very similar to your screenshots with a single exception, namely that DXVK NVAPI does not show under Components. It is, however, present in data/bottles/nvapi. I’ve downloaded dxvk-nvapi-v0.6.4 to the same directory to see if that would make a choice between the two appear, but it didn’t. So that is one possible source of trouble.

The other problem is that I don’t have access to a Windows machine, so I can’t install it under Windows and copy the model files as you suggest. Instead I contacted Topaz Support and asked for the model files. Their response was quite friendly and I got the impression that they were willing to help (after the expected disclaimer that running under Linux is not supported). However, they were unable to determine which model files would be required from the logfile that I provided. The log ends with lines similar to these:

Action ended 13:31:04: ExecuteAction. Return value 0.
Action ended 13:31:04: INSTALL. Return value 0.
Action start 13:31:04: FatalError.

and the conclusion was that the installation process didn’t get as far as to the stage where it is supposed to download the model files.

I followed the above steps (including contacting Topaz Support) trying to install the previous version of PhotoAI. After that I gave up, but now that a newer version has been released and you reported success with it, I gave it another try using Topaz PhotoAI 2.0.0 (not the version that is expected to be released later today). Unfortunately, the result was the same (or at least very similar).

I did grant filesystem access using Flatseal, so the only difference that I see between your guide and my config is that DXVK NVAPI does not show under Components (after restarting Bottles). Could that be a clue?

Anyway, I don’t think that I necessarily need PhotoAI so I’ll probably give up (again) and stick with DeNoise. At least until it becomes easier to install it…