структура 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-разрядного элемента Value (0x00000001).

[in] NoOverlapScreenBlt

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

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

SupportKernelModeCommandBuffer

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

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

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

[in] NoSameBitmapAlphaBlend

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

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

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

[in] NoSameBitmapStretchBlt

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

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

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

[in] NoSameBitmapTransparentBlt

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

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

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

[in] NoSameBitmapOverlappedAlphaBlend

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

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

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

[in] NoSameBitmapOverlappedStretchBlt

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

Задание этого элемента эквивалентно установке восьми бита 32-разрядного элемента Value (0x00000080).

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

[in] DriverSupportsCddDwmInterop

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

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

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

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

[in] Reserved0

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

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

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

[in] AlignmentShift

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

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

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

[in] MaxTextureWidthShift

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

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

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

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

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

[in] MaxTextureHeightShift

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

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

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

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

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

[in] SupportAllBltRops

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

Задание этого элемента эквивалентно установке четырнадцатого бита 32-разрядного элемента Value (0x00002000).

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

[in] SupportMirrorStretchBlt

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

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

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

[in] SupportMonoStretchBltModes

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

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

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

[in] StagingRectStartPitchAligned

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

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

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

[in] NoSameBitmapBitBlt

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

Задание этого элемента эквивалентно установке восемнадцатого бита 32-разрядного элемента Value (0x00020000).

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

[in] NoSameBitmapOverlappedBitBlt

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

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

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

[in] Reserved1

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

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

[in] NoTempSurfaceForClearTypeBlend

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

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

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

[in] SupportSoftwareDeviceBitmaps

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

Установка этого элемента эквивалентна установке двадцать второго бита 32-разрядного элемента Value (0x00200000).

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

[in] NoCacheCoherentApertureMemory

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

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

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

[in] SupportLinearHeap

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

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

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

[in] Reserved

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

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

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

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

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

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

Value

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

Комментарии

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

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

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

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm