Wine ํ”„๋กœ์ ํŠธ๋Š” Direct3D 1.5 ๊ตฌํ˜„์œผ๋กœ Vkd3d 12์„ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

Wine ํ”„๋กœ์ ํŠธ๋Š” Vulkan ๊ทธ๋ž˜ํ”ฝ API์— ๋Œ€ํ•œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” Direct3D 1.5๋ฅผ ๊ตฌํ˜„ํ•œ vkd3d 12 ํŒจํ‚ค์ง€ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์—๋Š” Direct3D 3 ๊ตฌํ˜„์ด ํฌํ•จ๋œ libvkd12d ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์…ฐ์ด๋” ๋ชจ๋ธ 3 ๋ฐ 4์˜ ๋ณ€ํ™˜๊ธฐ๊ฐ€ ํฌํ•จ๋œ libvkd5d-shader, Direct3D 3 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด์‹์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ libvkd12d-utils ๋ฐ ํฌํŠธ๋ฅผ ํฌํ•จํ•œ ๋ฐ๋ชจ ์˜ˆ์ œ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Direct3D 12์— ๋Œ€ํ•œ glxgears์˜ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” LGPLv2.1์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

libvkd3d ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”ฝ ๋ฐ ๊ณ„์‚ฐ ๊ธฐ๋Šฅ, ๋Œ€๊ธฐ์—ด ๋ฐ ๋ช…๋ น ๋ชฉ๋ก, ํ•ธ๋“ค ๋ฐ ํž™ ํ•ธ๋“ค, ๋ฃจํŠธ ์„œ๋ช…, ๋น„์ˆœ์ฐจ์  ์•ก์„ธ์Šค, ์ƒ˜ํ”Œ๋Ÿฌ, ๋ช…๋ น ์„œ๋ช…, ๋ฃจํŠธ ์ƒ์ˆ˜, ๊ฐ„์ ‘ ๋ Œ๋”๋ง, Clear ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•œ ๋Œ€๋ถ€๋ถ„์˜ Direct3D 12 ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ) ๋ฐ ๋ณต์‚ฌ*().

libvkd3d-shader์—์„œ๋Š” ์…ฐ์ด๋” ๋ชจ๋ธ 4์™€ 5์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ค‘๊ฐ„ SPIR-V ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ •์ , ํ”ฝ์…€, ํ…Œ์…€๋ ˆ์ด์…˜, ์ปดํ“จํŒ… ๋ฐ ๋‹จ์ˆœ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ์…ฐ์ด๋”, ๋ฃจํŠธ ์„œ๋ช… ์ง๋ ฌํ™” ๋ฐ ์—ญ์ง๋ ฌํ™”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์…ฐ์ด๋” ๋ช…๋ น์—๋Š” ์‚ฐ์ˆ , ์›์ž ๋ฐ ๋น„ํŠธ ์—ฐ์‚ฐ, ๋น„๊ต ๋ฐ โ€‹โ€‹๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œ์–ด ์—ฐ์‚ฐ์ž, ์ƒ˜ํ”Œ๋ง, ์ˆ˜์ง‘ ๋ฐ ๋กœ๋“œ ๋ช…๋ น, ์ˆœ์„œ ์—†๋Š” ์•ก์„ธ์Šค ์ž‘์—…(UAV, ์ˆœ์„œ ์—†๋Š” ์•ก์„ธ์Šค ๋ณด๊ธฐ)์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—์„œ:

  • DirectX 9.0๋ถ€ํ„ฐ ์ œ๊ณต๋˜๋Š” HLSL(High-Level Shader Language) ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ์— ๋งŽ์€ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ ๋ฐ ๋ฐฐ์—ด์˜ โ€‹โ€‹Texture2D์™€ ๊ฐ™์€ HLSL ๊ฐœ์ฒด ์œ ํ˜•์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์ง€์› ํฌํ•จ, ๋‚ด์žฅ ํ•จ์ˆ˜ dot(), ldexp() ๋ฐ lerp()์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€, ์…ฐ์ด๋” ๋ชจ๋ธ์— ๋Œ€ํ•œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž "and", "or"์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ 4 5 ๋ฐ "not"๊ณผ ๋ถ€์šธ ์œ ํ˜•์„ ์บ์ŠคํŒ…ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • SPIR-V ๋ฉ€ํ‹ฐํŒŒํŠธ ํ˜•์‹(DXGI_FORMAT)์— ๋Œ€ํ•œ UAV(์ˆœ์„œ ์—†๋Š” ์•ก์„ธ์Šค ํ‘œํ˜„)๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV ์˜ต์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€