ã試é¨éç¨ä¸ãªLinuxåå¿é²ãã®Bloggerã¸ã®ç§»è¡ã¨ã¿ã¤ãã«ä¸é¨å¤æ´ã«é¢ãããç¥ãã
ã¦ã§ããã°éå¶ä¸ã®äºæ ã«ããããã®ã試é¨éç¨ä¸ãªLinuxåå¿é²ãã¯ããã¾ã§å©ç¨ãã¦ããã¯ã¦ãªãã¤ã¢ãªã¼ããBloggerã¸ã¨ç§»è¡ãããã¨ã«ãªãã¾ããã*1
移è¡å ã®ã¦ã§ããã°ã¯ãkakurasanのLinux備忘録ãã§ããæ¢ã«æåã®è¨äºãå ¬éããã¦ããã®ã§ããã²ã覧ãã ããã
2015å¹´3ææç¹ã§ã¯ãã¼ã¸ã¬ã¤ã¢ã¦ããä¸é¨å¤è¦³ã®èª¿æ´ãä»å¾é »ç¹ã«è¡ãããå¯è½æ§ãããã¾ãã
ä»å¾ã®æ°è¦è¨äºã®è¿½å å ã«ã¤ãã¦
æ°ããè¨äºã¯ä»å¾ã¯ã¦ãªãã¤ã¢ãªã¼ã§å
¬éããããã¨ã¯ããã¾ãããBloggerã®æ°ã¦ã§ããã°ä¸ã§ã®ã¿å
¬éããã¾ãã
éå»ã®è¨äºã«ã¤ãã¦
éå»ã®è¨äºãããã«åé¤ããäºå®ã¯ããã¾ããããè¨äºã«ãã£ã¦ã¯æ®µéçã«æ°ã¦ã§ããã°å´ã¸ç§»ãè¨ç»ã§ãã
諸äºæ
ã«ãããç¾æç¹ã§ã¯2015/9/27(æ¥)é ã¾ã§ã«ã¯ãã¯ã¦ãªãã¤ã¢ãªã¼ããã¯è¨äºãå
¨ã¦ç¡ãã*2æ¹åã§èãã¦ãã¾ãããã ããæ°ã¦ã§ããã°ã®ç¶æ³ã«ãã£ã¦ã¯ãã®ææã延æãããå¯è½æ§ãããã¾ãã
(2015/8/22)ã¯ã¦ãªãã¤ã¢ãªã¼ããã®è¨äºã®åé¤ã¯å»¶æãã¾ããåé¤ææã®äºå®ã¯æªå®ã§ãã
éå»ã«ã¢ãããã¼ãããç»åã«ã¤ãã¦
éå»ã«ã¯ã¦ãªãã©ãã©ã¤ãã¸ã¢ãããã¼ãããã¹ã¯ãªã¼ã³ã·ã§ãããªã©ã®ç»åã«ã¤ãã¦ã¯ãã®ã¾ã¾æ®ãã¾ããã¯ã¦ãªãã©ãã©ã¤ãã®ãµã¼ãã¹ãç¶ç¶ãã¦ããéãã¯ãããã®ç»åã¯ä»å¾ãåç §å¯è½ã§ãåé¤äºå®ã¯ããã¾ããã
*1:ãã¸ãã£ããªç§»è¡çç±ã¯ãªããç¹ã«ãªãã¥ã¼ã¢ã«è¦ç´ ãããã¾ãããä¸æ¬æãªç§»è»¢çç±ã«ãããã®ã§ãããããã§è©³ç´°ãè¿°ã¹ããã¨ã«ã¯æå³ãè¦åºããªããããããã«ã¯è§¦ãã¾ããã
*2:åé¤ãã¦ã§ããã°éå ¬éã¸ã®è¨å®å¤æ´ã®ãããã
WOLF RPG ã¨ãã£ã¿ã¼ 2.10ä½åã3Dã¢ã¼ãæã«Wineã§æååãããåé¡ã®éªéãªå¯¾å¦
(2015/12/28)æ¬è¨äºã¯ãWineでWOLF RPG エディター 2.10作品が3Dモード時に文字化けする問題と対処ãã¸ç§»åããã
ãWOLF RPG エディターのバージョン2.10で作成された作品をWineで3Dモードで動かしたときに文字描画が崩れる現象について(2014年2月末時点)ãã®ãã®å¾ã¨ãã¦ã3Dã¢ã¼ãæã«çºçããæååãã®å¯¾å¦ã«ã¤ãã¦ãæ±ãã
åé¡ã®ãããã
- Sagawaæ°æ°ããIDirect3DDevice9::UpdateTexture()ã®Wine(wined3d)ã«ãããå®è£ ã§ã¯ã(ãã¼ã¸ã§ã³1.7ç³»æç¹ã§ã¯)ããã¼ãã£é åãã¨ãã¦è¨é²ãããé åã ãã§ãªããã¯ã¹ãã£ã®å ¨ä½ãã³ãã¼ãããå¦çã«ãªã£ã¦ãã
- åæ°æ°ãããã¼ã¸ã§ã³3.11dããå¤ãå¹¾ã¤ãã®ãã¼ã¸ã§ã³ã®DXã©ã¤ãã©ãªã«ã¯ãIDirect3DTexture9::LockRect()ã§ç©å½¢ç¯å²ãããã¯å¦ç*1ããå¾ã§IDirect3DDevice9::UpdateTexture()ãå¼ã³åºããéã«ãå ã»ã©ããã¯ããé å=ãã¼ãã£é åã®ã¿ãã³ãã¼ãããã¨ããåä½ãæå¾ ããå¦çããã©ã³ããã£ãã·ã¥ã®æ±ãã®ä¸ã§åå¨ããWineã®å®è£ ã§ã¯ä¸ã®æåã®é¢ä¿ã§ç¹å®ã®æµãã«ãã£ã¦ãã£ãã·ã¥ã®ç ´æã確å®ã«èµ·ãããæååãã®åå ã¨ãªã
- WOLF RPG ã¨ãã£ã¿ã¼ (ã¦ãã£ã¿)ã®ãã¼ã¸ã§ã³2.10ã«å«ã¾ããGame.exeã¯ãã®ç¾è±¡ãçºçãããã¼ã¸ã§ã³(3.10f)ã®DXã©ã¤ãã©ãªãçµã¿è¾¼ãã§ãã(éçãªã³ã¯ãã¦ãã)ããå½±é¿ãåãã
- ä¸è¨åä½ã«ä¾åããé¨åã¯åã©ã¤ãã©ãªã®ãã¼ã¸ã§ã³3.11d以ä¸ã§ã¯æ¹åããã¦æååãã¯èµ·ãããªããããã®æ°ãããã¼ã¸ã§ã³ã®DXã©ã¤ãã©ãªãçµã¿è¾¼ãã WOLF RPG ã¨ãã£ã¿ã¼ã®æ°ãããã¼ã¸ã§ã³ã¯2015å¹´1ææ«æç¹ã§ã¯å ¬éããã¦ããããããã§æ¢åã®Game.exeãç½®ãæããã¨ããå½¢ã®å¯¾å¦ã¯ã¾ã è¡ãããã§ããããã«ãªã£ã¦ãæååãããªã以å¤ã«ãã¼ã¸ã§ã³2.10ã®Game.exeã¨å®å ¨ã«åãåä½ã«ãªããã¯ä¸æ
- Wineã®Bugzillaã§2013å¹´ã®å¹´æ«ã«ãã°å ±åããããããã®å¾DXã©ã¤ãã©ãªå´ãä¿®æ£ããããã¨ã¯åãã£ããã®ã®ãWineå´ã®å¤æ´ã«ãã対å¦ã«ã¯ååãã§ã¯ãªããããããæä¾ããã¦ããªã
- 2014å¹´2æã«WOLF RPG ã¨ãã£ã¿ã¼ã®ãã°å ±åã®æ²ç¤ºæ¿ã«ãã®ä»¶ã«ã¤ãã¦ãæ¸ãããã®ã®ãæ°ãããã¼ã¸ã§ã³ã(ãã¼ã¿çå«ã)åºã¦ããªãã©ããããä½è ã«ããã³ã¡ã³ãã(2013å¹´8æããå¾ã¯ãã£ã¨)è¦ãããªã
- Wineã®ãã¼ã¸ã§ã³1.7.34*2æç¹ã§ã¯æ¹åã¯ããã¦ããããæè¿ã¯Macã¦ã¼ã¶ã«ããæååãäºä¾ãè¤æ°è¦ãããããã«ãªã£ã¦ãã
ä¿®æ£ã®è¦é
ãWOLF RPG エディターのバージョン2.10で作成された作品をWineで3Dモードで動かしたときに文字描画が崩れる現象について(2014年2月末時点)ãã§ãæ¸ãããããªãã¬ã¸ã¹ããªè¨å®ã«ãã£ã¦åãæ¿ãå¯è½(ä»ã®ããã°ã©ã ã®å®è¡ã«å½±é¿ããªãå½¢)ãªåé¿çãWineå´ã®å¤æ´ã«ãã£ã¦å®ç¾ã§ããªãã試ãã¦ã¿ãã¨ãããæçµçã«ãã®ãããªå½¢ã§åä½ãããã®ãä½æã§ãããä¿®æ£ã®è¦é ã¨ãã¦ã¯ä»¥ä¸ã®ããã«ãªããWineã®ãã¼ã¸ã§ã³ãå¤ãã£ã¦ä¸é¨ã®ä¿®æ£ã®ä»æ¹ãå¤ãããã¨ããã£ã¦ãèãæ¹ã¯åãã
- IDirect3DTexture9::LockRect()ã®Wineå®è£ ããã¯ãã¯ã¹ãã£ã®ãµããªã½ã¼ã¹ã§ãããµã¼ãã§ã¤ã¹*3ã®å¦çã¨ãã¦IDirect3DSurface9::LockRect()ã®Wineå®è£ ãä¸ã§å¼ã°ãããããã®ä¸ã«ããã¦ãããã¯ãããé åã示ãRECTæ§é ä½(å·¦/ä¸/å³/ä¸ã®4ã¤ã®åº§æ¨ã®å¤ããæã)ãããµã¼ãã§ã¤ã¹ã®æ§é ä½å ã«å¥é追å ããå¥ã®RECTåã®ã¡ã³ãã«ã³ãã¼ãã¦ãã
- IDirect3DDevice9::UpdateTexture()*4ã®Wineå®è£ ããã¯ãµããªã½ã¼ã¹ã®å¦çã¨ãã¦IDirect3DDevice9::UpdateSurface()ã®Wineå®è£ ãä¸ã§å¼ã°ãããã2Dãã¯ã¹ãã£ãæ±ãå ´åã®å¼ã³åºãã«ã¤ãã¦ã転éå ãµã¼ãã§ã¤ã¹ã®æ§é ä½ã®ã¡ã³ããåç §ãã¦ãéå»ã«ããã¯ããããã¨ã®ãããã®ã«ã¤ãã¦ã¯å ã»ã©ã³ãã¼ãã座æ¨æ å ±ãå©ç¨ãã¦ããã®ç¯å²ã®ã¿ã転éå ãµã¼ãã§ã¤ã¹ã®åä¸åº§æ¨(å·¦ä¸åºæºã»ã¤ã¾ãã³ãã¼å ã®RECTæ§é ä½ã®å·¦ã¨ä¸ã®åº§æ¨å¤ãPOINTæ§é ä½ã§ç¨ãã)ã¸ã³ãã¼ãããããã«å¼æ°ãæå®ãã
- 常ã«ãã®æåã§åä½ããããã«ããã¨ä»ã®ããã°ã©ã ã§æå³ããªãåä½ãããæãããããããWineã«ããã¬ã¸ã¹ããªè¨å®ã®ä»çµã¿ãå©ç¨ãã¦è¨å®é ç®ã追å (è¨å®ä¿æç¨æ§é ä½ã®ã¡ã³ã追å ã¨åæå¤æå®,ã¬ã¸ã¹ããªè¨å®åå¾å¦çã®è¿½å )*5ããä¸2ã¤ã®åä½ã¯ãã®ç¬èªåä½(以ä¸hack)ã®æå¹æã«ã®ã¿è¡ãããããã«ãã
ã¨ãããã®ã¨ãªã£ãã
æ¬æ¥ã¯ãµã¼ãã§ã¤ã¹ã®æ§é ä½å
ã«ãã¼ãã£é åã示ãæ§é ä½ã®ã¡ã³ããç¨æãã¦ããã¼ãã£é åãå¤åãããæä½(ロック以外に複数存在する)ããããã«ã¤ãã¦æ±ããæ£ããè¨è¿°ãã¦IDirect3DDevice9::UpdateTexture()å´ã§ãããç¨ãã¦ã³ãã¼ç¯å²ã決ããå¿
è¦ããã*6ã®ã ããWineã®Direct3Dã§ãã¼ãã£é åã®æ
å ±ãå
é¨çã«ã©ã®ããã«ç®¡çããã¦ããã®ããããåããããå¦çã«ãã£ã¦ã¯é¢æ°ããé¢æ°ã¸ã¨æå®é åãå¼æ°ã§æ¸¡ããã¦ããã«ãé¢ãããé¢æ°å
ã§ãããä¸å使ããã¦ããªãã¨ããããã£ããããçµå±ã¯è©²å½ãããã¼ã¸ã§ã³ã®DXã©ã¤ãã©ãªã§æ£ããåããã¨ã ããåªå
ãã¦ãã¬ã¸ã¹ããªã«ããåãæ¿ãå¯è½ãªhackãã¨ããå½¢ã§å®è£
ããã
å°æ¥ã®ãã¼ã¸ã§ã³ã§ãã®ãããã®åä½ãæ¹åããã¦ç¹ã«ä½ãããã«æ£ããåä½ããããã«ãªãå¯è½æ§ããªãã¯ãªããããã¾ãæå¾
ã¯ã§ããªãã
ããã
ãããªãã¯ãã¡ã¤ã³ã¨ãã¦å ¬éããã1.6.2åã: wine-1.6.2-dxlib-font-hack.patch
1.7.34åã*7: wine-1.7.34-dxlib-font-hack.patch
(2015/2/5)hackç¡å¹æã®ä¸é¨ã®ä¸å¿ è¦ãªæ¡ä»¶åå²ãçãããã«ä¿®æ£
æåã§ãã«ã*8ããå ´åãã½ã¼ã¹ã¨ãã¼ã¸ã§ã³ãåä¸ãª(32bitã®)ãã£ã¹ããªã®ãã¤ããªããã±ã¼ã¸ãããã°ãdlls/wined3d/å ã®ãã«ããçµãã£ãå¾ã¯ãã«ããä¸æ¢ãã¦(32bitã®)wined3d.dll.soã®ã¿ãæ¢åã®ãã¡ã¤ã«([32bitã©ã¤ãã©ãªã®ãã£ã¬ã¯ããª]/wine/wined3d.dll.so)ã«å¯¾ãã¦ç®¡çè 権éã§ä¸æ¸ãããã ãã§æ¸ãã
ãããé©ç¨æ¸ã¿ã®ãã¤ããª
ãppa:kakurasan/unstableãã®PPAãªãã¸ããªã§å ¬éãã(Ubuntu 14.10åã)ããã¼ã¸ã§ã³ã¯å®å®ç系統ã®1.6.2ã®ã¿ç¨æãããPPAãªãã¸ããªã®è¿½å æé ã«ã¤ãã¦ã¯以前AMDのlegacy版グラフィックドライバのインストールに関して書いた記事(å 容èªä½ã¯å¤ãã®ã§æ³¨æ)ãåç §ãããã±ã¼ã¸æ å ±ã®åèªã¿è¾¼ã¿å¾ã¯ãwine1.6ãããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«(ã¤ã³ã¹ãã¼ã«æ¸ã¿ã®å ´åã¯ã¢ããã°ã¬ã¼ã)ããã
ä»ã®ãã£ã¹ããªãªã©ã§ã¯å¥éãã¼ã¸ã§ã³1.6.2ã®ãã¤ããªãã¤ã³ã¹ãã¼ã«ããä¸ã§wine1.6-i386_[ãã¼ã¸ã§ã³]_i386.debã®ã¿ä¸ã®ãã¼ã¸ããæåã§ãã¦ã³ãã¼ããã¦å±éããwined3d.dll.soã®ã¿ãæ¢åã®ãã¡ã¤ã«ã«å¯¾ãã¦ç®¡çè 権éã§ä¸æ¸ãããæ¹æ³ãããããæ£ããåä½ããä¿è¨¼ã¯ãªãã
è¨å®æ¹æ³
æååãåé¿ã®ã¢ã¼ãã§åãã(hackãæå¹ã«ãã)ã«ã¯ã¬ã¸ã¹ããªã®è¨å®ãå¿ è¦ãå ¨ã¦ã®ããã°ã©ã ã«å¯¾ãã¦ãã®hackãæå¹ã«ããå ´åã¯ã¬ã¸ã¹ããªã®ãã¼(ãã©ã«ã)ãHKEY_CURRENT_USER\Software\Wine\Direct3Dãã®ä¸ã«ãDxLibFontHackãã¨ããååã®æååãä½æãã¦å¤ããenabledãã¨ããã
ä¸ã¯ã¬ã¸ã¹ããªãã¡ã¤ã«ã¨ãã¦åãè¾¼ãå ´åã®å 容ã
[ä»»æ]ãã¡ã¤ã«å: enable-dxlib-font-hack.reg
REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\Direct3D] "DxLibFontHack"="enabled"
ç¡å¹åãããã¡ã¤ã«ã¯ãenabledãé¨åãä»ã®ãdisabledããªã©ã®æååã«å¤æ´ãã¦å¥åã§ä¿åããã¨ä½ããã
ç¹å®ã®ãã¡ã¤ã«åã®ããã°ã©ã ã«å¯¾ãã¦ãã®hackãæå¹ã«ãã*9å ´åã¯ãHKEY_CURRENT_USER\Software\Wine\AppDefaults\[ãã¡ã¤ã«å]\Direct3Dãã®ä¸ã«åæ§ã®é
ç®ãä½æããã
ä¸ã¯Game.exeã¨ãããã¡ã¤ã«åã§ã®ã¿æå¹ã«ãªããããªè¨å®ã
[ä»»æ]ãã¡ã¤ã«å: enable-dxlib-font-hack-game.reg
REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\AppDefaults\Game.exe\Direct3D] "DxLibFontHack"="enabled"
ä¸ã¯WOLF RPG ã¨ãã£ã¿ã¼ä½åã®åä½ã«ä¾¿å©ã ãããã確å®ã«WOLF RPG ã¨ãã£ã¿ã¼ä½åã ããèªåçã«hackã®å¯¾è±¡ã«ããã«ã¯ä¸è¨è¨å®ã®ãã¡ã¤ã«åé¨åã¨å®éã®ãã¡ã¤ã«åã®ä¸¡æ¹ãWolfRpgGame.exeãªã©ä»ã¨ãã¶ãã«ããååã«ãã¦ä½¿ãã¨ããã
ä¸ã¯è¨å®ãèªåã§æå¹åããã¹ã¯ãªããä¾ãç°å¢ã«å¿ãã¦ä¸é¨å¤æ´ãã¦ç¨ãããããã¯Game.exeãWolfRpgGame.exeã«ååå¤æ´ãã¦ä½¿ãå ´åã®ä¾ã§ãä»ã®ããã°ã©ã ãåããéã«ã¬ã¸ã¹ããªè¨å®ã®åãæ¿ããè¡ãå ´é¢ã¯ã»ã¨ãã©ãªããªãã
ç¡å¹åããã¹ã¯ãªããã¯ãenabledãé¨åãä»ã®ãdisabledããªã©ã®æååã«å¤æ´ãã¦å¥åã§ä¿åããã¨ä½ããã
[ä»»æ]ãã¡ã¤ã«å: enable-dxlib-font-hack-wolfrpggame.sh
#! /bin/sh ### æ¨æºã§ã¯ãªãå ´æã«Wineãé ç½®ãã¦ããå ´å ### libwine.so*ã®ãããã£ã¬ã¯ããªãæå® #export LD_LIBRARY_PATH=/opt/wine-1.6.2/lib/i386-linux-gnu ### æ¨æºã§ã¯ãªãå ´æã®Wineç°å¢ã使ç¨ãã¦ããå ´åã«æå® #export WINEPREFIX=/home/user/dotwine-wolf ### wineã³ãã³ãã®å ´æ #WINE=/opt/wine-1.6.2/bin/wine WINE=wine cat <<EOF | ${WINE} regedit - REGEDIT4 [HKEY_CURRENT_USER\Software\Wine\AppDefaults\WolfRpgGame.exe\Direct3D] "DxLibFontHack"="enabled" EOF
使ç¨ãããã¼ã¸ã§ã³:
- Wine 1.6.2, 1.7.34
*1:ä»æ§ä¸ã¯ããã§åé åãããã¼ãã£é åãã¨ãã¦è¨é²ããã
*2:1.7.35ã«ã¤ãã¦ã¯å®éã®åä½ã¯æªç¢ºèªã ããã½ã¼ã¹ã®è©²å½ç®æãè¦ãéãã¯åæ§
*3:å°ãªãã¨ãWineã®Direct3Dã§ã¯ãã¯ã¹ãã£ã¨ããåã¯ãµã¼ãã§ã¤ã¹(ç»åãã¼ã¿ãä¿æããã¡ã¢ãªé å)ã¨ããåãä¸ã«å«ãå½¢ã«ãªãããã¯ã¹ãã£ãããµã¼ãã§ã¤ã¹ã¯ãµããªã½ã¼ã¹ã¨ãã¦åç §ããã»IDirect3DDevice9::UpdateTexture()ã«ã¤ãã¦ããä¸ã§ãµããªã½ã¼ã¹ã®ãµã¼ãã§ã¤ã¹ã«å¯¾ããIDirect3DDevice9::UpdateSurface()ã«ç¸å½ããå é¨å¦çãå¼ã°ããå½¢ã®å®è£ ã«ãªã£ã¦ãã
*4:説æã¨ãã¦ããã¯ã¹ãã£ã®ãã¼ãã£ã¼é¨åãæ´æ°ããããã¨ãããã転éå ãã¯ã¹ãã£ã«ãã¼ãã£ã¼é åãããå ´åã¯ãã³ãã¼ããã®é åã ãã«éå®ãããã¨ã§ãã³ãã¼å¦çãæé©åã§ããããã¨ãæ¸ããã¦ãããããã¼ãã£ã¼ã¨ãã¦ãã¼ã¯ããã¦ãããã¤ãã ããã³ãã¼ãããã¨ããä¿è¨¼ã¯ãªãããã¨ããã
*5:ãããã¯æ¢åã®è¨å®é ç®ã«é¢ä¿ããè¨è¿°ãåèã«ãã¦ã³ã¼ãã追å ãããã¨ã§ç°¡åã«å®è£ ã§ãã
*6:æ¬å®¶ã®ã½ã¼ã¹ããªã¼ã«å¯¾ããä¿®æ£ã¨ãã¦ã¯ãã®å½¢ãæã¾ãããä»åã®ãããªå½¢ã®ä¿®æ£ã¯åãè¾¼ã¾ããã¹ãã§ã¯ãªãã¨èãã
*7:1.7.35ã«ã¤ãã¦ã¯ãããããæ£å¸¸ã«å½ãããã¨ã¯ç¢ºèªãããåä½ã¯æªç¢ºèª
*8:32bitåãã»åºæ¬çã«ã¯32bitç°å¢ã32bitã®chrootç°å¢ã§ãã«ããã
*9:æå®ãã以å¤ã®ãã¡ã¤ã«åã®ããã°ã©ã ã§ã¯ç¡å¹ã«ãªããè¨å®ã®åãæ¿ãæ©ä¼ãå°ãªãã§ãã
GNU/Linuxãã¤ãã£ãã®Direct3D 9ã使ããããã«ããgallium nineã¨é¢é£ã¡ã¢(CSMT,Wine Staging)è·¡å°
(2019/9/29)æ¬è¨äºã¯ãGNU/LinuxネイティブのDirect3D 9を実装したGallium Nineとその使い方ãã¸ç§»åããã
以ä¸ã以åã®å 容ã¨ãªãã
ãgallium nineãã¨å¼ã°ããã½ããã¦ã§ã¢ãä¸é¨ã§æ³¨ç®ããã¦ããã
gallium nineã«ã¤ãã¦
ããã¯GNU/Linuxã§èªç±ãªã½ããã¦ã§ã¢ã®ã°ã©ãã£ãã¯ãã©ã¤ã使ç¨æã«Direct3D 9ãOSãã¤ãã£ããªæç»APIã¨ãã¦Wineä¸ã®Windowsã¢ããªã±ã¼ã·ã§ã³ãªã©ã®Direct3D 9ãå©ç¨ããããã°ã©ã ããå©ç¨ã§ããããã«ãããã®ãèªç±ãªã½ããã¦ã§ã¢ã®ã°ã©ãã£ãã¯ãã©ã¤ãã§ã¯Gallium3D(ãããã¯Gallium)ã¨å¼ã°ãã3Dã°ã©ãã£ãã¯ã®æ çµã¿ãç¨ãããããããgallium nineãã¯ãã®ä¸ã®ãstate trackerãã¨å¼ã°ãã種é¡ã®ã¢ã¸ã¥ã¼ã«ã¨ãã¦Gallium使ç¨æã«Direct3D 9ãæç»APIã¨ãã¦ç¨ãããã¨ãå¯è½ã«ããã
ãã¡ã¤ã«ã¨ãã¦ã¯ãd3dadapter9ãã¨å¼ã°ããã©ã¤ãã©ãªã®å½¢ãã¨ãããããWineãªã©ã®ã½ããã¦ã§ã¢ããå©ç¨ããããã®ããããã¡ã¤ã«ç¾¤*1ã¨ãstate trackerã¨ãã¦(libdrmãLLVMãªã©ã®ã©ã¤ãã©ãªãç¨ãã¦)Direct3D 9ã®æ©è½ãæä¾ããå ±æãªãã¸ã§ã¯ã(d3dadapter9.so.[æ°å])*2ããæãã
gallium nineã®å©ç¹ã¨æ¬ ç¹
å©ç¹
Wineã¯æ¢ã«DirectX 9cãå®è£ ãã¦ããããDirect3Dã«ã¤ãã¦ã¯OpenGLãç¨ãã¦å®è£ ããã¦ãããDirect3Dã®æç»å½ä»¤ãå®è¡ããããã«ã¯å¦çã³ã¹ããä½è¨ã«ããããgallium nineã¯ãWineã®Direct3D 9(OpenGLãç¨ããå®è£ )ã¨æ¯ã¹ãã¨OpenGLãçµç±ããªãåå¦çã³ã¹ããå°ãªãé¢ä¿ã§é«éã«åä½ããå ´åãå¤ãã
ã©ã®ç¨åº¦é«éåããããã¯ã°ã©ãã£ãã¯ãã©ã¤ã(Galliumã®ãã©ã¤ãé¨å,libdrm,ã«ã¼ãã«ã®DRMã¢ã¸ã¥ã¼ã«ã¨ãã£ãããã°ã©ã )ãGPUã«ããããç¹ã«ãé«æ§è½ãªGPUã®ä½¿ç¨æã«ã¯å¤§ããªå·®ãåºãããã ãWindowsä¸ããéããªããã©ããã¯ããããã®OSã®ã°ã©ãã£ãã¯ãã©ã¤ããªã©ã«ããã
åä½é度ããã¾ãåä¸ããªãã±ã¼ã¹ã§ãCPUã®å¦çéãæ¸ãã®ã¯ééããªããããCPU使ç¨çãæ¸ã£ã¦ãããã«çé»åã«ãªãå ´åãããã
ä¸ã¯Direct3D 9ã®æç»å¦çã®å¤§ã¾ããªæµããæ¯è¼ããå³ã
(Wineã§Direct3D 9ã¢ããªã±ã¼ã·ã§ã³ãåããéã®æç»å¦çã®æµã) Wine/d3d9 -[Direct3D 9å½ä»¤]-> Wine/wined3d(OpenGLãç¨ãã¦ãã®é½åº¦å®è¡) -[OpenGLå½ä»¤]-> libGL -> Galliumãã©ã¤ã -> ä½ã¬ãã«ãã©ã¤ã(libdrmãDRMã«ã¼ãã«ã¢ã¸ã¥ã¼ã«) -> GPU (gallium nineãç¨ããéã®æç»å¦çã®æµã) Wine/d3d9(å½ä»¤ããã®ã¾ã¾æ¸¡ã) -[Direct3D 9å½ä»¤]-> d3dadapter9 -> Galliumãã©ã¤ã -> ä½ã¬ãã«ãã©ã¤ã(libdrmãDRMã«ã¼ãã«ã¢ã¸ã¥ã¼ã«) -> GPU
ã·ã§ã¼ãå¦çã«ã¤ãã¦ã¯ãWineã®Direct3D(wined3d)ã§ã¯
ã®ãããããç¨ããå½¢ã§å®è£ ããã¦ãããããããã¯èªç±ãªã½ããã¦ã§ã¢ã®ã°ã©ãã£ãã¯ãã©ã¤ã使ç¨æã¯ä¸æ¦Galliumã®TGSI(TG Shader Infrastructure)ã¨å¼ã°ããæ½è±¡åããã表ç¾ã«å¤æããã¦ãã(åGPUåãã®Galliumãã©ã¤ããçµç±ãã¦)å®è¡ããããgallium nineããã·ã§ã¼ããç¨ããéã«ã¯ä¸è¨ã®ãããããçµç±ããã«ç´æ¥TGSIã¸å¤æãããããããããããå¦çã³ã¹ããåæ¸ãããã
(Wineã§Direct3D 9ã¢ããªã±ã¼ã·ã§ã³ãåããéã®ã·ã§ã¼ãå¦çã®æµã) Wine/d3d9 -[Direct3D 9å½ä»¤]-> Wine/wined3d(GLSL or GLæ¡å¼µã¨ãã¦ãã®é½åº¦å®è¡) -[GLSL or GLæ¡å¼µ]-> libGL(TGSIã«å¤æ) -[TGSI]-> Galliumãã©ã¤ã -> ä½ã¬ãã«ãã©ã¤ã(libdrmãDRMã«ã¼ãã«ã¢ã¸ã¥ã¼ã«) -> GPU (gallium nineãç¨ããéã®ã·ã§ã¼ãå¦çã®æµã) Wine/d3d9 -[Direct3D 9å½ä»¤]-> d3dadapter9(TGSIã«å¤æ) -[TGSI]-> Galliumãã©ã¤ã -> ä½ã¬ãã«ãã©ã¤ã(libdrmãDRMã«ã¼ãã«ã¢ã¸ã¥ã¼ã«) -> GPU
æ¬ ç¹
- 2015å¹´1ææç¹ã§ã¯Direct3D 9å°ç¨ã»ãã ããããã¸ã§ã¯ãã®ãµã¤ãã«ããã¨å¥ã®ãã¼ã¸ã§ã³ã«åãã対å¿ã®å¯è½æ§ããããç¹ã«Direct3D 8ã¯å°æ¥å¯¾å¿ããå¯è½æ§ãé«ã*3
- 2015å¹´1ææç¹ã®ãããã©ã¤ã¨ã¿ãªãªã°ã©ãã£ãã¯ãã©ã¤ã(GPUã¡ã¼ã«ã¼æä¾ã®ãèªç±ã§ãªããã©ã¤ã)ã¯Galliumã®æ§é ã«åã£ã¦ããªãããããããã©ã¤ã¨ã¿ãªãã©ã¤ãã§ã¯å©ç¨ã§ããªã
- 2015å¹´1ææç¹ã§ã¯ã¾ã å®æ度ãä½ããåä½ããããã°ã©ã ã¯é常ã«è¯å¥½ã«åä½ããä¸æ¹ã§ãã¾ã¨ãã«åä½ããªãããã°ã©ã ãå¤ã
- Wineã§å©ç¨ããããã«ã¯Wineã¸ã®ä¿®æ£ãå¿ è¦ã§ã2015å¹´1ææç¹ã§ã¯å ¬å¼ã®Wineã§ã¯æªå¯¾å¿*4ã»æ´ã«ãå¤ãå®å®çã®Wineã§ã¯å©ç¨ã§ããªã(ãã¼ã¸ã§ã³1.8ãåºãã°å®å®çã§å©ç¨ã§ãã)
ããã¾ã§ã®éçº
æåã«è©±é¡ã«ãªã£ãã®ã¯2013å¹´å¤ãMesaのメーリングリストへの投稿ã®ã¨ãã ã£ãã2014å¹´æ¥ã¾ã§ã¯ãã®ã¨ãã®éçºãªãã¸ããªã§éçºãç¶ãã¦ãããããã®å¾ã¯æ°ããæ´¾çãªãã¸ããªã«ç§»ã£ã¦æ´»çºã«éçºãè¡ãããããã«ãªã£ãã
æ´ã«ãMesaã®å
¬å¼ã®ã½ã¼ã¹ããªã¼ã«åãè¾¼ãã§ãããããåããããåããé²ãã§ããã¼ã¸ã§ã³10.4ã§ã¯åãã¦å
¬å¼ã®ãªãªã¼ã¹ã®ä¸ã«å«ã¾ãããã¨ã«ãªã£ãã
ãã«ãã®éã«configureã¹ã¯ãªããã¸ãªãã·ã§ã³--enable-nineãä»ãããã¨ã§æ¯è¼çç°¡åã«å°å
¥ã§ããããã«ãªã£ã¦ãããããã£ã¹ããªã«ãã£ã¦ã¯Mesa 10.4ã®ããã±ã¼ã¸ã§gallium nineã¯ç¡å¹(æ¢å®å¤)ã®ã¾ã¾ã¨ãªã£ã¦ãã¦å©ç¨ã§ããªãã
Mesa 10.4ã®gallium nineãã¾ã å®æ度ã¯ä½ããéçºãç¶ããããä¸æ¹ã§ãMesa 10.4ãåºãå¾ã®ä¿®æ£ã«ã¤ãã¦ãå
¬å¼ã®ã½ã¼ã¹ããªã¼ã«åãè¾¼ãã§ãããåããç¶ãã¦ããã2015/1/23(GMT表è¨ã§ã¯22æ¥ã¨ãªãæå»)ã«ã¯50ãã®ããããæ°ããåãè¾¼ã¾ãããMesa 10.5ã§ã¯ãã®æ¹åãå
¥ãè¦éãã*5
Wineã¸ã®ä¿®æ£ã«ã¤ãã¦ã¯ãå
¬å¼ã®ã½ã¼ã¹ããªã¼ã¸ã®åãè¾¼ã¿ã¯ã¾ã è¡ããã¦ããããè¦éãã«ã¤ãã¦ãä¸æ*6ã
å°å ¥
プロジェクトサイトのインストールに関するページã§ãã£ã¹ããªãã¨ã®å°å ¥ã«ã¤ãã¦æ¸ããã¦ããã詳ããã¯ããã§ã¯æ±ããªãããDRI2ãããDRI3ãç¨ããã»ããé«éã«åä½ãããã¨ããã¦ããããDRI3ã®ä½¿ç¨ã¯å¿ é ã§ã¯ãªããDRI2ç°å¢ã§ãWineã§gallium nineã使ããããã«ãªã£ã¦ãã(ãDRI2 fallbackãã¨ããæ©è½)ã*7
2015å¹´1ææç¹ã§ã¯ãX11ã§ãxf86-video-atiããã©ã¤ã*8ã使ç¨ãã¦ããå ´åãDRI3ãç¨ããã«ã¯åããã¸ã§ã¯ããæä¾ãããxf86-video-atiãããã±ã¼ã¸ãå¿ è¦ãgallium nineã®åä½ãã¹ãã¨ä¸å ·åå ±åãè¡ãç®çã§ä½¿ãå ´åã¯ãããã¯ç¨ããã«DRI2ç°å¢ãç¨ããã»ãããã(ä¸å ·ååå ã®åãåãã®é½å)ã
æå¹å/ç¡å¹åã®è¨å®
以åã¯ã¬ã¸ã¹ããªã®å¤ãæåã§è¨å®ããå¿ è¦ããã£ããã2015å¹´1ææç¹(ãã¼ã¸ã§ã³1.7.34)ã®ä¿®æ£æ¸ã¿ã®Wineã§ã¯GUIãã¼ã«winecfgã§ãç»é¢ãã¿ãã«è¨å®é ç®ãããããã§ãã¯ãå ¥ããç¶æ ã§Direct3D 9ã¢ããªã±ã¼ã·ã§ã³ã使ç¨ããã¨ãã«gallium nineã使ããã(ãã§ãã¯ãå¤ãã¨å¾æ¥ã®OpenGLãç¨ããå®è£ ã§åä½ãã)ãåä½ãã¹ã
ãã¹ãã«ã¯Windowsã®DirectX 診æãã¼ã«(dxdiag)ã便å©ã§ãwinetricksã®ãdxdiagãããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ããã®ã楽ãã¤ã³ã¹ãã¼ã«ããããWineå ã®ãdxdiagãã³ãã³ããå®è¡ããã
(ãã¹ãæã«ãã«ã¹ã¯ãªã¼ã³ã§åä½) $ WINEPREFIX=[Wineç°å¢ã®å ´æ] wine dxdiag (1024x768ã®ä»®æ³ãã¹ã¯ãããã®ã¦ã£ã³ãã¦å ã§åä½ã»ãã¹ãæã«ã¯ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã) $ WINEPREFIX=[Wineç°å¢ã®å ´æ] wine explorer /desktop=dxdiag,1024x768 dxdiag
ããã£ã¹ãã¬ã¤ãã¿ãã®ãDirect3D ã®ãã¹ãããæ¼ãã¨3ã¤ç®ã®ãã¹ãã§Direct3D 9ã使ãããã®ã§ãããã§åè¿°ã®ãã§ãã¯ãå
¥ã£ã¦ããã¨GNU/Linuxãã¤ãã£ãã®Direct3D 9ã使ããããå転ããç«æ¹ä½ã®æç»ã ããè¦ã¦ãéãã¯åãããªãããGNU/Linuxãã¤ãã£ãã®Direct3D 9ã使ããã¦ããã¨ãã«ã¯ç«¯æ«ã«ã¯è²ã®ä»ããã¡ãã»ã¼ã¸ã表示ããã(ããã°ã©ã èµ·åæãªã©ãæç»å¦ç以å¤ã§è¡¨ç¤ºãããå ´é¢ããã)ã
ããã¾ã§ã«åé¡ããªããã°å°å
¥ã«æåãã¦ãããã¨ã«ãªãã
é¢é£:Wineä¸ã®Direct3DãDirectDrawã®CSMTã«ããé«éå
gallium nineã¨ã¯å¥ã«ãCSMT (Commandstream multithreading)*9ãã¨å¼ã°ããææ³(OpenGLå½ä»¤ã®å®è¡ã®å¥ã¹ã¬ããå)ã«ããWineã®Direct3D(Wineã対å¿ããå ¨ã¦ã®ãã¼ã¸ã§ã³)ãDirectDrawã®åä½ãé«éåããå ´åãããããããã©ã¤ã¨ã¿ãªãã©ã¤ãã§ãæ©æµãåããããã*10ãã¡ããã2015å¹´1ææç¹ã§ã¯ã¾ã å ¬å¼ã®Wineã®ã½ã¼ã¹ããªã¼ã«ã¯å ¥ã£ã¦ããªã*11ããã¾ã å ¬å¼ã®ã½ã¼ã¹ããªã¼ã«åãè¾¼ã¾ãã¦ããªãä¿®æ£(å®é¨çãªãã®ãå«ã)ãé©ç¨ãããã¼ã¸ã§ã³ãå¤ãã®ãã£ã¹ããªåãã«æä¾ãããã¨ã§ãã¹ãã»è©ä¾¡ãªã©ãè¡ãããããã¦ãããããåãå ¥ãã¦ãããæµããã³ã¼ãã®å質ãããããããç®çã§éç¨ããã¦ãããWine Stagingãããã¸ã§ã¯ã(www.wine-staging.com)*12ãæä¾ãã¦ããããã±ã¼ã¸ãå°å ¥ãããã¨ã§è©¦ããã¨ãã§ãããCSMTã®æå¹/ç¡å¹ã®åãæ¿ãã«ã¤ãã¦ãwinecfgã§å¯è½ã¨ãªã£ã¦ããããã¼ã¸ã§ã³1.7.34ã®æç¹ã§ã¯ãStagingãã¿ãã®CSMTã«é¢ããè¨å®é ç®ã«ãã§ãã¯ãå ¥ãããã¨ã§æå¹ã«ã§ããã
*1:ä¿®æ£ãããWineãªã©ããããå©ç¨ããå´ã®ã½ããã¦ã§ã¢ã®ãã«ãæã«ä½¿ç¨
*2:å©ç¨ããå´ã®ã½ããã¦ã§ã¢ã®ãã«ãæã¨å®è¡æã®ä¸¡æ¹ã§ä½¿ç¨
*3:Direct3D 10以ä¸ã¯éå»ã«state trackerã¨ãã¦ã®å®è£ ãåå¨ããææããã(ãã ãå®ç¨çã§ã¯ãªãã©ã¤ãã©ãªããªããå®éã¯ã»ã¨ãã©ä½¿ãããªãã£ã)ã2015å¹´1ææç¹ã§ã¯æ¶ãã¦ãããã®ã®ãå°æ¥éè¦ãé«ã¾ãã°ãã¾ãå¥ã®æ°ããstate trackerã¨ãã¦ã®å®è£ ãç»å ´ããå¯è½æ§ã¯ãã
*4:Ubuntuã®PPAã§å ¬éãã¦ãã人ããããããå°å ¥èªä½ã¯æ¥½ã«ã§ãã
*5:ãã®å ã®å¤§é¨åã¯10.4ç³»ã«ãé©ç¨ããããã¼ã¸ã§ã³10.4.3ã§å©ç¨ã§ãã
*6:ãã¡ããé©ç¨æ¸ã¿ãã¼ã¸ã§ã³ãUbuntuã®PPAã§å ¬éãã¦ãã人ããããããå°å ¥èªä½ã¯æ¥½ã«ã§ãã
*7:以åã¯DRI2ãDRI3ã®çæ¹ã«ãã対å¿ã§ããã注æãå¿ è¦ã ã£ã
*8:Device Dependent X (DDX) driverã¨ããé¡ã®X11ç¨ãã©ã¤ã
*9:ãd3dstreamãã¨å¼ã°ãããã¨ããã
*10:ã¾ããæå¹ã«ãããã¨ã§æç»ã®ä¸å ·åãåºãå ´åããéã«æ¢åã®æç»ã®ä¸å ·åã®åé¿ã«ãªãå ´åãããããã
*11:å°æ¥çã«ã¯ç¢ºå®ã«åãè¾¼ã¾ããè¦éã
*12:Silverlight(DRMæãã®åç»ã®è¦è´å«ã)ãUnity3Dãªã©ã®Windowsåããã©ã¦ã¶ãã©ã°ã¤ã³ãGNU/Linuxã®Webãã©ã¦ã¶ã§åããPipelightããã使ãããã»Pipelightã«ã¤ãã¦ã¯æ©ä¼ãããã°è¨äºã¨ãã¦è©³ããæ±ã
SofTalkãªã©ã§ç¨ãããã¦ããé³å£°åæã¨ã³ã¸ã³AquesTalk2ã®CCã©ã¤ã»ã³ã¹çã«ã¤ãã¦è·¡å°
(2018/10/12)æ¬è¨äºã¯ãゆっくりボイスAquesTalk2のLinux用CCライセンス版とサンプルãã¸ç§»åããã
Luaã³ã¼ãä¾#8:Luaã§é åã®åè¦ç´ ã«å¯¾ããã«ã¼ãå¦çãè¡ãè·¡å°
(2021/8/2)æ¬è¨äºã¯ãLuaで配列の各要素に対するループ処理を行うãã¸ç§»åããã
MATEãã¹ã¯ãããç°å¢(MATE Desktop Environment)ã«ã¤ãã¦ã®ã¡ã¢è·¡å°
(2021/8/3)æ¬è¨äºã¯ã伝統的なデスクトップを提供するMATE Desktop Environmentについてãã¸ç§»åããã
Luaã³ã¼ãä¾#7:Luaã§æ°å¤ãç¨ããforæã§ã«ã¼ãå¦çãè¡ãè·¡å°
(2019/6/8)æ¬è¨äºã¯ãLuaで数値を用いたfor文でループ処理を行うãã¸ç§»åããã