Windows 10 (Three.js 포함)의 WebGL에서 큰 (4096 x 4096) 텍스처를 초기화 할 때 프로파일 러에서 아무런 변화가없는 동안 크롬 메인 스톨은 상당한 시간 동안 정지합니다 . 여기 WebGL 커다란 텍스처로 인해 크롬에서 숨겨진 스톨 현상이 발생 함
는 4096 X 4096 질감의 예 프로파일입니다 :에서 1500ms 전에 약간의에서 "고원"Three.js를하고 WebGL을에 texImage2D
를 호출하고, 다음 requestAnimationFrame
코드는 전에 두 번 호출됩니다 팬텀 갭이 나타납니다.
이 원인은 무엇입니까? 프로파일 러가보고하지 않는 기본 WebGL 코드가 크롬에서 발생합니까? texImage2D
로 전화하는 데 90ms가 걸리는 이유는 무엇입니까? 나는 GPU에 텍스쳐를 로딩하는 것을 포함한 모든 작업이 거기에서 일어날 것을 기대한다.
Here is a link이 동작을 재현해야합니다.
나는 여기서 무슨 일이 일어나고 있는지 잘 모릅니다. 당신은 고정 된 양의 시간, 루프 또는 아무런 루프도없이 그 업로드로 GPU를 멈춘다. 나는 RAF가 setTimeout보다 더 많은 일을한다고 생각하는데, 이는 당신이하는 일 (렌더링 또는 다른 것)에 완전히 불가 지해야한다. RAF를 사용하면 대기열이 처리 될 때까지 앱 로직을 중단했을 수 있습니다. 시간 제한을 설정하면 아마도 명령을 내릴 수 있습니다. 단지 야생의 추측. – pailhead