クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
受託開発、トレーニング、サポート等
組み込み向けユーセージ分析
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
4月 05, 2017 by 鈴木 佑 | Comments
この記事は The Qt Blog の Boosting performance with shader binary caching in Qt 5.9 を翻訳したものです。
執筆: Laszlo Agocs, 2017年3月23日
Qt 5.9 のリリースが近づいてきました。というわけで、Qt Quick (および OpenGL を利用した QPainter の描画)のベースとなっている OpenGL の重要な部分に関して行った、わずかですが非常に便利な改善について紹介したいと思います。
Qt 5.9 のドキュメントのスナップショットを見た方の中には 由緒正しい QOpenGLShaderProgram に追加されたいくつかの機能 に気づいた方もいるかもしれません。これは Qt の内部で利用していた API がこの新しい API になりました。これは実際どういうものでしょうか?
ここで説明しているように、これらのシェーダープログラムのバイナリが GL_ARB_get_program_binary もしくは OpenGL ES 3.0 の同様の標準機能を用いてディスクに保存されるようになります。ドライバがこの機能を提供していない場合には、キャッシュがない場合と同様の動作になります。キャッシュファイルは書き込み可能な キャッシュ用の場所 に、グローバルもしくはプロセスごとに生成されます。これにより、2回目以降に同じシェーダーのプログラムが使われる場合のパフォーマンスが大幅に改善されます。
実際にどの程度の改善になるでしょう?これは一概にはなんとも言えません。ここ数年、このようなキャッシュを行うようになったドライバもありますし、パイプラインに似たような機能が実装されているドライバも世の中には存在しますが、現時点で市場に出回っているデバイスでは非常に大きな効果がありました。
ここで実際の数値は気にしないでください。重要なポイントは Qt 5.8 と Qt 5.9 の間の差です。また、シンプルな Qt Quick のアプリケーションや OpenGL ベースの QPainter を使ったアプリケーションでは10個ものシェーダープログラムは使われないでしょうが、Qt Graphical Effects や ShaderEffect を利用し複雑さが増せば増すほどこのような改善の恩恵は大きくなります。
実際のところ、すでにシェーダーのキャッシュの恩恵を受けているプラットフォームでもこの効果があることが分かりました。つまり、すべてのアプリケーションの起動と描画の切り替えが、この Qt 5.9 の恩恵に(しかもコードを書き換える事無く)あずかれるはずです。
QOpenGLShaderProgram を自分で使っているアプリケーションは、 単に呼んでいるメソッドを cacheable 版の方に変える事が可能になります。これらの変更はプログラムのバイナリの利用に関する意味の変更を伴うことになりますが、これは意図的に行いました。特に QOpenGLShader と addShader()、removeShader() については個々のシェーダーのコンパイルに関するもののため、今回のプログラムレベルでのキャッシュとは互換性がありません。
今回は以上でおしまいです。今後も Qt 5.9 や 5.10 の新機能の記事を書く予定ですのでお楽しみに。
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
11 5, 2024
本稿は「Feedback Wanted: What does a unified Qt Hub look like to you?」の抄訳です。..
9 27, 2024
本稿は「QtGraphs」の抄訳です。 このブログ記事では、データを2Dおよび3Dグラフで視覚化するQtの最新モジュールを紹介します。Qt..
9 24, 2024
本稿は「Reducing Binary Size of Qt Applications with Qt 6.8 - Part 2: Coffee..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.