1

私のアプリケーションの詳細:

動作環境: 4GB RAM 搭載の Macbook pro、128MB VRAM 搭載の ATI Radeon X1600、Opengl バージョン: 2.1 ATI-7.0.52

垂直同期の使用 (CVDisplay 経由) : はい

プログラミング言語: Lisp (Lispworks) with FFI to Opengl

ピクセル形式の情報

  • ns-open-gl-pfa-depth-size 32
  • ns-open-gl-pfa-sample-buffers 1
  • ns-open-gl-pfa-samples 6
  • ns-open-gl-pfa-accelerated 1
  • ns-open-gl-pfa-no-recovery 1
  • ns-open-gl-pfa-backing-store 0
  • ns-open-gl-pfa-virtual-screen-count 1

[1 = はい、0 = いいえ] ブール属性の場合

私のアプリケーションには次のメッシュがあります。

14 個の静的メッシュ (変更されません)。静的描画タイプのメッシュごとに VBO を定義しました。

2 つのダイナミック メッシュ (フレームごとに変化)。ストリーム描画タイプのメッシュごとに VBO を定義しました。

これらのダイナミック メッシュでは、フレームごとに null ポインターを使用してバッファー データをバインドし、バッファーをマップして、マップされたバッファーを更新し、バッファーのマップを解除します。

アプリを実行して Opengl プロファイラーで確認すると、次の (統計ビュー) が表示されます。

CGLFlushDrawable:

  • 平均時間 (マイクロ秒): 52990.63 = 52.990 ミリ秒
  • % GL 時間: 98.55
  • % アプリ時間: 43.96

FPS が 6 ~ 7 FPS と非常に低いのも不思議ではありません。

CGLFlushBuffer を呼び出すだけで、CGLFlushBuffer を呼び出すだけなので、CGLFlushDrawable を最適化する方法は何ですか。

4

1 に答える 1

1

さて、私の ATI Radeon X1600 グラフィックス カードに問題があることがわかりました。

何も変更せずに、Intel HD Graphics 3000 と 384MB の DDR3 SDRAM を搭載した別の新しい 13 インチ Macbook Pro で同じコードをテストすると、アプリケーションは約 30 FPS で正常に動作します。持ってる。

また、古い MBP の場合のように、CGLFlushDrawable にはボトルネックはまったくありません。さらに、VBO 割り当て後に使用可能な VRAM のメモリ量は同じままです (これも私が期待していたものです)。これは、私の古い MBP で起こっていたことではありません。

最後に、MBP ディスプレイがクラッシュし (定期的にではありませんが)、外部 LCD ディスプレイも正常に動作しません。これは、グラフィック カードに問題があることを示しています。

@ブラッド、すべての入力に感謝します。

于 2012-05-09T19:40:01.890 に答える