Amd-Graphics
無法將 OpenGL ARB_gpu_shader_int64 擴展與 Mesa 一起使用
我正在研究 OpenGL 著色器,我需要 uint64_t 類型等…但是,當我執行 glxinfo 時,此擴展不在列表中。
我正在使用 Mesa 18.0.5,並且此頁面告訴 17.1.0 的 radeonsi 驅動程序支持該擴展。
我的 GPU 是 AMD Radeon HD 8730M。我正在使用
radeon
驅動程序,但切換到amdgpu
沒有幫助。問題:如何在我的著色器中使用 uint64?通過切換到另一個驅動程序?通過更新 Mesa?還是我的 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, [...]
知道了。
Mesa 確實在使用我的集成圖形晶片組。通過使用環境變數啟動所有命令
DRI_PRIME=1
,我能夠直接使用我的 GPU,從而啟用所要求的擴展。但是,我不確定每次或全域設置此環境變數是否是一個好的解決方案。