« 2018年1月 | トップページ

2018年2月

2018年2月23日 (金)

Ver.2.0.14 & Android版 Alpha 5 リリース

Ver.2.0.14 をリリースします。

フレームスキップ処理のパラメータ調整、SIMD命令による変換処理を利用するためのコード追加を行いました。
SIMD命令による変換はチューニング前のため標準では有効にしていませんが

onSIMDOperationSupport=false

onSIMDOperationSupport=true

とすることで試すことができます。

また同時に同じソースで作ったAndroid版のAlpha 5もアップロードしました。


以下からダウンロードできます。(Windows/Linux(x64のみ)/Mac版)


https://github.com/funfun-dc5/qtbrynhildr/releases


主な変更は以下です。


[不具合修正]
・ソフトウェア・ボタンの状態に最新の設定情報が反映されない不具合修正(タッチパネル版)

[その他変更]
・SIMD命令(SSE/NEON)の利用コードの追加(標準では無効)
・フレームスキップ処理のパラメータ調整
・ドキュメント作成ツール Sphinx をバージョンアップ(1.7.0)


(おまけ)

システムで提供されるlibvpxを利用するQt Brynhildrを作るためのパッチ

「qtbrynhildr.pro.patch」をダウンロード

例えばUbuntuの場合libvpx-devパッケージのインストールが必要になります。


-----------------------------------------------------------------------------------
[SHA256SUM]
-----------------------------------------------------------------------------------
6e38cd048fee02a2cdb04c0c10c01059b420cc2ba2b7ac50eb2e3dfddf0db6ee *QtBrynhildr64-windows-v2014-msvc.exe

3d382f1a5ef85aeca5efb6496d281effc2cad2fbf0312813051bdbb82520ee77 *QtBrynhildr64-windows-v2014-Portable.exe

5d15711cf8c85bfe2f32b07df24ece8cb1c8f7b4d4a9fbd4502794d3c667697e *QtBrynhildr-android-v210-alpha-20180223.apk

02d0aade9a29a3beb1fe38e36e0436882b231c971ed0eb74109e7cb1505080e1 *QtBrynhildr-documents-20180223.zip

6f90285d88c5f235ba1e04560e44e6ef0036fa0efb0052715e22c0b932fa430f *QtBrynhildr-linux_x64-v2014.run

79fac63d527d1ad0937dbda3d240c05539eeb2f54c8875278b65463e16b2c609 *QtBrynhildr-macosx_x64-v2014.dmg

d3cfc931b1c1d3c958c12fdeb0ec3d999dc8ad7815ee23fc2f4ddb1c9315815a *QtBrynhildr-windows-v2014-msvc.exe

fa7dc89a9407521d1b1ff24a05d45e4272713d3388c0bcaaea306276e77aca1b *QtBrynhildr-windows-v2014-Portable.exe

2018年2月22日 (木)

ストリーミング型ゲームをMacにストリーミングしてみる

PlayStation Now の1週間無料コードを入手したので、Windows PCにPlay Station Nowのクライアントを入れてみました。

コントローラの情報をサーバに送ってサーバ側でのゲーム実行結果を動画として送ってくるということでまさにBrynhildrが行っていることと同じような方式ですね。

さらにWindows PCにBrynhildrサーバを立てて、Mac上からQt Brynhildrで接続してどんな感じになるか試してみました。

コントローラが未対応なので実際に操作はできないのですが、多段のストリーミングになるのでやっぱり操作性に難がありそうな予感はしますね。

20180222_204431


自動更新は切ってあるので、残念ながらあと1週間しか楽しめません…(;ω;)

SonyさんがMac/Linux向けのクライアントを用意してくれたら、それが一番いいのですよね、本当は。

2018年2月18日 (日)

Ver.2.0.11 でのモード7 の改善について

2.0.11をリリースした後、Raspberry Pi 3で試しに使っていたのですがどうも重たいのでいろいろチェックしていたら、どうやら改善するための仕組みの実装がバグっていたというオチになっていました。(Ver.2.0.12では改善策が正しく動作しており動作速度が改善されていることを確認しました)

