PFND3DWDDM1_3DDI_TILEDRESOURCEBARRIER回调函数 (d3d10umddi.h)
指定多个平铺资源之间的数据访问排序约束。 有关此约束的详细信息,请参阅备注。
语法
PFND3DWDDM1_3DDI_TILEDRESOURCEBARRIER Pfnd3dwddm13DdiTiledresourcebarrier;
void Pfnd3dwddm13DdiTiledresourcebarrier(
D3D10DDI_HDEVICE hDevice,
D3D11DDI_HANDLETYPE TiledResourceAccessBeforeBarrierHandleType,
VOID *hTiledResourceAccessBeforeBarrier,
D3D11DDI_HANDLETYPE TiledResourceAccessAfterBarrierHandleType,
VOID *hTiledResourceAccessAfterBarrier
)
{...}
参数
hDevice
显示设备的句柄 (图形上下文) 。
TiledResourceAccessBeforeBarrierHandleType
平铺资源的句柄。
hTiledResourceAccessBeforeBarrier
使用 D3DWDDM1_3DDI_RESOURCE_MISC_TILED 标志创建的资源的句柄。 必须先完成此对象的访问操作,然后 hTiledResourceAccessAfterBarrier 指定的对象上的访问操作。
TiledResourceAccessAfterBarrierHandleType
D3D11DDI_HANDLETYPEhTiledResourceAccessBeforeBarrier 和 hTiledResourceAccessAfterBarrier 参数指向的资源的句柄类型。
hTiledResourceAccessAfterBarrier
使用 D3DWDDM1_3DDI_RESOURCE_MISC_TILED 标志创建的资源的句柄。 此对象的访问操作必须在 hTiledResourceAccessBeforeBarrier 指定的对象上的访问操作之后开始。
返回值
无
备注
驱动程序可以使用 pfnSetErrorCb 回调函数来设置错误代码。
Direct3D 运行时对参数执行最少的验证。
应用可以使用平铺资源重复使用不同资源中的磁贴。 但设备和驱动程序可能无法确定刚刚呈现到的磁贴池中的某些内存现在是否用于读取。
Direct3D 运行时调用 TiledResourceBarrier 以通知驱动程序,在调用之前向资源发出的操作必须完成,然后调用后使用共享相同内存的不同平铺资源进行的任何访问。
在屏障) 之前或之后 (hTiledResourceAccessBeforeBarrier 和 hTiledResourceAccessAfterBarrier 参数的任一或两者都可以为 NULL。 屏障之前的 NULL 意味着在屏障之前的所有平铺资源访问都必须完成,然后 GPU 才能引用屏障后指定的资源。 屏障后的 NULL 表示屏障后访问的任何平铺资源只能在屏障完成之前访问平铺资源后由 GPU 执行。 如果两者均为 NULL,则必须完成所有以前的平铺资源访问,然后任何后续平铺资源访问才能继续。
如果未调用 TiledResourceBarrier,驱动程序可以假定对不同平铺资源的访问权限不会相互冲突。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1,WDDM 1.3 |
最低受支持的服务器 | Windows Server 2012 R2 |
目标平台 | 桌面 |
标头 | d3d10umddi.h (包括 D3d10umddi.h) |