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


Указание типа памяти для ресурса

Драйвер отображения в пользовательском режиме получает сведения о типе памяти, который следует использовать при получении запроса на создание ресурса. Тип памяти указывается как системная или видеопамять с помощью перечислителей D3DDDIPOOL_SYSTEMMEM или D3DDDIPOOL_VIDEOMEMORY в члене Pool структуры D3DDDIARG_CREATERESOURCE. Кроме того, среда выполнения Microsoft Direct3D предоставляет указания драйверу о типе видеопамяти, используя один из следующих перечислителей в члене Pool.

  • D3DDDIPOOL_LOCALVIDMEM

    Среда выполнения рекомендует драйверу использовать локальную память видео.

  • D3DDDIPOOL_NONLOCALVIDMEM

    Среда выполнения рекомендует драйверу использовать нелокальную память видео (например, память AGP).

Среда выполнения предоставляет указания драйверу отображения пользовательского режима для повышения производительности. Например, среда выполнения может указать D3DDDIPOOL_NONLOCALVIDMEM, если ЦП записывает данные на поверхность, поскольку это выполняется быстрее, если используется нелокальная видеопамять.

Драйвер отображения в пользовательском режиме передает указания драйверу мини-порта отображения через элементы pPrivateDriverData структур D3DDDI_ALLOCATIONINFO и DXGK_ALLOCATIONINFO специфичным для поставщика образом. Драйвер минипорта отображения сообщает диспетчеру видео памяти о соответствующем сегменте памяти, который необходимо использовать, возвращая идентификатор этого сегмента в элементе HintedSegmentId структуры DXGK_ALLOCATIONINFO при вызове функции DxgkDdiCreateAllocation драйвера.

Независимо от типа памяти видео, используемой для создания ресурса, драйвер отображения в пользовательском режиме не должен предоставлять никаких семантических различий во время выполнения. То есть для каждого типа памяти видео драйвер должен отображать данные одинаково и возвращать одинаковые возвращаемые значения.