SkiaSharp和GPU加速

5

我正在评估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);

但它返回空值。

1个回答

4
啊,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上下文,就可以了。

嘿@Matthew,我没明白重点。我需要做什么才能在SkiaSharp中使用GPU? - thowa
基本上使用SKGLView而不是SKCanvasView。 - Nick Kovalsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接