์ฐฝ ๊ด€๋ฆฌ์ž xfwm4 4.14.3 ์—…๋ฐ์ดํŠธ

๊ฒŒ์‹œ ๋จ ์ฐฝ ๊ด€๋ฆฌ์ž ๋ฆด๋ฆฌ์Šค xfwm4 4.14.3, Xfce ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ํ™”๋ฉด์— ์ฐฝ์„ ํ‘œ์‹œํ•˜๊ณ , ์ฐฝ์„ ์žฅ์‹ํ•˜๊ณ , ์ด๋™, ๋‹ซ๊ธฐ ๋ฐ ํฌ๊ธฐ ์กฐ์ • ๋ฐฉ๋ฒ•์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ ์ถ”๊ฐ€ X11 ํ™•์žฅ ์ง€์› XRes (X-๋ฆฌ์†Œ์Šค), ์ด๋Š” ๊ด€๋ จ๋œ ์ƒŒ๋“œ๋ฐ•์Šค ๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ PID์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ X ์„œ๋ฒ„์— ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. XRes ์ง€์›์€ _NET_WM_PID ์†์„ฑ์„ ํ†ตํ•ด PID๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ์ •์ง€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ•์ œ ์ข…๋ฃŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ „์—ญ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ์‹๋ณ„์ž์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š” ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด๋ถ€์˜ ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž๋ฅผ ๋ฐ˜์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์‹ ์ œํ’ˆ ์ถœ์‹œ๋„ ์ œ๊ฑฐ ์„ค์ •์ด ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ด๋ฏธ ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ(use-after-free)์— ์ ‘๊ทผํ•˜๊ณ  ํ• ๋‹น๋œ ๋ฒ„ํผ ์™ธ๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ xfwm4 4.14.3์—์„œ๋Š” ์ถ”๊ฐ€ XConfigureWindow ์š”์ฒญ ๋ฌธ์ œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ง„๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ถ”๊ฐ€ XError ์ฒ˜๋ฆฌ๊ธฐ์ž…๋‹ˆ๋‹ค.

4.14.3 ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ›„ ์ผ๋ถ€ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ๊ด€์ฐฐ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค libXres์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฐ”์ธ๋”ฉ์œผ๋กœ ์ธํ•ด FreeBSD์—์„œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ xfwm4์—์„œ๋„ ํ‘œ๋ฉด ์ถœ๋ ฅ์„ ์ˆ˜์ง ๋ธ”๋žญํ‚น ํŽ„์Šค(vblank)์™€ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด X11 ํ™•์žฅ XPresent๋ฅผ ํ™œ์„ฑํ™”ํ•  ๋•Œ AMD ๋น„๋””์˜ค ์นด๋“œ ๊ฐ์ง€์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์นด๋“œ ์ด๋ฆ„์— AMD ๋งˆ์Šคํฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ XPresent๊ฐ€ ํ™œ์„ฑํ™”๋˜์—ˆ์ง€๋งŒ ์ผ๋ถ€ ์นด๋“œ๋Š” ํ˜ธ์ถœ "AMD"๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์–ธ๊ธ‰ํ•˜์ง€ ์•Š์€ "Radeon"(์˜ˆ: "Radeon RX 570") ์ด ์นด๋“œ์˜ ๊ฒฝ์šฐ "glx" ๊ธฐ๋ฐ˜ vblank ํ”„๋กœ์„ธ์„œ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์„ฑ๋Šฅ์ด ๋ˆˆ์— ๋„๊ฒŒ ๋’ค๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, glx๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ mpv์—์„œ 4K ๋น„๋””์˜ค๋ฅผ ์žฌ์ƒํ•˜๋ฉด GPU์— ๊ณ ํ’ˆ์งˆ ๋ชจ๋“œ์—์„œ 70%, ์ €ํ’ˆ์งˆ ๋ชจ๋“œ์—์„œ 50% ๋กœ๋“œ๋˜๋Š” ๋ฐ˜๋ฉด, XPresent๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋กœ๋“œ๊ฐ€ ๊ฐ๊ฐ 50%์™€ 30%๋กœ ๊ฐ์†Œํ•˜์—ฌ ์ „๋ ฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์†Œ๋น„์™€ ์„ฑ๊ณผ. ํ˜„์žฌ๋กœ์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. XPresent๋ฅผ ๊ฐ•์ œ๋กœ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด xfconf์— /general/vblank_mode ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค:

xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "xpresent" โ€”๋งŒ๋“ค๊ธฐ

์ถœ์ฒ˜ : opennet.ru

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