2011-02-05 4 views
0

코코아 석영 구성과 GPU에서 처리 할 수없고 소프트웨어 렌더러로 폴링하는 GPU 조합이 있다고 느낍니다. 코어 이미지가 정상적으로 "가속화 된"경우 그런 상황을 어떻게 감지 할 수 있습니까?QCView의 Quartz Composition을 소프트웨어 또는 하드웨어를 통해 렌더링할지 여부를 감지합니다.

또는 더 일반적으로 실제로 구성을 재생하고 FPS를 측정하지 않고 컴퓨터가 특정 크기의 특정 구성을 처리하기에는 너무 약함을 어떻게 감지합니까?

(숨겨진 창에서 컴포지션을 재생하여 FPS를 측정하면 QCView가 해당 상황을 감지하여 전체 작업 또는 그 일부를 최적화 할 수 있기 때문에 작동하지 않을 수 있습니다.

업데이트 : 업데이트 : 전체 코드로 작성된 코드를 전체 해상도로 테스트 해 보았으나 순서는 바르게 설정되었지만 제대로 작성되었는지 테스트 해 보았습니다. [self startRendering];[self snapshotImage];[self stopRendering];으로 렌더링을 강제 실행하려고 시도했습니다. 이것은 느린 기계가 빠를 때까지 빠른 속도로이 시험을 수행하는 것이 빠를 때까지 처음에는 적당하다고 생각한 시간이 걸렸습니다. ;) 실제로 느린 컴퓨터는 빠른 속도로 2.24 FPS에서 27 FPS로 구성을 렌더링합니다.

답변

1

약한 시스템에 대해 더 간단한 대체 애니메이션을 만들 수 있도록 요청하신 것 같습니다.

여기에 언급 된 것처럼 사용자의 하드웨어 문자열을 확인할 수도 있습니다. GPU Chipset Detection.

glGetString은 GL_VENDOR, GL_RENDERER, GL_VERSION 또는 GL_EXTENSIONS를 반환 할 수 있습니다. 이론적으로 GL_VENDOR를 사용하여 인텔 GMA를 너무 느리게 식별하거나 GL_RENDERER를 알려진 성능이 낮은 GPU 목록과 비교할 수 있습니다. 10.6 이상의 코드 만 작성하는 경우 Intel Mac에서 사용되는 GPU와 비교하면되므로 목록이 너무 길어서는 안됩니다.

이것은 당신이 찾고있는 멋진 해결책은 아니지만 트릭을 수행해야합니다. 또한 원하는 경우 더 높은 품질의 그래픽이나 낮은 품질의 그래픽을 선택할 수있는 재정의 기능을 사용자에게 제공합니다.

+0

Apple의 glcheck.c라는 샘플 코드도 있습니다. 그래도 목록을 기반으로하는 작업은 너무 익숙한 느낌입니다. 목록이 불완전하고 알려진 모든 저속 Mac GPU를 포함하는 경우 어떻게해야합니까? 인텔을 전면적으로 금지하는 것조차도 잘못되었다고 생각합니다. 아마 5 년 정도 지나면 오늘의 앱을 돌릴만큼 충분히 잡힐 것입니다. ;) 아직 더 나은 해결책을 찾지 못했습니다. –

+0

Heh- 음, 일부 돼지는 날아 다니는 것처럼 보입니다. Sandy Bridge IGP는 C2Duo 용 NVIDIA 320m 칩셋과 경쟁하지 않습니다. 그러나 당신 말이 맞습니다. 그것은 오히려 해킹입니다. 아마도 GL_VERSION 또는 GL_EXTENSIONS를 확인하여 GPU가 얼마나 새롭고 강력한지를 판단 할 수 있습니다. 또는 GL_VENDOR와 버전 또는 확장을 결합하여 어떻게 든 더 똑똑한 결정을 내릴 수 있습니다. 솔직히, 나는 컴포지션이 자신의 FPS를 테스트하고 적절하게 조정하도록 할 것이지만 속도 문제 자체를 일으킬 수 있습니다. – shrakner