Tuesday, October 17th, 2017

Новые возможности DirectX 11: многопоточный рендеринг

Published on Март 2, 2009 by   ·   Комментариев нет

Возвращаясь к нашему разговору о новом в DirectX 11, который, как многие из вас заметили, уже присутствует в сборке Windows 7 build 6956, стоит отметить, что Microsoft опровергла заявление Бена Базарика (Ben Basaric), продукт-менеджера Windows, который не так давно сказал, что Microsoft не успевает завершить работу над DirectX 11 к релизу Windows 7. Ну а сегодня мы поговорим о еще одной ключевой особенности нового API — многопоточного рендеринга.

help writing a essay for college

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

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

Мы поговорили на эту тему с многими разработчиками — некоторые из них придумывали способы использования дополнительных ядер, в то время как другие изо всех сил пытались извлечь больше производительности и часто оставляли простаивать эти дополнительные ядра. Сегодня таких проблем становится все меньше, поскольку разработчики стали думать по поводу распараллеливания потоков, но все еще есть такие сценарии, когда приложение сильно ограничивается возможностями CPU.

К счастью, с приходом DirectX 11 ситуация должна коренным образом изменится, и Microsoft сделает возможным получение выгоды от использования этих функций на аппаратном обеспечении DirectX 10. Команды разработчиков соответствующих драйверов в AMD и Nvidia должны будут проделать определенный комплекс работ, чтобы осуществить поддержку этих функций в своих драйверах, но как только они это сделают для DX11, им не составит большого труда перенести эту поддержку и в DX10.

Microsoft удалось достичь этого путем разбиения устройства Direct3D на три отдельных интерфейса: Device, Immediate Context (прямой контекст) и Deferred Context (отложенный контекст). Каждый из них назначается на поток, поэтому благодаря интерфейсам Device и Deferred Context на задачи, стоящие в очереди Immediate Context или потока обработки, может быть назначено больше одного потока.
Переключение между потоками легко контролировать, так что разработчик должен будет сам решать, как и в каком порядке операции будут помещаться в очередь для интерфейса Immediate Context. Каждый интерфейс Device может загружать потоковые ресурсы как и когда угодно в то время, как интерфейс Deferred Context служит в качестве работающего с потоками контекста устройств для будущих операций рендеринга — он организует очередь из запросов прорисовки (или списков команд Display List) прежде, чем передать их интерфейсу Immediate Context, когда он будет готов.

Для графических карт поколения DirectX 10 интерфейс Deferred Context должен реализоваться на программном, а не аппаратном, уровне, поскольку в новом аппаратном обеспечении будут сделаны соответствующие оптимизации для многопоточного рендеринга. Из-за этого интерфейсы Deferred Context не смогут самостоятельно распределяться по потокам на аппаратном обеспечении DX10 и это придется делать на уровне API.

Ну вот подошла к концу очередная статья нашего цикла. В следующий раз мы поговорим о еще одной интересной особенности DX11 — динамическом подключении шейдеров.

Источник: http://www.bit-tech.net



Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]