Weston ๋ณตํ•ฉ ์„œ๋ฒ„ 7.0 ๋ฆด๋ฆฌ์Šค

๊ฒŒ์‹œ ๋จ ๋ณตํ•ฉ ์„œ๋ฒ„์˜ ์•ˆ์ •์ ์ธ ์ถœ์‹œ ์›จ์Šคํ„ด 7.0, ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์› ์ถœํ˜„์— ๊ธฐ์—ฌํ•˜๋Š” ๊ธฐ์ˆ  ๊ฐœ๋ฐœ ์›จ์ผ ๋žœ๋“œ Enlightenment, GNOME, KDE ๋ฐ ๊ธฐํƒ€ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ. Weston์˜ ๊ฐœ๋ฐœ ๋ชฉํ‘œ๋Š” ์ž๋™์ฐจ ์ธํฌํ…Œ์ธ๋จผํŠธ ์‹œ์Šคํ…œ, ์Šค๋งˆํŠธํฐ, TV ๋ฐ ๊ธฐํƒ€ ์†Œ๋น„์ž ์žฅ์น˜์šฉ ํ”Œ๋žซํผ๊ณผ ๊ฐ™์€ ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ ๋ฐ ์ž„๋ฒ ๋””๋“œ ์†”๋ฃจ์…˜์—์„œ Wayland๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ํ’ˆ์งˆ ์ฝ”๋“œ ๋ฒ ์ด์Šค์™€ ์ž‘์—… ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Weston์˜ ์ค‘์š”ํ•œ ๋ฒ„์ „ ๋ฒˆํ˜ธ ๋ณ€๊ฒฝ์€ ํ˜ธํ™˜์„ฑ์„ ์†์ƒ์‹œํ‚ค๋Š” ABI ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ƒˆ๋กœ์šด ์ง€์  ์›จ์Šคํ„ด :

  • ์ฝ˜ํ…์ธ  ๋ถˆ๋ฒ• ๋ณต์ œ ๋ฐฉ์ง€ ๊ธฐ์ˆ  ์ง€์› ์ถ”๊ฐ€ HDCP, DVI, DisplayPort, HDMI, GVIF ๋˜๋Š” UDI ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ๋น„๋””์˜ค ์‹ ํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. libweston์€ ์ „์†ก๋œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด weston_output, weston_surface ๋ฐ weston_head ํ˜ธ์ถœ์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์ œ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฏธ๋””์–ด ์„œ๋ฒ„์šฉ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ดํ”„ ์™€์ด์–ด๋Š” PulseAudio๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ ์˜ค๋””์˜ค ์™ธ์—๋„ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค GStreamer๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด์ „์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์œ ์‚ฌํ•œ ์›๊ฒฉ ๋ฐ์Šคํฌํ†ฑ์— ์ถœ๋ ฅ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹  ์ธก์—์„œ๋Š” GStreamer(์˜ˆ: โ€œgst-launch-1.0 Pipewiresrc ! video/x-raw,format=BGRx ! ...")๋ฅผ ํฌํ•จํ•˜์—ฌ ํŒŒ์ดํ”„์™€์ด์–ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋””์Šคํ”Œ๋ ˆ์ด์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • gl-renderer์— EGL ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. EGL_KHR_partial_update ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์˜์—ญ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ‘œ๋ฉด์˜ ๋‚ด์šฉ์„ ์„ ํƒ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
  • ๋””๋ฒ„๊น… ๋ฐ ์ด๋ฒคํŠธ ๋กœ๊น…์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด weston_debug ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(weston_log_context).
  • ์ƒˆ๋กœ์šด ํ—ค๋” ํŒŒ์ผ libweston-internal.h ๋ฐ backend.h๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ์—๋Š” ์ž‘์—…์„ ์œ„ํ•œ ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    'weston_compositor', 'weston_plane', 'weston_seat', 'weston_surface', 'weston_spring', 'weston_view' ๋ฐ ๋‘ ๋ฒˆ์งธ - 'weston_output';

  • ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ;
  • compositor-drm์— FB_DAMAGE_CLIPS ์†์„ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํŒŒ์ผ์—๋Š” EDID ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฒ€์ƒ‰, ๋น„๋””์˜ค ๋ชจ๋“œ ์ฒ˜๋ฆฌ, KMS API์™€์˜ ์ƒํ˜ธ์ž‘์šฉ, ํ”„๋ ˆ์ž„๋ฒ„ํผ ์ž‘์—… ๋ฐ ์ƒํƒœ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ "ํŒŒ์ผ ์ŠคํŠธ๋ฆผ" ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ backend-drm์€ ๋ณ„๋„์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.
    ๋ฐฑ์—”๋“œ ํ—ค๋“œ๋ฆฌ์Šค
    ๋ฐฑ์—”๋“œ-rdp
    ๋ฐฑ์—”๋“œ ์›จ์ด๋žœ๋“œ
    ๋ฐฑ์—”๋“œ-x11 ๋ฐ
    ๋ฐฑ์—”๋“œ-fbdev;

  • ํŒจํ‚ค์ง€๋Š” PNG ์ด๋ฏธ์ง€๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. zopflipng ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋ฐ˜ ์กฐํ”Œ๋ฆฌ;
  • xdg_output_unstable_v1 ๋ฐ zwp_linux_explicit_synchronization_v1 ํ™•์žฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์š”๊ตฌ ์‚ฌํ•ญ ์ฆ๊ฐ€ wayland ํ”„๋กœํ† ์ฝœ (์กฐ๋ฆฝ์— 1.18 ํ•„์š”)
  • ์กฐ๋ฆฝ์‹œ์Šคํ…œ์œผ๋กœ์˜ ์ „ํ™˜์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ค‘๊ฐ„์ž. autotools๋ฅผ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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