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


структура DXGK_PRESENTATIONCAPS (d3dkmddi.h)

Структура DXGK_PRESENTATIONCAPS определяет возможности презентации драйвера минипорта дисплея, который драйвер предоставляет через вызов функции DxgkDdiQueryAdapterInfo.

Синтаксис

typedef struct _DXGK_PRESENTATIONCAPS {
  union {
    struct {
      UINT NoScreenToScreenBlt : 1;
      UINT NoOverlapScreenBlt : 1;
      UINT SupportKernelModeCommandBuffer : 1;
      UINT NoSameBitmapAlphaBlend : 1;
      UINT NoSameBitmapStretchBlt : 1;
      UINT NoSameBitmapTransparentBlt : 1;
      UINT NoSameBitmapOverlappedAlphaBlend : 1;
      UINT NoSameBitmapOverlappedStretchBlt : 1;
      UINT DriverSupportsCddDwmInterop : 1;
      UINT Reserved0 : 1;
      UINT AlignmentShift : 4;
      UINT MaxTextureWidthShift : 3;
      UINT MaxTextureHeightShift : 3;
      UINT SupportAllBltRops : 1;
      UINT SupportMirrorStretchBlt : 1;
      UINT SupportMonoStretchBltModes : 1;
      UINT StagingRectStartPitchAligned : 1;
      UINT NoSameBitmapBitBlt : 1;
      UINT NoSameBitmapOverlappedBitBlt : 1;
      UINT Reserved1 : 1;
      UINT NoTempSurfaceForClearTypeBlend : 1;
      UINT SupportSoftwareDeviceBitmaps : 1;
      UINT NoCacheCoherentApertureMemory : 1;
      UINT SupportLinearHeap : 1;
#if ...
      UINT Reserved : 1;
#else
      UINT Reserved : 4;
#endif
    };
         UINT Value;
  };
} DXGK_PRESENTATIONCAPS;

Члены

[in] NoScreenToScreenBlt

Значение UINT, указывающее, может ли драйвер минипорта отображения выполнять передачу бит-блоков (bitblt) из первичной поверхности в ту же основную поверхность. Если установлен NoScreenToScreenBlt, драйвер не может выполнять передачу битовых блоков с экрана на экран. Поэтому подсистема ядра графики Microsoft DirectX (Dxgkrnl.sys) не запрашивает драйвер для выполнения такой передачи битового блока.

Установка этого элемента эквивалентна настройке первого бита 32-разрядного значения значения (0x00000001).

[in] NoOverlapScreenBlt

Значение UINT, указывающее, может ли драйвер минипорта отображения выполнять передачу битовых блоков, перекрывающуюся. Если задан noOverlapScreenBlt, драйвер не может выполнять передачу битовых блоков, перекрывающуюся. Поэтому подсистема ядра графики DirectX не запрашивает драйвер для выполнения такой передачи битового блока.

Установка этого элемента эквивалентна настройке второго бита 32-разрядного элемента значения (0x00000002).

SupportKernelModeCommandBuffer

[in] Значение UINT, указывающее, поддерживает ли драйвер минипорта GDI с аппаратным ускорением обработки буфера команд GDI. Если установлен SupportKernelModeCommandBuffer, драйвер может выполнять различные операции передачи битовых блоков (bitblt) и заполнять операции, когда подсистема графического ядра DirectX вызывает функцию драйвера минипорта dxgkDdiRenderKm.

Примечание Драйвер минипорта дисплея должен сообщить о том, что он поддерживает аппаратное ускорение GDI только в том случае, если существует сегмент диафрагмы кэша, согласованный с GPU, и нет значительных штрафов в производительности, когда ЦП обращается к памяти.
 
Установка этого элемента эквивалентна настройке третьего бита 32-разрядного элемента значения (0x00000004).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapAlphaBlend

Значение UINT, указывающее, может ли драйвер минипорта отображения выполнять операцию альфа-смешивания, когда выделение исходного и целевого объектов совпадает. Если установлен NoSameBitmapAlphaBlend, драйвер не может выполнить такую операцию, и подсистема ядра графики DirectX не будет запрашивать ее.

Установка этого элемента эквивалентна настройке четвертого бита 32-разрядного элемента значения (0x00000008).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapStretchBlt

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

Установка этого элемента эквивалентна настройке пятого бита 32-разрядного элемента значения (0x00000010).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapTransparentBlt

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

