首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道显卡是否为wpf提供硬件呈现

如何知道显卡是否为wpf提供硬件呈现
EN

Stack Overflow用户
提问于 2010-05-30 15:01:47
回答 1查看 3.6K关注 0票数 5

我必须运行一个wpf-应用程序,在一个环境中,所有相同的戴尔-pc与英特尔gma 3000图形芯片(onbard,Q 963/Q 965)。该应用程序只使用软件呈现(由RenderCapability.Tier-property和Performance的射孔器声明)。

在所有这些机器上,安装了DirectX 9c,DXDiag状态在许多机器上,但不是在所有这些机器上,直接3D和直接绘制加速被激活。我还检查了注册表,如果这些机器的设置禁用了wpf-hw呈现,但情况并非如此。在一台机器上,我还更新了视频驱动程序和dx,但没有成功。

如果我正确地解释了资源,那么在安装了DirectX 9c (并且D3D-加速度是活动的)的pc上,也会发生wpf硬件渲染。但是在上面的机器上安装了DX9c,但是没有hw渲染。根据丹尼尔伯尔尼的职位提供的规范,我也认为至少在第1层上渲染必须是可能的和主动的。

我唯一不关心的就是内存,因为图形系统动态分配系统内存,没有自己的内存。我如何才能找到一个特定的图形芯片必须支持硬件渲染的wpf或不。是因为active DirectX 9c也支持harware呈现,还是还有其他必须完全满足的需求,而这些需求又是dx9c所需要的呢?第二个问题是,如果wpf通过dx呈现,这是通过直接3D完成还是直接绘制使用。关于这个主题有什么好的文档吗?

事实证明,在客户个人电脑的直接3D加速是活跃的(在DXDiag),但是没有功能。测试直接3d的测试程序总是以错误结尾。这使得问题变成了一个支持问题,我将在涉及的公司支持部门开一张票。

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

上述事实使我认识到,一个活动的DirectX9c是一个明确的指标,hw渲染的wpf可以,并将发生。因此,可以通过检查芯片是否支持dx9c (对于第2层渲染)来回答哪个芯片支持hw渲染的问题。需求规范可以找到这里 (感谢Daniel )。

更新

在上述情况下,d3d和硬件呈现无法工作的原因是,一个应用程序注册了镜像视频驱动程序,以提供远程终端服务,如net meeting to (用于远程管理客户端pc的是来自支持部门的软件)。禁用此镜像驱动程序导致功能直接的3d,从而进行WPF硬件渲染。然而,渲染级别只是第1层(我认为是因为视频内存的限制)。

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

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

WPF体系结构概述WPF中的硬件加速介绍Direct2D高级WPF应用程序性能优化与分析RenderCapability.Tier不返回呈现模式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-30 15:42:52

阅读这个图形绘制层和这个优化WPF应用性能。还请看一下这个工具WPF性能套房

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2939128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档