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

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

Страницы: 19 10 11 12 13 Следующая »
#135
0:15, 21 дек. 2019

Andrey
> Но ошибок нету, если pSrcRes  в состоянии D3D12_RESOURCE_STATE_GENERIC_READ.

D3D12_RESOURCE_STATE_GENERIC_READ is a logically OR'd combination of other read-state bits.

#136
0:25, 21 дек. 2019

/A\
да, точно

 D3D12_RESOURCE_STATE_COPY_SOURCE  = 0x800,
...
D3D12_RESOURCE_STATE_GENERIC_READ  = ( ...  | 0x800 )
#137
3:09, 21 дек. 2019

nes
> Я в этом дубовый, но, что мешает сделать эту пропускную способность выше?

У PCIe есть спецификация - PCIe 3.0 = 1000MB/s, PCIe 2.0 = 500MB/s, PCIe 1.1 = 250MB/s. Эти значения надо умножить на число линий выделенных карте. Т.е если карты две, или линии делятся например с SSD, то скорость передачи падает.
На первый взгляд это кажется много, но если гнать мегабайты каждый фрейм, то тормоза будут серьёзные. И с этим ничего поделать нельзя, ибо ограничение аппаратное. Решение - передавать меньше данных или делать это пореже. Поэтому постоянно замапленные буфера это очень плохое решение. Я уже наступал на эти грабли, как то тут описывал этот случай.

#138
3:12, 21 дек. 2019

san
> На первый взгляд это кажется много, но если гнать мегабайты каждый фрейм, то
> тормоза будут серьёзные. И с этим ничего поделать нельзя, ибо ограничение
> аппаратное. Решение - передавать меньше данных или делать это пореже. Поэтому
> постоянно замапленные буфера это очень плохое решение. Я уже наступал на эти
> грабли, как то тут описывал этот случай.

да у тебя буковок миллион - в реальности никто не прокачивает гигабайты каждый кадр

#139
3:28, 21 дек. 2019

innuendo
> в реальности никто не прокачивает гигабайты каждый кадр
виртуальные текстуры в дум4 постоянно гоняются по шине...

#140
(Правка: 4:52) 3:29, 21 дек. 2019

Andrey
> Но ошибок нету, если pSrcRes  в состоянии D3D12_RESOURCE_STATE_GENERIC_READ.
> Почему?
Барьеры и стейты это довольно капризная штука. Иногда один и тот же код на AMD карте исполняется без ошибок, но Nvidia рапортует о неправильном стейте. И наоборот. Т.е. там есть завимость от вендора (которой для DX12 быть не должно - но факты штука упрямая). Лучше всего (как показала практика) создавать все текстуры с D3D12_RESOURCE_STATE_COMMON, а уже потом менять стейт ставя барьер по мере надобности. Да, в данном случае тебе повезло - значения с разыми тегам совпали. Но если не хочешь что бы в другой раз у юзера что-то упало, то лучше перебдеть и точно следовать инструкции.

/A\
> виртуальные текстуры в дум4 постоянно гоняются по шине...
Да не корми ты тролля.

#141
4:11, 21 дек. 2019

/A\
> виртуальные текстуры в дум4 постоянно гоняются по шине...

ресурсы помню 12 GB - сколько каждый кадр?

#142
4:13, 21 дек. 2019

san
> Барьеры и стейты это довольно капризная штука.
Да ну? Неужели?  Ой, мама моя родная... "Как же он работал в очистке?"

> то лучше перебдеть и точно следовать инструкции.

забавно, а я то думал что нужно сначала спеки читать

#143
4:39, 21 дек. 2019

innuendo
> сколько каждый кадр?
не знаю, но при воспроизведении vktrace очень много чтений с диска

#144
9:08, 21 дек. 2019

/A\
> не знаю, но при воспроизведении vktrace очень много чтений с диска
>

ну я сильно сомневаюсь что стриммилось по гигабайтам в секунду

> Да не корми ты тролля.

я так понимаю, слив про map/unmap засчитан ? а как пыхтел кряхтел и пыжился

#145
(Правка: 18:30) 18:30, 21 дек. 2019

/A\
Вот посмотри мою старую тему, я там разбирался с этим вопросом: https://gamedev.ru/code/forum/?id=240658
Кстати ты в этой дискуссии активно участвовал.
Краткая выжимка:
"У меня не самая сложная сцена - 200.000 треугольников. Вывод такой сцены на Titan Xp занимает порядка 4-5 мс, что для случая ВР неприемлимо"

потом 10 страниц холивара, дурацких советов и разных тестов, их можно пропустить.

"Suslik ... значит, дело в таскании вершин по шине взад-вперёд. практически наверняка у тебя буфер вершин помечен как host coherent (или как там оно в дх12 называется) и данные копируются из памяти видюхи в оперативу и/или обратно каждый кадр. "

"san Я пришел к тому же выводу. Я стал анализировать, что же у меня общее и различное на всех 5 оттестированных картах. Там все разное, кроме PCIe шины. Но тогда встает вопрос, почему на 680 скорость в 2 раза ниже? Стал разбираться как карты подключены. На основном компьютере стоит I7-7800K с 28 линиями. Все три карты сидят на х8. На старом стоит i7-4790, там 16 линий и карты подключены как 8х4х4 (в третьем слоте расширитель SATA). Значит 680 имеет в 2 раза меньше линий ну и производительность ее намного ниже, вот и получяется 7.5 мс.

Короче дело оказалось в замапенном буфере, но тут я хотел только показать, что прокачка 60.000 вершин по шине занимает минимум 2 мс. на 16 линиях.  Или 8 мс если у вас их только 4.

#146
18:40, 21 дек. 2019


san
> Короче дело оказалось в замапенном буфере

как и ожидалось - буков много толку ноль - мерять что-то подключением линий PCI  это сферический конь в вакууме

#147
20:39, 21 дек. 2019
san
> Короче дело оказалось
https://gamedev.ru/code/forum/?id=248975&m=5096604#m2
это даже не смешно ... ты учи матчасть для начала

#148
(Правка: 18:39) 18:34, 24 дек. 2019

Время для расширений.
agsDriverExtensionsDX12_Init
https://gpuopen.com/gcn-shader-extensions-for-direct3d-and-vulkan/

#149
22:19, 24 дек. 2019

ronniko

тебе не нужно

Страницы: 19 10 11 12 13 Следующая »
ПрограммированиеФорумГрафика