Установка этого элемента эквивалентна настройке шестого бита 32-разрядного элемента значения (0x00000020).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapOverlappedAlphaBlend

Значение UINT, указывающее, может ли драйвер минипорта отображения выполнять операцию альфа-смешивания, когда выделения источника и назначения совпадают, а прямоугольники источника и назначения перекрываются. Если задан NoSameBitmapOverlappedAlphaBlend, драйвер не может выполнить такую операцию, и подсистема ядра графики DirectX не будет запрашивать ее.

Установка этого элемента эквивалентна настройке седьмого бита 32-разрядного элемента value (0x00000040).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapOverlappedStretchBlt

Значение UINT, указывающее, может ли драйвер минипорта отображения выполнять операцию передачи растягивающих битовых блоков, когда выделение исходного и целевого объектов совпадает, а прямоугольники источника и назначения перекрываются. Если задан NoSameBitmapOverlappedStretchBlt, драйвер не может выполнить такую операцию, и подсистема ядра графики DirectX не будет запрашивать ее.

Установка этого элемента эквивалентна настройке 32-разрядного элемента значение (0x00000080).

Поддерживается начиная с Windows 7.

[in] DriverSupportsCddDwmInterop

Значение UINT, указывающее, поддерживает ли драйвер минипорта канонический драйвер отображения (CDD) выполнять операции выделения текстур, созданные драйвером пользовательского режима для используемого диспетчера windows (DWM). Если установлен DriverSupportsCddDwmInterop, драйвер мини-порта отображения поддерживает такие операции.

Если драйвер мини-порта дисплея поддерживает аппаратное ускорение GDI, DriverSupportsCddDwmInterop игнорируется. В этом случае драйвер должен поддерживать операции CDD для выделения текстур DWM, созданные драйвером пользовательского режима.

Установка этого элемента эквивалентна настройке девятого бита 32-разрядного элемента значение (0x00000100).

Поддерживается начиная с Windows 7.

[in] Reserved0

Этот элемент зарезервирован и должен иметь значение нулю.

Установка этого элемента эквивалентна настройке десятого бита 32-разрядного значения члена (0x00000200).

Поддерживается начиная с Windows 7.

[in] AlignmentShift

Значение UINT, указывающее минимальное значение выравнивания (в байтах), которое требуется XxxPitch членов структур DXGK_GDIARG_XXX. ВыравниваниеShift предоставляется в виде двоичного экспонента. Например, чтобы указать требуемое значение выравнивания в 16 байт, драйвер мини-порта отображения должен задать AlignmentShift = 4. Минимальное значение равно ВыравниваниеShift = 2, указывающее выравнивание 4-байтов.

Установка этого элемента эквивалентна настройке одиннадцатого бита 32-разрядного элемента значения (0x00000400).

Поддерживается начиная с Windows 7.

[in] MaxTextureWidthShift

Значение UINT, указывающее максимальную ширину текстуры, которую поддерживает драйвер мини-порта отображения, который вычисляется как:

максимальная поддерживаемая ширина текстуры = 2 ^ (MaxTextureWidthShift + 11) texels.

Например, если MaxTextureWidthShift = 0, максимальная поддерживаемая ширина текстуры составляет 2 ^ 11 = 2048.

Установка этого элемента эквивалентна настройке двенадцатого бита 32-разрядного элемента значение (0x00000800).

Поддерживается начиная с Windows 7.

[in] MaxTextureHeightShift

Значение UINT, указывающее максимальную высоту текстуры, которую поддерживает драйвер мини-порта отображения, который вычисляется как:

максимальная поддерживаемая высота текстуры = 2 ^ (MaxTextureHeightShift + 11) texels.

Например, если MaxTextureHeightShift = 0, максимальная поддерживаемая высота текстуры составляет 2 ^ 11 = 2048.

Установка этого элемента эквивалентна настройке тринадцатого бита 32-разрядного элемента значения (0x00001000).

Поддерживается начиная с Windows 7.

[in] SupportAllBltRops

Значение UINT, указывающее, поддерживает ли драйвер минипорта отображение все операции растра GDI ROP3 с сплошным цветом в виде шаблона в командах BitBlt и ColorFill. Если задано SupportAllBltRops, драйвер поддерживает такие операции растра.

Установка этого элемента эквивалентна настройке 32-разрядного элемента значения (0x00002000).

