本文将和大家介绍在 dotnet 8 里 WPF 引入的新功能之一,在 RDP 远程桌面状态下启用渲染硬件加速

在 dotnet 8 之前,在用户进行 RDP 远程桌面时 WPF 应用将默认关闭硬件渲染加速以获得更好的兼容性。随着系统层的渲染架构的优化,比如在 WDDM 驱动模型里面,进行远程桌面的硬件加速已经是非常简单且稳定的事情,这就意味着 WPF 框架底层可以不再判断当前是远程桌面模式时切换到软渲染模式,可以依旧使用硬件渲染加速。只有在 XP 系统上的 XDDM/XPDM 时,才需要在 RDP 远程桌面开启 WPF 应用软渲染

这个优化点在 2020 时就被 Vatsan Madhavan 大佬提出,详细请看 https://github.com/dotnet/wpf/issues/3215

由于 XP 已经过于考古且 dotnet 8 接近完全无法在 XP 系统上运行,于是我就对此进行优化,请看 https://github.com/dotnet/wpf/pull/7015

然而大佬们经过测试发现了一些额外的问题,且担心这个改动过于底层加上没有充分的测试,怕在一些奇怪的设备上运行错误。于是大佬重新提了 https://github.com/dotnet/wpf/pull/7684 用来提供配置的方式控制此功能,默认行为依然保持在 RDP 远程桌面时 WPF 应用将关闭硬件渲染加速,依然使用软渲染方式,保持和旧版本行为相同

只有在进行 Switch.System.Windows.Media.EnableHardwareAccelerationInRdp 配置之后,才会让 WPF 应用在远程桌面时开启硬件渲染

简单来说就是在 dotnet 8 下,默认情况这个新功能对任何开发者或用户是没有影响的,只有在开发者通过 Switch.System.Windows.Media.EnableHardwareAccelerationInRdp 配置启用 RDP 远程桌面时使用硬件渲染加速功能才会生效

以下是配置启用 RDP 远程桌面时使用硬件渲染加速功能的方法,以下代码推荐放在 App 构造函数,否则将可能渲染线程已经跑起来导致配置无效

        public App()
{
AppContext.SetSwitch("Switch.System.Windows.Media.EnableHardwareAccelerationInRdp", true);
}

此功能在 dotnet 8 的行为是默认不开启的,这是因为缺乏足够的设备进行测试。计划在 dotnet 9 里面作为正式的功能

