Vasara Posted February 19, 2021 Share Posted February 19, 2021 (edited) Добрый день. При запуске вычислительного шейдера в цикле увеличивается время возврата данных. Чем больше счётчик, тем дольше время возврата данных из памяти. Если шейдер пустой, данные возвращаются несколько минут. Если добавить в шейдер какую либо логику, возврата текстур вообще не дождаться. Так же растёт время выполнения самого шейдера. ptrRenderTarget->enableCompute(); for (int i = 0; i < 50000; i++) { material->renderCompute(Render::PASS_POST, 512, 512); } ptrRenderTarget->disable(); Предполагаю где-то не отпускается какой-то ресурс и происходит переполнение. getImage() вылетает с ошибкой: D3D11Texture::getImage(): can't map 16384x16384 2D texture Рабочий ли вообще такой вариант с циклами или надо выносить в апдейт и там как то всё это обрабатывать? С Уважением Константин. Edited April 11, 2021 by Vasara Link to comment
sweetluna Posted February 20, 2021 Share Posted February 20, 2021 Добрый день. Это весь код, что выполняется или опущены какие-то детали? 50к диспатчей 512x512x1 это огромный запрос для GPU, тем более для текстуры 16384x16384. Лично у меня вылезает еще ошибка о нехватке памяти: Direct3D11 error: out of memory D3D11Texture::getImage(): can't create R32U 16383x16383 2D staging texture Обычно так не делают на GPU, советую уменьшить размеры текстуры и работать над меньшими размерами. May RenderDoc/Nsight Graphics/Intel GPA bless you Link to comment
Vasara Posted February 20, 2021 Author Share Posted February 20, 2021 (edited) Ничего лишнего, только инициализация текстуры в шейдере. Всё было убрано, чтобы быть уверенным, что с моей стороны нет ошибок. 8 гигов памяти у видеокарты. Если все ресурсы отпускаются правильно, должно работать. Гдето утечка. Я бы грешил на command list, но не помню точно, как это в dx11 сделано. Ошибки памяти нет даже после 1кк итераций с 5 текстурами. ---------------------------------------------------------------- Метод flush() решил проблему. Edited April 11, 2021 by Vasara Link to comment
Recommended Posts