Описание тега compute-shader

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

glTexSubImage2D 1282 - недопустимая операция в gl es 3.1

Я пытаюсь использовать: layout (binding = 0, rgba8ui) readonly uniform uimage2D input; в вычислительном шейдере. Для того, чтобы привязать текстуру к этому, я использую: glBindImageTexture(0, texture_name, 0, GL_FALSE, 0, GL_READ_ONLY, GL_RGBA8); и …
09 июн '16 в 16:05
1 ответ

Как правильно использовать результаты одного вычислительного шейдера в следующем вычислительном шейдере?

Предположим, я отправляю два вычислительных шейдера A и B в металле. Я не хочу, чтобы Б бежал до тех пор, пока А не закончил. На данный момент я кодирую каждый шейдер в свой собственный командный буфер и фиксирую так: commandBufferA.commit() command…
18 ноя '16 в 20:00
1 ответ

Каковы преимущества и недостатки использования специализированных программ GPGPU по сравнению с вычислительными шейдерами в графическом API?

Каковы преимущества и недостатки использования специализированных GPGPU, таких как CUDA и OpenCL, в отличие от вычислительных шейдеров?
10 сен '18 в 15:52
2 ответа

Вычислить шейдер с numthreads (1,1,1) работает очень медленно

Я только начинаю изучать программирование DirectX, используя F# и SharpDX в качестве оболочки.NET. В качестве тестового примера я отображаю множество Мандельброта. Вычисление выполняется с использованием 2 вычислительных шейдеров. Первый шейдер вычи…
08 ноя '13 в 13:47
1 ответ

Почему этот вычислительный шейдер намного медленнее, чем вершинный?

Я исследую использование вычислительного шейдера для применения деформации кости к вершинам сетки, а не к вершинному шейдеру с выводом потока. Я обнаружил, что вычислительный шейдер выполняется намного медленнее, чем вершинный шейдер, но прежде чем …
26 ноя '13 в 00:08
1 ответ

Есть ли способ одновременно написать на БПЛА без условий гонки?

У меня есть компьютерный шейдер, который имитирует некоторую жидкость как частицу. Частицы читаются из буфера. Каждая частица обрабатывается в одном потоке. Во время выполнения потока одна частица перемещает свое ультрафиолетовое положение и добавля…
05 авг '17 в 11:05
1 ответ

Как графические процессоры обрабатывают произвольный доступ?

Я прочитал несколько уроков о том, как реализовать raytracer в вычислительных шейдерах opengl 4.3, и это заставило меня задуматься о том, что меня давно беспокоило. Как именно графические процессоры обрабатывают огромное количество операций чтения с…
31 дек '16 в 19:56
1 ответ

DirectX 11 - вычислительный шейдер: запись в выходной ресурс

Я только начал использовать этап шейдера Compute в DirectX 11 и столкнулся с некоторым нежелательным поведением при записи в выходной ресурс в шейдере Compute. Кажется, я получаю только нули в качестве вывода, что, насколько я понимаю, означает, что…
1 ответ

Ошибка компиляции в шейдере

У меня есть следующая попытка преобразования шума Perlin в GPU в unity compute shader: #pragma kernel CSMain RWTexture2D<float4> Result; [numthreads(8,8,1)] //based on http://mrl.nyu.edu/~perlin/noise/ void CSMain (uint3 id : SV_DispatchThread…
18 май '15 в 06:44
1 ответ

Обновляется только первый элемент массива Compute Shader

Пытаясь отправить массив целых чисел в вычислительный шейдер, устанавливает произвольное значение для каждого целого числа, а затем выполняет чтение обратно на CPU/HOST. Проблема в том, что обновляется только первый элемент моего массива. Мой массив…
30 дек '15 в 22:32
0 ответов

Определение структур в каркасе "Яблоки"

Я играю с Metal для iOS, делая небольшую игру. В одном из моих шейдеров ядра (в моих файлах.metal). Я определяю структуру для хранения некоторых метаданных для части игрового процесса. Структура выглядит так: struct ColorSetup { float4 color; float4…
15 фев '16 в 17:54
1 ответ

Вычислить шейдерную форму, оптимизированную неправильно?

Получение местоположения однородных "однородных сферных сфер [10]" (через glGetUniformLocation(program, name)). Возвратите -1, даже если в программе есть другие формы (frustum_planes), которые работают. Frustum_planes и сферы формы также используютс…
19 дек '18 в 13:55
1 ответ

Операции над шейдерной программой замораживают контекст GL при использовании достаточно большого SSBO

Я делаю параллельное сокращение в вычислительном шейдере. Я рекурсивно вычисляю ограничивающий блок фрагментов (начиная с G-буфера, полученного в результате рендеринга сцены), а затем ограничивающий блок фрагментов ограничивающих блоков и так далее,…
05 фев '19 в 00:54
1 ответ

Можно ли записать в выровненный по 4 байта адрес с помощью вычислительного шейдера HLSL?

Я пытаюсь преобразовать существующее ядро ​​OpenCL в вычислительный шейдер HLSL. Ядро OpenCL производит выборку каждого пикселя в RGBA-текстуре и записывает каждый цветовой канал в плотно упакованный массив. Так что в основном мне нужно написать в п…
1 ответ

Unity Compute Shader, индексирование массива через SV_DispatchThreadID

У меня проблема с индексацией массива на GPU в Compute Shader, и я застрял с ней на несколько недель. Я пытаюсь использовать значение x SV_DispatchThreadID в качестве индекса моего массива частиц (как это показано в некоторых примерах в Интернете). …
1 ответ

Как изменить текстуру пикселей из вычислительного шейдера в единстве?

Я наткнулся на странную проблему в vuforia. Когда я запрашиваю изображение с камеры, используя CameraDevice.GetCameraImage(mypixelformat), возвращаемое изображение переворачивается вбок и поворачивается на 180 градусов. Из-за этого, чтобы получить н…
1 ответ

Семантика барьера () в вычислительном шейдере opengl

Допустим, у меня есть вычислительный шейдер opengl, написанный на GLSL, работающий на NVidia Geforce 970. В начале шейдера единственный вызов записывает "объект буфера хранилища шейдеров" (SSBO). Затем я запускаю подходящий барьер, такой как memoryB…
23 ноя '17 в 15:03
0 ответов

Быстрое преобразование Фурье в OpenGL Compute Shader

Я пытаюсь реализовать FFT в OpenGL Compute Shaders в образовательных целях (именно поэтому я не хочу использовать CUDA и OpenCL), но я думаю, что некоторые подходы к параллельному программированию, используемые в OpenCL, например, похожи на OpenGL C…
11 апр '16 в 20:36
0 ответов

Вычислить шейдеры: ошибка в инициализации текстур

У меня есть image2DArray в моих вычислительных шейдерах с 7 срезами. Я могу написать в нем с помощью функции imageStore без проблем, а также отобразить эти текстуры. Моя проблема связана с инициализацией, я пытаюсь инициализировать свои текстуры, но…
21 июл '14 в 12:08
1 ответ

Генерация псевдослучайных чисел на графическом процессоре

Используя сценарий C# в игровом движке Unity3D для управления вычислительным шейдером HLSL, я пытаюсь сгенерировать псевдослучайные числа на GPU и сохранить их в Texture2D. Следуя методу Geus 3 Hybrid Tausworthe на GPU и другому потоку генерации псе…
09 окт '17 в 01:40