Rafael Brucart Posted April 16 Posted April 16 On 4/16/2025 at 5:19 AM, ElementalWarrior said: Don't use ai to answer questions for technical projects like this. It does a garbage job. Affinity does not get to choose whether opencl uses d12 under the hood. Its opencl implementation dependent. OpenCL is akin to defining a Car with 2 doors and an engine. It could be a mercedes, or a ford, but the application doesn't care as long as you tell it that you have 2 doors and an engine. If you see vkd3d logs when running affinity with vkd3d installed, then it is in some manner using d12. Their feature list page lists d3d10. So likely most of their application is written to use that functionality. https://affinity.serif.com/en-us/designer/full-feature-list/ But any advanced graphics application often support multiple libraries (metal/d3d/opengl/vulkan) and a varying combination of these, these days. --- Wine already has built-in DirectX12 to satisfy Affinity This is false. Although I wouldn't be surprised if most package libraries install vkd3d as a dependency for you. If vkd3d is available when building Wine, then Wine will use it to support Direct3D 12 applications. https://gitlab.winehq.org/wine/vkd3d Note on https://affinity.serif.com/en-us/designer/full-feature-list/ it says: Hardware GPU acceleration** ** Requires: Direct3D level 12.0-capable card And also under input devices it says: DirectX 11 and Direct 2D rendering with Windows Advanced Rasterization Platform (WARP) fallback Also Wine built with default configuration does indeed come with vkd3d. It is listed as being bundled here: https://gitlab.winehq.org/wine/wine/-/releases/wine-10.2 , and you can see it in the dll compile folder and in the built syswow64 and system32 as d3d12.dll and d3d12core.dll Another confusing thing I found out is that Winetricks does not install Wine vkd3d, in actuality 'winetricks vkd3d' is installing vkd3d-proton, to see that for yourself watch the winetricks log. --- So just to recap: Installing 'vk3d' is unnecessary as Wine already has built-in DirectX12 support; which at most satisfies the Affinity GPU requirement because Affinity is using DirectX 11 and OpenCl for acceleration. --- Additional: I believe I have found the link between the requirement for DirectX12, Hardware Acceleration, and OpenCl. See here: https://devblogs.microsoft.com/directx/in-the-works-opencl-and-opengl-mapping-layers-to-directx/ Quote
TechArtGuy Posted April 22 Posted April 22 (edited) This is amazing! Just finished installation of latest Affinity Designer 2.6.2 on bazzite 41 using ElementalWarrior Wine 1.1! I'm running on wine64, so I can confirm that this is working! Thanks for everyone who made this possible! Some advice for anyone who wants to do this, too: Install wine To install Affinity Software, in general, follow the instructions at https://github.com/ryzendew/AffinityOnLinux However, the script mentioned on this page is not running if you do not have wine installed. However, on bazzite (my Distro of choice), I don't want to install software via package management or rpm-ostree, so I recommened another method to use wine: install ProtonPlus to manage Wine Versions https://flathub.org/apps/com.vysp3r.ProtonPlus In ProtonPlus, install Wine Staging 10.5 Open ~/.bashrc and add this to the end (adjust the path to your wine version) if ! [[ "$PATH" =~ ".local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/" ]]; then PATH="/home/$USER/.local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/:$PATH" fi export PATH Reopen your terminal window or run . ~/.bashrc After that, you should be fine to follow instructions at https://github.com/ryzendew/AffinityOnLinux Edited April 22 by TechArtGuy Quote
aronkvh Posted April 24 Posted April 24 Thank you all for the guides, managed to install Photo on Fedora 42, but it gives an aero disabled error when I'm trying to launch, even though I set the windows version to 10 or 11. What should I try? Quote
LinuxHG Posted May 7 Posted May 7 On 4/21/2025 at 9:49 PM, TechArtGuy said: This is amazing! Just finished installation of latest Affinity Designer 2.6.2 on bazzite 41 using ElementalWarrior Wine 1.1! I'm running on wine64, so I can confirm that this is working! Thanks for everyone who made this possible! Some advice for anyone who wants to do this, too: Install wine To install Affinity Software, in general, follow the instructions at https://github.com/ryzendew/AffinityOnLinux However, the script mentioned on this page is not running if you do not have wine installed. However, on bazzite (my Distro of choice), I don't want to install software via package management or rpm-ostree, so I recommened another method to use wine: install ProtonPlus to manage Wine Versions https://flathub.org/apps/com.vysp3r.ProtonPlus In ProtonPlus, install Wine Staging 10.5 Open ~/.bashrc and add this to the end (adjust the path to your wine version) if ! [[ "$PATH" =~ ".local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/" ]]; then PATH="/home/$USER/.local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/:$PATH" fi export PATH Reopen your terminal window or run . ~/.bashrc After that, you should be fine to follow instructions at https://github.com/ryzendew/AffinityOnLinux Oh wow, I had a new computer install and fired these scripts up and they were absolutely beautiful. So much better than installing manually like I did so long ago. Quote
quentez Posted May 8 Posted May 8 (edited) Hi everyone, I want to give a big thank you to @ElementalWarrior, @Wanesty, and @__avg__ for their invaluable work in getting Affinity Photo to run on Wine. With the help of this thread, I was able to build a Flatpak of Affinity Photo 2.6.2 that automatically configures Wine and gets everything running. You can find it here and try it for yourself. What works: Runs on the latest Wine 10.7. Shows a progress dialog on first run while the Wine dependencies are installing. Automatically detects and sets DPI. What doesn't work: The "New" dialog is missing all the default templates. The settings still don't save. Exporting PNGs still crashes. I wasn't able to get it to run stable on Wayland. I wasn't able to get it to run stable with DXVK. Edited May 8 by quentez Quote
Pacific Posted May 9 Posted May 9 8 hours ago, quentez said: Hi everyone, I want to give a big thank you to @ElementalWarrior, @Wanesty, and @__avg__ for their invaluable work in getting Affinity Photo to run on Wine. With the help of this thread, I was able to build a Flatpak of Affinity Photo 2.6.2 that automatically configures Wine and gets everything running. You can find it here and try it for yourself. What works: Runs on the latest Wine 10.7. Shows a progress dialog on first run while the Wine dependencies are installing. Automatically detects and sets DPI. What doesn't work: The "New" dialog is missing all the default templates. The settings still don't save. Exporting PNGs still crashes. I wasn't able to get it to run stable on Wayland. I wasn't able to get it to run stable with DXVK. vcrun2022 solves the png export crashing. Quote
Pacific Posted May 9 Posted May 9 8 hours ago, quentez said: Hi everyone, I want to give a big thank you to @ElementalWarrior, @Wanesty, and @__avg__ for their invaluable work in getting Affinity Photo to run on Wine. With the help of this thread, I was able to build a Flatpak of Affinity Photo 2.6.2 that automatically configures Wine and gets everything running. You can find it here and try it for yourself. What works: Runs on the latest Wine 10.7. Shows a progress dialog on first run while the Wine dependencies are installing. Automatically detects and sets DPI. What doesn't work: The "New" dialog is missing all the default templates. The settings still don't save. Exporting PNGs still crashes. I wasn't able to get it to run stable on Wayland. I wasn't able to get it to run stable with DXVK. and if i may ask does this use dxvk or vkd3d? Quote
Daegalus Posted May 9 Posted May 9 Hey guys, just letting you know I have a 10.6 build using wine-tkg with the 2 patches built for RoResolveNamespace and the Installer Icon fix. You can find the builds here: https://github.com/daegalus/wine-tkg-affinity/releases/tag/25Y07.598 Currently working on a 10.7 build Quote
aaazalea Posted May 9 Posted May 9 Anyone have tips on getting StudioLink working? I've been happily running Publisher using the tips above, and I've installed Designer and Photo just now (having decided to purchase the universal license in part so that I can use the designer persona sometimes), but I keep getting the "App Launch Required" warning: I'm on Fedora FWIW. Quote
quentez Posted May 10 Posted May 10 (edited) Hi @Pacific 17 hours ago, Pacific said: vcrun2022 solves the png export crashing. It does, but in my case it resulted in crashes when saving the project file instead, so I thought best to skip it for now. 17 hours ago, Pacific said: and if i may ask does this use dxvk or vkd3d? Not at the moment. It would be straightforward to add but I didn't for two reasons: In my case DXVK was very unstable and the whole window was completely blank most of the time. I got OpenCL acceleration working with @__avg__'s patches and VKD3D as I have an Nvidia GPU, but I wanted to confirm it wouldn't create issues for people with Intel/AMD GPUs before including that in the Flatpak. One option would be to add flags to the startup script so that end users could easily customize this behavior with Flatseal. Edited May 10 by quentez Quote
LouW Posted May 10 Posted May 10 16 hours ago, aaazalea said: Anyone have tips on getting StudioLink working? I've been happily running Publisher using the tips above, and I've installed Designer and Photo just now (having decided to purchase the universal license in part so that I can use the designer persona sometimes), but I keep getting the "App Launch Required" warning: I'm on Fedora FWIW. I had the same thing. I launched the individual apps and put in my license details and it started working then. I'm assuming that you are using the trial versions - studio link doesn't work on those. Quote
HCN Posted May 14 Posted May 14 On 5/9/2025 at 9:18 AM, Daegalus said: Hey guys, just letting you know I have a 10.6 build using wine-tkg with the 2 patches built for RoResolveNamespace and the Installer Icon fix. You can find the builds here: https://github.com/daegalus/wine-tkg-affinity/releases/tag/25Y07.598 Currently working on a 10.7 build I installed both affinity photo and designer (wine-tkg-affinity). None of them go past the small window that shows the version number when launching I used the following guide: https://github.com/Twig6943/AffinityOnLinux/blob/main/Guides/Lutris/Guide.md Here's the log: Started initial process 80112 from /home/desktop/.local/share/lutris/runners/wine/wine-tkg-affinity-x86_64/bin/wine /home/desktop/AffinityOnLinux/drive_c/Program Files/Affinity/Photo 2/Photo.exe Start monitoring process. fsync: up and running. /usr/src/debug/rocm-opencl-runtime/clr-rocm-6.3.3/rocclr/os/os_posix.cpp:321: static void amd::Os::currentStackInfo(unsigned char**, size_t*): Assertion `Os::currentStackPtr() >= *base - *size && Os::currentStackPtr() < *base && "just checking"' failed. Unhandled Exception: System.IO.FileFormatException: The image format is unrecognized. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x88982F07 --- End of inner exception stack trace --- at System.Windows.Media.Imaging.BitmapDecoder.SetupDecoderFromUriOrStream(Uri uri, Stream stream, BitmapCacheOption cacheOption, Guid& clsId, Boolean& isOriginalWritable, Stream& uriStream, UnmanagedMemoryStream& unmanagedMemoryStream, SafeFileHandle& safeFilehandle) at System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache) at System.Windows.Media.Imaging.BitmapDecoder.Create(Uri bitmapUri, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy) at Serif.Affinity.ResourceManager.GetIconSourceCore(String name, Int32 desiredPixelWidth) at Photo.Application.get_Icon() at Serif.Affinity.UI.AffinityWindow..ctor(IServiceProvider serviceProvider) at Serif.Affinity.Services.WindowService..ctor(IServiceProvider serviceProvider, ISettingsService settingsService) at Serif.Affinity.Application.InitialiseServices(ServiceManager services) at Photo.Application.InitialiseServices(ServiceManager services) at Serif.Affinity.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) Monitored process exited. Initial process has exited (return code: 20992) Exit with return code 20992 Quote
irunatbullets Posted Saturday at 07:55 PM Posted Saturday at 07:55 PM On 4/22/2025 at 3:49 AM, TechArtGuy said: This is amazing! Just finished installation of latest Affinity Designer 2.6.2 on bazzite 41 using ElementalWarrior Wine 1.1! I'm running on wine64, so I can confirm that this is working! Thanks for everyone who made this possible! Some advice for anyone who wants to do this, too: Install wine To install Affinity Software, in general, follow the instructions at https://github.com/ryzendew/AffinityOnLinux However, the script mentioned on this page is not running if you do not have wine installed. However, on bazzite (my Distro of choice), I don't want to install software via package management or rpm-ostree, so I recommened another method to use wine: install ProtonPlus to manage Wine Versions https://flathub.org/apps/com.vysp3r.ProtonPlus In ProtonPlus, install Wine Staging 10.5 Open ~/.bashrc and add this to the end (adjust the path to your wine version) if ! [[ "$PATH" =~ ".local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/" ]]; then PATH="/home/$USER/.local/share/lutris/runners/wine/wine-10.5-staging-amd64/bin/:$PATH" fi export PATH Reopen your terminal window or run . ~/.bashrc After that, you should be fine to follow instructions at https://github.com/ryzendew/AffinityOnLinux I have just followed your guide with Bazzite 42, I just had to make one change because, for whatever reason, 7z is called 7za in 42, which means the script fails the dependency check. mkdir -p ~/bin ln -s "$(which 7za)" ~/bin/7z Quote
skeithmt Posted 5 hours ago Posted 5 hours ago Just signed up to say thanks so much for everyone's efforts involved. I recently installed Fedora 42 to see how it goes and it's amazing to what state it's reached. I tried all sorts of ways of installing the app. In the end I tried the guides and scripts of: https://github.com/Twig6943/AffinityOnLinux https://github.com/ryzendew/AffinityOnLinux The last installation attempts were with Twig's Bottles and Lutris guides since they have scripts to do the installation for you. Worked immediately! The only thing I'm seeing with the usage (With Affinity Designer 2) is that working with a document or, the resizing the window creates black stutters. As if the screen is a bit slow to refresh, wondering if anyone else experiences this 🤔 Otherwise, great stuff 😁thanks again! Quote
Recommended Posts
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.