Igalia์ Maรญra Canal์ Rust์์ VGEM(Virtual GEM Provider) ๋๋ผ์ด๋ฒ๋ฅผ ๋ค์ ์์ฑํ๋ ํ๋ก์ ํธ๋ฅผ ๋ฐํํ์ต๋๋ค. VGEM์ ์ฝ 400์ค์ ์ฝ๋๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฉฐ ์ํํธ์จ์ด ๋์คํฐํ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด LLVMpipe์ ๊ฐ์ ์ํํธ์จ์ด 3D ์ฅ์น ๋๋ผ์ด๋ฒ์ ๋ํ ๋ฒํผ ์ก์ธ์ค๋ฅผ ๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋์จ์ด์ ๊ตฌ์ ๋ฐ์ง ์๋ GEM(Graphics Execution Manager) ๋ฐฑ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
VGEM์ ์ปค๋ ์์ค์์ ์คํ๋๋ ๋ ๋ฒ์งธ Rust ๊ทธ๋ํฝ ๋๋ผ์ด๋ฒ๊ฐ ๋ ๊ฒ์
๋๋ค(์ฒซ ๋ฒ์งธ๋ Apple M1/M2 ์นฉ์ ์ฌ์ฉ๋๋ Apple AGX GPU์ฉ Asahi DRM(Direct Rendering Manager) ๋๋ผ์ด๋ฒ์์ต๋๋ค). ๊ฐ๋ฐ์ ์ํด์๋ ํ๋ซํผ ์ฅ์น, XArray ์ ํ ๋ฐ DMA ์ธํ๋ฆฌ์ ๊ฐ์ DMA ๊ด๋ จ ์ถ์ํ๋ฅผ ์ฌ์ฉํ์ฌ Rust ์ฝ๋์์ ์๋ํ๋ ์๋ก์ด ๋ฐ์ธ๋ฉ์ ์์ฑํด์ผ ํ์ต๋๋ค. ํ์ฌ ๊ฐ๋ฐ ๋จ๊ณ์์ ๋๋ผ์ด๋ฒ๋ ๊ฑฐ์ ์ค๋น๋์์ผ๋ฉฐ ๋ ๊ฐ์ง ๊ฒ์ฌ(vgem_slow ๋ฐ vgem_basic@unload)๋ฅผ ์ ์ธํ๊ณ ๋๋ถ๋ถ์ IGT ํ
์คํธ๋ฅผ ํต๊ณผํ์ง๋ง IOCTL ์ง์ ๊ฐ์ ์ด ํ์ํฉ๋๋ค.
์ถ์ฒ : opennet.ru