Поделиться через


Отслеживание рисков и ресурсы пула плиток

Для непотоковых ресурсов Direct3D может предотвратить определенные условия риска во время отрисовки, но так как отслеживание рисков будет находиться на уровне плитки для потоковых ресурсов, отслеживание условий опасности во время отрисовки потоковых ресурсов может оказаться слишком дорогостоящим.

Например, для ресурсов, отличных от потоковой передачи, среда выполнения не позволяет привязываться в качестве входных данных (например, представления ресурсов шейдера) и в качестве выходных данных (например, представления целевого объекта отрисовки) в то же время, если такой случай обнаружен, среда выполнения отменяет привязку входных данных. Эта нагрузка на отслеживание в среде выполнения дешевле и выполняется на уровне подресурсов. Одним из преимуществ этой нагрузки на отслеживание является минимизация шансов приложений случайно в зависимости от порядка выполнения шейдера оборудования. Порядок выполнения аппаратного шейдера может отличаться, если не на заданном графическом модуле обработки (GPU), то, безусловно, в разных GPU.

Отслеживание того, как ресурсы привязаны, могут быть слишком дорогими для потоковых ресурсов, так как отслеживание находится на уровне плитки. Новые проблемы возникают, например, возможно, проверка попыток отрисовки в целевом представлении отрисовки с одной плиткой, сопоставленной с несколькими областями в поверхности одновременно. Если оказывается, что отслеживание рисков на плитку слишком дорого для среды выполнения, в идеале это, по крайней мере, будет вариантом на уровне отладки.

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

Сопоставления находятся в пуле плиток