Udostępnij przez


Obsługa DDI DXGI

Aby obsługiwać interfejs sterowników urządzeń infrastruktury grafiki Microsoft DirectX (DXGI), sterownik wyświetlania trybu użytkownika musi zawierać plik nagłówka Dxgidi.h . Dxgiddi.h zawiera również plik nagłówka Dxgitype.h , który zawiera definicje współużytkowane z konstrukcjami DXGI na poziomie aplikacji. Dxgiddi.h definiuje kilka punktów wejścia sterownika wyświetlania trybu użytkownika i funkcję wywołania zwrotnego DXGI, dzięki którym sterownik może komunikować się z jądrem (w tym z miniportem sterownika wyświetlania).

Środowisko uruchomieniowe Microsoft Direct3D zapewnia dostęp do DXGI DDI w strukturze DXGI_DDI_BASE_ARGS, na którą wskazuje element DXGIBaseDDI struktury D3D10DDIARG_CREATEDEVICE podczas wywołania funkcji CreateDevice(D3D10). Sterownik wyświetlania trybu użytkownika dostarcza wskaźniki do funkcji DXGI.

Sterownik implementuje te funkcje za pomocą członków struktur, na które wskazują składowe pDXGIDDIBaseFunctionsXxxDXGI_DDI_BASE_ARGS. Sterownik powinien zachować wskaźnik do tablicy funkcji wywołania zwrotnego DXGI, na który wskazuje element pDXGIBaseCallbacks w DXGI_DDI_BASE_ARGS, do późniejszego wykorzystania. Sterownik powinien rejestrować wskaźnik do tabeli funkcji wywołania zwrotnego DXGI, a nie rejestrować pojedynczego wskaźnika do funkcji wywołania zwrotnego DXGI, ponieważ środowisko uruchomieniowe Direct3D może zmienić adres funkcji wywołania zwrotnego za każdym razem, gdy nie ma wątku wewnątrz sterownika wyświetlania w trybie użytkownika.

Istnieje dodatkowe wymaganie sterownika wyświetlania trybu użytkownika DXGI dla rasteryzatorów oprogramowania. Taki sterownik wyświetlania działający w trybie użytkownika (w szczególności każdy sterownik, który nie obsługuje sprzętu współdzielonego z implementacją Direct3D w wersji 9 DDI na karcie graficznej) musi zwrócić wartość DXGI_STATUS_NO_REDIRECTION, a nie wartość S_OK z funkcji CreateDevice(D3D10). Ta wartość zwracana wskazuje DXGI, że nie powinna używać udostępnionej ścieżki prezentacji zasobów, aby wpłynąć na komunikację z menedżerem okien pulpitu (DWM). Ścieżka prezentacji udostępnionego zasobu jest tworzona, gdy występują wywołania funkcji współużytkowanych zasobów (tj. CreateResource(D3D10) i OpenResource(D3D10) z zestawem flag D3D10_DDI_RESOURCE_MISC_SHARED . Jednak DXGI powinno używać technik odpowiednich dla łańcucha wymiany, którego bufory są dostępne tylko dla procesora CPU. Na przykład DXGI powinno przenieść renderowane dane z bufora wstecznego do pulpitu za pomocą innej niż wspólna ścieżka prezentacji zasobów. W tej sytuacji DXGI rzeczywiście wywołuje funkcję PresentDXGI sterownika, aby przenieść renderowane dane zamiast angażować się w komunikację z DWM.

Funkcje DXGI Direct3D w wersji 10

W tej sekcji opisano funkcje infrastruktury grafiki Microsoft DirectX (DXGI), które biblioteka DLL sterownika wyświetlania trybu użytkownika dostarcza do środowiska uruchomieniowego usługi Microsoft Direct3D w wersji 10. Sterownik dostarcza wskaźniki do funkcji DXGI poprzez elementy członkowskie struktury DXGI_DDI_BASE_FUNCTIONS podczas wywołania funkcji CreateDevice(D3D10) sterownika wyświetlania trybu użytkownika.

BltDXGI: GetGammaCapsDXGI

PresentDXGI: QueryResourceResidencyDXGI

ResolveSharedResourceDXGI: RotateResourceIdentitiesDXGI

SetDisplayModeDXGI: SetResourcePriorityDXGI

Funkcje DXGI Direct3D w wersji 11.1

W tej sekcji opisano funkcje infrastruktury grafiki Microsoft DirectX (DXGI), implementowane przez sterowniki wyświetlania trybu użytkownika, które są dodawane dla środowiska uruchomieniowego Microsoft Direct3D w wersji 11.1. Funkcja Direct3D 11.1 została wprowadzona z systemem Windows 8.

Biblioteka DLL sterownika wyświetlania trybu użytkownika eksportuje funkcję OpenAdapter10_2 i dostarcza wskaźniki do funkcji specyficznych dla adaptera za pośrednictwem elementów członkowskich struktury D3D10_2DDI_ADAPTERFUNCS , gdy środowisko uruchomieniowe wywołuje metodę CreateDevice(D3D10).

Sterownik dostarcza wskaźniki do funkcji Direct3D w wersji 11.1 DXGI za pośrednictwem elementów członkowskich struktury DXGI1_2_DDI_BASE_FUNCTIONS w wywołaniu funkcji CreateDevice(D3D10) sterownika wyświetlania trybu użytkownika.

Funkcje DXGI Direct3D w wersji 11.2

Strony referencyjne w tej sekcji opisują funkcje infrastruktury grafiki Microsoft DirectX (DXGI), implementowane przez sterowniki wyświetlania trybu użytkownika, które są dodawane dla środowiska uruchomieniowego microsoft Direct3D w wersji 11.2. Funkcja Direct3D 11.2 została wprowadzona z systemem Windows 8.1.

Biblioteka DLL sterownika wyświetlania trybu użytkownika eksportuje funkcję OpenAdapter10_2 i dostarcza wskaźniki do funkcji specyficznych dla adaptera za pośrednictwem elementów członkowskich struktury D3D10_2DDI_ADAPTERFUNCS , gdy środowisko uruchomieniowe wywołuje metodę CreateDevice(D3D10).

Sterownik dostarcza wskaźniki do funkcji DXGI związanych z Direct3D w wersji 11.2 za pośrednictwem elementów struktury DXGI1_3_DDI_BASE_FUNCTIONS w wywołaniu funkcji specyficznej dla adaptera sterownika wyświetlania trybu użytkownika CreateDevice(D3D10).

PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB

PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB

Uwaga

Dodatkowe funkcje DXGI obsługiwane przez środowisko uruchomieniowe Direct3D 11.2 są zawarte w sekcji Funkcje nakładki wieloplanowej implementowane przez sterownik trybu użytkownika.