TECH.ART.FLOW.IO

[YOUTUBE] Automated Testing of Shader Code

jplee 2024. 11. 4. 01:18

Rare는 게임과 엔진 코드에 대한 자동화된 테스트를 작성하는 풍부한 문화를 가지고 있습니다.

 

Welcome to Rare

We are Rare, an Xbox Game Studio. We’re explorers, creators and magic makers. We forge new paths, building worlds and adventures to surprise and delight players around the world.

www.rare.co.uk

 

 'Sea of Thieves' 프로젝트에는 플레이어에게 끊임없이 변화하는 경험을 제공하기 위해 동작을 검증하고 버그를 최소화하기 위해 수십만 개의 자동화된 테스트가 존재합니다. 

이 대규모 테스트 쉬트 중에는 셰이더 코드의 유효성을 검사하고 검증하는 테스트도 포함되어 있습니다. 이 세션에서는 셰이더 코드에 대한 테스트 작성 방법을 설명하는 새로운 희귀 셰이더 테스트 프레임워크를 살펴봅니다. 

또한 셰이더 테스트 프레임워크의 C++ 및 HLSL 구현을 자세히 살펴보고 시스템의 설계 목표와 이러한 설계 목표를 달성하기 위해 C++를 사용하는 방법에 대해 논의합니다.

 

 

A Good Starting Point 에 나오는 Bart Wronski 블로그.

 

How (not) to test graphics algorithms

Intro Siggraph 2019 is sadly over, but as always I came back super inspired and grateful for meeting many friends.  Conferences are mostly not about seeing the presentations – but about all t…

bartwronski.com

 

발표자가 말하는 CQTest.

CQTest는 "Change Quality Test"의 약자로, 소프트웨어 개발에서 변경된 코드나 기능이 기존 시스템의 품질에 미치는 영향을 평가하기 위해 수행하는 테스트입니다. 주로 코드의 수정, 새로운 기능 추가 또는 버그 수정 후에 시스템 전체의 품질이 유지되는지 확인하기 위해 진행됩니다. 이 테스트는 기능, 성능, 보안, 안정성 등 다양한 품질 요소를 점검하며, 회귀 테스트(regression test)와 같은 방식으로 실행되기도 합니다.
CQTest는 변경된 부분의 잠재적 문제를 조기에 발견하고, 시스템이 요구되는 품질 수준을 충족하는지 확인하는 데 목적이 있습니다. 이는 품질을 보장하고 문제 발생 시 신속하게 대처할 수 있게 하여 소프트웨어 개발 및 유지 보수에서 중요한 역할을 합니다.

 

셰이더 테스트.

 

셰이더 CQTest 를 위한 C++ Call Site.

완전 자동화.

 

에러 드리븐 개발

엑스트라 파라메터 셰이더 테스트

 

잘못 된 매크로 구조를 예로 들면 CQTest 프레임워크를 통해 잘못 된 매크로를 변경할 것을 표시합니다. 그것만으로도 내부 문서등을 참조하여 올바르게 수정할 수 있도록 유도합니다.

 

발표자가 공개 하고 있는 HLSL 2021 테스팅 프레임워크.

 

GitHub - KStocky/ShaderTestFramework: An automation testing framework for testing shader code

An automation testing framework for testing shader code - KStocky/ShaderTestFramework

github.com

 

 

위 발표 중에 나온 GDC 2019 에서 발표 된 Automated Testing of Gameplay Features in 'Sea of Thieves' 는 아래 영상 참조.