BonDriver_PT3-ST お試し人柱版3 PT3Ctrl mod's 更新履歴 mod1 (Sc_359671, Sc_359676) ・DMA転送エラーで再試行する処理削除(DataIO.cpp, DataIO.h) … (A) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.34 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341367182/ 640 名前:名無しさん@編集中[sage] 投稿日:2012/07/05(木) 01:59:21.61 ID:WWBV7UEZ >>624 ありがとう とりあえず該当部分をコメントアウトしてビルドしてみたよ 手元にはBS来てないので未テスト Sc_359671 ------------------------------------------------------------------------------------ mod2 (Sc_359687) ・Sのドロップ対策:起動中最小タイマ分解能を1ミリ秒に変更(PT3CtrlMain.cpp) … (B) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.34 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341367182/ 665 名前:名無しさん@編集中[sage] 投稿日:2012/07/05(木) 02:31:33.80 ID:tvZ1l6N+ タイマ精度向上をPT3Ctrlに組み込みたいならこんなかんじで http://pastebin.com/kdX0Y5j6 696 名前:名無しさん@編集中[sage] 投稿日:2012/07/05(木) 02:47:27.53 ID:WWBV7UEZ Sc_359687 >>665を入れてみた ------------------------------------------------------------------------------------ mod3 ・S0エラー対策:チューナーを待機モードにしないようにする変更(PT3Manager.cpp) … (C)  ⇒TvRockからTVTest起動時に問題あり ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341453003/ 405 名前:名無しさん@編集中[sage] 投稿日:2012/07/05(木) 20:17:37.06 ID:6MpLLCAa BonDriverのソース修正で暫定的にエラーを回避する方法が分かったよ お試し人柱版3のソースで、 PT3Manager.cppの192行目の「true」を「false」に変更  〃 の205~208行目をコメントアウト まあ、これをやると消費電力が増えるというデメリットがあるが 593 名前:名無しさん@編集中[sage] 投稿日:2012/07/05(木) 23:57:17.10 ID:WWBV7UEZ Sc_359898 SetTunerSleepまわりを取り込んだ 710 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 01:16:57.39 ID:oXX8L+u0 >>703 TvRock経由でTvTest起動したときだけおかしくなる。 ・TvRockからTvTest(BS/CS)起動 → OK ・TvRockからTvTest停止 → OK ・TvRockからTvTest(BS/CS)再起動 → NG PT3ctrl.exe 元に戻すと動くんだけどね。 724 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 01:48:33.91 ID:+35tRrPg TvRock+TvTestにmod3入れたらT0録画中のS0、S1視聴がブラックアウトになるなあ… ウチだけ? 725 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 01:49:01.76 ID:rqIYvN3d >>710 これ俺も今なった、mod2に戻したら起きなくなったけどね tvrockから起動したときだけmod3だとおかしくなるw ------------------------------------------------------------------------------------ mod4 (Sc_359932) ・mod3の変更を削除(PT3Manager.cpp) … (C) ・S0エラー対策:デバイスオープン時に各チューナーの省電力制御をオフ⇒オンにするよう変更(PT3Manager.cpp) … (D) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【4TS】 705 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 01:08:14.85 ID:ZRwXEVp2 調べてみたところS0の問題に関してはT0(T1でもS1でもない)のスリープ状態を解除したかどうかが 発生の条件になってるようで 一度でもT0のスリープ状態を解除すれば後はスリープ状態に戻しても起こらないようなので 消費電力が気になる人はこんなかんじで修正するのが宜しいかと http://pastebin.com/i3gQ717B 731 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 02:05:03.38 ID:M/9ZIcbL Sc_359932 >>705さんありがとうございます。mod3の修正をやめにして 705氏のパッチを取り込みました ------------------------------------------------------------------------------------ mod5 (Sc_360094) ・mod2の変更を削除(PT3CtrlMain.cpp) … (B) ・Sのドロップ対策:最小タイマ分解能を1ミリ秒に変更するタイミングを調整(DataIO.cpp, PT3CtrlMain.cpp, PT3Manager.cpp, stdafx.h) … (E) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【4TS】 915 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 12:15:47.97 ID:mJGush5j ttp://toro.2ch.net/test/read.cgi/avi/1340086308/806 で、timeBeginPeriod()/timeEndPeriod()のことを書いた者です。 相変わらず、スレの流れが速すぎて斜め読みしかしてないのですが・・・ >>PT3Ctrl_r3modXの人へ ttp://toro.2ch.net/test/read.cgi/avi/1340086308/810 でも書きましたが、timeBeginPeriod()/timeEndPeriod()の使用は好ましい方 法ではありません。 最終的には、SDK側のバッファを増やすか、BonDriver側のデータ取り込みの 方法を改善するのが望ましいと思われますが・・・ 暫定的な対策としてtimeBeginPeriod()/timeEndPeriod()を使うのは仕方がない としても > ttp://msdn.microsoft.com/ja-jp/library/cc428791.aspx > 「タイマサービスの使用直前にこの関数を呼び出し、タイマサービスの使用終 > 了後ただちに timeEndPeriod 関数を呼び出してください。」 に従い、Sleep()/WaitForXXX()前後で、timeBeginPeriod()/timeEndPeriod() するようにすべきです。 参考: ttp://pastebin.com/MdDT7L0K (動作確認済み・とりあえず機械的に全箇所にいれてます) 【3波】 アースソフトPT1・PT2・PT3 Rev.36 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341545184/ 155 名前:名無しさん@編集中[sage] 投稿日:2012/07/06(金) 21:47:39.12 ID:M/9ZIcbL Sc_360094 PTxスレ Rev.35 >>915氏のパッチを適用した。 前スレ>>915さんありがとうございます。 ------------------------------------------------------------------------------------ mod6 (Sc_360299) ・mod5の変更を削除(DataIO.cpp, PT3CtrlMain.cpp, PT3Manager.cpp, stdafx.h) … (E) ・Sのドロップ対策:TSパケットの受信回数を1回から最大16回に変更(DataIO.cpp) … (F) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.36 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341545184/499 499 名前:名無しさん@編集中[sage] 投稿日:2012/07/07(土) 12:33:40.79 ID:XfKP8EPE 330さんの方法だとdelayが増えそうなので、少し違う方法で実装してみた ttp://pastebin.com/4wjmEsx9 ------------------------------------------------------------------------------------ ・TSパケットの受信用スレッドのマルチスレッド化(DataIO.cpp, DataIO.h) … (G) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.36 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1341545184/499 524 名前:名無しさん@編集中[sage] 投稿日:2012/07/07(土) 14:00:19.22 ID:QRIKIUkr >>512 499は330の代わり(より遅延変動に強い) 499+マルチスレッドは http://pastebin.com/qmpXhkYe 個人のgithubとかならともかくgooglecodeに登録したりするのは 一次著作者たるEDCBの中の人が判断すべきことかと ------------------------------------------------------------------------------------ 657 名前:名無しさん@編集中[sage] 投稿日:2012/07/07(土) 17:55:49.15 ID:jTvswF3r Sc_360299 mod6 人柱版3をベースに PTxスレ Rev.35 >>705氏のパッチ ttp://pastebin.com/i3gQ717B と PTxスレ Rev.36 >>524氏のパッチ ttp://pastebin.com/qmpXhkYe を使わせてもらいました。感謝。 mod1にあったDMA転送エラーチェックの無効化はしていません ------------------------------------------------------------------------------------ mod6a ・mod6のマルチスレッド化処理を削除(DataIO.cpp, DataIO.h) … (G) ・変更箇所がどのmodかわかるようコメント追加 ・リソースに「BonDrive_PT3-ST お試し人柱版3 + mod6a」を記載(プロパティから確認できます) ※PT3Ctrl_mod6a.diff は BonDriver_PT3-ST お試し人柱版3 PT3Ctrl ソースの差分です。 mod7 (Sc_361121) ・mod6の変更を廃止(DataIO.cpp, DataIO.h) … (F)(G) ・TSパケットの受信用スレッド(m_hThread)と格納バッファ(m_*Buff)、および各スレッド処理(RecvThread等)を廃止(DataIO.cpp, DataIO.h) … (H) ・SDKのDMAバッファを直接BonDriver_PT3に転送するよう変更(DataIO.cpp, DataIO.h) … (H) ・mod1の変更を廃止しChkTransferInfoを上記の転送方式に対応(DataIO.cpp, DataIO.h) … (H) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 261 名前:名無しさん@編集中[sage] 投稿日:2012/07/10(火) 17:26:34.37 ID:UTtQKiJP >>260 なので外しちゃうとDMA転送エラーがあった場合(というかオーバーフロー) それ以後再開されずに沈黙状態になっちゃうんだよね PT3Ctrlのバッファ廃止して直接BonDriverから取り出すようにしたけど微妙 地上波は問題ないけどやっぱり衛星が間に合ってないっぽい データがある限りノーウエイトで要求するはずだけど、転送単位上げないと駄目かな 279 名前:名無しさん@編集中[sage] 投稿日:2012/07/10(火) 18:25:42.87 ID:UTtQKiJP >>271 そうではなく、根本的にPT3Ctrlのバッファをなくせないかと思って試してる ただそれでも同様に取得側の速度を上げなきゃ駄目そうだってのが>>261 372 名前:名無しさん@編集中[sage] 投稿日:2012/07/10(火) 22:10:50.51 ID:UTtQKiJP PT3Ctrlのバッファ削減成功 BonDriverの速度で間に合わないはずがないからおかしいと思ったよ 配線間違えててSにT用の線繋いでた。微妙に映るから騙されたorz 387 名前:名無しさん@編集中[sage] 投稿日:2012/07/10(火) 22:21:21.66 ID:UTtQKiJP >>377 乱発すると混乱するしもうちょっと長時間テストしてから出します つかパッチって規模じゃなくDataIO全体に書き換わってるんでファイルでいいかな Recvスレッド関連を端から外してるからなんだけど あとChkTransferInfoをどこに仕込むか検討しないといかん チューナー別に分けて取り出す前にチェックかな 451 名前:名無しさん@編集中[sage] 投稿日:2012/07/10(火) 23:46:15.97 ID:UTtQKiJP >>427 続きも何も地上BS同時に放置して監視中 DROPもERRORもインジケーターに変化なしだから大丈夫そうかな あとはOverflow対策コードを再配置したからそれで再チェックかな ところでソースはコメントアウトのままのがわかりやすいかな? コメントアウトが多すぎて見通しは悪いんだけど変化わからなくなる? 483 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 01:18:50.93 ID:ejST/WSK >>472 了解。どうせdiffじゃないしバッサリいった。 戻す必要があった場合は見比べてください。 で、差分ファイルがこれ http://typezero.ddo.jp/dtv/PT3Ctrl_r3mod_NoBuff.zip 内容はPT3Ctrlにあったバッファとその格納スレッドの削除 なお、mod4のS0エラー対策も別ファイルですが一応入れてあります 484 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 01:20:54.84 ID:ejST/WSK あ、差分のソースファイルだけなんでこのファイル名はよくなかったような… ソースなんかあっても意味がないという方は、わかる方々の確認をお待ちください 492 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 01:56:21.56 ID:ejST/WSK >>489 内部構成的には3段バッファで処理されてました 1.SDK経由でHWに渡すDMAバッファ  (A) PT3Ctrl内のスレッドによるPULL 2.PT3Ctrl内にあるバッファ  (B) BonDriver_PT3側のスレッド(のトリガ)によるPIPE経由PULL 3.BonDriver_PT3側にあるバッファ 転送単位が小さくて間に合っていないというのは(A)の処理だったようなので 2のバッファを削除し(B)で直接1→3の転送を行う事で(A)自体をなくしました 498 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 02:01:14.75 ID:QV5O8zAR Sc_361121 mod7 人柱版3をベースに>>483氏のパッチを使わせてもらいました。感謝。 >>492 お疲れ様です。 ------------------------------------------------------------------------------------ mod8 (Sc_361133) ・SDK0.96新API対応(DataIO.cpp, DataIO.h) … (I) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 609 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 03:30:37.21 ID:QiVx0Dmp とりあえず>>483ベースに新APIに対応させたもの 483のDataIO.cpp/hに対する差分しか入ってないけど incの中のファイルは各自新SDK/Exampleのものと入れ替えること 483さんが直ぐに上げそうな気もするけど試したい人はどうぞ http://pastebin.com/Vs5ZLh3N 636 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 04:25:24.32 ID:QV5O8zAR Sc_361133 mod8 mod7をベースにPT3 SDK 0.96対応の>>609氏のパッチをお使わせてもらいました。感謝。 ちゃんとExampleの方のソースも入れないとちゃんとビルドできませんよ・・・。 【補足】  QiVx0Dmp氏のパッチではmod4の変更を廃止しているが、mod8では廃止していない。 ------------------------------------------------------------------------------------ ※このバージョンからSDK 0.96を必要とします。また、ビルドの際にはincディレクトリの 中身を0.96のものと置き換えてください。EARTH_PT3.hはSDKから、 残りはExampleからコピーするとうまくいくはずです。 mod9 (Sc_361325) ・SyncCpu, SyncIoを呼ぶタイミングを修正(DataIO.cpp) … (J) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 659 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 05:59:00.31 ID:QiVx0Dmp 609のSync**のタイミングを修正したもの http://pastebin.com/eD93b6dz >>630もコピー後に呼んでるSyncIoをコピー前に持ってこなきゃいかんような? 正直キャッシュに関するバグを意図的に発動させる方法が分からんので確認が難しい。 S0の問題はちょっと試したところ出てないので直ったのかもしれない。 720 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 11:00:51.16 ID:ejST/WSK >>659 書き込み直後にはSyncCPUが必要、なのに書き込み直後に間違ってSyncIo呼んでました 読み出しを行っているBlockに関してはSyncしない方が良さそうです キャッシュがクリアされるので恐らく効率が落ちます (DMA書き込みが次のBlockに移動している前提なので問題ないと思う) 逆にnextは書き変わりを検知するためにSyncIoが必要のはずです タイミングの修正も加えて一応ソース更新しました http://typezero.ddo.jp/dtv/PT3Ctrl_r3mod_NoBuff_src2_SDK096.zip 774 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 13:37:03.30 ID:QiVx0Dmp >>720 Exampleでは次ブロック先頭のポーリングの際にはSyncIoを呼んでいないのだけれど これはExampleが間違ってるという事でしょうかね。 まあ0x47になるまで待機かつCPU側のキャッシュをクリアしているので SyncIo無しでも転送終了を誤検知する事はない、ということなのかもしれないけど そうすると前のブロックのIO cacheのflushも終わっているはずなので 読み出し前のSyncIoも必要ない気がするのだけれどどうなのだろう。 936 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 21:27:30.39 ID:ejST/WSK >>774 今更ですが。 nextの0x47検知はまさにPCIデバイスによる変更を見てるわけで 変化したのを確実に読み取るにはSyncIoが必要だとコメントからは読み取ったのですが…。 ただまあデバイスからはどんどんデータが来るので押し出されてDMAバッファに書き込まれるため 多少遅れるだけで検知されるので問題になることはまず無いんじゃないでしょうか? 前のブロックは次のブロックで0x47が実際に出てる時点で書き込まれてるはずなので その後で前のブロックのSyncIoしなくても問題ないのでしょう ブロック毎で確定させるならnextの0x47検知時に一度で十分だと思います ------------------------------------------------------------------------------------ ・DMA受信用のリングバッファの1つ分のサイズを従来の1/8に変更(DataIO.cpp, DataIO.h) … (J) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 878 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 19:17:05.47 ID:hMFJmpgW 0.96+8でTvTestで見るとビットレートがおかしくなるんだよな やり方ミスったかなー なんか気持ち悪いから0.95の環境に戻した 885 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 19:29:49.26 ID:wCu9oftJ >>878 うちは地上波のみだけど、大体10Mbpsと20Mbpsの表示を交互にを繰り返してるな TVTestのビットレート検出のタイミングが新しいSDK対応のmodのデータやり取りのタイミングとうまく合わないんじゃなかろうか 映像音声のビットレートは正しく出てるみたいだし、表示だけで実害なさそうな感じだけど 892 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 19:42:38.91 ID:0HL/VleZ >>878 >>879 >>885 720のやつだとリングバッファ一つ一つが大きすぎて バッファが貯まり切るまでの時間が長くて一度にドバッと渡す挙動になるので そういう表示になるのだと思われる 659のやつだと大丈夫だが 903 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 20:16:38.58 ID:wCu9oftJ バイナリ配布された奴じゃないから糞ビルド乙なのかもしれんけど >>720のやつ、リングバッファ一つ一つが大きすぎ?なのが原因なのか、メモリの食い方がかなりすごい >>720以前のmod8のバイナリとかは地上4同時で使用メモリ50メガくらいだけど、>>720のは200メガくらい食ってる 913 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 20:26:47.73 ID:ejST/WSK >>903 いや、多分その通りです。 一応Exampleの数値でまずはやってみたけど ファイル書き出しじゃないのでもっと小さくして構わないですね 多少メモリ充填効率が落ちますがそれは大した問題にはならないです リング自体も32になってますが、以前同様8で十分でしょう 918 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 20:39:52.13 ID:ejST/WSK いや違うか。 充填効率もこれで十分問題なかったです。なに寝ぼけてたんだろう… BLOCK_SIZE = OS::Memory::PAGE_SIZE * 47 BLOCK_COUNT = 8 これで以前と同じ量になります。 というかもう、>>659で十分だよね。という話ですがw 【補足】 変更前のブロックサイズ:  4,096 * UNIT_PER_4096 * WRITE_PER_UNIT  = 4,096 * 47 * 8  = 1,540,096 変更後のブロックサイズ:  OS::Memory::PAGE_SIZE * 47  = (4) * 1024 * 47  = 192,512 ------------------------------------------------------------------------------------ ・mod7以降で発生していたCmdSendData2内でのメモリリークを修正(DataIO.cpp) … (J) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 951 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 21:56:46.41 ID:wCu9oftJ しばらく受信しながらタスクマネージャとにらめっこしてるんだけど >>659も>>720も連続使用しているとPT3Ctrlのメモリ使用量がじわりじわりと増えていく 地上4受信で7~8メガ/1時間あたりだから即座にどうってことはないと思うけどちょっときになる ほかの人はどうなの? 952 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 22:01:03.83 ID:0bkuPQUS >>951 確かに増えているのは確認した。 とりあえず、現状は>>659案でこの件は次の宿題に持ち越した方がいいね 下手に弄ると更にややこしくなるので 953 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 22:03:25.73 ID:ejST/WSK >>951 あ、これだろ多分…。 すみません。盆ミスっぽいので確認します 956 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 22:08:13.48 ID:QiVx0Dmp リークは余計なnew BUFF_DATAが入ってるせいだね多分 957 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 22:13:09.97 ID:ejST/WSK >>956 その通りでした。 バッファ格納のところを参考にしてたときに混ぜちゃったみたいです。 バッファサイズ調整とSync調整入れて更新したので以後こっち参照してください http://typezero.ddo.jp/dtv/PT3Ctrl_r3mod_NoBuff_src3_SDK096.zip ちなみに>>659を使う場合はCmdSendData2のnew BUFF_DATA行を削除です ------------------------------------------------------------------------------------ ・SDK 0.96での修正に伴いmod4の変更内容を無効化(PT3Manager.cpp) … (K) ※mod4の変更を有効にする場合はRESET_TUNERSLEEPを定義してビルド ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.35 【5TS】 http://toro.2ch.net/test/read.cgi/avi/1341565329/ 624 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 03:59:32.05 ID:QV5O8zAR PT3Manager.cppの修正は必要かな 888 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 19:34:31.07 ID:0bkuPQUS >>886 >>748 これも迎撃は簡単 実証実験の結果報告は制作者に貴重なフィードバックをもたらすので重要 S0エラーの件、治ってるとの報告あるけど発生率低いのでテスター募集中 PT3Manager.cppを元に戻すだけなので実験自体は簡単 925 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 20:50:50.45 ID:0bkuPQUS >>918 とりあえず、mod9は>>659案でいきましょうか? PT3Manager.cpp変更無しでいける確証が持てない ------------------------------------------------------------------------------------ 961 名前:名無しさん@編集中[sage] 投稿日:2012/07/11(水) 22:24:15.64 ID:QV5O8zAR Sc_361325 mod9 人柱版3をベースに>>957氏の差分 PT3Ctrl_r3mod_NoBuff_src3_SDK096.zip を使わせてもらいました。 お二方に感謝。 ------------------------------------------------------------------------------------ mod10 (Sc_361604) ・mod9でBonDriver_PT3-ST.iniのDMABuffの設定が適用されず、常にDMABuff=1として動作していたバグを修正(DataIO.cpp, DataIO.h) … (L) ------------------------------------------------------------------------------------ 【3波】 アースソフトPT1・PT2・PT3 Rev.39 【4TS】 http://toro.2ch.net/test/read.cgi/avi/1342005884/ 415 名前:名無しさん@編集中[sage] 投稿日:2012/07/12(木) 19:32:05.80 ID:naSgVGS9 DMABuffの設定が効かなくなってたのでその点を修正しました リングバッファの1単位は変わらず、個数が8の倍数に増えます http://typezero.ddo.jp/dtv/PT3Ctrl_r3mod_NoBuff_src4_SDK096.zip ただDMABuff=1相当で問題でてなさそうということはデフォルトの8は過剰気味? まあ高負荷時の耐性は上がるのでメモリが余裕ならそれなりにしとく方が無難 421 名前:名無しさん@編集中[sage] 投稿日:2012/07/12(木) 19:37:17.66 ID:ixjWenY6 >>415 乙 BonDriver_PT3-ST.iniの設定を読まなくなっていたのを修正したってことなのかな 429 名前:名無しさん@編集中[sage] 投稿日:2012/07/12(木) 19:51:04.77 ID:naSgVGS9 一つ補足を。 NoBuff_src4_SDK096系のはPT3Ctrlのバッファを一つ減らす案のSDK0.96用ソースです 必要なのはバイナリでソースは意味がないという人は無視してください いきなりバイナリではなくソースのクロスチェックをしてもらいたいというのが本来の目的です >>421 設定を渡されていたんですが使用していませんでした そのためDMABuff=1相当で動作していました 468 名前:名無しさん@編集中[sage] 投稿日:2012/07/12(木) 20:34:46.53 ID:VQXNZRYF mod9のPT3Ctrl.exeのメモリ使用量が少ないと思ってたらそういうことだったのか。 >>415様の修正ビルドしたら以前と同様のメモリ使用量に戻った。 556 名前:名無しさん@編集中[sage] 投稿日:2012/07/12(木) 22:16:39.17 ID:HJ6YZaAJ mod10 PTxスレ Rev.39 >>415氏の差分 PT3Ctrl_r3mod_NoBuff_src4_SDK096.zip を使わせてもらいました。感謝。 主にリングバッファの修正です。 乙です。 ------------------------------------------------------------------------------------ ■変更点一覧 mod1 = A mod2 = AB mod3 = ABC mod4 = AB D mod5 = A DE mod6 = A D FG mod6a = A D F mod7 = D H mod8 = D HI mod9 = HIJK mod10 = HIJKL ・DMA転送エラーで再試行する処理削除(DataIO.cpp, DataIO.h) … (A) ・Sのドロップ対策:起動中最小タイマ分解能を1ミリ秒に変更(PT3CtrlMain.cpp) … (B) ・S0エラー対策:チューナーを待機モードにしないようにする変更(PT3Manager.cpp) … (C) ・S0エラー対策:デバイスオープン時に各チューナーの省電力制御をオフ⇒オンにするよう変更(PT3Manager.cpp) … (D) ・Sのドロップ対策:最小タイマ分解能を1ミリ秒に変更するタイミングを調整(DataIO.cpp, PT3CtrlMain.cpp, PT3Manager.cpp, stdafx.h) … (E) ・Sのドロップ対策:TSパケットの受信回数を1回から最大16回に変更(DataIO.cpp) … (F) ・TSパケットの受信用スレッドのマルチスレッド化(DataIO.cpp, DataIO.h) … (G) ・TSパケットの受信用スレッド(m_hThread)と格納バッファ(m_*Buff)、および各スレッド処理(RecvThread等)を廃止(DataIO.cpp, DataIO.h) … (H) ・SDKのDMAバッファを直接BonDriver_PT3に転送するよう変更(DataIO.cpp, DataIO.h) … (H) ・mod1の変更を廃止しChkTransferInfoを上記の転送方式に対応(DataIO.cpp, DataIO.h) … (H) ・SDK0.96新API対応(DataIO.cpp, DataIO.h) … (I) ・SyncCpu, SyncIoを呼ぶタイミングを修正(DataIO.cpp) … (J) ・DMA受信用のリングバッファの1つ分のサイズを従来の1/8に変更(DataIO.cpp, DataIO.h) … (J) ・mod7以降で発生していたCmdSendData2内でのメモリリークを修正(DataIO.cpp) … (J) ・SDK 0.96での修正に伴いmod4の変更内容を無効化(PT3Manager.cpp) … (K) ※mod4の変更を有効にする場合はRESET_TUNERSLEEPを定義してビルド ・mod9でBonDriver_PT3-ST.iniのDMABuffの設定が適用されず、常にDMABuff=1として動作していたバグを修正(DataIO.cpp, DataIO.h) … (L)