Поддерживается начиная с Windows 7.

[in] SupportMirrorStretchBlt

Значение UINT, указывающее, поддерживает ли драйвер минипорта stretch Blt (используя структуру DXGK_GDIARG_STRETCHBLT) в зеркальном режиме. Если задан SupportMirrorStretchBlt , драйвер поддерживает такие операции.

Установка этого элемента эквивалентна настройке пятнадцатого бита 32-разрядного значения значения (0x00004000).

Поддерживается начиная с Windows 7.

[in] SupportMonoStretchBltModes

Значение UINT, указывающее, поддерживает ли драйвер минипорта stretch Blt (с помощью структуры DXGK_GDIARG_STRETCHBLT) в режимах монохромной отрисовки BLACKONWHITE или WHITEONBLACK. Если задан SupportMonoStretchBltModes, драйвер поддерживает такие операции.

Установка этого элемента эквивалентна настройке шестнадцатого бита 32-разрядного элемента значения (0x00008000).

Поддерживается начиная с Windows 7.

[in] StagingRectStartPitchAligned

Значение UINT, указывающее, требуется ли драйвер мини-порта отображения начальной точки (верхняя левая точка) в прямоугольнике на видимой ЦП промежуточной поверхности, которая должна быть выровнена по полю, что означает, что левая координата равно 0. Если задан ВыравниваниеShift, то верхняя левая точка прямоугольника выравнивается по полю.

Установка этого элемента эквивалентна настройке семнадцатого бита 32-разрядного элемента значения (0x00010000).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapBitBlt

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

Установка этого элемента эквивалентна настройке 32-разрядного элемента значения (0x00020000).

Поддерживается начиная с Windows 7.

[in] NoSameBitmapOverlappedBitBlt

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

Установка этого элемента эквивалентна настройке девятнадцатого бита 32-разрядного элемента value (0x00040000).

Поддерживается начиная с Windows 7.

[in] Reserved1

Этот элемент зарезервирован и должен иметь значение нулю. Установка этого элемента равно нулю эквивалентна настройке двадцатого бита 32-разрядного элемента значение (0x00080000).

Поддерживается начиная с Windows 7.

[in] NoTempSurfaceForClearTypeBlend

Значение UINT, указывающее, требуется ли драйверу временная поверхность во время обработки команд, указанных элементом ClearTypeBlend структуры DXGK_RENDERKM_COMMAND. Если задан NoTempSurfaceForClearTypeBlend, драйвер не нуждается во временной поверхности. В этом случае драйвер будет использовать меньше памяти видео.

Задание этого элемента равно нулю эквивалентно настройке двадцать первого бита 32-разрядного элемента значение (0x00100000).

Поддерживается начиная с Windows 7.

[in] SupportSoftwareDeviceBitmaps

Этот элемент зарезервирован и должен иметь значение нулю.

Задание этого элемента эквивалентно настройке 32-разрядного элемента значения (0x00200000).

Поддерживается начиная с Windows 8.

[in] NoCacheCoherentApertureMemory

Значение UINT, указывающее, что драйвер не поддерживает кэш-последовательную память диафрагмы.

Установка этого элемента эквивалентна настройке 32-разрядного элемента значения (0x00400000).

Поддерживается начиная с Windows 8.

[in] SupportLinearHeap

Драйвер поддерживает линейное выделение кучи из промежуточных поверхностей.

Установка этого элемента эквивалентна настройке двадцать четвертой части 32-разрядного элемента value (0x00800000).

Поддерживается начиная с Windows 8.

[in] Reserved

Этот элемент зарезервирован и должен иметь значение нулю.

Установка этого элемента эквивалентна настройке двадцать пятого бита 32-разрядного элемента значения (0x01000000).

Поддерживается начиная с Windows 8.

[in] Этот элемент зарезервирован и должен иметь значение нулю.

Установка этого элемента эквивалентна настройке двадцать пятого бита 32-разрядного элемента значения (0x02000000).

Поддерживается начиная с Windows 8.

Value

32-разрядное значение, определяющее возможности презентации драйвера.

Замечания

Драйвер минипорта отображения может указать возможности презентации, задав биты в 32-разрядном элементе значение или путем задания отдельных членов структуры в союзе, который DXGK_PRESENTATIONCAPS содержит.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
заголовка d3dkmddi.h (include D3dkmddi.h)

См. также

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm