Создание представления представления ресурса шейдера

Мне было интересно, если это считается "хорошо" практика, чтобы создать представление ресурса шейдера для ID3D12Resource перед тем, как передать его в ID3D12GraphicsCommandList и уничтожить его после завершения кадра?

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

1 ответ

Решение

Это цитата инженера Microsoft о том, почему CreateShaderResourceView возвращает void, а не код ошибки.

У нас намеренно нет кодов возврата в высокочастотных API-интерфейсах, поскольку было бы напрасной тратой процессорного времени на проверку ошибок при каждом вызове, что может происходить на лету много тысяч раз за кадр.

Они предполагают, что это API-интерфейс, который можно многократно называть фреймом. Ответ на ваш вопрос: да, вы можете сделать это, это не проблема.

Вы просто должны быть осторожны, чтобы защитить время жизни представления в куче дескриптора до тех пор, пока gpu может понадобиться до перезаписи.

Другие вопросы по тегам