Jump to content
You must now use your email address to sign in [click for more info] ×

Affinity Suite v2.0.4 on linux [ Wine ]


Wanesty

Recommended Posts

On 3/1/2024 at 1:52 AM, PancakeWizard said:

Has anyone bit the bullet and tried to upgrade to 2.4 yet to see if this still works without a reinstall? I haven't dared, yet.

I have just gone through this guide for the first time, and used 2.4.0 as the installer.

From a 2 second glance, it looks like it's working.

I was able to launch 2.4, sign in and saved a blank file without issue.

As for anything further - I haven't had a chance to look into it. So if there were specific functions that may or may not have worked from earlier versions those may still be the case. So take this with grain of salt.

Link to comment
Share on other sites

I've installed Photo 2.4.0 on PopOS 22.04 successfully following the guide.
I've had to force install dotnet and fonts
 

rum ElementalWarrior-8.14 $HOME/.wineAffinity winetricks --force dotnet48 corefonts 

and switch to gl for renderer to avoid glitches.

Only issue I'm having now is that any preferences I set are not being saved,  the next time I start Photo again, It's back to defaults. Anyone has that working ?

Link to comment
Share on other sites

So thank you, @Wanesty and @ElementalWarrior, I was able to get Photo 2.3 running on Manjaro Linux (in a VM).  I figured Manjaro would be a good a choice since it's Arch-based and up-to-date.  Some screenshots here: https://imgur.com/gallery/G6gtzlJ

A little "trip report": is it usable? I'd say no, not really.  I tried Vulkan and OpenGL, and they both had (different) UI issues.  Some issues with focus (had to tab to change the Gaussian blur values).  It's too bad that I can run games like Elden Ring really well through Steam, but not Affinity Photo.  I wish that Serif would do a little work to make their products just a *teensy* bit more compatible with Linux.  They don't even have to mention it in the patch notes or tell anyone!  Wouldn't it be great if v2.5 (or 3.0?!) just magically worked on Linux.

Link to comment
Share on other sites

6 hours ago, bendangelo said:

For anyone wondering Affinity Designer / Photo v1 works fine in linux. The only issue is the canvas flashes due to a refresh bug, but it's totally usable.

When you say it flashes, like what constantly or every time you move the cursor over it or just once in a blue moon?

Link to comment
Share on other sites

13 hours ago, bendangelo said:

For anyone wondering Affinity Designer / Photo v1 works fine in linux. The only issue is the canvas flashes due to a refresh bug, but it's totally usable.

That reminds me, if anyone who bought version 1 and needs to get it again, e.g. because of a change in computer, then details of how to get the Affinity 1 products are shown below:

I have no idea if the Affinity 2 range works this way and if there are even more problems with it.

Link to comment
Share on other sites

On 6/26/2023 at 3:12 PM, Grunt said:

Guys, seriously? What the hell? I can't watch this anymore. Here are extracted repo patches:

Wine-git_patches.tar.xz 9.15 kB · 48 downloads

Clone standard Wine mainline repository, apply patches (git am or git apply), build wine and proceed as usual. I myself have here wine 8.10 from Git working just fine. There is no need for:

  • Containers
  • rum, bottles,idkwhatsandbox
  • technically not even winetricks if you know how to install dotNET4.8

Keep it as simple and vanilla as possible. There is no trick. And preferably use you distribution method for creating binary packages (patches can be applied almost to anything) or simply follow Building Wine guide. Don't use containers.

My previous intention was to create binary packages for Ubuntu (and clones) but i just grew aggravated (by Ubuntu) more and more. I can't bear Ubuntu. Not anymore.

