Jump to content

[SOLVED] Понимание работы вычислительного шейдера.


photo

Recommended Posts

Добрый день!

Во всех примерах, которые я нашёл, для работы с данными используются текстуры.

Метод инициализации структурного буфера:

INIT_RW_STRUCTURED_BUFFER ( value NUM, value STRUCTURE, value NAME )

Из примера :

// Unordered access buffers
INIT_RW_STRUCTURED_BUFFER(0,DXT1Block,dxt_image)

Совершенно не понятно, что это за текстура, откуда взялось имя dxt_image, и зачем какая либо текстура вообще нужна.

У мелкомягких например передаётся тип буфера, имя и регистр.

Если мы резервируем кусок памяти этим методом, то почему тратятся ресурсы ещё и на текстуру.

Так же не нашёл как через API управлять ресурсами. К примеру для моего алгоритма критичен доступ к локальной памяти видеоадаптера. Очень хочется знать, как до неё добраться.

С Уважением Константин.

 

Edited by Vasara
Link to comment

Добрый день!

INIT_RW_STRUCTURED_BUFFER(0,DXT1Block,dxt_image)


0 - UAV слот куда мы будем отправлять данные
DXT1Block - это структура, которая показывает как шейдеру надо интерпретировать данные буффера
dxt_image - это имя структурного буффера в самом шейдере.


Для OpenGL эта строка будет раскрыта вот так:

layout(std430, binding=0) buffer storage_buffer_0 { DXT1Block dxt_image[]; };

Для DirectX 11 соответственно:

RWStructuredBuffer<DXT1Block> dxt_image : register(u0);

Никаких текстур больше не аллоцируется. Это лишь имя переменной.
https://developer.unigine.com/en/docs/2.13/code/uusl/textures?rlang=cpp#init_rw_structured_buffer_num_name
 

Quote

Так же не нашёл как через API управлять ресурсами. К примеру для моего алгоритма критичен доступ к локальной памяти видеоадаптера. Очень хочется знать, как до неё добраться.

Я так пологаю вам нужны groupsharedGroupMemoryBarrier() и GroupMemoryBarrierWithGroupSync() ?
В таком случае следует использовать SHAREDMEMORY_BARRIER_SHARED и MEMORY_BARRIER_SHARED_SYNC соответственно.
Они указаны в core/shaders/common/compute.h

С Уважением Кирилл.

  • Thanks 2
Link to comment
  • Vasara changed the title to [SOLVED]Понимание работы вычислительного шейдера.
  • silent changed the title to [SOLVED] Понимание работы вычислительного шейдера.
×
×
  • Create New...