改善と言っても普通当たり前のようにやっていることをやっていなかったというだけなのですけど。

簡単にいうと「不要な処理はしない」という基本的な最適化ですね。

Qt BrynhildtはBrynhildrサーバからネットワーク経由でVP8データを受け取ります。そのデータをlibvpxというライブラリに渡してYUVというデータに変換してもらいます。次にYUVデータをRGBというデータに変換します。このRGBデータをQtに渡してQImageというオブジェクトを作ってデスクトップ画像を描画してもらいます。


VP8データ

↓ libvpxが計算してくれる

YUVデータ

↓ 自前で計算する(*)

RGBデータ

↓ Qtが変換してくれる

QImageオブジェクト


ですので、QtBrynhildrはひたすらYUVデータからRGBデータへの変換をやればいいのですが、1920x1080のデスクトップで、ある時点のデスクトップを描画する場合、このYUVデータからRGBデータへの変換を207万3600回(1920*1080回)やらなくてはなりません。最終的にはR,G,Bの3つを計算するため同じような計算をするのでトータル622万800回行うことになります。これによりようやく1フレーム分の画像データが得られます。


2.0.11までQt Brynhildrは馬鹿正直に全ピクセル分をフレーム毎に再計算していたのです…(;д;)


一般的にデスクトップ画像は大きく変化することはそんなにありません。動画を表示しているウィンドウは当然変化しますが、それ以外の部分(例えば壁紙の部分とか)は画像的に変化がない部分も多いです。

前のフレームで計算した結果(RGBデータ)が残っているなら、次のフレームの計算でYUVデータの変化のない場合は計算自体を省略できます。Ver.2.0.12以降ではYUVデータで変更のあった部分だけ再計算してRGBデータの更新を行い、これをQtに渡して表示します。

YUVデータは前回のフレーム分と今回のフレーム分の2つが必要なので、2つ分のバッファを用意しておいて交互に役割だけを入れ替えて使うようにします。(不要なデータコピーを行わないようにするため)


YUVバッファ 1 YUVバッファ 2


前回のYUVデータ 最新のYUVデータ

↓ 次のフレーム

最新のYUVデータ 前回のYUVデータ

↓次のフレーム

前回のYUVデータ 最新のYUVデータ


極端に動きの早い画像を全画面で表示するような場合には性能がやや落ちる可能性がありますが、大抵の場合必要な計算量をかなり抑えることができると思います。


この改善の結果、2.0.10 リリース記事のコメントで書いた古いCore i3 ノートPCでのダメダメな動作は普通に使える程度には改善されました。しかし、CPU負荷は30%程度と高いので少し調べてみると、どうやらデスクトップ画像の縮小処理が原因でCPUの負荷が高いことが分かりました。そこで設定ダイアログで「スケーリング処理をサーバーで行う」オプションを指定するとCPU負荷は数%にまで落ち、ようやく普通に使える状態に落ち着きました。


開発者である私でさえ、このオプションの使用に行き着くまで試行錯誤が必要だったことを考えるとオプションの選択肢を増やすだけでなく最善のオプションの組み合わせをある程度自動的に選択するような機能が必要だという結論に辿り着きました…(;ω;)

(追記)

SIMD(SSE)での改善についてもイントリンシックではありますが実装してみました。Cygwin x64のgcc-6.4では25%程度の向上がみられるのですが、Qtに付属しているMinGW(gcc-5.3ベース)でコンパイルすると逆に遅くなります。生成されたコードをみるとやはりgcc-6.4の方が洗練されたコードとなっているようですが、とりあえずここで止めておこうかと思います。どうしてもこれ以上必要になった時は手動でコーディングするということで…

2018年2月16日 (金)

Ver.2.0.13 リリース

Ver.2.0.13 をリリースします。

デスクトップ画像の描画が間に合わない場合にフレームをスキップする処理を入れ忘れてました…(ボケが始まってますね)

