2010-06-05 5 views
2

몇 가지 데모와 자습서로 WebGL을 지원하여 Firefox와 Chromium의 야간 빌드를 확인하고 있습니다.하지만 그로 인해 발생하는 매우 높은 CPU 부하에 대해 궁금해 할 수는 없습니다.WebGL에서 높은 CPU 사용률?

간단한 데모 like this one은 듀얼 코어의 60 %에서 지속됩니다. this one의 큰 버전은 CPU를 100 %로 최대화하고 일부 눈에 보이는 프레임 손실이 있습니다.
크롬이 파이어 폭스보다 약간 더 좋지만 그렇지 않은 것 같습니다. 나는 이것이 데스크톱 애플리케이션이라면 CPU 부하가 무시할 수있을 것이라고 확신한다.

그래서 여기서 어떻게됩니까? 뭐하는거야? 이것들의 간단한 스크립트를 실행하는 것은 그렇게 까다로운 일이 아닙니다. 그것은 보안 또는 무언가의 여분의 계층인가?


편집 : 그래서 어쩌면 내가 잘못했다 http://rrrola.wz.cz/files/puls_win.zip

이 실행 (전체 화면) 지속적인 48 %에 CPU를 얻을 ... : 여기 WebGL을 위해 porded 된 원래 데모를 발견

+0

컨텍스트 스위치가 여전히 비싸다고 생각합니다. JS에서 Native에서 GPU로. –

+0

GPU로 컨텍스트 전환 하시겠습니까? 응? CPU와 GPU 간의 동기화를 의미합니까? OpenGL이 명령어를 버퍼에 덤프하여 GPU로 스트리밍하면, GPU는 렌더링의 지정된 지점에서 버퍼 스왑을 사용하여 결과를 화면에 동기화하지만 CPU는 그와 관련이 없습니다 조금도. –

+0

@Ben 그러나 모든 opengl 호출시 커널에 컨텍스트 스위치가 있습니다 ... – shoosh

답변

4

사실 webgl은 느립니다. 그것이 새로운 것이라면 소프트웨어 구성자를 사용합니다. 기본적으로 GPU-CPU-GPU는 단 한 프레임 만 호출합니다. 파이어 폭스와 웹킷 둘 모두에서 작업 중입니다.

+2

EWGL이 여기에서 말하는 것을 두 번째로 보겠습니다. WebGL 스펙에서는 렌더링 된 3D 캔버스를 페이지의 다른 HTML 요소와 합성 할 수 있어야합니다 (예 : 텍스트가 맨 위에 나타날 수 있도록).즉, GPU가 장면을 렌더링 한 다음 CPU가 복사본을 가져 와서 렌더링 된 HTML과 결합한 다음 다시 그래픽 카드로 보내서 표시합니다. 따라서 모든 프레임에 GPU-CPU-GPU가 있습니다. 이것은 비싸다. 브라우저 작성자가 문제를 해결하고 있습니다. IIUC에서는 GPU가 합성 작업을 수행합니다. –

-1

그래픽 렌더링은 CPU를 많이 사용하므로 GPU가 내장 된 비디오 카드가있어 대신 작업을로드 할 필요가 없습니다. 나는 당신의 데모를 시험해보고 그들에게 괜찮은 비디오 카드가 설치된 내 컴퓨터에 어떻게 가는지 볼 것입니다.

+0

이 컴퓨터는 nVidia 8600 이상을 처리 할 수 ​​있습니다. – shoosh

+0

좋아 다시는 그렇게하지 않을 것입니다. LOL. 가난한 비디오 카드의 GPU가 녹아 내리고있었습니다. 그래, WebGL은 여전히 ​​진행중인 작업이며 더 많은 최적화가 필요하다고 말합니다. btw 내 CPU가 전혀 많이 망치되지 않았어. 나는 nVidia 7900GS를 사용하고 있으므로 업그레이 드를위한 시간이라고 생각합니다 : ( – Khorkrak

1

성능 문제를 재현 할 수 없습니다. 첫 번째 작업은 Core i5의 코어 한 개를 사용하여 98-100fps로 실행됩니다. 두 번째는 한 코어의 약 50 %를 사용합니다.

이것은 Chrome dev 채널, Windows 7 64 비트, Radeon HD 5770, 즉 적당히 강력한 최신 기계입니다.

많은 반복이있을 때 작은 코드 크기는 빠르지 않습니다 (이러한 데모에는 많은 폴리곤이있는 것으로 나타남).

+0

기본적으로 전체 코어를 사용하여 전혀 아무것도하지 않는 것이 이상하다는 것을 알지 못합니까? – shoosh

관련 문제