【问题标题】:WriteableBitmap.WritePixels not refreshing on some PCsWriteableBitmap.WritePixels 在某些 PC 上不刷新
【发布时间】:2016-01-21 20:28:21
【问题描述】:

我们在一些 Windows PC 上遇到了非常奇怪的问题。我们有一个视频应用程序,其中一部分使用 WritePixels 更新 WriteableBitmap 并将帧显示到屏幕上。

代码是:

_currentframe.WritePixels(new Int32Rect(0, 0, data.Width, data.Height), data.Bytes, data.Stride, 0);

NotifyPropertyChanged("CurrentFrame");

(其中“数据”是我们像素数据的包装类)

它在 99% 的计算机上都能正常工作。在至少一台 Windows 8.1 笔记本电脑上,图像不会刷新。我不知道为什么,其他一切正常。

我不明白在某些 PC 上会导致此操作失败的原因 - 欢迎提出任何建议。问题系统的一些细节:Win8.1(西班牙语),net 4.5.50709(但软件使用4.0)。

图形驱动程序是 Intel HD Graphics 4000

【问题讨论】:

    标签: .net windows-8.1 writeablebitmap


    【解决方案1】:

    我们实际上在我们的软件中复制了在某些计算机上出现的这个错误,以绘制高性能图表。这似乎是某些英特尔显卡驱动程序和 WriteableBitmap / .NET4/4.5 的问题。

    http://www.scichart.com/questions/question/zoom-not-working-properly-on-one-single-computer

    我们认为发生的事情是一旦锁定/解锁的 WriteableBitmap 将不允许任何进一步的更新。相同的代码在许多其他机器上运行良好,唯一的其他解决方法是在出现此问题的系统上禁用 WPF 进程的硬件呈现。

    另一种解决方法是使用 Intel HD Graphics 更新目标 PC 上的图形驱动程序。

    【讨论】:

    • 感谢您的回复。听起来确实是同一个问题。
    • 我们大量使用 WriteableBitmap,这个问题很容易解决。它只影响英特尔高清显卡。我对您的建议是在您的应用程序中放置一个配置参数 bool useHardwareAcceleration,以便用户可以轻松禁用它。然后还建议您的产品分发,以确保图形驱动程序是最新的。祝你好运!
    【解决方案2】:

    这可能是由英特尔驱动程序中的一个已知错误引起的。根据this issue reportreport from Intel,该错误已在 Intel 驱动程序 30.0.100.9667 及更高版本中修复。

    【讨论】:

    • 我最近在一台已更新到 Windows 11 的 PC 上看到了这种情况。我想象的图形驱动程序存在一些问题。
    猜你喜欢
    • 2011-03-26
    • 2014-11-16
    • 1970-01-01
    • 2013-02-01
    • 2015-10-30
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多