Вулкан — Переход макета изображения в VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL

#c #vulkan

Вопрос:

Я пытаюсь установить глубину изображения в макете VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL изображения, но он вылетает без каких-либо ошибок / предупреждений со слоями проверки.

Мои параметры таковы:

  • олдЛайаут: VK_IMAGE_LAYOUT_UNDEFINED
  • Новый выпуск: VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
  • Маска аспекта: VK_IMAGE_ASPECT_DEPTH_BIT
  • Маска srcaccess: 0
  • Маска dstaccess: VK_ACCESS_SHADER_READ_BIT
  • srcStageMask: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT
  • Маска dstStageMask: VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT

Можно ли установить VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT переход изображения на глубину? Я также настроился VK_IMAGE_USAGE_SAMPLED_BIT на использование изображений.

Комментарии:

1. Если вы выполните переход от «неопределенного», то данные, хранящиеся в изображении, будут… неопределенными. И тогда вы обещаете читать только те данные, которые… не определены. Это не имеет смысла. Если вашему шейдеру необходимо считывать данные с изображения, то ему необходимо сохранить эти данные.