あと先日リリースされたQt5.10.1を使ってビルドしています。また同時に同じソースで作ったAndroid版のAlpha 4もアップロードしました。


以下からダウンロードできます。(Windows/Linux(x64のみ)/Mac版)


https://github.com/funfun-dc5/qtbrynhildr/releases


主な変更は以下です。


[新規機能]
・フレームスキップ処理実装
条件判定部分だけ作って実際にスキップするのを入れ忘れていた…

[その他変更]
・Qt5.10.1でビルドするように変更(Linux(x86)版のみ5.4.2のまま)
・ソースコードの整理


(追記:2018.02.18)

Qtのバージョンを5.10.1に変更した影響で一度Ver.2.0.13を起動、終了すると"Qt Brynhildr.ini"に保存されるウィンドウ状態の情報がQt5.10.1向けに更新されます。その後Ver.2.0.12以前のQt Brynhildr を起動する場合ウィンドウが正しく表示されないので"Qt Brynhildr.ini"を一度削除するか、"windowState="で始まる一行を削除してから起動してください。

-----------------------------------------------------------------------------------
[SHA256SUM]
-----------------------------------------------------------------------------------
526f5b9b6977951c989ae77da7a94e7bf2eeac7b08a515525787804d8c29366c *QtBrynhildr-android-v210-alpha-20180217.apk

d0d7bbdbbf53e2f95f880df661e4c215bddf885818e69a875e5673ec54d40709 *QtBrynhildr64-windows-v2013-msvc.exe

df6f701d34f604dbae639db2091974c5d5f1eb80ff4a0cdca19f99b3a4f53cc5 *QtBrynhildr64-windows-v2013-Portable.exe

d43f9cb4c1cd42ab7adddbd3c21324d0aa89a7b267c63413ca3e1c5b6bdcb8e5 *QtBrynhildr-documents-20180216.zip

f797c9a85b9681c64fdb7802a23eda6119485a3e7fbf5bc668874fe5cce803e9 *QtBrynhildr-linux_x64-v2013.run

14dd9fb556b0a2331135ffd242ff2ff9e63ee855855cdc6ffeaae09f39cf4d1d *QtBrynhildr-macosx_x64-v2013.dmg

1f2518dfcf71ffe87edd4292ab561b6f1d4b4ffa2dfd47f92e3e62f4d2ddcf25 *QtBrynhildr-windows-v2013-msvc.exe

4ec234741b27306d136ffee0882727c4190f2aa76340660797b59e64b1a38ad1 *QtBrynhildr-windows-v2013-Portable.exe

2018年2月12日 (月)

Ver.2.1.0 Android版 Alpha 3

Ver.2.0.12 ベースのAndroid 版 Alpha 3 をアップロードしました。


https://github.com/funfun-dc5/qtbrynhildr/releases


主な変更は以下です。


(1) ソフトウェア・キーボード/ボタンの表示用のタッチパネル操作改善

(2) ソフトウェア・キーボード/ボタンの透過率の変更(現在は暫定で0.8 に設定)

2018年2月11日 (日)

Ver.2.1.0 Android版 Alpha 2

Ver.2.0.12 ベースのAndroid 版 Alpha 2 をアップロードしました。

https://github.com/funfun-dc5/qtbrynhildr/releases

2018年2月10日 (土)

Ver.2.0.12 リリース

Ver.2.0.12 をリリースします。


2.0.11でモード7の処理改善を行いましたがその処理がバグってました。負荷が軽くなるはずが逆に重くなっていたという…

Raspberry Pi 3 でビルド、動作確認していて気づきました。 詳細は別記事で書こうと思います。


以下からダウンロードできます。(Windows/Linux(x64のみ)/Mac版)


https://github.com/funfun-dc5/qtbrynhildr/releases


主な変更は以下です。


[不具合修正]
・2.0.11で入れた「モード7の画像変換処理の改善」が正しく動作していない不具合の修正

