我有一個使用着色器(OpenGL版本3.3,GLSL版本1.5)的OpenGL程序。我聽說着色器實際上運行在CPU上,除非你明確地告訴它在GPU上運行。 (當然,我使用着色器的全部原因是通過在GPU而不是CPU中進行計算來加速渲染速度,所以這不是我想要的行爲。)這是真的嗎?如果是這樣,你如何讓着色器在GPU上運行?讓着色器在GPU上運行
2
A
回答
10
我不確定你聽到的是哪裏,但假設你有來自圖形供應商的半路體面驅動程序,則着色器將在GPU上運行,而無需執行任何操作,只需加載和使用它們即可。
2
我很確定驅動程序總是試圖在GPU上運行每個着色器而不是CPU。但並非所有現代視頻卡都支持完整的着色器操作。例如OpenGL 4.0擴展GL_ARB_gpu_shader_fp64,據我所知可以部分支持。所以驅動程序必須在CPU上的軟件模式下模擬一些操作。至於擴展名,您可以通過使用GL_EXTENSIONS參數調用glGetString來檢查您的卡。
相關問題
- 1. 如何讓GPU在GPU上運行?
- 2. 如何讓GPU在網絡上運行
- 3. GLSL着色器在英特爾集成GPU上運行完美,但NVIDIA上沒有任何內容
- 4. 用於過濾器的GPU-成色着色器上的圖像處理 - FBO
- 5. 頂點着色器不能在星系tab10上運行(tegra 2)
- 6. 如何在CPU上運行Cg頂點/片段着色器?
- 7. 如何讓着色器淡入顏色?
- 8. OpenGL ES運行多個着色器
- 9. 在多個GPU上運行OpenCL內核?
- 10. 在GPU上運行tensorflow文本模型
- 11. TF KMeansClustering不能在GPU上運行
- 12. 是否在GPU上運行opengl代碼?
- 13. Tensorflow不是在GPU上運行
- 14. 在GPU上運行C#代碼
- 15. 如何在GPU上運行代碼?
- 16. OpenGL着色器是在GPU或CPU上編譯的嗎?二進制輸出如何因GPU製造商而異?
- 17. 着色器在QML
- 18. 發送的參數大陣列的GPU着色器
- 19. GPU着色器的像素縮放算法問題
- 20. 使用第三方着色器GLSL GPU蒙皮
- 21. GLSL:頂點着色器無片段着色片段着色器
- 22. C++ AMP會在沒有兼容GPU的機器上運行嗎?
- 23. 在具有多個GPU的機器上運行CNTK
- 24. 不能運行在GPU
- 25. 在着色器上使用多個SurfaceTexture
- 26. 在shaperenderer矩形上的Libgdx着色器
- 27. 爲什麼我的#version 330着色器在舊的opengl上運行?
- 28. 將在Linux上運行的最短OpenGL幾何着色器示例?
- 29. 試着讓Javascript函數同步運行
- 30. 片段着色器制服不再在簡單着色器測試中上傳
+1作爲一個說明,儘管即使是現代卡上的某些功能也會導致OpenGL在軟件模式下評估着色器,導致非常糟糕的性能('GL_LINE_SMOOTH'就是一個典型例子)。 – 2010-11-18 20:49:56
Mac OS X的OpenGL堆棧可以回退到CPU(如果事情完全錯誤)。 – Stringer 2010-11-18 20:52:01
OSX [偶數支持](http://developer.apple.com/graphicsimaging/opengl/capabilities/)3.3? – genpfault 2010-11-18 22:40:10