#025 Vulkan API: семафоры, часть 2

00:01 Введение • Приветствие и анонс обсуждения кодовой части Vulkan API. • Упоминание о предыдущих видео по концепциям семафоров. • Напоминание о уроках 1 и 13: установка Vulkan API и примеров. 00:55 Инициализация семафоров • Инициализация готового и завершённого семафора VK в строках 55–59. • Объяснение работы семафоров как флагов. 01:32 Управление семафорами • Уничтожение семафоров при очистке в деструкторе. • Создание и инициализация семафоров для вычислений и графики. 02:30 Синхронизация вычислений и графики • Передача данных между вычислениями и графикой как ключевой шаг синхронизации. • Ожидание готовности вычислительных семафоров перед началом вычислений. 03:32 Завершение вычислений • Подача сигнала о завершении вычислений после их завершения. • Использование сигнальных семафоров для подтверждения завершения вычислений. 04:24 Графическая сторона • Ожидание завершения вычислений перед работой с графикой. • Подача сигнала о завершении работы с графикой после её выполнения. 07:02 Различие между «present complete» и «rendering complete» • Объяснение различий между представлением на экране и рендерингом. • Важность ожидания завершения презентации перед рендерингом. 09:49 Синхронизация этапов конвейера • Блокировка определённых этапов конвейера для синхронизации. • Возможность продолжения работы на других этапах конвейера. 12:13 Завершение • Жонглирование вычислениями, завершёнными и готовыми семафорами. • Отправка запросов в очередь через vkq submit. • Подчёркивание важности выполнения команды vkq submit для начала работы. 13:26 Введение в статические переменные • Объяснение важности статических переменных в контексте функции draw. • При первом вызове функции draw инициализируется переменная first draw со значением true и помечается как статическая. • Статические переменные сохраняются при последующих вызовах функции. 15:06 Логика первого вызова функции draw • При первом вызове функции draw логика семафора синхронизации пропускается. • После первого вызова значение first draw изменяется на false. • Важно следить за сигнализацией и выполнением функций. 16:38 Вторая итерация функции draw • На второй итерации логика семафора выполняется, так как значение first draw истинно. • Необходимо дождаться готовности вычислений перед выполнением дальнейших действий. • Функция sendToVkQ используется для отправки сигналов. 19:00 Эксперимент с комментариями кода • Комментирование вычислительной части кода приводит к отображению только графики без вычислений. • Удаление графического фрагмента приводит к пустому экрану. • Подчёркивается важность отправки команд через vkq для выполнения вычислений. 22:26 Влияние порядка отправки команд • Изменение порядка отправки команд не влияет на результат. • Инструкции отправляются в порядке, соответствующем намерениям разработчика. 24:25 Заключение и рекомендации • Рекомендации по изучению Vulkan API и манипулированию данными. • Упоминание о ссылках на учебники по установке Vulkan API и примеров. • Благодарность зрителям и пожелание хорошего дня.

Иконка канала Ленинский Букварь
244 подписчика
12+
5 просмотров
7 дней назад
12+
5 просмотров
7 дней назад

00:01 Введение • Приветствие и анонс обсуждения кодовой части Vulkan API. • Упоминание о предыдущих видео по концепциям семафоров. • Напоминание о уроках 1 и 13: установка Vulkan API и примеров. 00:55 Инициализация семафоров • Инициализация готового и завершённого семафора VK в строках 55–59. • Объяснение работы семафоров как флагов. 01:32 Управление семафорами • Уничтожение семафоров при очистке в деструкторе. • Создание и инициализация семафоров для вычислений и графики. 02:30 Синхронизация вычислений и графики • Передача данных между вычислениями и графикой как ключевой шаг синхронизации. • Ожидание готовности вычислительных семафоров перед началом вычислений. 03:32 Завершение вычислений • Подача сигнала о завершении вычислений после их завершения. • Использование сигнальных семафоров для подтверждения завершения вычислений. 04:24 Графическая сторона • Ожидание завершения вычислений перед работой с графикой. • Подача сигнала о завершении работы с графикой после её выполнения. 07:02 Различие между «present complete» и «rendering complete» • Объяснение различий между представлением на экране и рендерингом. • Важность ожидания завершения презентации перед рендерингом. 09:49 Синхронизация этапов конвейера • Блокировка определённых этапов конвейера для синхронизации. • Возможность продолжения работы на других этапах конвейера. 12:13 Завершение • Жонглирование вычислениями, завершёнными и готовыми семафорами. • Отправка запросов в очередь через vkq submit. • Подчёркивание важности выполнения команды vkq submit для начала работы. 13:26 Введение в статические переменные • Объяснение важности статических переменных в контексте функции draw. • При первом вызове функции draw инициализируется переменная first draw со значением true и помечается как статическая. • Статические переменные сохраняются при последующих вызовах функции. 15:06 Логика первого вызова функции draw • При первом вызове функции draw логика семафора синхронизации пропускается. • После первого вызова значение first draw изменяется на false. • Важно следить за сигнализацией и выполнением функций. 16:38 Вторая итерация функции draw • На второй итерации логика семафора выполняется, так как значение first draw истинно. • Необходимо дождаться готовности вычислений перед выполнением дальнейших действий. • Функция sendToVkQ используется для отправки сигналов. 19:00 Эксперимент с комментариями кода • Комментирование вычислительной части кода приводит к отображению только графики без вычислений. • Удаление графического фрагмента приводит к пустому экрану. • Подчёркивается важность отправки команд через vkq для выполнения вычислений. 22:26 Влияние порядка отправки команд • Изменение порядка отправки команд не влияет на результат. • Инструкции отправляются в порядке, соответствующем намерениям разработчика. 24:25 Заключение и рекомендации • Рекомендации по изучению Vulkan API и манипулированию данными. • Упоминание о ссылках на учебники по установке Vulkan API и примеров. • Благодарность зрителям и пожелание хорошего дня.

, чтобы оставлять комментарии