title author date CreateTime categories
WPF 设置纯软件渲染
lindexi
2019-10-31 8:59:2 +0800
2018-04-20 16:36:44 +0800
WPF 渲染

最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染。

设置 WPF 使用软件渲染的方法是在 .net framework 3.5 之后才可以的。使用方法很简单,在 Loaded 之后,添加下面代码

HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;

默认的 RenderMode 是 默认,也就是如果判断有硬件就在硬件渲染,如果没有就在 CPU 渲染。

如果设置 SoftwareOnly 就不在硬件渲染。

除了想降低性能,估计没有人会设置这个。

上面的方法是开启窗口级的软渲染,如果想要在进程级设置开启软渲染,请使用这个代码

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly; 

如果想要在整个设备运行 WPF 程序都使用软渲染,那么可以通过修改注册表的方法

HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics 里面添加一个项,这个项是 dword 命名是 DisableHWAcceleration 使用默认值 0 就可以

那么如何判断当前的软件是使用软渲染的?

通过 WPF Performance Suite 运行之后附加到打开的进程调试,勾选 Draw software renderingwith purple tint 观察原有进程是否被一个诡异的颜色放在上面,如果是那么就是开启软渲染了

Performance Profiling Tools for WPF 的 Draw software renderingwith purple tint 就是使用高亮的矩形覆盖在使用软渲染的范围,如果整个进程都是使用软渲染,那么整个进程都会被高亮

注意,除了设置使用软渲染之外打开高亮矩形可能会显示在使用 bitmap effects 的元素上或通过RenderTargetBitmap渲染的内容等使用软渲染的元素

现在微软已经不开放Performance Profiling Tools for WPF下载,请点击这个链接下载

最近在做渲染优化,更多博客请看 渲染相关

WPF 渲染级别

WPF 使用 Direct2D1 画图入门

Video Rendering Issues for WPF Windows - Rick Strahl's Web Log

Enable Software Rendering in WPF programmatically

Software Rendering Usage in WPF – WPF Performance and .NET Framework Client Profile

2019-10-31-WPF-设置纯软件渲染的更多相关文章

  1. WPF 设置纯软件渲染

    最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了.万一这个版本发布了,产品经理说下个版本要提升性能就不好了.于是就找到一个快速的方法,让程序不使用硬件渲染 ...

  2. lyc——2019.10.31

    10:判决素数个数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y). 输入 两个整数X和Y(1 <= X,Y <= ...

  3. 牛客CSP-S提高组赛前集训营2 ———— 2019.10.31

    比赛链接 期望得分:100+20+20 实际得分:40+20+30 awa  cccc T1 :基于贪心的思路,然后开始爆搜(雾 那必然是会死的,好吧他就是死了 #include<iostrea ...

  4. WPF 使用 SharpDx 异步渲染

    本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染 本文是一个系列,希 ...

  5. WPF 设置了阴影效果后,Y轴位置会有变化的问题

    原文:WPF 设置了阴影效果后,Y轴位置会有变化的问题 背景 最近遇到一个动画执行时,文本位置变化的问题.如下图: 如果你仔细看的话,当星星变小时,文本往下降了几个像素. 貌似有点莫名其妙,因为控件之 ...

  6. 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异. 近期有 i.MXRT 客户在集成 OTA SBL ...

  7. 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButton, AppBarButton, AppBarToggleButton

    [源码下载] 背水一战 Windows 10 (31) - 控件(按钮类): ButtonBase, Button, HyperlinkButton, RepeatButton, ToggleButt ...

  8. WPF设置VistualBrush的Visual属性制作图片放大镜效果

    原文:WPF设置VistualBrush的Visual属性制作图片放大镜效果 效果图片:原理:设置VistualBrush的Visual属性,利用它的Viewbox属性进行缩放. XAML代码:// ...

  9. 10分钟轻松设置出 A+ 评分的 HTTP/2 网站

    前言 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP ...

  10. 为什么 Windows 10 无论怎么设置一分钟后就自动关屏幕?

    为什么 Windows 10 无论怎么设置一分钟后就自动关屏幕? 在设置中设置了很多方法,但不管怎么设置就是不行,不到一分钟一定关屏幕. 开始以为是能源之星引起,查了相关资料说不是,那个能源之星标志只 ...

随机推荐

  1. pycharm 常见易错的PEP8规范

    PEP8规范 ( Python Enhancement Proposal ) PEP 8: E231 missing whitespace after ','这个意思是逗号后面要有一个空格 PEP 8 ...

  2. re_signin 【ctfshow_元旦水友赛】Reserve

    题目: IDA反编译 主函数 1 int __cdecl main(int argc, const char **argv, const char **envp) 2 { 3 char s2[144] ...

  3. 在命令行中使用 cl.exe编译 C/C++ 程序并执行

    cl.exe是Microsoft C/C++编译器. 我的VC6.0安装目录为:D:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev9 ...

  4. SqlServer查询表的所有字段属性及其是否是主外键

    CREATE PROC [dbo].[sp_help2] @TableName VARCHAR(50) = NULL AS SET NOCOUNT ON SET TRANSACTION ISOLATI ...

  5. KingbaseES V8R6运维案例之---wal日志解析DDL操作

    ​ 案例说明: 通过sys_waldump解析DDL操作,获取DDL操作的日志条目具体内容. 适用版本: KingbaseES V8R3/R6 一.DDL事务操作对应的wal日志文件 # 查看当前on ...

  6. 2024 VEXIQ 赛季笔(游)记 Pt.1

    2024/03/07 老师让我们做机器初步思考了. 搞搞戒指,只要一个小夹子加上赛季的抬升吸环改一下就可以了,方便的一批. 于是夹子 10 分钟不到搞完了,现在是缝合怪时间. 但是老师下课不让我搞了 ...

  7. 如何修改 ARM Linux 系统的启动画面

    [如何修改 ARM Linux 系统的启动画面 Table of Contents U-Boot 的启动画面 内核的启动画面 PPM 图片格式 显示启动画面的过程 更换启动画面 动态修改启动画面 一些 ...

  8. Python爬虫爬取1905电影网视频电影并存储到mysql数据库

    数据获取方式:微信搜索关注[靠谱杨阅读人生]回复[电影].整理不易,资源付费,谢谢支持! 代码: 1 import time 2 import traceback 3 import requests ...

  9. AI云增强升级!还原生动人像,拍出质感照片

    近期不少细心用户发现,在用HUAWEI Mate 60 Pro手机拍照后,使用相册中的AI云增强功能,照片变得更加细腻有质感.这是因为AI云增强升级并更新支持了人像模式拍摄的照片,高清自然的人像细节还 ...

  10. js调用摄像头,实现简单的视频展台软件

    参考文档: web api:https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices codeantenna:https://code ...