-----------------------------------------------------------------------------------
[SHA256SUM]
-----------------------------------------------------------------------------------
7346fa8f6c8709b44488545b52cf443a6738afeac561f6ee2fc8f6b7e82cf59b *QtBrynhildr64-windows-v2012-msvc.exe

dd13255170ae89b66649c5329c69e1a1151c3db64586655af78429f2c3014335 *QtBrynhildr64-windows-v2012-Portable.exe

64f3b02fbfafb927d24adccf45ba17f1c0f6c434115dbdd3742eed0889e16fe8 *QtBrynhildr-documents-20180210.zip

1baaa13e49516b8b096d2794a3078e2a61fe27f4c22554e5d288cc9c44536072 *QtBrynhildr-linux_x64-v2012.run

fc479ed531604d2775e9b118b99a22811f4f7e85667984a41389c450d060a855 *QtBrynhildr-macosx_x64-v2012.dmg

be9e87f03862fbd60ba9defe4604d4b4c74b3a3fc2c9a37347f6ccfcb07759b1 *QtBrynhildr-windows-v2012-msvc.exe

9ea9bf09ca667d53001bb585ca254bb72c3457151a0b9554912b4c9f7a1823d5 *QtBrynhildr-windows-v2012-Portable.exe

2018年2月 7日 (水)

Ver.2.0.11 リリース

Ver.2.0.11 をリリースします。


モード7の処理改善を行いました。

Android版を含む2.1.0のリリースに向けた修正が大体終わったのでこの版を元にGoogle Playのオープンアルファ版のテスト配布を行う準備をしています。

私のNexus 7(2013)以外での動作報告がないのでどうなることやら…ですけど。


以下からダウンロードできます。(Windows/Linux(x64のみ)/Mac版)


https://github.com/funfun-dc5/qtbrynhildr/releases


主な変更は以下です。


[その他変更]
・モード7の画像変換処理の改善
・ソースコードの整理

[その他変更]
・ドキュメント作成ツール Sphinx をバージョンアップ(1.6.7)


SIMD命令(SSE, AVX, NEON)での処理もテスト実装しましたが初心者のイントリンシックによる実装なのでまだまだ改善の余地がありそうです(;ω;)

-----------------------------------------------------------------------------------
[SHA256SUM]
-----------------------------------------------------------------------------------
4dd9166d69e48e579fb12c3c9a40594050a92df9ec9a35951ef43abdb40f603c *QtBrynhildr64-windows-v2011-msvc.exe

0adeaa7ed10d39fc746ccb1629fe2f22ef63478c5c3f76a37046ccd412136e97 *QtBrynhildr64-windows-v2011-Portable.exe

a405c3a20183b754d72b0f6c012b75d4cd47cebc068c0baa2675ec253d58642f *QtBrynhildr-documents-20180207.zip

173962dd3ad9aef2d13044540d0db1f3e0c0168a1cb82198cc1b90f398b55ef4 *QtBrynhildr-linux_x64-v2011.run

9d511202704ea4f96822032b09ab66987bb8335f92b5364e6239e6e256095bfc *QtBrynhildr-macosx_x64-v2011.dmg

8ea887e12cabed2a855e74d1bb1a8bab8097bad5f9f02cadb24aaeb7b24e9388 *QtBrynhildr-windows-v2011-msvc.exe

eac24ffe6f5bfcabde2ce7dd45c690e0d13b1baa41d24ab897fe028a98b58350 *QtBrynhildr-windows-v2011-Portable.exe

2018年2月 3日 (土)

Highlight 3.42 GUIの日本語化ファイル

Qtつながりというだけですが...気分転換にHighlight というツールのGUIを日本語化してみました。

Highlight : code & syntax highlighting


窓の杜さんの記事 : さまざまなプログラミング言語のソースコードを構文に従って色分け「Highlight」


Ws000000


「Highlight3.42_ja.zip」をダウンロード

highlight_ja_JP.qm ファイルを Highlight/gui_files/l10n に置くと日本語になります。Mac版のGUIでも使えるはずですが、試してません。

« 2018年1月 | トップページ

無料ブログはココログ
2018年2月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28