So, I decided to switch this task on Debian (I guess it's your lucky day). Right know I'm facing some issues and I don't have enough time, but my intention is to create packages for Debian and run Affinity and Wine on Debian. Wish me luck.

Hi guys, could someone please give me a hand? I've been trying to use patches on Wine 9.4, but unfortunately, they don't seem to be compatible or I didn't use them correctly. I couldn't compile a working Wine 9.

Using the guide you provided @Wanesty at https://codeberg.org/wanesty/affinity-wine-docs, with render=vulkan it works really well for me, however, DXVK loads under d3d9x for me, it detects my GPU 4070 but doesn't allow me to use OpenCL.

I've tried several things like spoofing with dxvk.conf, but I don't quite understand how it behaves, it's very different from games.

I want to ask you guys, does anyone know if it's already possible to use OpenCL? Either by using a new version of Wine with patches or something else?

Could someone help me out? I use Arch Linux and my video card uses proprietary drivers, it's a 4070.

I've tried reading almost all the threads in this forum. My English isn't that good, and I'm not very sure about things. I would appreciate it if you could guide me a little. I'd like to make the most of my GPU with DXVK properly configured.

I have a small project, and despite having a 14th gen i5 processor, I'm starting to feel the workflow slowing down

Link to comment
Share on other sites

9 hours ago, junklont said:

Hi guys, could someone please give me a hand? I've been trying to use patches on Wine 9.4, but unfortunately, they don't seem to be compatible or I didn't use them correctly. I couldn't compile a working Wine 9.

Using the guide you provided @Wanesty at https://codeberg.org/wanesty/affinity-wine-docs, with render=vulkan it works really well for me, however, DXVK loads under d3d9x for me, it detects my GPU 4070 but doesn't allow me to use OpenCL.

I've tried several things like spoofing with dxvk.conf, but I don't quite understand how it behaves, it's very different from games.

I want to ask you guys, does anyone know if it's already possible to use OpenCL? Either by using a new version of Wine with patches or something else?

Could someone help me out? I use Arch Linux and my video card uses proprietary drivers, it's a 4070.

I've tried reading almost all the threads in this forum. My English isn't that good, and I'm not very sure about things. I would appreciate it if you could guide me a little. I'd like to make the most of my GPU with DXVK properly configured.

I have a small project, and despite having a 14th gen i5 processor, I'm starting to feel the workflow slowing down

Hello, did you experienced any low performance issue under wine8 with Vulkan? Such as slow moving pen or slow at dragging any items.

I have tried complie with wine9.4, it doesn't work since the branch of ElementalWarrior-wine is not merge to 9.x yet. I dont know too much with wine, sorry i cant help.

Link to comment
Share on other sites

15 hours ago, junklont said:

Using the guide you provided @Wanesty at https://codeberg.org/wanesty/affinity-wine-docs, with render=vulkan it works really well for me, however, DXVK loads under d3d9x for me, it detects my GPU 4070 but doesn't allow me to use OpenCL.

if it's not allowing you to enable it from the settings then it's likely what i theorized before:

Wine does not come with windows-like GPU drivers, it only translates the application calls to the corresponding Linux drivers.
So, the check affinity does to enable OpenCL is likely a GPU driver call, and since those are missing, it simply fallback to not allowing you to enable it

 

also so you get a better idea, the UI is likely using some flavor of Windows Presentation Foundation libraries, and those are using DX9

so we can guess that the UI is using DX9 while the canvas and filters might be using a latter version of DirectX

up to date guide for the Affinity Suite on Linux :  codeberg.org/affinity-wine-docs

Link to comment
Share on other sites

13 hours ago, LilJ said:

Hello, did you experienced any low performance issue under wine8 with Vulkan? Such as slow moving pen or slow at dragging any items.

I have tried complie with wine9.4, it doesn't work since the branch of ElementalWarrior-wine is not merge to 9.x yet. I dont know too much with wine, sorry i cant help.

Yes I have been having trouble with affinity, visual gliches on deform layers, or slow, laggy in proyects with many layers.

7 hours ago, Wanesty said:

if it's not allowing you to enable it from the settings then it's likely what i theorized before:

Wine does not come with windows-like GPU drivers, it only translates the application calls to the corresponding Linux drivers.
So, the check affinity does to enable OpenCL is likely a GPU driver call, and since those are missing, it simply fallback to not allowing you to enable it

 

also so you get a better idea, the UI is likely using some flavor of Windows Presentation Foundation libraries, and those are using DX9

so we can guess that the UI is using DX9 while the canvas and filters might be using a latter version of DirectX

Ohh understand, I have question bro, Normally in wine buils for games, like proton GE or proton buiilds the DXVK is saved in Proton-wine-example/wine-install/lib/wine/dxvk
but in the ElementalWarrior-wine/wine-install/lib/wine/ it dont exits, where it have the binaries of DXVK?

The other question is related to dxvk cache file that usually is in the same folder that .exe file, it should stay in Designer.exe in my case with affinity designer but it never appear and neither loads my dxvk.conf, still when try set as env variable not work, only can see the hud information if I use it as ENV variable, but if set dxvk.hud = 'full' in the dxvk.conf it never loads.

Could the affinity runs in a virtual machine using the openCL ? without use single passtrought gpu?

thank you very much for all your work !!!

Link to comment
Share on other sites

I'm having a weird issue, I've gone to the Repo and followed the steps and, earlier, it was working fine albeit Affinity Photo was crashing when trying to open some menus and such so I tried to make sure everything had installed correctly, even wiping the prefix, as I'd followed a previous post here before realising it was outdated.

Now, on a fresh prefix, I'm getting this error. I'm not sure if anyone's come across it. I've successfully installed v2.4.0 but, on launch, it crashes with this error.

 

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Windows.Services.Store.StoreContract, Version=4.0.0.0, Culture=neut
ral, PublicKeyToken=null, ContentType=WindowsRuntime' or one of its dependencies. Path not found.
   at Serif.Affinity.Application.OnServicesInitialised(IServiceProvider serviceProvider)
   at Serif.Interop.Persona.Application.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at Photo.Application.Main(String[] args)

 

Link to comment
Share on other sites

On 3/6/2024 at 8:28 PM, psylenced said:

I have just gone through this guide for the first time, and used 2.4.0 as the installer.

From a 2 second glance, it looks like it's working.

I was able to launch 2.4, sign in and saved a blank file without issue.

As for anything further - I haven't had a chance to look into it. So if there were specific functions that may or may not have worked from earlier versions those may still be the case. So take this with grain of salt.

For anyone interest, the current ElementalWarrior-wine 8.x works with both 2.4 and 1.10.

But 1.10 is better. Less flicking(only when open the menu or any popup panels), no issue when saving files, running stable at openGL.

2.4 in openGL is flicking a lot, random crached in 5-10 minutes, crashed when save files(file will be save successfully thought).

Both 1.10 and 2.4 seems fine at vulkan but the performance is terrible.

Hope the wine 9.x will save it.

Link to comment
Share on other sites

  • 4 weeks later...
On 3/6/2024 at 12:16 PM, Kubo said:

Only issue I'm having now is that any preferences I set are not being saved,  the next time I start Photo again, It's back to defaults. Anyone has that working ?

Yup, I have reproduced this as well. I have filed a bug here: https://codeberg.org/wanesty/affinity-wine-docs/issues/11

On my AMD graphics machine I have found vulkan more reliable but laggier, and on my Intel integrated graphics machine I have found OpenGL to be more reliable.

I am using Affinity Designer 2.3.0 and the setup is currently using ElementalWarrior wine 8.14, but I see from above that it may be worth rebasing the patch set on newer Wine, which I might do and dump into a Git repo somewhere. I might do that and move the setup to use it if I have energy to invest in this later.

Also, for those who find Nix things pleasing to use, there is a practically one-line, reproducible, setup I've written for @Wanesty's guide here, that will build Wine for you as appropriate and do the wineprefix stuff for you pleasantly: https://github.com/lf-/affinity-crimes

Link to comment
Share on other sites

Hello all,

Thanks to this thread I've been able to get 2.x running on Linux Mint, but the flickering is driving me insane. Unfortunately when I attempt to run 1.x I get the following error:
 

Has anyone figured this one? Do I need a new wine environment?

Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This 
is often an indication that other memory is corrupt.
   at Raster.Hardware<Raster::DefaultImplementation>.GetHardwarePossible()
   at Serif.Interop.Persona.Settings.PerformanceSettings.get_CanUseHardwareAcceleration()
   at Serif.Interop.Persona.Settings.PerformanceSettings.get_UseHardwareAcceleration()
   at Serif.Interop.Persona.Services.InteropService.Initialise()
   at Serif.Interop.Persona.Application.OnServicesInitialised(IServiceProvider serviceProvider)
   at Serif.Affinity.Application.OnServicesInitialised(IServiceProvider serviceProvider)
   at Serif.Interop.Persona.Application.OnStartup(StartupEventArgs e)
   at System.Windows.Application.<.ctor>b__1_0(Object unused)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 n
umArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object ar
gs, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback c
allback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback,
 Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback,
 Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionConte
xt, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lPar
am, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handle
d)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 n
umArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object ar
gs, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout
, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at Photo.Application.Main(String[] args)

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.