gpt4 book ai didi

.net - 如何知道显卡是否为wpf提供硬件渲染

转载 作者:行者123 更新时间:2023-12-04 18:53:14 25 4
gpt4 key购买 nike

我必须在具有所有相同戴尔 PC 和英特尔 gma 3000 图形芯片(onbard,Q963/Q965)的环境中运行 wpf-app。该应用程序仅使用软件渲染进行渲染(由 RenderCapability.Tier -property 以及 Performance Toolkit 的 Perforator 说明。

在所有这些机器上,都安装了 DirectX 9c 并且 DXDiag 在许多但不是所有这些机器上声明 Direct-3d 和 Direct-Draw-acceleration 已激活。如果这些机器的设置禁用了 wpf-hw 渲染,我还检查了注册表,但事实并非如此。在一台机器上,我还更新了视频驱动程序和 dx,但没有成功。

如果我正确解释资源,那么在安装了 DirectX 9c(并且 D3D 加速处于事件状态)的电脑上,也会发生 wpf 硬件渲染。
但是在上面的机器上安装了DX9c,但是没有硬件渲染。根据 Daniel Bern 的帖子提供的规范,我也认为至少在 tier 1 上渲染必须是可能和活跃的。

我唯一不知道的是内存,因为图形系统动态分配系统内存并且没有自己的内存。
如何确定特定图形芯片是否必须支持 wpf 的硬件渲染。是因为使用事件的 DirectX 9c 还支持硬件渲染,还是还有任何其他要求必须满足而 dx9c 要求更进一步?
第二个问题是,如果wpf通过dx渲染,这是通过direct-3d完成的还是使用direct-draw。有关于这个主题的任何好的文档吗?

事实证明,在客户的 pc 上,直接 3d 加速处于事件状态(在 DXDiag 中),但是不起作用。测试直接 3d 的测试程序总是以错误告终。这使问题成为支持问题,我将在相关公司的支持部门开一张票。

硬件中使用dx的哪个组件渲染wpf的问题可以回答如下:
渲染是通过媒体集成层 (MIL) 完成的。如果 DirectX(适当版本)可用且可操作,MIL 会将所有渲染命令直接写入 D3D。此外,DirectShow(或其后继者)用于处理视频。
媒体集成层是非托管代码,而且相关文档似乎很少。

上述事实使我认为,活跃的 DirectX9c 是一个明确的指标,表明 wpf 的硬件渲染可以并且将会发生。因此可以通过检查芯片是否支持dx9c(用于2层渲染)来回答哪个芯片支持hw-rendering的问题。
可以找到需求规范here (感谢丹尼尔伯恩)。

更新

d3d和硬件渲染在上述情况下不起作用的原因是一个应用程序注册了一个镜像视频驱动程序来提供远程终端服务,例如网络 session (它是支持部门的软件,用于远程管理客户端PC的)。
禁用此镜像驱动程序会导致功能直接 3d,因此 WPF 硬件渲染发生。然而渲染级别只是第 1 层(我认为是因为视频内存限制)。

我希望这篇文章能帮助其他有类似问题的人。

这里有一些进入主题的链接:

WPF Architecture Overview ,
Hardware Acceleration in WPF ,
Introducing Direct2D ,
Advanced WPF Application Performance Tuning and Analysis , RenderCapability.Tier returns not the render mode

最佳答案

关于.net - 如何知道显卡是否为wpf提供硬件渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2939128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com