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

glGetBufferSubData 40ms (2 стр)

Страницы: 1 2 3 Следующая »
#15
(Правка: 27 окт 2024, 1:33) 23:43, 26 окт 2024

v1c
убрал-не влияет

если убрать фенс и glClientWaitSync но оставить glMemoryBarrier(GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT);

то задержки нет и вроде данные ок, но неуверен что это нормальное поведение без мусора и глюков. хз

#16
13:20, 31 окт 2024

Короче результат готов на следующий кадр. Так юзать не буду

Трипл буфер надо попробовать.  Чтобы каждый кадр менялось место записи ,чтения

#17
13:58, 31 окт 2024

Трипл буфер надо попробовать.  Чтобы каждый кадр менялось место записи ,чтения

Может и сработает. Хоть будет понятен профит зачем юзают тройную буферизацию.
Напиши что получилось при тройной буферизации.

#18
14:56, 31 окт 2024

The Andreyp
> Мне нужно получить результат, и дальше вступает в работу CPU
тебе в любом случае надо дождаться фактического выполнения работы на GPU, чтобы эту инфу начать использовать на CPU. Если тебе инфа с gpu нужная на CPU для работы над следующим кадром - то это гиблый номер и постоянные синки. Если же инфа с GPU нужна не здесь и сейчас, а через пару кадров. То можешь замутить ринг буфер размером на несколько кадров(скорее даже ринг буфер - пулл чередующихся буферов), куда будешь записывать свой readback с gpu с отставанием в несколько кадров.

#19
16:02, 31 окт 2024

Учитывайте, что отдав управление винде, обратно его быстро не получишь. Задержки легко могут быть порядка одной десятой секунды. Именно поэтому те, кому таки надо получить управление обратно быстро, крутят холостой цикл и ждут окончания работы "параллельной аппаратуры". А потом мы все вместе удивляемся: "и чего это под виндой все так тормозит"...
Впрочем, под популярными вариантами юникса не лучше. Вы же не будете писать игры под QNX, где такие проблемы решаемы?

#20
16:30, 31 окт 2024

Я наелся проблем с получением данных с гпу и понял что это гиблое дело. Особенное когда гпу перегружается работой, задержки могут становиться совсем уж неприемлемыми. Например occlusion culling вообще так вообще нормально не сделать, тут либо multidraw indirect и отсечение на гпу, либо всё делать на цпу. Но у меня кроссплатформа, и одна из платформ - WASM c несчастным WebGL2, а там вообще особо не разгуляешься даже на цпу (отсутствие нормальной многопоточки).

#21
17:04, 31 окт 2024

ronniko
А гденить есть схема работы 7, а то могу ченить не так сделать

mr.DIMAS
Ясно...

#22
19:06, 31 окт 2024

In OpenGL 4.4
https://www.gamedev.net/articles/programming/graphics/persistent-… &review=20641

#23
19:26, 31 окт 2024

ronniko
Спс

Тоесть получается 3одинаковвх буфера .
Очищаю и пишу в шадере например в 1, а получаю результат или копирую в персистент буфер 2ой? И далее индексы буферов чередууются?

#24
21:50, 31 окт 2024

ronniko
> https://www.gamedev.net/articles/programming/graphics/persistent-… &review=20641

В первой строке:

> It seems that it's not easy to efficiently move data from CPU to GPU.

То есть из RAM -> VRAM, а надо наоборот.

#25
5:51, 3 ноя 2024

mr.DIMAS
Если делать с умом то обычные квери работают
А с mdi никаких задержек не будет ?

#26
6:30, 3 ноя 2024

Zab
Вот если ты спец по чтсликам или ртос то это не значит тоже самое в графике
... Тут про специфику упу жпу . на куникс тоже самое

#27
12:00, 3 ноя 2024

innuendo
> Если делать с умом то обычные квери работают
А вот с этого места подробнее пожалуйста, есть что почитать по теме?

innuendo
> А с mdi никаких задержек не будет ?
Будет конечно же, но всего 1 кадр, что более менее терпимо.

#28
(Правка: 12:08) 12:03, 3 ноя 2024

mr.DIMAS
Можно читать из джем два ... Можно мой опыт послушать
Я про то что вызов индирект дро ждет пока закончится запись в ин директ буфер

#29
(Правка: 13:01) 12:07, 3 ноя 2024

вызов индирект дро ждет пока закончится запись в директ буфер

Индирект дро , он же как неуловимый Джо :)

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика