Буфер хранилища Vulkan против сэмплера изображений

В настоящее время я создаю приложение на vulkan, где я буду собирать много данных из буфера. Я буду использовать как можно больше памяти, но скорость выборки также важна. Мои данные представлены в виде двумерного массива 32-битных целых чисел. Я могу либо загрузить его как текстуру и использовать для нее сэмплер текстуры, либо как буфер для хранения. Я читал, что буферы хранения, как правило, медленные, поэтому я рассматривал возможность использования сэмплера изображений для чтения моих данных во фрагментном шейдере. Мне пришлось бы отключить мипмэппинг и фильтрацию и преобразовать координаты UV в индексы массива, но если это быстрее, я думаю, оно того стоит.

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

"Я читал, что буферы хранения обычно работают медленно" Где?

Nicol Bolas 21.11.2022 15:22
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
130
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Гарантий на работоспособность не существует.

Но Vulkan API старается вас не обманывать. Очевидный путь, скорее всего, правильный.

Если вы хотите попробовать, то попробуйте. Если вы хотите сделать необработанный доступ, то, очевидно, сделайте необработанный доступ. Как правило, вы не должны насильно пытаться вставить квадрат в круглое отверстие.

Кроме того, изображения имеют ограничения по размеру, которых нет у SSBO. Это также делает очевидным, когда вы хотите использовать изображение, а когда нет.

Nicol Bolas 21.11.2022 15:57

Другие вопросы по теме