Which Vulkan implementations really care about image layouts?

We know that AMD hardware is very sensitive to image layouts and appropriate transitions. We also know that NVIDIA’s implementation couldn’t care less, emitting no-ops for them.

What about Intel, and the various mobile vendors? Where do their implementations fall on this spectrum?

1 Like

I think they will all use it in some way or other in time. It’s a hint for some optimizations, no?
AFAIK, that AMD and NV info is months old(from GDC), so who knows how it is now.

I would note using layouts properly is requirement on the App, so the answer doesn’t matter that much.
An informal test would be to run a non-conformant App (which states wrong layouts) or at least testing performance of General vs specific layout.

It does matter, because GENERAL will always work for anything. If you’ve got NVIDIA going around saying “don’t bother with layouts; just set everything to GENERAL”, I’d like to know just how much of the non-NVIDIA world that NVIDIA is trying to poison with that advice.

Supplying GENERAL everywhere sure is state-of-the-art weapons-grade laziness…

I think, I heard/read from internet sources, tilers like to use those too (sorry, can’t place it right now - it makes sense on mobile/embedded device though)…
Intel is supposed to have some open-source driver merged with Mesa, so that info should be extractable (unless we have some kind insider in here).

I implore you to exercise Hanlon’s razor. Where does NVIDIA serve such an abominable advice anyway?

It’s right here (PDF). And I quote: “On NVIDIA GPUs image layouts are irrelevant. Just leave images in the VK_IMAGE_LAYOUT_GENERAL layout.” Yes, the advice is geared towards NVIDIA GPUs. But why would anyone suggest that they code that way?

And lest you think that the issue is fictional, AMD explicitly called people out on not doing layout transitions in their “Most Common Mistakes” presentation.

First of all, those kinds of slides may be just (professional) opinions of the person signed there (and he just used whatever slide template he got at work…). The slides are even from before Vk release, so another good reason to just ignore them.

Yeah, that wording is unfortunate. Well at least “on NV GPU” is somewhere in there. AIS I consider it lazy too; it’s a simple matter to write the specific layout in place of GENERAL.

BTW PRESENT_LAYOUT can’t be substituted by GENERAL at all, so that’s another hole.

^ AIS apply Hanlon’s razor. Guy made one nonsense in 70 page presentation half a year ago, nothing new… If they constantly played that card and as whole NVIDIA insisted on that, that would be whole different matter.

On the other hand in the AMD slides you mention, they have:

Transition the image to GENERAL or TRANSFER_DST_OPTIMAL layout.

So little bit perpetuating the bad advice.

[QUOTE=Alfonse Reinheart;40371]It’s right here (PDF). And I quote: “On NVIDIA GPUs image layouts are irrelevant. Just leave images in the VK_IMAGE_LAYOUT_GENERAL layout.” Yes, the advice is geared towards NVIDIA GPUs. But why would anyone suggest that they code that way?

And lest you think that the issue is fictional, AMD explicitly called people out on not doing layout transitions in their “Most Common Mistakes” presentation.[/QUOTE]

It’s interesting that Nvidia’s advice is on a slide titled “Good Practices” Is keeping images in the GENERAL layout preferred on Nvidia hardware? I haven’t encountered any performance issues as far as I can tell from performing layout transitions on Nvidia hardware.