forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Hello Vulkan (http://forum.boolean.name/showthread.php?t=20703)

Samodelkin 18.04.2018 20:22

Hello Vulkan
 
Вложений: 2
Вложение 22853

На днях проходил вот эти туторы.

GAPI довольно низкоуровневый. Кубик как на картинке (он даже не вращается - только один кадр выводится без рендер-цикла) требует освоение 15 уроков теории и примерно 2к строк кода (я немного по другому делал - создавал классы интерфейсов, а не как в примерах сишный процедурный код, но количество кода примерно тоже выходит). Не скажу что этот GAPI сложный, там всё хорошо структурировано, годно написана спецификация и доки, но объём материала большой и требует больше времени и на изучение и на кодирование чем традиционные GAPI (наверное самое сложное найти это время).

Тем не менее, GAPI новый и даже такие простые демки неплохо бы потестить: Вложение 22856.
В архиве:
  • hello-world.exe - запустить тест.
  • hello-world-layers.exe - запустить тест с отладочными слоями, в случае если что-то не работает и нужно выяснить подробности ошибки.
  • RunTimeInstaller - библиотеки для вулкана. В частности стандартная утилита vulkaninfo.exe тоже должна быть там (вроде бы она и так у всех в System32 есть - достаточно набрать vulkaninfo в терминале).
Спасибо.

Чтобы завершить приложение нужно нажать любую клавишу на окне терминала. А перед закрытием было бы здорово скопировать лог сюда. Так же интересно посмотреть результаты лога у кого несколько GPU.

Mr_F_ 18.04.2018 22:47

Ответ: Hello Vulkan
 
libwinpthread-1.dll нету, говорит.
откопал его где-то у себя, тогда application could not start correctly (возможно разная битность дллки и ехе)

Samodelkin 18.04.2018 23:05

Ответ: Hello Vulkan
 
Цитата:

Сообщение от Mr_F_ (Сообщение 314930)
libwinpthread-1.dll нету, говорит.
откопал его где-то у себя, тогда application could not start correctly (возможно разная битность дллки и ехе)

Добавил. Приложение 64 битное.

Mr_F_ 18.04.2018 23:42

Ответ: Hello Vulkan
 
чёт не пашет. нужны какие-то особые драйвера?
лог:


Let's go!

1 GPU(s) found.

props.deviceName: GeForce GTX 1060 6GB
props.deviceType: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
props.apiVersion: 1.0.65
props.driverVersion: 1637040128
props.vendorId: 0x10de
props.deviceId: 0x1c03
props.pipelineCacheUUID: 79952e26-77dc-a01c-4dfb-cacab4b35cf4

WARNING: The app is always using the first GPU (index=0).
Create Swapchain ...
VK_FORMAT_B8G8R8A8_UNORM
VK_FORMAT_B8G8R8A8_SRGB
The best format is VK_FORMAT_B8G8R8A8_UNORM.
minImageCount=2
maxImageCount=8
maxImageArrayLayers=1
supportedTransforms=VK_SURFACE_TRANSFORM_IDENTITY_ BIT_KHR
currentTransform=VK_SURFACE_TRANSFORM_IDENTITY_BIT _KHR

VK_PRESENT_MODE_FIFO_KHR
VK_PRESENT_MODE_FIFO_RELAXED_KHR
VK_PRESENT_MODE_MAILBOX_KHR
... Done.
Create Depth Buffer ... Done.
Create Uniform Buffer ... Done.
Create Descriptor Set and Pipeline Layouts ... Done.
Create a Descriptor Set (Stage 2) ... Done.
Create a Render Pass ... Done.
Create Shaders ...
... Done.
Create Framebuffers ...
... Done.
Create the vertex buffer (the cube model) ...
... Done.
Create the graphics pipeline ...
ERROR: 'sCrtGraphicsPipeline()': 'vkCreateGraphicsPipelines()' failed.

Samodelkin 19.04.2018 00:11

Ответ: Hello Vulkan
 
На GTX 1070 аналогичная проблема. Сейчас выясняю. Надо попробовать другие режимы подобрать и больше отладочный инфы выводить. В общем там доработать код надо ещё. Терминал который закрывается сразу в случае ошибки я тоже пофикшу.

St_AnGer 19.04.2018 10:50

Ответ: Hello Vulkan
 
GTX1050ti вылетает с той же ошибкой 'sCrtGraphicsPipeline()': 'vkCreateGraphicsPipeline()' failed.

Arton 19.04.2018 18:57

Ответ: Hello Vulkan
 
GTX 1050
Появляется консоль, следом белое окошко, и сразу закрывается не оставив никаких ошибок и логов. И всё это за 1 секунду.

Samodelkin 19.04.2018 22:10

Ответ: Hello Vulkan
 
Обновил первый пост.
  • Исправил ошибку которая приводила к 'vkCreateGraphicsPipeline()' failed.
  • Терминал теперь не закрывается раньше времени если происходит исключение.
  • Добавил проверочные слои (validation layers). С ними можно запускать тест через hello-world-layers.bat. Подробнее про проверочные слои.
  • Добавил RunTimeInstaller в архив -- если ваша версия Вулкана устарела.
  • Ещё в System32 есть vulkaninfo.exe (можно набрать в терминале команду vulkaninfo) -- там все подробно про ваш конфиг Вулкана.
  • Можно перенаправить вывод в файл командой hello-world > file.txt если так удобнее. Самостоятельный вывод в файл лога чуть позже сделаю, просто обычный куб этого не достоин.

Mr_F_ 20.04.2018 00:38

Ответ: Hello Vulkan
 
Теперь работает, рисует куб :)

