LVRS Storyboard Frame
architecture/rendering-backend.svx
Path: architecture/rendering-backend.svx
렌더링 백엔드 정책
이 문서는 LVRS가 플랫폼 전체에서 그래픽 백엔드 정책을 선택, 검증 및 보고하는 방법을 정의합니다.
부트스트랩 항목
기본 부트스트랩 경로:
lvrs::preApplicationBootstrap(options)lvrs::postApplicationBootstrap(app, options)
위치: backend/runtime/appbootstrap.h, backend/runtime/appbootstrap.cpp
preApplicationBootstrap는 그래픽 백엔드 부트스트랩 및 선택적 렌더링 품질 전역 기본값을 담당합니다.
플랫폼 백엔드 매트릭스
- macOS / iOS: Metal가 필요합니다.
- Windows / Android: Vulkan가 필요합니다.
- Linux: Qt 기본 백엔드 선택입니다.
- 다른 대상: 하드 오버라이드 없음; Qt 기본 백엔드 선택이 사용됩니다.
필요한 백엔드가 사용 불가능한 경우, 부트스트랩는 오류 메시지와 함께 ok == false를 반환합니다.
빌드 시간 시행
CMake 옵션: LVRS_ENFORCE_VULKAN(기본값 ON)
활성화되면 대상 플랫폼에 대해 고정 백엔드 Qt 기능을 확인할 수 없는 경우 구성이 조기에 실패합니다. 이렇게 하면 오류가 런타임에서 구성/구축 단계로 이동됩니다.
런타임 진단
백엔드 부트스트랩가 성공하면, 시작 로그에는 가능한 경우 백엔드 아이덴티티와 로더 세부 정보가 포함됩니다.
예:
LVRS graphics backend: metalLVRS graphics backend: vulkan, loader = ...
RenderQuality와의 상호 작용
configureRenderQualityDefaults가 활성화된 경우, RenderQuality::configureGlobalDefaults()가 앱 구축 전에 적용됩니다. 이렇게 하면 text/ MSAA 기본값이 백엔드 정책에 맞게 정렬됩니다. 전역 기본값은 또한 GPU 파이프라인 캐시 환경 힌트(QSG_RHI_PIPELINE_CACHE_LOAD/SAVE)를 시드합니다. 창당 PSO 캐시 파일 바인딩 및 디바이스 계층 프리셋이 RenderQuality.applyWindow(...) / RenderQuality.applyDeviceTierPreset(...)에 적용됩니다.
실패 처리 지침
부트스트랩가 실패하는 경우:
- 즉시 시동을 중지하고,
- 부트스트랩 오류 메시지를 인쇄합니다.
- 플랫폼 SDK/런타임(Metal/Vulkan) 및 Qt 기능 지원을 확인합니다.
- 명시적 진단을 활성화하여 다시 실행합니다.
관련 파일
backend/runtime/vulkanbootstrap.hbackend/runtime/vulkanbootstrap.cppbackend/runtime/renderquality.hbackend/runtime/renderquality.cpp
실용적인 목표 매트릭스 검증
배송하기 전에 대상 제품군당 하나의 실제 장치/시뮬레이터를 검증하십시오.
- macOS: Metal 백엔드 선택 및 안정적인 시작을 확인합니다.
- iOS: Metal 경로 및 텍스트 렌더링 품질을 확인합니다.
- Windows : Vulkan 로더 검색 및 시작을 확인하십시오.
- Linux: Qt 기본 백엔드 선택으로 안정적인 시작을 확인합니다.
- Android : Vulkan -능동 장치 동작 및 대체 경로 정책을 확인하십시오.
배포 문제 해결
부트스트랩 단계에서 시작이 실패하는 경우:
- 먼저 부트스트랩 오류 문자열을 검사하십시오.
- Qt 빌드에 필수 렌더링 백엔드 기능이 포함되어 있는지 확인하세요.
- Vulkan 대상에 대한 런타임 로더/드라이버 존재를 확인하십시오 ( Windows / Android ),
- 환경 재정의가 호환되지 않는 그래픽 API를 강제하지 않는지 확인하세요.
운영 권장 사항
비프로덕션 빌드 및 CI 스모크 실행에서 백엔드 부트스트랩 진단을 활성화된 상태로 유지합니다. 이는 앱 수준 UI 로직이 포함되기 전에 환경 회귀를 포착합니다.