dotnet 8 WPF 支持在 RDP 远程桌面状态下启用渲染硬件加速的更多相关文章

  1. 修改微软RDP远程桌面端口

    远程桌面服务所使用的通信协议是Microsoft定义RDP(Remote Desktop Protocol)协议,RDP协议的TCP通信端口号是3389. 有时候为了安全起见,或者其他的需要,我们常需 ...

  2. dotnet 读 WPF 源代码笔记 布局时 Arrange 如何影响元素渲染坐标

    大家是否好奇,在 WPF 里面,对 UIElement 重写 OnRender 方法进行渲染的内容,是如何受到上层容器控件的布局而进行坐标偏移.如有两个放入到 StackPanel 的自定义 UIEl ...

  3. CVE-2019-0708—微软RDP远程桌面代码执行漏洞复现

    0x01 2019年9月7日凌晨,msf上更新了0708的漏洞利用程序. 顿时安全群和朋友圈就爆炸了 - 奈何接到HW攻击队任务,又在家过了个中秋,0708才在今天更新. 0x02 环境 Window ...

  4. 第9章 应用层(3)_telnet协议和远程桌面协议RDP

    3.1 telnet简介 (1)telnet是一个简单的远程终端协议,也是因特网的正式标准.用户使用telnet连接到远程运行telnet服务的设备(可以是网络设备.比如路由器.交换机,也可以是操作系 ...

  5. Python 远程桌面协议RDPY简介

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议. RDPY ...

  6. 远程桌面报错解决:No Remote Desktop License Servers Available

    摘 要 用户发来反馈,使用部门Windows跳板机报错:The remote session was disconnected because there are no Remote Desktop ...

  7. 详细故障排除步骤:针对 Azure 中到 Windows VM 的远程桌面连接问题

    本文提供详细的故障排除步骤,用于为基于 Windows 的 Azure 虚拟机诊断和修复复杂的远程桌面错误. Important 若要消除更常见的远程桌面错误,请务必先阅读远程桌面的基本故障排除文章, ...

  8. DS控件库 在Combobox中嵌入远程桌面

    本示例演示DS开放式下拉列表控件中加入一个RDP远程桌面控件. 先在VS工具箱中添加COM控件Microsoft RDP Client Control,后面的Version版本可以适当高点. 然后将R ...

  9. PCB Windows远程桌面一键登录

    开发时会经常需远程操作服务器,每次运行再也熟悉不过的命令 mstsc 或 mstsc -v  120.79.36.65 远程到目标服务器, 每次需输入密码,弹出烦人的 如何免密码一键登录呢,其实微软已 ...

  10. FRP+WoL实现远程开机+远程桌面

    FRP+WoL实现远程开机+远程桌面 故事背景 这是一个很复杂而且很久远的故事,如果要讲的话,这个故事可以追溯到1981年(「都是废话,没有干货,如果不感兴趣请从第二章开始」),简单来说: 1981年 ...

随机推荐

  1. MacOS安装 JDK 及动态切换版本

    MacOS安装 JDK 及动态切换版本 JDK下载  我自己使用的是Mac m2系列.无所谓用的哪一种开源的OPEN JD,按需下载,我下载了8,11,17三个版本. 安装完成后,终端输入 java ...

  2. AMD、request.js,生词太多,傻傻搞不清

    前言 之前在公司用JS写前端页面,本来自己是一个写后端的,但是奈何人少,只能自己也去写了.但是自己对前端基本不懂,基本就是照着前人写的照着抄,反正大体意思是明白的,但是出现问题了,基本上也是吭哧吭哧好 ...

  3. archlinux xfce 出现[FAILED] Failed to mount /boot, systemctl status boot.mount出现 mount: /boot: unknown filesystem type 'vfat' 滚挂了

    开机显示:[FAILED] Failed to mount /boot 使用命令systemctl status boot.mount后出现 mount: /boot: unknown filesys ...

  4. 谈谈 OI 中的查重

    鉴于最近洛谷的公开赛出现的重题引起的纠纷,我打算整理一下此类问题的危害和做法. 也许有时候无意的重题不会被处罚,但我想也应该尽量避免来换取选手的更好体验. Part 0 什么是重题 原题大致可分为完全 ...

  5. Java实现两种队列(数组和链表)

    package algorithm; /** @author Administrator @date 2022-09-13 17:50 */ public class QueueLinked{ pri ...

  6. 7 JavaScript循环语句

    7 循环语句 在js中有三种循环语句. 首先是while循环. 它的逻辑和咱们python中的while几乎一模一样, 就是符号上有些许的区别. // 语法 while(条件){ 循环体 -> ...

  7. #前缀和优化dp#牛客练习赛71 C 数学考试

    题目 求\(1\sim n\)的排列,有\(m\)个限制条件,第\(i\)个限制条件\(p_i\), 表示前\(p_i\)个数不能是\(1\sim p_i\)的排列,求符合要求的排列的个数. 分析 这 ...

  8. 深入理解 Java 循环结构:while、do while、for 和 for-each 循环

    Java 循环 循环可以执行一个代码块,只要达到指定的条件.循环很方便,因为它们节省时间,减少错误,并使代码更易读. Java While 循环 while 循环会循环执行一个代码块,只要指定的条件为 ...

  9. 驾驭数据的能力,如同使用ChatGPT一样,是现代职场人的必修课

    现代职场所比拼的除了聪明才智.过往经验之外,很多软性技能也尤为重要. 现在已经不是像网络游戏开局拿着一根小木棍打天下的时代了,这将是一场武装到牙齿的较量,对于各类"装备"的驾驭能力 ...

  10. HMS Core电商解决方案之商品3D商品展示

    传统电商商品展示采用图文结合的形式,文案介绍产品的相关参数,搭配精美图片去吸引客户眼球.但图文商品展示由于色差.尺寸不符等原因,会让消费者产生图片和实物不一致的疑虑,且消费者需要消耗大量精力阅读和比较 ...