структура D3DKMDT_FENCESTORAGESURFACEDATA (d3dkmddi.h)
Структура D3DKMDT_FENCESTORAGESURFACEDATA описывает сегменты памяти, в которых должно размещаться хранилище забора.
Синтаксис
typedef struct _D3DKMDT_FENCESTORAGESURFACEDATA {
UINT PhysicalAdapterIndex;
DXGKARG_FENCESTORAGEVALUETYPE FenceStorageValueType;
D3DDDI_NATIVEFENCE_TYPE FenceStorageType;
UINT PrivateDriverDataSize;
BYTE *pPrivateDriverData;
DXGKARG_FENCESTORAGEFLAGS Flags;
UINT Reserved;
DXGK_ALLOCATIONINFO AllocationInfo;
} D3DKMDT_FENCESTORAGESURFACEDATA;
Члены
PhysicalAdapterIndex
[in] Индекс физического адаптера в конфигурации LDA, в которой хранилище забора будет резидентом.
FenceStorageValueType
[in] Значение DXGKARG_FENCESTORAGEVALUETYPE, указывающее тип собственного значения ограждения.
FenceStorageType
[in] Значение D3DDDI_NATIVEFENCE_TYPE, указывающее тип собственного ограждения.
PrivateDriverDataSize
[in] Размер в байтах данных частного драйвера, на которые pPrivateDriverData.
pPrivateDriverData
[in] Указатель на данные частного драйвера. Зарезервировано для дальнейшего использования.
Flags
[in] Значение DXGKARG_FENCESTORAGEFLAGS, указывающее флаги для хранилища забора.
Reserved
[in] Зарезервировано для дальнейшего использования.
AllocationInfo
[out] Структура DXGK_ALLOCATIONINFO, в которой драйвер должен возвращать свойства выделения.
Замечания
Когда ОС вызывает функцию драйвера в режиме ядра DxgkDdiGetStandardAllocation со стандартным типом выделения D3DKMDT_STANDARDALLOCATION_FENCESTORAGE, драйвер должен вернуть сегменты памяти, в которых хранилище забора должно размещаться в D3DKMDT_FENCESTORAGESURFACEDATA.
На основе полей ввода драйвер должен заполнить следующие сведения о выделении в AllocationInfo:
- SupportedWriteSegmentSet
- EvictionSegmentSet
- PreferredSegment
Драйвер должен игнорировать указатель на частные данные. Драйвер не должен проверять, что указатель имеет значение NULL и не должен запрашивать частные данные, задав его размер.
Отслеживаемые значения собственных ограждений должны быть помещены в видимый сегмент памяти ЦП, так как они обновляются с помощью указателей ЦП.
После создания собственного объекта забора с типом D3DDDI_NATIVEFENCE_TYPE_INTRA_GPU драйвер пользовательского режима всегда должен задать начальное значение, отправив пакет DMA с помощью виртуального адреса GPU. Текущие значения упаковываются на страницу памяти 4K, которая может находиться в сегменте локальной памяти, отличном от ЦП. Таким образом, ОС не имеет способа задать начальное значение.
Общие выделения всегда помещаются в системную память.
Дополнительные сведения см. в разделе Объекты забора собственного GPU.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 11 версии 24H2 (WDDM 3.2) |
заголовка | d3dkmddi.h |
См. также
D3DKMDT_STANDARDALLOCATION_TYPE