- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道它已经问了好几次都没有明确的答案,我已经向 nVIDIA 提交了一个错误。但是,我仍在寻找比在 Prism-D3D 引擎中启动 JavaFX 更好的解决方法(它立即允许通过 nVIDIA 创建后续的 OpenGL 上下文)。
环境:
测试失败:
失败的 API:
解决方法:
我将问题确定为一个非常简单的示例,调用 realtech-vr OpenGL Extension Viewer (用 .NET 编写)。里面有一个本地“infogl.dll”,它读取 GL 信息并显然在 oevClientInitialize 之后立即激活 Optimus。
奇怪的是,调用 infogl.dll 的最简单的控制台程序可以工作:
Win32.oevSetDriverVersion("10.18.10.3621", 2176);
Win32.oevClientLoadDatabase(File.ReadAllText("C:\\Program Files (x86)\\realtech VR\\OpenGL Extensions Viewer 4.1\\extensions.xml"));
Win32.oevClientInitialize();
for (var i = 0; i <= 9; i++)
{
var tree = Marshal.PtrToStringAnsi(Win32.oevClientGetCapsAndExtTree(i));
Console.WriteLine(tree.Split('\n').First(ln => ln.Contains("text_id=\"357\"")));
}
Console.ReadLine();
但是 JNA 在 Java 中编写的完全相同的代码不会:
infogl.INSTANCE.oevSetDriverVersion("10.18.10.3621", 2176);
String extXml = null;
try {
extXml = new String(
Files.readAllBytes(Paths.get("C:\\Program Files (x86)\\realtech VR\\OpenGL Extensions Viewer 4.1\\extensions.xml")),
"UTF-8");
} catch (IOException e) {
throw new RuntimeException(e);
}
infogl.INSTANCE.oevClientLoadDatabase(extXml);
infogl.INSTANCE.oevClientInitialize();
for (int i = 0; i <= 9; i++)
{
String tree = infogl.INSTANCE.oevClientGetCapsAndExtTree(i);
System.out.println(Arrays.asList(tree.split("\\n")).first(ln -> ln.contains("text_id=\"357\"")));
}
而且它与可执行文件名称“java”无关 - 我试过了。
JavaFX D3D 解决方案不合适,因为它在 AMD Radeon 芯片上将 OpenGL FPS 降低了一半 - 我认为这在 nVIDIA 芯片上一定同样糟糕,这就是我寻求让它与 ES2 管道一起工作的原因。
最佳答案
从 .NET 启动 JVM 显然可行(通过 jni4net)。它在 JavaFX 最终确定结束时在 nvoglv64.dll 中崩溃。
using net.sf.jni4net;
using net.sf.jni4net.utils;
...
public static void Main(string[] args)
{
InitializeOpenGL();
var setup = new BridgeSetup();
setup.AddClassPath(@"C:\Program Files\Java\jdk1.8.0_11\demo\javafx_samples\Modena.jar");
setup.AddJVMOption("-Dprism.order=es2");
setup.AddJVMOption("-Dprism.verbose=true");
var env = Bridge.CreateJVM(setup);
java.lang.System.@out.println("Greetings from C# to Java world!");
Console.WriteLine("Initializing...");
var klass = env.FindClass("modena/Modena");
Console.WriteLine("Finding main()...");
var mainMethodId = klass.getMethods().First(m => m.getName().Equals("main")).GetMethodId();
Console.WriteLine("Calling main()...");
env.CallStaticVoidMethod(klass, mainMethodId, Convertor.ParArrayStrongC2JString(env, new string[0]));
Console.WriteLine("Ended, press enter");
Console.ReadLine();
}
protected static void InitializeOpenGL()
{
Win32.oevSetDriverVersion("10.18.10.3621", 2176);
Win32.oevClientLoadDatabase(File.ReadAllText("C:\\Program Files (x86)\\realtech VR\\OpenGL Extensions Viewer 4.1\\extensions.xml"));
Win32.oevClientInitialize();
for (var i = 0; i <= 9; i++)
{
var tree = Marshal.PtrToStringAnsi(Win32.oevClientGetCapsAndExtTree(i));
Console.WriteLine(tree.Split('\n').First(ln => ln.Contains("text_id=\"357\"")));
}
// Optimus should be activated by now!
}
我还没有找到在 .NET 下激活 Optimus 的真正原因......但是很可能相同代码的 C/C++ 不起作用,因为它正是 Java 版本所做的(JNI 调用)
PS:我刚刚验证了“OpenTK”(OpenGL 的 .NET 包装器)也无法激活 Optimus。我完全糊涂了......
关于java - 在 Java/OpenGL 下激活 nVIDIA Optimus?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25367851/
我有双 GPU,Intel HD 和 Nvidia GPU。我想强制我的应用程序使用 Nvidia GPU。所以我创建了头文件 extern "C" { __declspec(dllexport)
我买了一台新笔记本电脑,它是微星微星 gs60 6qe-025xfr 我想在上面安装 ubuntu 16.04,但我有问题。 每次我尝试在我的 USB 上启动时,我都会看到加载屏幕,然后电脑突然死机,
我有一位客户使用 LG Optimus Black(安卓 2.2.2),每次黑色时都有相机预览。在其他设备上一切正常。这部手机有问题还是有人有解决办法?我的相机预览代码如下。 SurfaceH
我在寻找 Lg Optimus (Sprint) 所需的驱动程序以便开始使用 App Inventor 程序时遇到了很多麻烦。我连接了我的手机,但没有通知显示它已连接,只有充电。如果有人能帮助我,我将
Java CUDA 工具吗 rootbeer与 Nvidia Optimus 合作在 Linux 上,当笔记本电脑没有用于图形系统的 BIOS 开关时?换句话说,它在图形系统始终是混合的情况下工作吗?
关于如何在 Windows 平台上运行时选择 nVidia 独立适配器有很多问题和答案。最简单的方法是像这样导出 NvOptimusEnablement 变量: extern "C" _declspe
我希望我的应用程序始终使用 nVidia Optimus 笔记本电脑上的真实 GPU 运行。 来自“在 Optimus 系统上启用高性能图形渲染”,( http://developer.downloa
当我使用“glGetString(GL_VERSION)”和“glGetString(GL_SHADING_LANGUAGE_VERSION)”来检查我电脑上的OpenGL版本时,我得到了以下信息:
我有一个带有 Nvidia 525M 显卡的戴尔 XPS L502。我现在只对使用该卡的 gpgpu 功能感兴趣。 我安装了 Ubuntu 12.04 作为机器附带的 Windows 7 的双引导,并
我得到了 front-facing camera to work on a Samsung Galaxy S ,但以下技术不适用于 LG Optimus 2X Speed: Camera mCamer
大家好,我正在构建一个地理定位应用程序。以下是我用来获取纬度和经度的代码:- LocationManager lm = (LocationManager) getSystemService(Conte
我正在编写 DirectX 游戏,当我在 Optimus 笔记本电脑上运行它时,使用的是 Intel GPU,导致性能非常糟糕。如果我使用上下文菜单或通过将我的可执行文件重命名为 bf3.exe 或其
您好,我是 Android 和 OpenCV 的新手。我有一些 关于计算机视觉的知识(很少)。 我无法正确发布所有链接,因此请删除“http:”后的空格 好吧,我在这里按照教程进行操作: http:/
我目前正尝试在 LG optimus 上将原始文件作为铃声播放。 Uri uri = Uri.parse("android.resource://" + curContext.getPackageNa
我知道它已经问了好几次都没有明确的答案,我已经向 nVIDIA 提交了一个错误。但是,我仍在寻找比在 Prism-D3D 引擎中启动 JavaFX 更好的解决方法(它立即允许通过 nVIDIA 创建后
你好,我正在尝试在移动 LG Optimus L3 E400f 中测试应用程序 android,但无法正常工作。这是我为解决错误所做的事情。 1.确定设备 ID,然后输入 lsusb 并显示: Bus
有人能告诉我如何使用带有 C# 的 Optimus( headless 浏览器)nuget 包来从 URL 获取响应。我也想让页面上的javascript像phantomjs一样自动执行。 最佳答案
一方面,这个问题很棘手,因为我有完全相同的代码在 3 款不同的 Android 2.2 手机上完美工作,但在 LG Optimus S(也运行 Android 2.2)上却不工作。 另一方面,这个问题
我为我的 Android 设备创建了一个 android 应用程序,它将记录存储到 sqlite 数据库中,甚至从数据库中检索数据也能在我的应用程序上正常工作。现在我想访问位于以下位置的数据库文件:
我在我的笔记本电脑上安装了 Kubuntu 13.10,它配备了采用 optimus 技术的 Nvidia GT555m。我在使用 OpenCL 编译我的 C++ 代码时遇到了一些问题。 我不断收到的
我是一名优秀的程序员,十分优秀!