Performance 图形应用程序的线程有效性

Performance 图形应用程序的线程有效性,performance,opengl,graphics,gpu,libgdx,Performance,Opengl,Graphics,Gpu,Libgdx,假设我正在使用自己的着色器为场景创建照明。这是一个可以在多个线程之间划分的很好的例子,例如,通过将场景划分为较小的场景并在单独的线程中渲染它们 我应该手动将其划分为线程,还是图形库将以某种方式自动划分此类操作?或者它依赖于库(我使用的是libgdx,它似乎在使用OpenGL)。或者也许还有其他原因让我把它单独放在一个线程中 如果我需要在线程之间手动分配工作负载,我应该使用多少个线程?这种情况下的线程数取决于图形卡还是处理器 OpenGL不支持多线程渲染,因为OpenGL上下文仅在创建它的线程上有

假设我正在使用自己的着色器为场景创建照明。这是一个可以在多个线程之间划分的很好的例子,例如,通过将场景划分为较小的场景并在单独的线程中渲染它们

  • 我应该手动将其划分为线程,还是图形库将以某种方式自动划分此类操作?或者它依赖于库(我使用的是libgdx,它似乎在使用OpenGL)。或者也许还有其他原因让我把它单独放在一个线程中
  • 如果我需要在线程之间手动分配工作负载,我应该使用多少个线程?这种情况下的线程数取决于图形卡还是处理器

  • OpenGL不支持多线程渲染,因为OpenGL上下文仅在创建它的线程上有效


    要获得某些性能,您可以将更新逻辑和渲染逻辑分离到单独的线程中。但是,您不能利用多个线程进行OpenGL渲染。

    您有多少个GPU?一个。尽管如此,应用程序的用户仍有可能在SLI或GPU中拥有多个芯片。图形卡有自己的调度和线程模型。它与操作系统线程无关。硬件OpenGL实现充分利用了GPU中的硬件并行性。