- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
之前在我用java编写的游戏引擎中,我使用过lwjgl 2.9.3。我遇到了一个问题。我想让 lwjgl 在另一 block 显卡上运行。所以我研究了一下,很快就发现,使用 lwjgl 2.9.3 是不可能的。所以我读到了有关 lwjgl 的开发人员是否会添加选择要在哪个显卡上运行的选项的信息。我发现 lwjgl 3 确实支持这个。所以我切换到了 lwjgl 3。
我让一切正常工作,并开始研究我切换的原因。我很快发现没有关于更改您使用的显卡的文档。因此,经过几个小时的测试,我发现您需要创建一个 WGLARB 上下文。
我知道你可以使用以下方法:wglCreateContextAttribsARB(long hdc, long sharedContext, Byte/IntBuffer attribList)
。但目前还不清楚如何使用这种方法。我不确定你是否使用Windows DC指针或其他东西。我知道您不必为“长sharedContext
”添加任何内容,因此我添加了“MemoruUtil.NULL
”。这是我的问题:
如何创建 WGLARB 上下文,或者更具体地说,您具体传递什么内容,例如是否放入空的 Int/Byte 缓冲区,或者在将数据作为对象传递之前将数据放入缓冲区中?范围。我不知道。
从那里如何使用:WGLNVGPUAffinity.getInstance().wglCreateAffinityDCNV(gpuList);
GPU 列表是 PointBuffer 或 ByteBuffer 我如何将此数据传入第一名?
很抱歉这篇文章很长,但我对缺乏文档感到非常沮丧,提前谢谢您!
最佳答案
LWJGL 3(通过 GLFW)处理 OpenGL 上下文创建。这意味着您无法处理它。 GLFW 将创建上下文,尽管它确实为您提供了一些关于具体如何创建的选项。但 GLFW 是跨平台的,因此它不会为您提供 Windows 和 NVIDIA 特定的选项。
但是,这并不意味着您没有一些控制权。 LWJGL 3 还允许您访问特定于平台的 API(GLX、WGL 等)及其扩展。因此,您可以使用 WGL.wglGetCurrentContext
获取上下文,然后使用 WGLNVGPUAffinity functions创建亲和性上下文。 That extension提供了用于枚举 GPU 和创建针对特定 GPU 的新 OpenGL 上下文的所有各种工具。
扩展规范甚至足以提供枚举 GPU 的示例代码。当然,这只是 NVIDIA 的问题,但这对您来说显然不是问题。
关于java - 如何在LWJGL 3中使用WGLARB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818015/
我是一名优秀的程序员,十分优秀!