Arton 20.04.2018 02:57

Ответ: Hello Vulkan
 
Аналогично, рисует куб. Правда окно зависает, это нормально?

St_AnGer 20.04.2018 10:22

Ответ: Hello Vulkan
 
Вроде всё работает, куб рисуется, только окно зависает сразу после запуска, но это не баг, я так понимаю?

Лог с консольки:
Let's go!
1 GPU(s) found.

props.deviceName: GeForce GTX 1050 Ti
props.deviceType: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
props.apiVersion: 1.0.56
props.driverVersion: 1627602944
props.vendorId: 0x10de
props.deviceId: 0x1c82
props.pipelineCacheUUID: 633e3277-17b8-6cac-c3b4-d661bf1b5e73

WARNING: The app is always using the first GPU (index=0).
Create Swapchain ...
VK_FORMAT_B8G8R8A8_UNORM
VK_FORMAT_B8G8R8A8_SRGB
The best format is VK_FORMAT_B8G8R8A8_UNORM.
minImageCount=2
maxImageCount=8
maxImageArrayLayers=1
supportedTransforms=VK_SURFACE_TRANSFORM_IDENTITY_ BIT_KHR
currentTransform=VK_SURFACE_TRANSFORM_IDENTITY_BIT _KHR

VK_PRESENT_MODE_FIFO_KHR
VK_PRESENT_MODE_FIFO_RELAXED_KHR
VK_PRESENT_MODE_MAILBOX_KHR
... Done.
Create Depth Buffer ... Done.
Create Uniform Buffer ... Done.
Create Descriptor Set and Pipeline Layouts ... Done.
Create a Descriptor Set (Stage 2) ... Done.
Create a Render Pass ... Done.
Create Shaders ...
sizeof( vertSpv )=1148
sizeof( fragSpv )=448
... Done.
Create Framebuffers ...
... Done.
Create the vertex buffer (the cube model) ...
... Done.
Create the graphics pipeline ...
... Done.
Draw the cube ...
... Done.

OK. All preparations are done!
Press any key in the app _terminal_ window to continue ...

Samodelkin 20.04.2018 15:25

Ответ: Hello Vulkan
 
Да на окне нет обработчика событий поэтому выглядит зависшим. Далее попробую окно, события и ввод обрабатывать через SDL2, посмотрим как вместе с Vulkan работать будет.


Часовой пояс GMT +4, время: 20:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot