OpenGL ๋ฐ Vulkan API์ ๋ฌด๋ฃ ๊ตฌํ ์ถ์ - . Mesa 19.3.0 ๋ธ๋์น์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์คํ์ ์ํ์ ๋๋ค. ์ฝ๋๊ฐ ์ต์ข ์์ ํ๋๋ฉด ์์ ์ ์ธ ๋ฒ์ 19.3.1์ด ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค. ๋ฉ์ฌ 19.3์์ Intel GPU(i4.6, Iris ๋๋ผ์ด๋ฒ)์ ๋ํ OpenGL 965 ์์ ์ง์, AMD(r4.5, RadeonSi) ๋ฐ NVIDIA(NVC600) GPU์ ๋ํ OpenGL 0 ์ง์, ๊ทธ๋ฆฌ๊ณ Intel ๋ฐ AMD ์นด๋์ ๋ํ Vulkan 1.1 ์ง์. ์ด์ OpenGL 4.6 ์ง์ ๋ณ๊ฒฝ ์ฌํญ๋ ์ ์ฉ๋์์ต๋๋ค. Radeonsi ๋๋ผ์ด๋ฒ์๋ ํฌํจ๋์์ง๋ง Mesa 19.3์๋ ํฌํจ๋์ง ์์์ต๋๋ค.
:
- RADV(AMD ์นฉ์ฉ Vulkan ๋๋ผ์ด๋ฒ)์ ๋ํ ์๋ก์ด ์ ฐ์ด๋ ์ปดํ์ผ ๋ฐฑ์๋๊ฐ ์ ์๋์์ต๋๋ค.Valve์์ LLVM ์ ฐ์ด๋ ์ปดํ์ผ๋ฌ์ ๋์์ผ๋ก ๊ฐ๋ฐ ์ค์ธ "ACO"๋ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ฐ์ด๋์ ์ต์ ํ๋ ์ฝ๋ ์์ฑ์ ๋ณด์ฅํ๊ณ ๋งค์ฐ ๋น ๋ฅธ ์ปดํ์ผ ์๋๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ACO๋ C++๋ก ์์ฑ๋์์ผ๋ฉฐ, JIT ์ปดํ์ผ์ ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ฌ ๊ฐ๋ฐ๋์์ต๋๋ค. ๋ํ, ํฌ์ธํฐ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ํผํ๊ณ ๋ฐ๋ณต ์์ ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฝ๋์ ์ค๊ฐ ํํ์ ์ ์ ์ผ๋ก SSA(Static Single Assignment)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ ฐ์ด๋์ ๋ฐ๋ผ ๋ ์ง์คํฐ๋ฅผ ์ ๋ฐํ๊ฒ ์ฌ์ ๊ณ์ฐํ์ฌ ๋ ์ง์คํฐ ํ ๋น์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. Vega 8, Vega 9, Vega 10 ๋ฐ Navi 10 GPU์์ ํ๊ฒฝ ๋ณ์ "RADV_PERFTEST=aco"๋ฅผ ์ค์ ํ์ฌ ACO๋ฅผ ํ์ฑํํ ์ ์์ต๋๋ค.
- ์ฝ๋๋ฒ ์ด์ค์ ํฌํจ๋ Gallium3D ๋๋ผ์ด๋ฒ Vulkan ์์ OpenGL API๋ฅผ ๊ตฌํํ Zink๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ ๋๋ผ์ด๋ฒ๊ฐ Vulkan API๋ง ์ง์ํ๋๋ก ์ ํ๋์ด ์์ด๋ ํ๋์จ์ด ๊ฐ์ OpenGL์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Vulkan ๋๋ผ์ด๋ฒ ANV์ OpenGL ๋๋ผ์ด๋ฒ iris๋ 12์ธ๋ ์ธํ ์นฉ(Tiger Lake, gen12)์ ๋ํ ์ด๊ธฐ ์ง์์ ๊ตฌํํฉ๋๋ค. Tiger Lake ์ง์์ ์ํ ๊ตฌ์ฑ ์์์ธ Linux ์ปค๋์ ๋ฆด๋ฆฌ์ค 5.4๋ถํฐ ํฌํจ๋ฉ๋๋ค.
- i965 ๋ฐ iris ๋๋ผ์ด๋ฒ๋ SPIR-V ์ ฐ์ด๋์ ์ค๊ฐ ํํ์ ์ง์ํ์ฌ ์ด๋ฌํ ๋๋ผ์ด๋ฒ๊ฐ ์์ ํ ์ง์์ ๋ฌ์ฑํ ์ ์๋๋ก ํฉ๋๋ค. ;
- RadeonSI ๋๋ผ์ด๋ฒ๋ AMD Navi 14 GPU์ ๋ํ ์ง์์ ์ถ๊ฐํ๊ณ ๋น๋์ค ๋์ฝ๋ฉ ๊ฐ์์ ๊ฐ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด H.8 ๋ฐ VP265 ํ์์ 9K ๋น๋์ค ๋์ฝ๋ฉ ์ง์์ด ์ถ๊ฐ๋ฉ๋๋ค.
- Vulkan ๋๋ผ์ด๋ฒ RADV๊ฐ ๋ชจ๋์ ๋ํ ์ง์์ ์ถ๊ฐํ์ต๋๋ค. ์ ฐ์ด๋ ์ปดํ์ผ์ ์ํด ์์๋ ์ค๋ ๋๋ seccomp ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ฒฉ๋ฆฌ๋ฉ๋๋ค. ์ด ๋ชจ๋๋ RADV_SECURE_COMPILE_THREADS ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฑํ๋ฉ๋๋ค.
- AMD ์นฉ ๋๋ผ์ด๋ฒ์์ AMD GPU ์ปค๋ ๋ชจ๋ ํ์ฑํ GPU๋ฅผ ์ฌ์ค์ ํ๋ ค๋ฉด
- AMD Radeon APU๊ฐ ์ฅ์ฐฉ๋ ์์คํ ์ ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค. Intel GPU์ฉ Gallium3D Iris ๋๋ผ์ด๋ฒ์ ์ฑ๋ฅ๋ ํฅ์๋์์ต๋๋ค.
- ์ํํธ์จ์ด ๋ ๋๋ง์ ์ ๊ณตํ๋ Gallium3D์ LLVMpipe ๋๋ผ์ด๋ฒ์์ ์ปดํจํธ ์ ฐ์ด๋ ์ง์
- ๋์คํฌ์ ์ ฐ์ด๋ ์บ์ฑ ์์คํ CPU ์ฝ์ด๊ฐ 4๊ฐ ์ด์์ธ ์์คํ ์ ๊ฒฝ์ฐ
- MSVC์ MinGW๋ฅผ ์ฌ์ฉํ์ฌ Windows์์ ์ปดํ์ผํ ์ ์๋๋ก Meson ๋น๋ ์์คํ ์ ํ์ฑํํ์ต๋๋ค. Windows๊ฐ ์๋ ์์คํ ์์ ๋น๋ํ ๋ scons ์ฌ์ฉ์ด ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
- EGL ํ์ฅ EGL_EXT_image_flush_external์ ๊ตฌํํ์ต๋๋ค.
- ์๋ก์ด OpenGL ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค:
- i965 ๋ฐ iris ๋๋ผ์ด๋ฒ์ฉ
- _i965 ๋ฐ iris ๋๋ผ์ด๋ฒ์ฉ
- i965 ๋ฐ iris ๋๋ผ์ด๋ฒ์ฉ
- RADV Vulkan ๋๋ผ์ด๋ฒ์ ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(AMD ์นด๋์ฉ):
- ANV Vulkan ๋๋ผ์ด๋ฒ์ ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(Intel ์นด๋์ฉ):
์ถ๊ฐ์ ์ผ๋ก ์ฃผ๋ชฉํ ์ ์๋ ๊ฒ์ AMD์ ์ํด APU "Vega"์ ์ํคํ ์ฒ์ ๋ฐ๋ฅด๋ฉด 7nm ๋ช ๋ น์ GCN(Graphics Core Next) ๋ง์ดํฌ๋ก ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ถ์ฒ : opennet.ru
