Kris

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

  1. Chrome / Edge: 설정 → 시스템 → "하드웨어 가속 사용" 켜기 → 브라우저를 완전히 종료하고 다시 시작합니다.
  2. 그래픽 드라이버: 노트북에서 듀얼 그래픽을 사용하는 경우, 브라우저가 외장 그래픽 카드를 사용하도록 설정합니다(NVIDIA 제어판 / AMD Software).
  3. 그룹 정책: "하드웨어 가속 비활성화"와 같은 정책은 OffscreenCanvas WebGL 컨텍스트 생성에 실패하게 합니다.
  4. 원격 데스크톱(RDP): 일부 RDP 세션에서 GPU 기능이 제한될 수 있으므로, 로컬 로그인으로 비교 테스트합니다.

macOS

  1. Safari 16.4+ 또는 Chrome 최신 버전을 사용합니다.
  2. 시스템 설정 → 배터리 → 저전력 모드가 GPU 스케줄링을 낮출 수 있습니다. 전원을 연결하고 다시 시도합니다.
  3. 스크린 타임은 일반적으로 OffscreenCanvas를 직접 비활성화하지 않지만, MDM에서 그래픽 API를 제한하는 경우 IT 부서에 문의하세요.

Linux

  1. Mesa/독점 드라이버가 정상인지 확인하고, Wayland와 X11 모두 최신 Chrome으로 테스트합니다.
  2. 헤드리스 서버의 원격 브라우저는 가상 GPU가 필요합니다(개인 사용자에게는 드문 경우).

iOS / iPadOS

  1. Safari는 시스템 업데이트와 함께 업데이트됩니다(iOS 16.4+부터 OffscreenCanvas 지원이 비교적 완전합니다).
  2. 앱 내 WebView는 시스템 Safari보다 뒤처질 수 있습니다. Safari에서 링크를 열어보세요.
  3. 학교 iPad의 관리 모드에서는 오래된 시스템이 잠겨 있을 수 있으므로, 관리자에게 업데이트를 요청하세요.

Android

  1. ChromeAndroid System WebView를 업데이트합니다.
  2. 국내 브라우저(예: 네이버 웨일)의 호환 모드에서는 지원되지 않을 수 있습니다. → 빠른 모드로 전환하거나 Chrome을 사용하세요.
  3. 저사양 기기의 GPU 드라이버가 너무 오래된 경우: "절전 모드"를 끄고 다시 시도합니다.

네트워크, VPN 및 기업 환경

OffscreenCanvas는 로컬 API이므로 VPN의 직접적인 영향을 받지 않습니다. 그러나 VPN이 브라우저를 '안전 모드'로 강등시키거나 기업 확장 프로그램이 스크립트를 삽입하는 경우 간접적으로 실패할 수 있습니다.

  • VPN을 끄고 비교합니다.
  • 기업 브라우저가 '소프트웨어 렌더링'을 강제하는지 확인합니다.
  • iframe 내에서 임베드된 경우, 외부에서 Worker 내 WebGL을 차단하지 않는지 확인합니다.

자녀 보호 및 관리 기기

  • Google Family Link / 스크린 타임: OffscreenCanvas를 직접 비활성화하는 경우는 거의 없습니다. 오히려 브라우저 업데이트를 차단하여 API가 너무 오래되는 것이 더 일반적입니다. 시스템 자동 업데이트를 허용하세요.
  • 시험장/도서관 모드: 맞춤형 브라우저를 사용할 수 있으므로, 개인 기기로 전환하는 것이 좋습니다.

단계별 수정 (일반)

  1. 브라우저를 위 표의 최소 버전 이상으로 업데이트합니다.
  2. 하드웨어 가속을 켜고 브라우저를 다시 시작합니다.
  3. 시스템 브라우저를 사용하고, 앱 내 WebView는 사용하지 마세요.
  4. WebGL2 오류도 함께 발생하는 경우, 먼저 WebGL2 수정 가이드를 처리하세요.

빠른 자가 테스트

typeof OffscreenCanvas !== "undefined";

false가 반환되면 현재 환경에서 이 API를 지원하지 않는 것입니다.

요약

OffscreenCanvas 누락은 주로 오래된 브라우저/WebView, 하드웨어 가속 꺼짐, Windows 원격 또는 기업 GPU 정책에서 발생합니다. 플랫폼별로 GPU 가속을 켜고, WebView를 업데이트하고, 시스템 브라우저를 사용하면 일반적으로 Worker 내 GPU 인코딩 기능이 복원됩니다.

후원하기