D3DDDI_EVICT_FLAGS结构 (d3dukmdt.h)

D3DDDI_EVICT_FLAGS 指定逐出行为。

语法

typedef struct D3DDDI_EVICT_FLAGS {
  union {
    struct {
      UINT EvictOnlyIfNecessary : 1;
      UINT NotWrittenTo : 1;
      UINT Reserved : 30;
    };
    UINT Value;
  };
} D3DDDI_EVICT_FLAGS;

成员

EvictOnlyIfNecessary

设置后,这表示资源可能在不久的将来再次使用,并指示 OS 尝试从 GPU 逐出实际资源,直到内存不足。 如果未设置,则会指示 OS 不再使用资源,并且应尽早执行逐出。

注意 如果驻留引用计数未达到零,则忽略此标志,因为直到该时间才会逐出分配。
 

NotWrittenTo

设置后,这表示资源自驻留以来尚未由 GPU 写入。 这样,OS 就可以通过放弃分配内容而不是将其分页到系统内存来优化逐出过程。 驱动程序必须选择加入才能使用此标志。 默认情况下,该值为零,在逐出期间将分配视为脏。 与 EvictOnlyIfNecessary 不同,驱动程序不需要推迟设置此标志,直到最后一次调用 Evict (pfnEvictCbD3DKMTEvict) ,并且指定此标志的效果会立即发生。 换句话说,如果驱动程序多次调用 MakeResident ,则任何后续 Evict 操作都有效指定此标志。 在最后一次调用之前,驱动程序不会跟踪此标志。

Reserved

此成员为保留成员,应设置为零。

Value

结构中标志的合并值。

要求

要求
最低受支持的客户端 Windows 10
最低受支持的服务器 Windows Server 2016
标头 d3dukmdt.h (包括 D3dumddi.h、D3dkmddi.h)

另请参阅

D3DKMTEvict

pfnEvictCb