Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 检测QCView中的石英成分是否将通过软件或硬件呈现_Performance_Cocoa_Quartz Graphics_Quartz Composer - Fatal编程技术网

Performance 检测QCView中的石英成分是否将通过软件或硬件呈现

Performance 检测QCView中的石英成分是否将通过软件或硬件呈现,performance,cocoa,quartz-graphics,quartz-composer,Performance,Cocoa,Quartz Graphics,Quartz Composer,我有一种感觉,有可可石英成分和GPU的组合,GPU无法处理,它们依赖于软件渲染器,即使核心图像正常“加速”。我如何发现这种情况 或者更一般地说,在没有实际播放构图和测量FPS的情况下,如何检测机器动力不足,无法处理特定大小的特定构图 (通过在隐藏窗口中播放构图来测量FPS不太可能奏效,因为QCView可能会检测到这种情况并优化整个操作或其中的一部分。即使今天没有这样做,它也可能在苹果的下一次更新中开始这样做——这是一个不可靠的解决方案。) 更新:为了更彻底,我确实编写了一些代码,在一个有序但大小

我有一种感觉,有可可石英成分和GPU的组合,GPU无法处理,它们依赖于软件渲染器,即使核心图像正常“加速”。我如何发现这种情况

或者更一般地说,在没有实际播放构图和测量FPS的情况下,如何检测机器动力不足,无法处理特定大小的特定构图

(通过在隐藏窗口中播放构图来测量FPS不太可能奏效,因为QCView可能会检测到这种情况并优化整个操作或其中的一部分。即使今天没有这样做,它也可能在苹果的下一次更新中开始这样做——这是一个不可靠的解决方案。)


更新:为了更彻底,我确实编写了一些代码,在一个有序但大小合适的窗口中测试以全分辨率渲染合成,试图通过
[self startRendering]强制渲染;[自拍照图像];[自停止渲染]。这花费了一段时间,起初看起来是合理的,直到结果表明速度慢的机器比速度快的机器运行此测试更快实际上,速度慢的机器渲染构图的速度仅为2.24 FPS,而速度快的机器渲染构图的速度仅为27 FPS。

我猜你是在问,这样你就可以为较弱的系统制作更简单的回退动画了

一个选项可能是检查用户的硬件字符串,如下所述:

glGetString可以返回GL\u供应商、GL\u渲染器、GL\u版本或GL\u扩展。理论上,您可以使用GL_供应商来确定Intel GMA的速度太慢,或者将GL_渲染器与已知性能差的GPU列表进行比较。如果只为10.6+编写代码,只需与Intel Mac中使用的GPU进行比较,因此列表不会太长


这可能不是您正在寻找的优雅的解决方案,但它应该可以做到这一点。如果用户愿意,我还可以为他们提供一个覆盖选项,让他们选择质量更高或更低的图形。

苹果公司还有一些名为glcheck.c的示例代码。尽管如此,基于列表的工作还是让人感觉很不舒服。如果列表不完整,包括所有已知的慢速Mac GPU,该怎么办?甚至全面禁止英特尔也感觉不对——也许在5年左右的时间里,他们就会赶上运行今天的应用程序还没有找到更好的解决办法。嗯,好吧,有些猪看起来好像在飞——沙质桥IGP似乎是英伟达320米芯片组的一个不错的竞争者。但你是对的,这是相当粗俗的。也许您可以对照GL_版本或GL_扩展进行检查,以确定GPU的新功能或功能。或者,以某种方式将GL_供应商与版本或扩展相结合,以实现“更智能”的确定。老实说,我会尝试让构图测试自己的FPS并相应地调整自己,但这本身可能会导致一些速度问题。