Possible validation error in https://docs.vulkan.org/tutorial/latest/07_Depth_buffering.html

Aperta Adatta ai principianti
#439 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
cpp

Direzione di ricerca

Inizia dalla pagina del tutorial sul depth buffer e riproduci il problema selezionando solo vk::Format::eD32SfloatS8Uint e vk::Format::eD24UnormS8Uint nell’elenco dei formati supportati. Esamina la transizione del layout dell’immagine di profondità e verifica che la maschera degli aspect includa gli aspect depth e stencil richiesti, quindi esegui nuovamente il tutorial con la validazione abilitata per confermare che l’errore segnalato sia scomparso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The aspect mask for the depth image layout transition is hardcoded to vk::ImageAspectFlagBits::eDepth

If, while choosing the depth image format, vk::Format::eD32Sfloat, is not selected, the program will cause this validation error:

Validation Error: [ VUID-VkImageMemoryBarrier2-image-03320 ] | MessageID = 0xb7ab59da
vkCmdPipelineBarrier2(): pDependencyInfo->pImageMemoryBarriers[0].image (VkImage 0xf000000000f) has depth/stencil format VK_FORMAT_D32_SFLOAT_S8_UINT, but its aspectMask is VK_IMAGE_ASPECT_DEPTH_BIT.
The Vulkan spec states: If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT (https://docs.vulkan.org/spec/latest/chapters/synchronization.html#VUID-VkImageMemoryBarrier2-image-03320)
Objects: 2
    [0] VkCommandBuffer 0x25a64390990
    [1] VkImage 0xf000000000f
Steps to reproduce

Change

return findSupportedFormat({vk::Format::eD32Sfloat, vk::Format::eD32SfloatS8Uint, vk::Format::eD24UnormS8Uint},
		                           vk::ImageTiling::eOptimal,
		                           vk::FormatFeatureFlagBits::eDepthStencilAttachment);

To this

return findSupportedFormat({vk::Format::eD32SfloatS8Uint, vk::Format::eD24UnormS8Uint},
		                           vk::ImageTiling::eOptimal,
		                           vk::FormatFeatureFlagBits::eDepthStencilAttachment);
Lingua principale
C++
Stelle
424
Fork
127
Merge medio
2g 21h
PR unite (30g)
5

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di KhronosGroup/Vulkan-Tutorial

Tutte le issue di KhronosGroup/Vulkan-Tutorial

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.