Я слышал, что получение текстуры - довольно дорогая операция. Но сколько? как десятикратное арифметическое умножение.Насколько дорогой выбор текстуры в GLSL?
Например, есть 3D-просмотровой метод таблицы для обработки изображения, которая требует выборку 3d текстур один раз:
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html
Даже если преобразование может быть достигнуто только с некоторой матрицей и векторным произведением в шейдере, могу ли я ожидать, что 3D-LUT по-прежнему будет полезен с точки зрения производительности?
3D-LUT против матричного/векторного продукта - всего лишь пример. То, что я хочу знать, это общий способ оценки накладных расходов путем извлечения текстуры перед измерением точного времени работы. Или есть что-то вроде «чит-листа» для накладных расходов GLSL?
Это зависит от поставщика, на карту, для каждой ОС. Вы не получите ни одного хорошего ответа. Если у вас есть специальное оборудование, с которым вы работаете, вы должны его профайл. Есть ли причина думать, что выборки текстур являются узким местом для вашего приложения? По моему опыту, накладные расходы на настройку текстур, подлежащих обработке, затмевают накладные расходы шейдеров. – user1118321
Я скажу так много сейчас - GPU Gems 2 - очень старая книга. Когда это было написано, нормализация cubemaps все еще была законной вещью на некоторых аппаратных средствах (да, выборка из карты куба была быстрее, чем нормализация векторов, использующих арифметику, а затем на некоторых аппаратных средствах). В наши дни инструкции на _lot_ дешевле, чем выборки памяти, то же самое верно в мире процессоров - никто не использует таблицы поиска для триггера. функций на современных процессорах. В любом случае, это действительно зависит от вашего прецедента, если вы можете заменить достаточное количество инструкций с помощью одного поиска, вы можете выиграть. –
@ user1118321 Я не нацелен на конкретное оборудование. Точнее, моя цель - все устройства основного поставщика, поддерживающие OpenGL 2.0 или выше. Как я уже сказал, то, что я действительно хочу знать, является общим методом оценки накладных расходов из кода GLSL. Если нет общего ответа, как вы сказали, это означает, что это обычная вещь для тестирования в определенном аппаратном обеспечении, и я должен проверить каждую комбинацию оборудования/драйвера, которая не является реалистичной. – xylosper