SkiaSharp 和 GPU 加速

2023-11-25

我正在评估 SkiaSharp 库(来自 nuget,版本 1.59.3)。一切都渲染得很好。但 Skia 似乎并没有使用 GPU 来加速渲染。 Windows 10 任务管理器未检测到我的测试应用程序对 GPU 的任何使用。我正在使用下一个命令来创建 SKCanvas:

 using (SKBitmap bitmap = new SKBitmap(gWidth, gHeight, SKColorType.Bgra8888, alphaType))
 using (SKCanvas canvas = new SKCanvas(bitmap))
 { ... }

GPU加速是否需要某种特殊的方式来初始化SkiaSharp?

我尝试过下一个命令:

GRContext context = GRContext.Create(GRBackend.OpenGL);

但它返回 null。


Ah, GPU.

您需要处于现有的 OpenGL/ANGLE 上下文中。

我正在这样做:https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/SKSwapChainPanel.cs

但是,在实际初始化 SkiaSharp 之前,我首先必须手动创建 ANGLE 上下文:https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/AngleSwapChainPanel.cs

这对于所有平台都是一样的,首先设置OpenGL/ANGLE上下文,然后当它是当前上下文时,启动SkiaSharp GRContext。

这也是我为单元测试所做的事情:https://github.com/mono/SkiaSharp/blob/master/tests/Tests/GlContexts/Wgl/WglContext.cs

如果您不喜欢所有这些设置代码,那么这并不总是最好的代码,但您可以使用其他一些库来完成所有样板代码。只要存在有效的 OpenGL/ANGLE 上下文,就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SkiaSharp 和 GPU 加速 的相关文章

随机推荐

  • Android:清除活动堆栈

    我的申请中有多项活动 而且流程非常复杂 当我单击注销应用程序时 导航到登录屏幕 用户可以通过取消按钮退出 调用system exit 0 当我退出或后退按钮时 系统从堆栈中调用一个活动 当我到达登录屏幕时 如何清除堆栈中的所有活动 调用fi
  • ng-if 和 ng-show/ng-hide 有什么区别

    我试图理解之间的区别ng if and ng show ng hide 但它们在我看来是一样的 选择使用其中之一时我应该记住什么区别吗 ngIf The ngIf指示删除或重新创建基于表达式的 DOM 树的一部分 如果表达式分配给ngIf计
  • Chrome 中的滚动到视图

    I use var el document getElementById centd el scrollIntoView true 滚动到特定位置 在每个浏览器中它都工作正常 但在 Chrome 中 当页面加载时 它会滚动到该点 但在一两秒
  • 接收器停止接收奥利奥

    我了解服务等受到限制 因此我的接收器已停止在 Android Oreo 中工作 我有这段代码启动服务 Intent intent new Intent this MyService class intent putExtra Time lo
  • 从 Docker buildkit 获取容器 ID 以进行交互式调试

    众所周知 您可以运行docker commit针对失败的构建过程拍摄容器快照以用于调试目的 容器 ID 是从running in
  • 从本地文件更新 MySQL 表

    我的数据库中有一个表 我想更新本地文件上脱机的列 文件本身有两列 与表中的 ID 列相对应的 ID 以及 实际值 我已经能够使用创建新行 LOAD DATA INFILE file txt INTO TABLE table FIELDS T
  • 三星 Galaxy SIII (GLES) 中的噪声算法失败

    我正在努力让下一个简单的算法在 Samsung Galaxy SIII 中运行 float rand vec2 co return fract sin dot co xy vec2 12 9898 78 233 43758 5453 vec
  • Python:根据对象的属性对对象列表进行排序[重复]

    这个问题在这里已经有答案了 作为序言 我已经查看了与这个问题相关的帖子 但他们还没有完全回答我的问题 所以我只想知道如何通过两种方式根据对象的属性对对象列表进行排序 如果属性是字符串 按字母顺序排列 如果属性是整数 按数字顺序执行 这是我的
  • Eclipse 执行错误的 Java 文件

    我正在使用 Eclipse 来编写和测试 Java 我是一个初学者 所以我对Eclipse一无所知 当我尝试运行我刚刚编写的 Java 文件时 就会出现问题 它不执行打开的文件 而是执行我之前成功运行的文件 我在同一个默认包中有几个文件 包
  • Mac OS Mojave 上的 Ruby 2.4:找不到图像...与 openssl.bundle 相关

    所以我在 Mac OS Mojave 上将 Ruby 升级到了 2 4 9 我在安装 gem 时遇到问题 proj gem install google cloud vision ERROR Loading command install
  • Python - 用于将文本拆分为句子的正则表达式(句子标记化)[重复]

    这个问题在这里已经有答案了 我想从字符串中列出句子 然后将其打印出来 我不想使用 NLTK 来执行此操作 因此 它需要在句子末尾的句点上分割 而不是在小数点或缩写或名称标题上分割 或者如果句子有 com 这是对正则表达式的尝试 但不起作用
  • .NET 验证码 https

    我们已经开始使用 ASP NET recaptcha 控件 它运行良好 但我们的要求之一是所有出站流量都通过 HTTPS 我知道 recaptcha 支持 https 但不清楚在使用 ASP NET 插件选项时如何配置 或者即使它是可配置的
  • Facebook PHP SDK 处理访问令牌

    我已经爬行了很多不同的答案 但我仍然对我应该如何处理 Facebook 感到有点困惑访问令牌 我遇到的主要问题之一是浏览器中存储的信息 例如 我登录应用程序 令牌过期 除非清除浏览器中的 cookie 应用程序设置 否则我无法再次登录 我偶
  • Glassfish 服务器库在 Eclipse Kepler 中不可用?

    我正在使用 Eclipse Kepler 设置一台新的开发机器 以部署在 Glassfish 3 1 2 2 实例上 当我去 project properties gt java build path gt libraries gt add
  • 如何以编程方式安全关闭 Google Chrome

    如何通过 C 安全地关闭 google chrome 我可以终止 chrome 进程 但在这种情况下 Google Chrome 会在下次运行时报告应用程序崩溃 你可以使用鲜为人知的用户界面自动化API 像这样 static void Cl
  • 如何在Powershell中连续读取串行COM端口并偶尔写入COM端口

    我需要知道如何连续从 COM 端口读取数据并使用 Windows Powershell 将其转储到文件中 当我读取数据时 我还需要监视正在读取的数据 并根据读取的最后一行内容将数据写入 COM 端口 要在 Powershell 中打开 CO
  • Java - 如何创建新条目(键,值)

    我想创建类似于的新项目Util Map Entry将包含结构key value 问题是我无法实例化Map Entry因为它是一个接口 有谁知道如何为 Map Entry 创建新的通用键 值对象 There s public static c
  • Ninject 如何在 ASP.NET MVC 中创建控制器?

    这可能是一个愚蠢的问题 但我正在查看 Ninject 源代码 但没有看到 NInject 注册自己的控制器工厂 我也没有看到任何IControllerFactory上课于Ninject Web Mvc集会 我错过了什么吗 Ninject 如
  • 获取强制推送的提交的历史记录

    昨天 我们团队的一名成员做了一个git push force在我们的 Bitbucket 存储库内 我知道是谁 但我想知道是否可以收集哪些提交被强制推送到存储库中 我从 git log history 中寻找的信息是这样的 1951097
  • SkiaSharp 和 GPU 加速

    我正在评估 SkiaSharp 库 来自 nuget 版本 1 59 3 一切都渲染得很好 但 Skia 似乎并没有使用 GPU 来加速渲染 Windows 10 任务管理器未检测到我的测试应用程序对 GPU 的任何使用 我正在使用下一个命