Wine 8.0 ๋ฆด๋ฆฌ์Šค ํ›„๋ณด ๋ฐ vkd3d 1.6 ๋ฆด๋ฆฌ์Šค

WinAPI์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์ธ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค ํ›„๋ณด์ธ Wine 8.0์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ฒ ์ด์Šค๋Š” 7.22์›” ์ค‘์ˆœ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์ถœ์‹œ๋ฅผ ์•ž๋‘๊ณ  ๋™๊ฒฐ ๋‹จ๊ณ„์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. Wine 52 ์ถœ์‹œ ์ดํ›„ 538๊ฐœ์˜ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๊ฐ€ ๋งˆ๊ฐ๋˜์—ˆ์œผ๋ฉฐ XNUMX๊ฐœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • Vulkan ๊ทธ๋ž˜ํ”ฝ API์— ๋Œ€ํ•œ ํ˜ธ์ถœ ๋ณ€ํ™˜์„ ํ†ตํ•ด ์ž‘๋™ํ•˜๋Š” Direct3D 3 ๊ตฌํ˜„์ด ํฌํ•จ๋œ vkd12d ํŒจํ‚ค์ง€๊ฐ€ ๋ฒ„์ „ 1.6๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Vulkan ๋ฐ OpenGL์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ณ€ํ™˜๊ธฐ(์ฝํฌ) ์ตœ์ ํ™”๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • WinPrint๋Š” ์ธ์‡„ ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ง€์›์„ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ์กฐ์ด์Šคํ‹ฑ ์ œ์–ดํŒ.
  • printf ํ•จ์ˆ˜ ์ฝ”๋“œ์—์„œ 'long' ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์ž„ ์šด์˜๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ ๋ณด๊ณ ์„œ๋Š” ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž‘๋™๊ณผ ๊ด€๋ จ๋œ ๋‹ซํžŒ ์˜ค๋ฅ˜ ๋ณด๊ณ ์„œ: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

๋˜ํ•œ Vulkan ๊ทธ๋ž˜ํ”ฝ API์— ๋Œ€ํ•œ ํ˜ธ์ถœ ๋ณ€ํ™˜์„ ํ†ตํ•ด ์ž‘์—…ํ•˜๋Š” Direct3D 1.6 ๊ตฌํ˜„์„ ํฌํ•จํ•˜๋Š” vkd3d 12 ํŒจํ‚ค์ง€์˜ Wine ํ”„๋กœ์ ํŠธ ๊ฒŒ์‹œ์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์—๋Š” 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)์˜ ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ณ„์†ํ•ด์„œ ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค. HLSL ๊ด€๋ จ ๊ฐœ์„  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ปดํ“จํŒ… ์…ฐ์ด๋”์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตฌ์กฐ ๋ฐ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ๋ณตํ•ฉ ๊ฐœ์ฒด์˜ ์ดˆ๊ธฐํ™” ๋ฐ ํ• ๋‹น์— ๋Œ€ํ•œ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • UAV(๋น„์ˆœ์ฐจ์  ์•ก์„ธ์Šค)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…์Šค์ฒ˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ์†์„ฑ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚ด์žฅ ํ•จ์ˆ˜ asuint(), length(), Normalize()๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • UAV(์ˆœ์„œ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ์•ก์„ธ์Šค ํ‘œํ˜„) ์„ค๋ช…์ž์— ๋Œ€ํ•œ ์›์ž์  ์ž‘์—…์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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