【Xbox360】 XNA Game Studio その4 【C#】at GAMEDEV
【Xbox360】 XNA Game Studio その4 【C#】 - 暇つぶし2ch503:ひげねこ ◆oxtErU/kVM
08/02/24 05:16:38 XxNI12Tm
>>500
Xbox 360ではWindowsと同じようにユーザーモードと、スーパーバイザーモードがあります。
ユーザーモードではユーザーメモリ空間、スパーバイザーモードではカーネルメモリ空間があります。
GPUリソースはカーネルメモリ内にあって、ユーザーモードからはカーネルメモリには直接アクセスすることはできません。

全てのマネージコードはこのユーザーモードで動作するので、頂点データをセットするときは
ユーザーメモリからカーネルメモリへのデータコピーをしなければなりません。

仮にLockがあったとしても、帰ってくるのはユーザーメモリのポインタなので、
処理を終えたときに、やはりユーザーメモリからカーネルメモリへのコピーが必要になります。

Windows上ではVertexBufferの作られたときのフラグとロック時のフラグ状態によって暗黙的に動作方法を変化させています。
この判りづらく、間違えやすいという問題を明示的にしたものがSetData<T>、GetData<T>です。

ですから、Lockがあったとしても速度的な違いはありません。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch