OffscreenCanvas를 사용할 수 없나요? 플랫폼 및 환경별 문제 해결
문제 해결브라우저 호환성OffscreenCanvas
나타나는 증상
Any3D에서 "현재 브라우저가 OffscreenCanvas를 지원하지 않습니다."라는 메시지가 표시됩니다. 이는 Worker 경로 3종 세트 중 하나로, 누락될 경우 텍스처 압축 등 Worker 내에서 WebGL2를 사용하여 인코딩해야 하는 작업이 완전히 실행되지 않습니다.
OffscreenCanvas를 사용하면 Web Worker 내에서 캔버스를 생성하고 WebGL 컨텍스트를 가져와, 페이지를 차단하지 않고 백그라운드에서 GPU 작업을 수행할 수 있습니다.
일반적인 원인
| 원인 | 일반적인 상황 |
|---|---|
| 브라우저/WebView가 너무 오래됨 | Chrome < 69, Safari < 16.4, 오래된 Android WebView |
| 하드웨어 가속 꺼짐 | Windows/macOS 절전 또는 정책에 의해 GPU 비활성화 |
| 기업 정책 | GPO에서 GPU 비활성화, MDM에서 그래픽 기능 제한 |
| 내장 WebView | 카카오톡, 기업 앱, 오래된 Electron 셸 |
| 네트워크 계층 | 드물게 발생; 대부분 API 자체 문제보다는 스크립트 로드 실패 |
플랫폼별 문제 해결
Windows
- Chrome / Edge: 설정 → 시스템 → "하드웨어 가속 사용" 켜기 → 브라우저를 완전히 종료하고 다시 시작합니다.
- 그래픽 드라이버: 노트북에서 듀얼 그래픽을 사용하는 경우, 브라우저가 외장 그래픽 카드를 사용하도록 설정합니다(NVIDIA 제어판 / AMD Software).
- 그룹 정책: "하드웨어 가속 비활성화"와 같은 정책은 OffscreenCanvas WebGL 컨텍스트 생성에 실패하게 합니다.
- 원격 데스크톱(RDP): 일부 RDP 세션에서 GPU 기능이 제한될 수 있으므로, 로컬 로그인으로 비교 테스트합니다.
macOS
- Safari 16.4+ 또는 Chrome 최신 버전을 사용합니다.
- 시스템 설정 → 배터리 → 저전력 모드가 GPU 스케줄링을 낮출 수 있습니다. 전원을 연결하고 다시 시도합니다.
- 스크린 타임은 일반적으로 OffscreenCanvas를 직접 비활성화하지 않지만, MDM에서 그래픽 API를 제한하는 경우 IT 부서에 문의하세요.
Linux
- Mesa/독점 드라이버가 정상인지 확인하고, Wayland와 X11 모두 최신 Chrome으로 테스트합니다.
- 헤드리스 서버의 원격 브라우저는 가상 GPU가 필요합니다(개인 사용자에게는 드문 경우).
iOS / iPadOS
- Safari는 시스템 업데이트와 함께 업데이트됩니다(iOS 16.4+부터 OffscreenCanvas 지원이 비교적 완전합니다).
- 앱 내 WebView는 시스템 Safari보다 뒤처질 수 있습니다. Safari에서 링크를 열어보세요.
- 학교 iPad의 관리 모드에서는 오래된 시스템이 잠겨 있을 수 있으므로, 관리자에게 업데이트를 요청하세요.
Android
- Chrome과 Android System WebView를 업데이트합니다.
- 국내 브라우저(예: 네이버 웨일)의 호환 모드에서는 지원되지 않을 수 있습니다. → 빠른 모드로 전환하거나 Chrome을 사용하세요.
- 저사양 기기의 GPU 드라이버가 너무 오래된 경우: "절전 모드"를 끄고 다시 시도합니다.
네트워크, VPN 및 기업 환경
OffscreenCanvas는 로컬 API이므로 VPN의 직접적인 영향을 받지 않습니다. 그러나 VPN이 브라우저를 '안전 모드'로 강등시키거나 기업 확장 프로그램이 스크립트를 삽입하는 경우 간접적으로 실패할 수 있습니다.
- VPN을 끄고 비교합니다.
- 기업 브라우저가 '소프트웨어 렌더링'을 강제하는지 확인합니다.
- iframe 내에서 임베드된 경우, 외부에서 Worker 내 WebGL을 차단하지 않는지 확인합니다.
자녀 보호 및 관리 기기
- Google Family Link / 스크린 타임: OffscreenCanvas를 직접 비활성화하는 경우는 거의 없습니다. 오히려 브라우저 업데이트를 차단하여 API가 너무 오래되는 것이 더 일반적입니다. 시스템 자동 업데이트를 허용하세요.
- 시험장/도서관 모드: 맞춤형 브라우저를 사용할 수 있으므로, 개인 기기로 전환하는 것이 좋습니다.
단계별 수정 (일반)
- 브라우저를 위 표의 최소 버전 이상으로 업데이트합니다.
- 하드웨어 가속을 켜고 브라우저를 다시 시작합니다.
- 시스템 브라우저를 사용하고, 앱 내 WebView는 사용하지 마세요.
- WebGL2 오류도 함께 발생하는 경우, 먼저 WebGL2 수정 가이드를 처리하세요.
빠른 자가 테스트
typeof OffscreenCanvas !== "undefined";
false가 반환되면 현재 환경에서 이 API를 지원하지 않는 것입니다.
요약
OffscreenCanvas 누락은 주로 오래된 브라우저/WebView, 하드웨어 가속 꺼짐, Windows 원격 또는 기업 GPU 정책에서 발생합니다. 플랫폼별로 GPU 가속을 켜고, WebView를 업데이트하고, 시스템 브라우저를 사용하면 일반적으로 Worker 내 GPU 인코딩 기능이 복원됩니다.