問題タブ [optimus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
opengl - optirun を使用して Linux システムでサポートされている OpenGL のバージョンを確認するにはどうすればよいですか?
OpenGL プログラミング / OpenGL プログラムの実行で動作するようにラップトップをセットアップする際に、多くの問題 / 混乱がありました。
私のラップトップは、Intel CPU がオンチップのグラフィックス プロセッサを搭載し、専用のグラフィックス カードもある非常に巧妙な (私には巧妙すぎる) 設計の 1 つを持っています。具体的には、CPU は 3630QM で、「HD Graphics 4000」(非常にエキサイティングな名前だと思います) で、「適切な」グラフィックス プロセッサは Nvidia GTX 670MX です。
Wikipediaによると、理論的には、適切なドライバーがインストールされていれば、HD Graphics Chip (Intel) は Linux で OpenGL 3.1 をサポートします。(おそらくそうではありません。)
NVIDIAによると、670MXはOpenGL 4.1に対応しているとのことなので、理想的にはこのGPUで開発・実行したい。
NVIDIA GPU で OpenGL 4.1 コードを実行できるようにするドライバーをインストールしていますか? 回答: おそらくいいえ。現在、この「optirun」を使用して、専用 GPU で OpenGL プログラムを実行しています。このリンクを参照して、コンピューターをセットアップするために従ったプロセスを確認してください。
私の質問は、コンパイルされたプログラムを 670MX で実行する方法を知っているということです。これは「optirun ./programname」になりますが、システムにインストールされているグラフィックス ドライバーがサポートする OpenGL のバージョンを確認するにはどうすればよいですか? 'glxinfo | 実行中 ターミナルで grep -i opengl' を実行すると、Intel チップが OpenGl バージョン 3.0 をサポートしていることがわかります。以下の情報を参照してください。
「optirun」で利用可能なサポートと、サポートされている OpenGL のバージョンを確認するには、同じまたは類似のことを行うにはどうすればよいですか?
アップデート
glGetString() を使用してこの情報を見つけることを誰かが提案しました: 私は完全に混乱しています! optirun がなければ、サポートされている OpenGL のバージョンは「3.0 MESA 9.1.3」なので、バージョン 3 であることが予想されました。しかし、optirun でサポートされている OpenGL のバージョンは「4.3.0 NVIDIA 313.30」なので、バージョン 4.3 ?! NVIDIA のハードウェア仕様にバージョン 4.1 のみがサポートされていると記載されている場合、どうしてバージョン 4.3 になるのでしょうか?
opengl - OpenGL 3.3 2 つの GPU での 2 つの異なる結果 nVidia Optimus とシャドウ マッピング
だから私はC ++で(将来的にゲームを学び、作成するために)プロジェクトに取り組んでおり、レンダリングのためにOpenGL 3.3を選択しました。デフォルトの新しいアプリを開き、すべてがうまくいったので、プロセッサーに組み込まれた Intel HD 4000 に取り組んできました。しかし、その後、2番目のGPUであるnVidia GTX660mで開こうとしましたが、これははるかに高速であり、より多くのFPSが期待されていました。しかし、いいえ、何十ものバグがあっただけではありません(たとえば、フラグメントシェーダーで色としてvec3を出力した場合、Intelは問題ありませんでしたが、vec4を出力しなかった場合、nVidiaは完全にクレイジーなスタイルになりました...)。もちろん、コンパイル時にエラーが発生するわけではないので、修正するのは非常に困難です...
しかし今、私はそれのほとんどを修正したとき、私が望むように修正できない1つの問題に苦労しています(いくつかの汚い方法があるかもしれませんが...それはポイントではありません)。
簡単に言えば、両方の GPU で有効な深度マップを生成しますが、nVidia GPU ではグレースケールではなく、バーの赤から黒へのスケールです。同じ API!)。そのため、私のフラグメント シェーダーはそれに追いつかない可能性が高く、nVidia では、照らされた領域と完全に暗い領域を検出しません (少なくともスポットライトでは、ディレクショナル ライトは機能しません)。
写真:
重要 - GTX660m の深度マップは、Intel GPU のようなグレースケールではなく、redToBlack スケールであることに注意してください。上はディレクショナル ライト、下はもちろんポイント ライトです。
マイ FragmentShader: #version 330 コア
最初の部分はディレクショナル ライト用です - 5 つのポイントで深度マップを事前にサンプリングします。すべてが同じである場合は、それ以上サンプリングしません (早期ベイリング - パフォーマンスの最適化が大幅に向上します!)。または、一部が異なる場合は、すべてをサンプリングし、現在のフラグメントの影の強度を計算します。 .
2 番目の部分は、ポイント ライトの深度マップから単純にサンプリングしたものです。次に、レイの中心からの距離をチェックして、懐中電灯の効果 (中心が強い) をシミュレートします。
これ以上何も必要ないと思いますが、必要な場合は書いてください。必要なコードを投稿します。
また、シャドウマップの精度は 16 ビットのみ (GL_DEPTH_COMPONENT16) です。Intel HD4000 は私の GTX660m よりも高速です (これはより強力です)。これは非常に奇妙です。ハイポリを描いていないからだと思いますが、非常にローポリが多いだけです。私は正しいですか?
android - ポートレート モードでの LG optimus 3D 効果
私は LG optimus 3D モバイル プラットフォームに取り組んでおり、横向きモードでは 3 次元の奥行きを体験できるように思えますが、携帯電話が縦向きの場合はその効果が完全に失われます。ポートレートモードでもそれを機能させる方法を提案する人はいますか?
opengl - NVIDIA Optimus カードが OpenGL で切り替わらない
「glGetString(GL_VERSION)」と「glGetString(GL_SHADING_LANGUAGE_VERSION)」を使用してコンピューターの OpenGL バージョンを確認したところ、次の情報が得られました。
3.1.0 - GL_VERSION のビルド 8.15.10.2538
1.40 - GL_SHADING_LANGUAGE_VERSION 用のインテル ビルド 8.15.10.2538
「Geeks3D GPU Caps Viewer」を実行すると、グラフィック カード (NVS 4200M) の OpenGL バージョンが
GL_バージョン: 4.3.0
GLSL バージョン: Cg コンパイラ経由の 4.30 NVIDIA
私のグラフィック カードは一部の OpenGL 4.3.0 機能しかサポートしておらず、4.3 コンテキストを作成できないということですか?
linux - Optimus/Bumblebee 構成用の NVIDIA グラフィックス ドライバーをインストールできない
次の手順に従って、新しいラップトップ (msi ベアボーン MS-16GC ベース) の Fedora 20 (新規基本インストール) で Optimus/Bumblebee 構成を実行しました。
このリンクと非常によく似たすべての手順をリストしました
最終結果はxが起動せず、端末から起動できます。最後のステップで立ち往生しているように感じます。助けてください:
これらは私が取ったステップです
1) 私の BIOS は nvidia カードのオン/オフの切り替えをサポートしていません 2) Fedora 20 がライブ CD からインストールされました - カーネル/ソフトウェアが更新されました - kernel-devel と kernel-headers が gcc-c++ と lshw と共にインストールされました。NVIDIA ディスプレイ ドライバ バージョン 331.20 がダウンロードされていますが、まだインストールされていません。3) 以降の現在のカーネル: 3.11.10-301.fc20.x86_64 4) lspci は 2 つの関心のあるデバイスを提供します
00:02.0 VGA対応コントローラー:Intel Corporation 第4世代Core Processor Integrated Graphics Controller (rev 06) 01:00.0 3Dコントローラー:NVIDIA Corporation GK106M [GeForce GTX 765M] (rev a1)
lshw は、NVIDIA カードが nouveau を使用していることを示しています。
ドライバーNVIDIAドライバーのインストールの準備中
5) blacklist nouveau をブラックリストに登録します。/etc/modprobe.d/ に blacklist.conf ファイルを作成し、blacklist nouveau という行を作成します。
リブート
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img dracut /boot/initramfs-$(uname -r).img $(uname -r)
リブート
そして /etc/default/grub で rdblacklist=nouveau を GRUB_CMDLINE_LINUX に追加し、続いて grub2-mkconfig > /boot/grub2/grub.cfg コマンドを実行しました
コンピューターを再起動します (念のため)
lshw は次のように出力するようになりました - nouveau の兆候は無効です - デバイスは UNCLAIMED です。
6) 次に、次の行を含む .xinitrc という名前のファイルをホーム ディレクトリに作成します。
7) 次に、次のデータを含む xorg.conf2 というファイルを /etc/X11 に作成します。
8) ドライバーをインストールする時間
/* ここで行き詰まります */
chmod +x NVIDIA* と入力し、次に ./NVIDIA* と入力します。
次に、xorg.conf2 を xorg.conf に移動します
これで問題なくインストールできますが、コマンド ラインから startx と入力しても黒い画面が表示されます。
opengl - Optimus ビデオ カードで OpenGL glfwOpenWindow が動作しない
私は Geforce GT 540M を持っています。私のラップトップは Optimus を使用しているため、アプリケーションや設定などに応じて Intel GPU と Geforce GPU を「切り替え」ます。
ウィンドウを開くように行で伝えることができる限り、それは false を返します。
システム コマンドは、受信したエラー メッセージを確認するためのものでした。
コンパイラにグラフィック カードを強制的に認識させる方法はありますか? 私の推測では、Intel GPU しか検出できないと思います。
java - Java/OpenGL で nVIDIA Optimus を有効にしますか?
明確な答えがなく、すでに何度か尋ねられていることを知っており、nVIDIAにバグを報告しました。ただし、Prism-D3D エンジンで JavaFX を開始するよりも優れた回避策を探しています (これにより、nVIDIA を介して後続の OpenGL コンテキストをすぐに作成できます)。
環境:
- nVIDIA 860m、ドライバー 337.88、340.43、340.66 (quadro ドライバー)
- Java 8u11 (x86/x64 & Java 7 もテスト済み)
テストして失敗しました:
- nVIDIA プロファイル
- NvOptimusEnablement (C で記述されたカスタム ランチャー)
- 最初に OpenCL を呼び出す (C で記述されたカスタム ランチャー)
- 最初に Cuda を呼び出します (JCuda、実際には nVIDIA 名が表示されますが、OpenGL は影響を受けません)
失敗した API:
- JavaFX8 ES2 パイプライン (機能します。 https://github.com/AqD/JOGL-FXを参照してください)
- JOGL 2.1.5
回避策:
- JavaFX8 D3D パイプライン。D3D 初期化作業後に作成されたすべての GLContext。
realtech-vr OpenGL Extension Viewer (.NET で記述)を呼び出して、非常に単純なサンプルに問題を突き止めました。内部には、GL 情報を読み取り、oevClientInitialize の直後に Optimus をアクティブにするネイティブの「infogl.dll」があります。
奇妙なことに、infogl.dll を呼び出す最も単純なコンソール プログラムが機能します。
しかし、JNAによるJavaのまったく同じコードはそうではありません:
そして、それは実行可能ファイル名「java」とは無関係です - 私は試しました。
JavaFX D3D ソリューションは、AMD Radeon チップで OpenGL FPS を半分に削減するため、不適切です。nVIDIA チップでも同じように悪いと思います。そのため、ES2 パイプラインで動作させることを目指しています。