Direct3D 11 (Vortice) 在 Windows.Forms 控件中卡顿(在 Form 或 WinUI 中正常工作)

Direct3D 11 (Vortice) stutters in Windows.Forms Control (works fine in Form or WinUI)

提问人:testalino 提问时间:3/25/2023 更新时间:3/30/2023 访问量:140

问:

我正在使用 Windows.Forms.Control 的窗口句柄通过 Vortice 库绘制 3D 数据。

画一帧大约需要 1 或 2 秒,当然这很慢。不过,单个绘制速度非常快(使用图形调试器进行分析)。

使用专用窗体的窗口句柄时,相同的代码工作正常。它在 WinUI 中也能正常工作(但是,交换链的初始化方式当然也不同)。

这可能是微不足道的,因此欢迎提出任何建议。

C# Direct3D Direct3D11 漩涡

评论

0赞 Guru Stron 3/29/2023
你能 0lease 分享代码吗?理想情况下,一个最小的可重复示例
1赞 testalino 3/30/2023
@GuruStron:谢谢你推动我这样做。我以这种方式发现了错误。
0赞 Guru Stron 3/30/2023
好。这通常是修复错误的一种方式 - 找到 mre =) 不要忘记发布您的答案!

答:

0赞 testalino 3/30/2023 #1

无论出于何种原因,我们使用 InvalidateRect 而不是 Ininvalid,这导致了闪烁和卡顿。