问题标签 [hardware-acceleration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5571 浏览

android - 在运行时检测硬件加速:Android

是否可以始终如一地检测 Activity 在创建时是否启用了硬件加速?我担心我的图书馆的用户会在不应该的时候通过清单启用它,而不是专门为我的活动禁用它(正如我指示他们做的那样。)

我能找到的唯一可靠信息(http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html)说我可以查询View.isHardwareAccelerated()Canvas.isHardwareAccelerated()。但是,出于我的目的,我想确保在显示我的图书馆的活动时它是关闭的。到目前为止,我无法在打开或关闭时报告一致的是/否。我尝试在一个虚拟视图中进行黑客攻击,将其设置为我的活动,然后对其进行测试,但它总是返回 false。另外,我尝试了 testing Window.getAttributes( ).flags,但他们也没有显示出来。

我正在对此进行测试,因为我的库的硬件加速绘制路径无法正常工作,而且似乎没有任何方法可以修复它。

0 投票
1 回答
400 浏览

safari - 有没有办法检测 Safari 或 WebKit 上是否存在硬件加速?

我们有一个自定义 WebKit 应用程序,在 Windows 上使用 WebKit 构建,在 Mac 上使用操作系统的 webview 组件。我们正在寻找一种方法来判断我们是否正在利用硬件加速。

是否有任何相关设置,例如在 plist 中?似乎我们忘记了编译标志,或者在 webview 初始化中设置了一些选项,或者类似的东西。

或者,如果在 Safari 中有一个关闭或打开它的标志,那么(至少对于 Mac)我们可以在有和没有 Safari 的情况下运行基准测试,然后在我们的应用程序中比较结果。

0 投票
1 回答
323 浏览

c++ - 最佳像素回读策略

我需要渲染某些场景并将整个图像读回主存储器。我已经搜索过了,似乎大多数显卡会加速渲染,但回读会很慢。经过一番研究,我只发现这张卡提到了“硬件加速像素回读”

另一种方法是进行软件渲染并且不存在回读问题,但是渲染性能会很差。

很可能,我必须同时实现两者才能找到最佳权衡,但我的问题是我在硬件方面还有什么其他选择;我知道 Quadro 是针对建模和设计师细分市场的,这正是这个应用程序的客户目标,这是否意味着我不太可能在其他显卡系列中找到更好的像素回读性能?即:特斯拉或费米,它们甚至没有视频输出顺便说一句

0 投票
2 回答
4764 浏览

javascript - JavaScript 检测是否启用了硬件加速

是否可以检测浏览器是否支持硬件加速页面渲染,是否也可以查看它是否已启用?我知道 Firefox 4、IE9 和 Chrome 支持它,但由于浏览器版本、操作系统和计算机硬件本身的不同,它可能会也可能不会启用。

这可能使用某种形式的 DOM 嗅探吗?

0 投票
1 回答
1873 浏览

android - 严重的蜂窝硬件加速内存问题

我目前正在为蜂窝创建一个应用程序,但我遇到了重大问题,我怀疑是openGL渲染器使用的内存。

情况是我有一个包含多个容器视图的滚动视图(可能有点多,比如 20 个);这些容器视图每个都包含 6 个自定义视图,它们的 layertype 设置为硬件加速this.setLayerType(View.LAYER_TYPE_HARDWARE, null);(如果我不设置它,所有的东西都会被渲染,图像丢失或绘制在错误的地方等)。我还有一个显示视频的视频视图。

现在,当我的应用程序被销毁并再次创建(特别是在旋转时)时,应用程序只是死了一个非常可怕的死亡,没有任何可调试的错误,除了日志显示大量的 GC 和有关图形缓冲区内存不足的其他内容和所有各种死亡的东西:

所以问题是,我怎样才能确保这不会发生?特别是:

  • 我是否需要特别注意缓存等,如何?
  • 我是否必须限制我的硬件加速视图数量?
0 投票
1 回答
1517 浏览

android - Honeycomb android:hardwareAccelerated="true" manifest 设置是否适用于动态壁纸?

我有一个动态壁纸,我最初编写它是为了使用画布渲染手机大小的屏幕。但是当在 Xoom 选项卡上运行它时,帧率会明显下降,这可能是由于屏幕分辨率的提高。

我尝试将android:hardwareAccelerated="true"添加到清单的应用程序元素中,但是帧速率仍然下降。检查 Android 传递给我的 WallpaperEngineHelper 类的 onDraw 方法的画布对象表明画布确实没有加速:

我错过了什么还是应该用 GL 表面重新编码?

0 投票
2 回答
1668 浏览

ffmpeg - 手机中用于硬件加速视频解码的 API 是什么?

我已经看到许多智能手机带有支持 mpeg2 和 h264 的硬件加速视频解码,但与台式机和笔记本电脑系统不同,我不清楚如何与硬件加速进行交互。对于台式机/笔记本电脑,有 DXVA、VDPAU 和 OpenMax。手机支持这些吗?我认为 OpenMax 是,但我不确定它的支持范围有多广。

是否有人熟悉通常用于为运行 Android 或 Windows Phone 的 Snapdragon、Tegra 2 或 Omap 4 等平台编写硬件加速媒体播放器和解码器的内容?我知道 ffmpeg 可以为 arm 编译,我想知道它在那个平台上支持什么样的硬件视频加速。

0 投票
1 回答
767 浏览

java - 我应该为我的 2D 滚动地图使用什么缓冲策略?

所以,我正在用 Java 创建一个 2d 自上而下的游戏。

我正在遵循Java 2D 中的说明:硬件加速 - 第 2 部分 - 缓冲策略以利用硬件加速。

基本上,我在想的是:
我希望能够轻松地向地图添加更多部分。所以我宁愿不走我见过的一些教程中建议的路线(每个地图图块都有一个周围图块的邻接列表;从中心图块开始,使用广度优先搜索填充屏幕)。

相反,我的想法是拥有屏幕大小的图块集合(为简单起见,例如 32x32),并且这些屏幕“块”中的每一个都会有一个引用每个相邻集合的列表。然后,我将为当前屏幕和 8 个相邻屏幕创建一个缓冲区,并在 VRAM 缓冲区中绘制可见部分。

我的问题是,这是解决此问题的正确方法,还是有更好的选择?我浏览了很多教程,但它们似乎都提供了相同的(看似高维护)选项。

看起来这将是一个更好的选择,因为在 tile 级别执行操作将需要 1024 倍的邻接列表。另外,我考虑只将可见部分放在 VRAM 中,而将“当前”屏幕及其相邻屏幕留在标准缓冲区中的原因是因为我是硬件加速的新手,并且不完全确定可以接受多少空间可用。因为 Java 无论如何都试图加速标准缓冲区,理论上它应该与将每个缓冲区放入 VRAM 一样快?

欢迎任何和所有建议!

0 投票
2 回答
1463 浏览

linux - 有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?

有一类应用程序使用 opengl 来提供硬件加速,但不是基于 GUI。但是,在默认情况下,要使用 opengl,似乎必须运行带有 GLX 的 X 服务器(在同一个虚拟终端上),这些应用程序才能运行。

我的具体案例是尝试在无头机器上使用 gstreamer 的 gl 插件,但我问的是一个更普遍的问题。

  • 有没有办法解决这个问题(特别是不修改原始代码)?

我一直在尝试使用 framebuffer 内核模块进行研究,但并没有走得太远。

0 投票
1 回答
588 浏览

java - 画布上的 Java 滚动文本

我正在制作一个需要在 a 上滚动一些文本的应用程序java.awt.Canvas- 目前我正在通过不断调用该方法来执行此操作,并在每次调用该repaint()方法时重写该paint()方法以调整位置,然后绘制字符串Canvas在给定的位置。

这行得通,但是对于如此简单的事情,它确实会通过 CPU 吃掉一些愚蠢的东西。有没有更好的硬件加速方式来完成这项任务?我试过使用VolatileImage,但由于某种原因,性能明显变差了。

我不需要使用Canvas-JPanel我在同一个项目中使用 VLCJ,它需要一个重量级组件来播放视频。