Mesa で OpenGL ARB_gpu_shader_int64 拡張機能は使用できません。

Mesa で OpenGL ARB_gpu_shader_int64 拡張機能は使用できません。

私はOpenGLシェーダーを操作していますが、uint64_t型などが必要です。ただし、glxinfoを実行すると、この拡張機能はリストにありません。

私はメサ18.0.5を使用しています。このページ17.1.0以降、この拡張機能をサポートするようにRadeonのドライバに指示してください。

私のGPUはAMD Radeon HD 8730Mです。そのドライバを使用していますが、radeon切り替えてもamdgpu役に立ちません。

質問:シェーダでuint64をどのように使用しますか?他のドライバーに切り替えて?メサを更新することによって?それとも私のGPUが古すぎるのですか?

私がコンパイルしたいシェーダは次のとおりです。

#version 450
#extension GL_ARB_gpu_shader5 : enable
#extension GL_ARB_gpu_shader_int64 : enable

void main()
{
  uint64_t foo = 0ul;
}

私は持っています:

0:3(12): warning: extension `GL_ARB_gpu_shader_int64' unsupported in fragment shader
0:7(11): error: syntax error, unexpected NEW_IDENTIFIER, expecting ',' or ';'

glxinfo 出力:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    [...]
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_3DFX_texture_compression_FXT1, GL_AMD_conservative_depth,
    [...]

ベストアンサー1

知っていた。

Mesaは私の統合グラフィックチップセットを使用しています。環境変数を使用してすべてのコマンドを実行すると、DRI_PRIME=1GPUを直接使用できるため、必要な拡張が有効になります。

ただし、この環境変数を毎回設定するかグローバルに設定するのが良い解決策であるかはわかりません。

おすすめ記事