Jump to content

Graphics card specifics


Recommended Posts

Reading this I've realised two things:

1: most people don't understand the concept of an API.

2: most people are unable to recognise poorly written software.

The hardware acceleration is quite new, given all the issues and quirks I'd describe it as being in beta. Hopefully it will get refined over time.

Link to comment
Share on other sites

9 hours ago, BofG said:

1: most people don't understand the concept of an API.

2: most people are unable to recognise poorly written software.

This isn't just about API's or how well-written the apps are.

To begin with, there are several different flavors of hardware acceleration, but the one relevant here for Windows users is OpenCL. It provides a generalized, abstract framework for performing various computing functions in parallel on a variety of devices, each of which typically has several computing units, each consisting of one or more processing elements.

Device vendors like AMD, Nvidia, & Intel are free to decide how their devices will be divided into different units & elements, but there is no one 'universal' architecture that all of these devices use, even from the same vendor. Apps don't know anything about those abstractions; they just call functions that are handed off to the driver provided by the device vendor.

So basically, all a well written app can do is determine which functions can be performed in parallel & optionally hand them off to whatever driver is installed. The app can't do anything about bugs in the driver or know which functions might trigger one or more of them that could crash or hang the app.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

55 minutes ago, R C-R said:

Windows users is OpenCL.

Not true. Check the second FAQ link from the first reply in this thread.

 

56 minutes ago, R C-R said:

hand them off to whatever driver

