Hacker News하드웨어 · 시스템

Voronoi 셰이더 크로스 플랫폼 버그, 부동소수점 연산이 범인

원제 When the fractional part of a float fixes your shader

102 포인트댓글 18
Key Point

GPU 모델별로 다른 부동소수점 연산 결과가 셰이더 컴파일을 타게 되면서 발생하는 크로스 플랫폼 버그의 사례를 보여주며, 그래픽 프로그래머가 겪을 수 있는 재현 어려운 문제의 디버깅 방법을 제시한다.

핵심 요약

  • 음악 영상 배경용 Voronoi 다이어그램 셰이더를 구현했으나, RTX 4070 윈도우 PC에서만 애니메이션에 끊김 현상이 발생했다.
  • 노이즈 함수가 호출되는 부분에서 문제가 발생했으며, 인텔 통합 GPU와 RTX 2070에서는 정상 작동했으나 RTX 4070에서만 버그가 나타났다.
  • 원인은 셰이더 컴파일 과정에서 노이즈 함수 입력값의 부동소수점 연산 결과가 기기별로 다르게 최적화되면서 발생한 수치 오류로 추정된다.
  • 글은 버그 재현 과정, 다양한 하드웨어 테스트 결과, 셰이더 디버깅 도구 사용 방법을 상세히 기록한 일주일간의 디버깅 기록이다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