2016年4月9日土曜日

Avisynth+のビルド

最近ローカルのAvisynth+のレポをいったん削除してクローンし直したので、ついでにビルド方法を書いておく。
というかCMakeほとんど使わないので書いておかないと(また)忘れそう。

用意するもの
Git for Windows(最新版は2.8.1)
CMake(最新版は3.5.1)
VisualStudio Community 2015
・githubのアカウント(パッチ書いてPull Request送りたい人だけ)

インストール
1. Git for Windowsをインストール
インストールの際は必ずPATHを通しておくこと(Use Git from Windows Command Promptを選択すればよい)。
ここでUse Git from Git Bash onlyを選んでるといろいろCMakeのほうでメンドクサイことになる。
Configure the line ending conversionは必ずCheckout as is, commit as isにしましょう。他を選ぶやつは何考えてるのか理解できんわ。
ちなみに筆者は普段はMSYS2のGitを使っているのですが、それでも別にGit for Windowsをこのためだけに入れております。
Git for WindowsがないとAvisynth+のビルドに必要なファイルが生成できないのです。

2. CMakeのインストール
特に注意するところはなかったはず。
デフォルトの選択肢のままでよかったと思うが、一応ちゃんと選択肢等の説明は読むこと。
こちらはPATHを通したりする必要は特にありません。

3. VisualStudio Communityのインストール
VC++が使えればあとはお好きなようにしてください。
ただし調子こいてあれこれ入れるとサイズは40GB超えて、かかる時間もとんでもなく増えるそうですよ。

ローカルにGitレポをcloneする
最近はAvisynth+の公式のほうは動きがぱったり止まってるので、pinterf氏のほうをcloneしたほうがよさそうです。
あなたがなにかしらパッチ書きたいならhttps://github.com/pinterf/AviSynthPlusを自分のアカウントでforkしてからsshでcloneしましょう。
sshの鍵作成とかgithubへの登録とかは自分でググって調べてね。
自ビルドだけなら、適当なフォルダに移動して右クリック -> Git Bash Here->
'git clone https://github.com/pinterf/AviSynthPlus.git' でいいです。

cloneが終わったらpinterf氏の変更を取り込みます。
以下の順にコマンドを打ちましょう
'cd AviSynthPlus'
'git remote add pinterf https://github.com/pinterf/AviSynthPlus.git'
'git fetch pinterf'
'git merge --no-ff pinterf/MT-pfmod'
これで手元の'master'ブランチに全変更がmergeされました。

ソリューション/プロジェクトの作成
ソースコードの準備が出来たら次にVisualStudio用のソリューション/プロジェクトファイルの作成です。
まずスタートメニューからcmake-guiを起動します。
次に'Where is the source code:'にcloneしたレポジトリを指定し、'Where to build the binaries:'に好きな場所を指定します。
自分はこんな感じです。
'Where to build the binaries:'で指定するフォルダは存在しなければcmakeが自分で作ります(作るか別の場所にするかあとで聞いてくる)。

上記2つの指定をしてから左下のほうのConfigureボタンを押すとこんなウィンドウが出てくるので
'Specify the generator for this project' のところを 'VisualStudio 14 2015' にします。
あとはそのままで'Finish'を押しましょう。
すると
こんな画面になるので
CMAKE_GENERATOR_TOOLSETのところをクリックしてv140_xpをv140に変更します(XPはさっさと滅ぶべきです)。
そしてもう一度Configureボタンを押して赤いのが白くなったらGenerateボタンを押せば終わりです。

VisualStudioでビルド
さきほど'Where to build the binaries:'で指定したフォルダを開くと中に色々ファイルやフォルダが出来ています。
その中のavs_coreフォルダを開き、中にあるAvsCore.slnをダブルクリックすればVisualStudioが起動します。
あとはソリューションエクスプローラーでAvsCoreのビルドを実行すればいいです。
なにかしらビルド中にやたら警告が出るとは思いますが、エラーになっていなければ大丈夫です。
64bit用もほしければ構成マネージャでプラットフォームを追加してください。

もし64bit用バイナリをビルドしようとしてLNK1112のエラーが出て失敗した場合は
ソリューションエクスプローラー -> AvsCore -> 'プロパティ' -> 'プラットフォーム(p):'がx64になっているのを確認 -> リンカー -> コマンドラインと進みます。
で'追加のオプション'のところに/machine:x86とあったら、それを消して適用 -> もう一度ビルドすればいいです。

大雑把ですが、はまりどころはそれほどはないはず…CMakeめんどくさいんだよバカ…

2016年4月5日火曜日

TCannyMod その3

また更新です。

TCannyMod

TCannyMod-1.1.1.zip

・32bitもAVX2を使えるようにした。

エッジ検出/エッジ勾配計算の処理を書き換えてみたところ、32bitでも問題なくAVX2を使えるようになりました。
なんで同じコードが64bitならよくて32bitだとダメなのかはいまだによくわかっておりませんが。

計算そのものは全く同じなので出力は以前と変わりません。