Again not true. The API is all that the program interfaces with. The driver is abstracted behind this. (and actually it's apparently using another even higher level abstraction than the DirectX compute).

 

57 minutes ago, R C-R said:

The app can't do anything about bugs in the driver or know which functions might trigger one or more of them that could crash or hang the app.

Show the proof that the crashes are caused by a faulty driver and not a fault in the application.

Link to comment
Share on other sites

7 minutes ago, BofG said:

Not true. Check the second FAQ link from the first reply in this thread.

I don't understand what you mean. If you are talking about this reply, in that post @Lee D wrote:

Quote

In the 1.9 update to our apps, hardware acceleration (OpenCL) was added, this should increase performance on Windows.

The FAQ link in that post leads to this post by @Leighthis topic. maybe I am missing something but I do not see anything there that contradicts my comment that on Windows, hardware acceleration is dependent on OpenCL.

 

16 minutes ago, BofG said:

Again not true. The API is all that the program interfaces with. The driver is abstracted behind this.

Yes, the API is the only thing the app interfaces with. A direct consequence of this is it is the API that then hands the function off to the driver. So what is not true about what I said?

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

19 minutes ago, R C-R said:

contradicts my comment that on Windows, hardware acceleration is dependent on OpenCL

DirectX isn't OpenCL. The latter is only used for AMD cards.

 

22 minutes ago, R C-R said:

So what is not true about what I said?

The app doesn't hand off to a driver. It makes function calls against the well defined API.

The whole thing is clearly a work in progress and a bit up in the air. The requirements give a specific Windows version due to needing DXCore, yet with AMD being OpenCL I don't see how that adds up, and it's all disabled right now (I think?) on the newer Radeon cards.

Link to comment
Share on other sites

Quote

...
Every OpenCL application needs to link to a library containing OpenCL’s standard functions. This library is called OpenCL.dll on Windows, libOpenCL.so on Linux, and OpenCL on Mac OS systems. If your development process uses makefiles, your makefile must identify the name and location of the OpenCL library.

But you don’t have to identify the vendor-specific libraries that interface with the vendor’s hardware. The SDK makes these libraries, installable client drivers (ICDs), available so that the OpenCL runtime can find them. In Windows, the SDK adds registry entries identifying the ICDs’ names. In Linux, the ICDs are identified by text files in the /etc/OpenCL/vendors directory.
...

People interested in the overall OpenCL materia should better read some well explaining book about OpenCL programming, which ideally then also explains the whole history, architecture and usage behind it, instead of looking just at superficial Wikipedia articles or the like.

☛ Affinity Designer 1.10.5 ◆ Affinity Photo 1.10.5 ◆ OSX El Capitan

Link to comment
Share on other sites

2 hours ago, BofG said:

The app doesn't hand off to a driver. It makes function calls against the well defined API.

Nobody said the app hands the call off directly to the driver, but as I said, it is the API that hands the function call off to the driver.

2 hours ago, BofG said:

,,, and it's all disabled right now (I think?) on the newer Radeon cards.

From what @Mark Ingramhere, it is only Radeon RX 5000 series and later cards that are incompatible, & from several other discussions it appears to be because there is a bug in the drivers for those cards, which AMD is aware of.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

2 hours ago, BofG said:

DirectX isn't OpenCL.

No, it is not, but as explained in both the text description below this video & in the video itself starting around the 4:43 mark, hardware acceleration on the Windows version of AP is provided via OpenCL. Quoting directly from the description (emphasis added):

Quote

Take advantage of hardware acceleration to speed up rendering performance using Metal Compute on Mac and OpenCL on Windows.

FWIW, the link to the video was included in one of the "Learn more" links the Affinity Photo for Windows - 1.9.0 announcement topic:

Quote

Windows hardware (GPU) acceleration (for users running Windows 10 (April 2020 update or later) with a Direct3D feature level 12.0 capable card) (learn more)

Browsing through the links to newer versions in the Latest Affinity releases on each platform by store topic, I could not find any indication that they have added support for hardware acceleration through any other means than through OpenCL since then.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

5 hours ago, BofG said:

Thanks for the info, I hadn't seen that. I had read from the other thread that they was using DXCore, which is what made me think it was along the DirectX side of things.

As I understand it (which easily could be wrong) in the Windows version of AP, hardware acceleration requires a GPU & a driver that supports OpenGL OpenCL, DirectX 12 level 12, & Windows version 10.0.19041 or later.

I do not know where DXCore fits into this.

EDIT 2: I just noticed in a screenshot in another topic that on Windows the AP performance preference also seems to show that OpenCL must be enabled for hardware acceleration, so it appears to be the Windows counterpart for Metal compute acceleration in the Mac version.

prefs.jpg.afe02b9ea5f55179349b1b4de721435f.jpg

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

13 minutes ago, R C-R said:

OpenGL

OpenCL. OpenGL is something different.

-- Walt

   Desktop: new:  Windows 11 Home, version 21H2 (22000.613) 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090  (old: 16GB memory, Intel Core i7-6700K @ 4.00GHz, GeForce GTX 970 )
   Laptop:  Windows 10 Home, version 21H2 (19044.1706) 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
    Affinity Photo 1.10.5 (.1342) and 1.10.5.1342 Beta   / Affinity Designer 1.10.5 (.1342) and 1.10.5.1342 Beta  / Affinity Publisher 1.10.5 (.1342) and 1.10.5.1282 Beta
 iPad Pro M1, 12.9", iPadOS 15.6.1, Apple Pencil 2, Magic Keyboard

  Affinity Photo 1.10.5 (.280) and 1.10.2 (.266) Beta / Affinity Designer 1.10.5 (.21) and 1.10.3 (.19) Beta 

Link to comment
Share on other sites

23 minutes ago, walt.farrell said:

OpenCL. OpenGL is something different.

Thanks. Post now corrected.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

2 hours ago, R C-R said:

As I understand it (which easily could be wrong) in the Windows version of AP, hardware acceleration requires a GPU & a driver that supports OpenGL OpenCL, DirectX 12 level 12, & Windows version 10.0.19041 or later.

Yep I think you have it right there.

2 hours ago, R C-R said:

I do not know where DXCore fits into this.

From what I can tell all it is used for is querying the OS to find the hardware (and the hardware capabilities). That's what threw me because it doesn't give access to OpenCL, it does tie into DirectCompute.

It does seem quite a convoluted approach (as in requiring DirectX but actually not using that but using OpenCL), but maybe they know what they are doing.

Link to comment
Share on other sites

Despite nobody daring to stick out their necks, I can report that this 2GB Asus Geforce GT1030 appears to fully support AP and AD in the hardware acceleration department. Multiple live Gaussian blurs and 30 recolour and pixel layers all render in real time and update immediately on moving around the canvas. Happy bunny.

 

I don't understand why Serif programmers don't monitor these posts, they could learn a lot from their customers. Now, let's get overlays for effects and filter layer masks along with guides that can be seen on blue projects. Thanks Serif, despite a few omissions, your software is fantastic and I tell anyone who'll listen.

Link to comment
Share on other sites

52 minutes ago, Sclong137 said:

I don't understand why Serif programmers don't monitor these posts, they could learn a lot from their customers.

Because there are usually several thousand posts per week, so if the programmers did that, they would not have much time left to work on the programs, the job they were hired to do.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

1 hour ago, R C-R said:

Because there are usually several thousand posts per week, so if the programmers did that, they would not have much time left to work on the programs, the job they were hired to do.

Cannot resist

https://xkcd.com/303/

MacBook Pro (13-inch, Mid 2012) Mac OS 10.12.6 || Mac Pro (Late 2013) Mac OS 11.7

Affinity Designer 1.10.5 | Affinity Photo 1.10.5 | Affinity Publisher 1.10.5 | Beta versions as they appear.

I have never mastered color management, period, so I cannot help with that.

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...
 Share

×
×
  • Create New...

Important Information

Please note there is currently a delay in replying to some post. See pinned thread in the Questions forum. These are the Terms of Use you will be asked to agree to if you join the forum. | 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.