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


Функции среды выполнения Direct3D, вызываемые драйверами отображения User-Mode

В этом разделе перечислены функции, которые среда выполнения Microsoft Direct3D предоставляет драйверу отображения пользовательского режима. К ним относятся службы ядра среды выполнения Direct3D, которые обращаются к функциям, и функции среды выполнения Direct3D версий 10 и 11. Эти функции являются частью интерфейсов драйвера отображения Direct3D в пользовательском режиме, которые операционная система реализует через среду выполнения Direct3D.

Среда выполнения Direct3D Kernel-Services доступ к функциям

Среда выполнения Microsoft Direct3D версии 9 предоставляет указатели на функции обратного вызова , зависящие от адаптера , через члены структуры D3DDDI_ADAPTERCALLBACKS в вызове функции OpenAdapter драйвера дисплея пользовательского режима. Среда выполнения предоставляет указатели для отображения функций обратного вызова для конкретного устройства через элементы структуры D3DDDI_DEVICECALLBACKS в вызове функции CreateDevice драйвера дисплея пользовательского режима.

Среда выполнения Microsoft Direct3D версии 10 или более поздней предоставляет указатели на функции обратного вызова адаптера через члены структуры D3DDDI_ADAPTERCALLBACKS в вызове openAdapter10 драйвера дисплея пользовательского режима или функции OpenAdapter10_2. Среда выполнения предоставляет указатели для отображения функций обратного вызова для конкретного устройства через элементы структуры D3DDDI_DEVICECALLBACKS в вызове функции CreateDevice(D3D10) драйвера дисплея пользовательского режима.

Структуры параметров Direct3D

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

  • D3DDDI_UPDATEALLOCPROPERTY
  • D3DDDICB_ALLOCATE
  • D3DDDICB_CREATECONTEXT
  • D3DDDICB_CREATECONTEXTVIRTUAL
  • D3DDDICB_CREATEHWCONTEXT
  • D3DDDICB_CREATEHWQUEUE
  • D3DDDICB_CREATEOVERLAY
  • D3DDDICB_CREATEPAGINGQUEUE
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT2
  • D3DDDICB_CREATESYNCHRONIZATIONOBJECT
  • D3DDDICB_DESTROYHWCONTEXT
  • D3DDDICB_DESTROYHWQUEUE
  • D3DDDICB_DEALLOCATE
  • D3DDDICB_DEALLOCATE2
  • D3DDDICB_DESTROYCONTEXT
  • D3DDDICB_DESTROYOVERLAY
  • D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT
  • D3DDDICB_ESCAPE
  • D3DDDICB_EVICT
  • D3DDDICB_FLIPOVERLAY
  • D3DDDICB_GETMULTISAMPLEMETHODLIST
  • D3DDDICB_LOCK
  • D3DDDICB_LOCK2FLAGS
  • D3DDDICB_OFFERALLOCATIONS
  • D3DDDICB_PRESENT
  • D3DDDICB_QUERYADAPTERINFO
  • D3DDDICB_QUERYRESIDENCY
  • D3DDDICB_RECLAIMALLOCATIONS
  • D3DDDICB_RECLAIMALLOCATIONS2
  • D3DDDICB_RENDER
  • D3DDDICB_SETDISPLAYMODE
  • D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT
  • D3DDDICB_SETPRIORITY
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
  • D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
  • D3DDDICB_SUBMITCOMMAND
  • D3DDDICB_SUBMITCOMMANDFLAGS
  • D3DDDICB_SUBMITCOMMANDTOHWQUEUE
  • D3DDDICB_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
  • D3DDDICB_UNLOCK
  • D3DDDICB_UNLOCK2
  • D3DDDICB_UPDATEGPUVIRTUALADDRESS
  • D3DDDICB_UPDATEOVERLAY
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
  • D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMGPU

Основные функции обратного вызова среды выполнения Direct3D версии 10 и более поздних версий

В этом разделе описываются основные функции обратного вызова, которые среды выполнения Microsoft Direct3D 10 и более поздних версий предоставляют драйверу отображения пользовательского режима. Среда выполнения предоставляет указатели на основные функции обратного вызова через члены структуры D3D10DDI_CORELAYER_DEVICECALLBACKS в вызове функции CreateDevice(D3D10) драйвера отображения пользовательского режима.

Управление функциями обратного вызова в среде выполнения Direct3D версии 10

