Войти
ПрограммированиеФорумГрафика

Directx 12 вопросы. (18 стр)

Страницы: 117 18 19 20 21 Следующая »
#255
22:58, 25 мар. 2020

Suslik
> техника, при которой в том или ином виде разные объекты рендерятся в разные
> рендертаргеты разного разрешения
Ага, вот только в этом случае у тебя границы полигонов получатся рубленные на пиксели. Треугольник как посередине на этой картинке:
Изображение
Ты уже не нарисуешь. На мой взгляд в демке от NVidia гораздо лучше показана область применимости VRS.


#256
(Правка: 9:50) 9:49, 26 мар. 2020

MrShoor
> Ага, вот только в этом случае у тебя границы полигонов получатся рубленные на пиксели
попробуй почитать мой пост до конца. ключевое слово — depth aware upscaling

#257
21:36, 26 мар. 2020

Suslik
Ок, прочитал. Объект надо рендерить 2 раза. Потом при depth aware upscaling нужно глубину подгонять одну к другой биасами. Потом все равно на границах будут проглядывать артефакты. А чтобы их не было - нужно либо консервативную растеризацию использовать при рендере в lowres буфер, либо постпроцессить границу. Короче куча приседаний и лишней работы.

#258
19:33, 14 апр. 2020

Встречаю очередной баг:

D3D12 ERROR: ID3D12CommandList::ResourceBarrier: D3D12_RESOURCE_STATES has invalid flags for compute command list. [ RESOURCE_MANIPULATION ERROR #537: RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE]

Получается Compute очередь не может делать Transition/UAV barriers, аналогично c Copy очередью, хотя такое поведение вполне логично. Переделал все на графическую и все работает без ошибок.

Не нашел в документации ограничения для Compute/Copy очередей. Все же документация Direct3D12 чуток хуже Vulkan, или я проглядел?

#259
13:17, 16 апр. 2020

Andrey
> Получается Compute очередь не может делать Transition/UAV barriers
должна - какие там флажки?

#260
7:26, 17 апр. 2020

Andrey
Ты часом не пытаешься в двух тредах ставить барьеры на один ресурс в разных очередях?

#261
9:52, 17 апр. 2020

MrShoor
мда, такое только  с depth of filed и использовать, зачем хорошо отрисовывать то, что замылят из-за дистанции, но вот без этого ИМХО оно к доп алиазингу будет приводить, с которым итак все стараются бороться.

#262
17:29, 17 апр. 2020

san
поток один, да на один ресурс ставлю барьеры из разных очередей. Итого, UAV барьер compute ставить может, но Transition не для всех вариантов позволяет, к примеру не может использоваться с D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE/D3D12_RESOURCE_STATE_NO_PIXELSHADER_RESOURCE

#263
18:00, 17 апр. 2020

Andrey
Барьер ставится на ресурс, разные очереди работают параллельно, потому ситуация, когда скажем компьют ставит один барьер, а копи пытается поставить другой, вызывают конфликт. Это не баг API, просто работай аккуратно, DX12 за тебя ничего проверять не будет.

#264
(Правка: 19:12) 18:37, 17 апр. 2020

san

ты не путаешь работу очередей параллельно и работу из разных потоков ?

#265
18:53, 17 апр. 2020

innuendo
Нет дорогой, не путаю. В DX12 три очереди - графическая, компьют и копи. В AMD есть еще высокоприоритетный компьют.  Все они могут работать одновременно с одними и теми же ресурсами в одно и то же время.

pic2 | Directx 12 вопросы.
#266
(Правка: 21:13) 18:55, 17 апр. 2020

san
> В DX12 три очереди - графическая, компьют и копи
да ты шо

san
> се они могут работать одновременно с одними и теми же ресурсами в одно и то же
> время.

и как работают две очереди с одним и тем же ?

#267
21:18, 17 апр. 2020

san
> Барьер ставится на ресурс, разные очереди работают параллельно, потому
> ситуация, когда скажем компьют ставит один барьер, а копи пытается поставить
> другой, вызывают конфликт. Это не баг API, просто работай аккуратно, DX12 за
> тебя ничего проверять не будет
Сompute очередь не может TransitionBarriers c D3D12_RESOURCE_STATE_UNORDERED_ACCESS
в
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE/D3D12_RESOURCE_STATE_NO_PIXELSHADER_RESOURCE, и наоборот.
Но может вполне себе D3D12_RESOURCE_STATE_UNORDERED_ACCESS в
D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT/ D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER и наоборот.
Об этом Direct3D12 Debug Runtime рапортует еще до запуска Graphics Queue, т.е. дело не в конфликте при параллельном исполнении.

#268
21:26, 17 апр. 2020

Andrey
> Сompute очередь не может TransitionBarriers c
> D3D12_RESOURCE_STATE_UNORDERED_ACCESS
> в
> D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE/D3D12_RESOURCE_STATE_NO_PIXELSHADER_RESOURCE,
> и наоборот.

интересно, и как тогда работает async с UAV ?

#269
(Правка: 22:39) 22:19, 17 апр. 2020

innuendo
> и как работают две очереди с одним и тем же ?
Ты картинку выше видел? Там три очереди работают с "одним и тем же". Что делает high priority thread я не знаю, его Окулус запускает, но мои именно так и работают.
Не благодари, я всегда готов поделиться опытом с начинающими.

Andrey
>Сompute очередь не может TransitionBarriers c D3D12_RESOURCE_STATE_UNORDERED_ACCESS
Кто тебе это сказал? Специально посмотрел в своем коде, вот я ставлю барьер с компьютом:

ID3D12GraphicsCommandList2* Command_list = comput? mipmap_context->m_comput_Command_list.Get():mipmap_context->m_Command_list.Get();
...
Command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_Texture, D3D12_RESOURCE_STATE_COMMON, D3D12_RESOURCE_STATE_UNORDERED_ACCESS));

Судя по всему у тебя дебаг о чем то другом рапортует.

Страницы: 117 18 19 20 21 Следующая »
ПрограммированиеФорумГрафика