2017-09-03 2 views
0

Ich habe ein Bild, das ich über imageStore schreibe. In diesem Teil ist dieses Bild im ALLGEMEINEN Layout. Am Ende dieses Durchlaufs mache ich jedoch eine Bildspeicherbarriere, um sie in das Layout SHADER_READ_ONLY zu überführen. Es war eine "Art von Fehler". Danach gebe ich dieses Bild zu einem DescriptorImageInfo mit dem Layout GENERAL und ich habe keinen Fehler von den Layern (und es funktioniert gut, aber ich benutze eine NVIDIA, so kann es normal sein).Descriptor Set und automatischer Layoutübergang

Doch nach Lesen der Beschreibung, ist es schreiben:

imageLayout ist das Layout, das die Bild Subressourcen zugänglich von Imageview in zu der Zeit sein wird, diese Bezeichnung zugegriffen wird. imageLayout wird in Deskriptor-Updates für die Typen VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER und VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT verwendet.

Das "wird sein" lässt mich über einen automatischen Layoutübergang nachdenken. Habe ich recht? Falsch? Wenn ich falsch liege, warum sagt mir die Schicht das nicht? Ist das ein Fehler?

+0

Btw, ja, auf Nvidia ist es normal, dass Dinge "einfach funktionieren", wenn Layouts falsch sind, da sie sie nicht sehr oft verwenden. Für einige andere Anbieter ist es sehr wichtig, die Layouts richtig zu gestalten. –

+0

Ja, ich weiß, dass Nvidia nicht auf Layouts angewiesen ist. Aber AMD tut das, deshalb wollte ich wissen, ob ich richtig oder falsch war. Ich fülle ein Problem :). Vielen Dank –

Antwort

2

"Wird sein" bedeutet hier keine automatische Umstellung: Sie erklären, dass Sie dafür sorgen, dass sich das Bild beim Zugriff über den Deskriptor in diesem Layout befindet.

Die Validierungslayer sollten einen Fehler ausgeben, wenn Sie mit diesem Deskriptor aktiv zeichnen und das Bild in einem anderen Layout als der Deskriptor erwartet. Wenn nicht, ist das ein Validierungsfehler, der hier abgelegt werden kann: https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers.

Verwandte Themen