Войти
ПрограммированиеФорумГрафика

Vulkan API (вышел!) (491 стр)

Страницы: 1490 491 492 493498 Следующая »
#7350
15:36, 9 окт. 2020

prowkan
> Или я что-то не так делаю?
В цепочке структур в `PhysicalDeviceSurfaceInfo` всё нужное есть?

> VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671
> If a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo

> VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672
> If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain


#7351
15:45, 9 окт. 2020

Dinosaur
Спасибо, заработало! Странно, у меня слои не выдали эти предупреждения.

#7352
(Правка: 16:55) 16:30, 9 окт. 2020

Запустил слои.
Теперь vkEnumerateDeviceExtensionProperties выдает мнре кучу информации на манер:

"validation layer: Device Extension: VK_KHR_16bit_storage (C:\WINDOWS\System32\DriverStore\FileRepository\nvmdi.inf_amd64_1c5894d897494457\.\nvoglv64.dll) version 0.0.1"

Как выборочно отключить вывод слоем подобной информации? Меня интересуют предупреждения и ошибки, а не все это.

Update: нашел, флаги VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT и VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT

#7353
16:41, 9 окт. 2020

prowkan
> Кто-нибудь пользуется расширением VK_EXT_full_screen_exclusive? Оно вообще где-нибудь поддерживается?
да. разницы в фпс не увидел. но зато с ним весело крешится стандартный виндовый захватчик экрана и OBS ка захватывает мусорную картинку. GTX 1060 + Win 10.

>ЧЗХ?
а вот проверять через VkSurfaceCapabilitiesFullScreenExclusiveEXT  я не догадался. доверился расширению.
VkSurfaceFullScreenExclusiveInfoEXT.fullScreenExclusive - точно работает. по крайней мере это видно по программам захвата экрана.

#7354
(Правка: 19:04) 19:04, 9 окт. 2020

"И вновь продолжается бой"

Ужасные новые драконовские правила у Вулкана.
Ему не нравится что я использую ImageView как вложения и обращаюсь к ним в шейдере как к обычной текстуре:

validation layer: Validation Error: [ VUID-vkCmdDrawIndexed-None-02686 ] Object 0: handle = 0x24590726288, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0xc53ebd0000000187, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0xe91b58a0 | vkCmdDrawIndexed(): VkRenderPass 0xc53ebd0000000187[], subpass #1, input attachment #1 is not used in fragment shader. The Vulkan spec states: Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set (https://vulkan.lunarg.com/doc/view/1.2.154.1/windows/1.2-extensio… ed-None-02686)

validation layer: Validation Error: [ VUID-vkCmdDrawIndexed-None-02687 ] Object 0: handle = 0x37d73b00000004e2, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; Object 1: handle = 0x5a7c0b0000000284, type = VK_OBJECT_TYPE_IMAGE_VIEW; Object 2: handle = 0x4f1e1b0000000294, type = VK_OBJECT_TYPE_FRAMEBUFFER; | MessageID = 0x6c3b517c | VkDescriptorSet 0x37d73b00000004e2[] encountered the following validation error at vkCmdDrawIndexed() time: VkImageView 0x5a7c0b0000000284[] is used in Descriptor in binding #3 index 0 and VkFramebuffer 0x4f1e1b0000000294[] attachment # 1. The Vulkan spec states: Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command (https://vulkan.lunarg.com/doc/view/1.2.154.1/windows/1.2-extensio… ed-None-02687)

Но какого хрена? Эти вложения мне нужны как рефракт-текстура и буфер глубины для воды, я не могу обращаться к ним через subpassLoad(), поскольку используются проективные координаты.

Я столько с эти возился чтобы наладить и вот опять.
Что делать-то теперь?

Как в Вулкане в шейдере использовать вложения обращаясь к ним как к текстуре по произвольным координатам?

#7355
(Правка: 19:40) 19:40, 9 окт. 2020

То есть есть возможность в шейдере обратится к вложению, объявленному через subpassInput, как к текстуре, с нужными мне координатами?

Или другой вариант, можно в шейдер передавать текстуру, используемую как вложение, через sampler2D чтобы слои не ругались?

#7356
5:26, 11 окт. 2020

Как сделать наиболее быстро чтобы буфер глубины выводился в отдельную дополнительную текстуру?
Нужно прикреплять еще одно вложение и писать в фрагментном шейдере в это вложению глубину фрагмента или в вулкане есть способ поудобнее?

#7357
6:23, 11 окт. 2020

MikeNew
шо хочешь сделать?

#7358
(Правка: 9:32) 8:59, 11 окт. 2020

innuendo
> MikeNew
> шо хочешь сделать?
Я хочу в шейдере одновременно использовать образ изображения как текстуру рефракции и как вложение глубины.
Вулкан теперь говорит что нельзя одновременно.

Раньше было удобно, сразу использовал в шейдере вложение глубины как текстуру, теперь хрен.

Как сейчас поступают в Вулкане когда нужно в шейдере использовать одновременно вложение глубины как текстуру и как само вложение глубины?

#7359
9:34, 11 окт. 2020

MikeNew
делаешь депфпасс - потом копируешь

#7360
9:39, 11 окт. 2020

innuendo
> потом копируешь
Это же медленно.

#7361
9:40, 11 окт. 2020

MikeNew
> > потом копируешь
> Это же медленно.

у тебя коммерческий вариант ?

#7362
9:41, 11 окт. 2020

MikeNew
Если у тебя только тест глубины, без записи, то ставь везде лейаут VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL и тогда получится как ты хочешь.

#7363
11:53, 11 окт. 2020

/A\
одновременно можно читать и писать ?

#7364
(Правка: 12:25) 12:23, 11 окт. 2020

MikeNew
> Это же медленно.
это быстро, но интуитивно кажется неоптимальным. можно хранить две текстуры глубины: в первую идет рендер на четных кадрах, во вторую на нечетных. для чтения используется репроекция текстуры, в которую шел рендер в предыдущем кадре. надо?

Страницы: 1490 491 492 493498 Следующая »
ПрограммированиеФорумГрафика