Ниже приведен список функций обратного вызова управления, которые среды выполнения Microsoft Direct3D 10 и более поздних версий предоставляют драйверу отображения пользовательского режима через структуру D3D10DDI_CORELAYER_DEVICECALLBACKS.

Среда выполнения Direct3D версии 10 State-Refresh Функции обратного вызова

Ниже приведен список функций обратного вызова обновления состояния, которые среда выполнения Microsoft Direct3D 10 предоставляет драйверу отображения пользовательского режима через структуру D3D10DDI_CORELAYER_DEVICECALLBACKS.

Так как среда выполнения Direct3D 10 кэширует объекты текущего состояния для приложений, среда выполнения также кэширует объекты текущего состояния для драйверов отображения пользовательского режима с небольшими издержками. Для каждого вызова, который драйвер отображения пользовательского режима выполняет с функцией обратного вызова обновления состояния, среда выполнения Direct3D 10 выполняет соответствующий вызов функции состояния драйвера в том же потоке выполнения, прежде чем вернуться к вызывающему коду в драйвере. Для повышения производительности функции обратного вызова обновления состояния не выполняют проверку параметров.

Функции обратного вызова обновления состояния полезны при попытке разработки драйвера без отслеживания состояния или при создании предусловных данных буфера команд. Функции обратного вызова обновления состояния также позволяют драйверу отображения пользовательского режима использовать высокие пределы, которые поддерживает среда выполнения Direct3D 10. Высокие водяные знаки указывают на наибольший индекс слота, который может быть не равен NULL; Таким образом, высокие пределы улучшают обходы между такими слотами.

Среда выполнения Direct3D версии 10 Kernel-Services доступ к функциям

В этом разделе перечислены службы ядра, которые обращаются к функциям, которые компонент инфраструктуры графики DirectX (DXGI) среды выполнения Microsoft Direct3D 10 предоставляет драйверу отображения пользовательского режима. DXGI предоставляет указатели на службы ядра, которые обращаются к функциям через члены структуры DXGI_DDI_BASE_CALLBACKS в вызове функции CreateDevice(D3D10) драйвера дисплея пользовательского режима.

Функции среды выполнения Direct3D версии 11

В этом разделе описываются основные функции обратного вызова, которые среда выполнения Microsoft Direct3D 11 и более поздних версий предоставляет драйверу отображения пользовательского режима. Среда выполнения предоставляет указатели на основные функции обратного вызова через элементы структуры D3D11DDI_CORELAYER_DEVICECALLBACKS в вызове функции CreateDevice(D3D10) драйвера отображения пользовательского режима.

Управление функциями обратного вызова в среде выполнения Direct3D версии 11

В этом разделе перечислены дополнительные функции обратного вызова управления, которые среда выполнения Microsoft Direct3D 11 и более поздних версий предоставляет драйверу отображения пользовательского режима.

Среда выполнения Direct3D версии 11 State-Refresh Функции обратного вызова

В этом разделе перечислены дополнительные функции обратного вызова обновления состояния, которые среда выполнения Microsoft Direct3D 11 и более поздних версий предоставляет драйверу отображения пользовательского режима.

Так как среда выполнения Direct3D 11 кэширует объекты текущего состояния для приложений, среда выполнения также кэширует объекты текущего состояния для драйверов отображения пользовательского режима с небольшими издержками. Для каждого вызова, который драйвер отображения пользовательского режима выполняет с функцией обратного вызова обновления состояния, среда выполнения Direct3D 11 выполняет соответствующий вызов функции состояния драйвера в том же потоке выполнения, прежде чем вернуться к вызывающему коду в драйвере. Для повышения производительности функции обратного вызова обновления состояния не выполняют проверку параметров.

Функции обратного вызова обновления состояния полезны при попытке разработать драйвер без отслеживания состояния или создать данные в виде таблицы буфера команд. Функции обратного вызова обновления состояния также позволяют драйверу отображения пользовательского режима использовать высокие пределы, которые поддерживает среда выполнения Direct3D 11. Высокие водяные знаки указывают на наибольший индекс слота, который может быть не равен NULL; Таким образом, высокие пределы улучшают обходы между такими слотами.

Функции среды выполнения Direct3D версии 12 и более поздних версий

Среды выполнения Microsoft Direct3D 12 и более поздних версий предоставляют следующие основные функции обратного вызова для драйвера отображения в пользовательском режиме.

См. также раздел

Поддержка DXGI DDI

Поддержка многопланового наложения

Функции Direct3D, реализованные драйверами отображения пользовательского режима

Повышение производительности отрисовки Direct3D