CBUFFER 정렬


안녕하세요.
Unity 엔진 버전을 6000.0.60f1 -> 6000.3.9f1로 업데이트하면서,
URP 버전도 17.0.3 -> 17.3.0으로 함께 변경하였습니다.
이후 기존 버전에서는 발생하지 않던 화면 글리치 및 깜빡임 현상이 특정 디바이스에서 발생하고 있어 문의드립니다.
동일한 Mali-G72 GPU 계열임에도,
OS / Vulkan 버전 / 드라이버 버전 차이가 있는 환경에서는 정상 동작하고 있습니다.
프로젝트 내 커스텀 Renderer Feature를 모두 비활성화한 상태에서도 동일하게 발생합니다.
따라서 특정 커스텀 Renderer Feature 구현 이슈보다는,
URP 기본 렌더링 경로 / Vulkan 경로 / 드라이버 호환성 쪽 가능성을 우선 의심하고 있습니다.
OpenGL ES로 강제 구동 시에는 정상 동작합니다.
다만 현재 프로젝트에서 사용 중인 GPU Instancing 기반 에셋/구현이 OpenGL ES 경로에서는 정상적으로 동작하지 않아, Vulkan 사용이 필요한 상황입니다.
문의 내용**
아래 항목들에 대해 확인 부탁드립니다.
URP 17.3.0과 Mali-G72 / Android 10 / Vulkan 1.1.0 조합에서 알려진 호환성 이슈가 있는지
Unity 6000.0.60f1 + URP 17.0.3 대비 6000.3.9f1 + URP 17.3.0에서
Vulkan 렌더링 경로 또는 URP 내부 처리 방식에 관련 변경 사항이 있는지
해당 현상을 Unity/URP 차원의 regression 또는 known issue로 볼 수 있는지
추가로 확인해야 할 권장 설정, 우회 방법, 또는 검증 포인트가 있는지
필요하시면 재현 영상, 캡처 이미지, 추가 테스트 결과도 함께 전달드리겠습니다.
확인 부탁드립니다.
감사합니다.
위 셰이더들에서는 UnityPerMaterial CBUFFER 내 타입 구성을 float 계열 위주로 단순화했고,
bitmask 관련 값은 CBUFFER에서는 float로 보관한 뒤, 실제 비트 연산이 필요한 지점에서만 (int) 캐스트하도록 수정했습니다.
해당 수정 이후, 기존에 발생하던 플리커링 / 깜빡임 및 렌더링 이상 현상은 재현되지 않고 있습니다.
이전 버전에서는 동일 코드가 문제 없이 동작했으나,
CBUFFER 구성을 정리한 이후 문제가 재현되지 않고 있어, 버전 업 과정에서 CBUFFER 관련 셰이더 호환성 문제가 있었을 가능성을 의심하고 있습니다.
VRS
미팅 중 문의하셨던 VRS 비활성화 방법에 대해 안내드립니다.
VRS는 특정 렌더 피처를 추가하고 관련 설정을 진행하셔야 동작하는 기능입니다. 아래 Sample과 같이 설정하신 것이 아니라면 기본적으로 적용되지 않으므로, 별도로 비활성화하실 필요는 없습니다.
확인 과정에서 현재 Compatibility Mode를 사용하고 계신 것을 확인하여 관련 안내를 드립니다.
이미 인지하고 계시겠지만, Compatibility Mode는 프로젝트 업그레이드를 위한 임시 솔루션으로 제공되고 있으며, 향후 릴리스에서 제거될 예정입니다. 가능하시다면 커스텀 이펙트와 패스를 Render Graph로 마이그레이션하시는 것을 권장드립니다.
관련 내용은 아래 Discussion 링크에서 확인하실 수 있습니다.