Nano Hash - криптовалюты, майнинг, программирование

Vulkan: совместимость набора дескрипторов

В главе «Привязка набора дескрипторов» спецификации Vulkan делается следующее утверждение:

Совместимый набор дескрипторов должен быть привязан ко всем номерам наборов, к которым имеют доступ любые шейдеры в конвейере, во время записи команды рисования или отправки для выполнения с использованием этого конвейера.

Где определяется «совместимый дескриптор»? Я не нашел определения в спецификации. Интересно, должен ли набор дескрипторов точно соответствовать макету набора в шейдере или разрешено ли набору дескрипторов иметь ресурс, привязанный к точке привязки, которая не существует в шейдере.

Причина этого вопроса заключается в следующем: предположим, что у меня есть два почти идентичных шейдера (считайте их «вариациями» шаблонного шейдера), у них одинаковые макеты, за исключением того, что один из них не использует одну конкретную точку привязки (т. Е. это может быть «быстрый путь», полученный из общего пути с помощью #ifdef, что приводит к оптимизации одной точки привязки). Предположим, у меня есть два вызова отрисовки, первый с использованием одного шейдера, а второй с использованием другого, и предполагаем, что требуемые ресурсы идентичны, за исключением того, что есть дополнительный ресурс для этого шейдера, который имеет эту специальную точку привязки. Также предположим, что я использую тот же макет набора дескрипторов, который точно соответствует тому шейдеру, который имеет дополнительную точку привязки. В этой ситуации я бы предпочел использовать один и тот же набор дескрипторов для обоих шейдеров, чтобы уменьшить количество обновлений / привязок наборов дескрипторов. Набор будет точно соответствовать одному шейдеру и будет содержать привязку ресурса, которой нет в другом шейдере.

18.01.2019

Ответы:


1

У шейдеров нет макета; конвейеры имеют макет. Когда вы строите конвейер, VkPipelineLayout должен согласовываться с тем, что определено в шейдере ... до некоторой степени.

То есть ресурсы, которые объявляет шейдер, должны соответствовать ресурсам, указанным в VkPipelineLayout. Но макет конвейера также может определять другие ресурсы, которые не используются шейдерами в этом конвейере.

Наборы дескрипторов, связанные при рендеринге с помощью конвейера, должны точно соответствовать макетам набора дескрипторов, определенным для этого конвейера (вы можете привязать дескрипторы для наборов выше, чем самый высокий набор, используемый конвейером, но все, вплоть до самого высокого набора, используемого конвейером, должно совпадение). Поэтому, если вы хотите делать то, что пытаетесь сделать, просто дайте обоим конвейерам одинаковый макет.

18.01.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..