Android 的 Visual Studio 模拟器是否支持 OpenGL ES 3.0?
Does the Visual Studio emulator for Android support OpenGL ES 3.0?
我用 Xamarin.Android 开发了一个 OpenGL ES 3.0 应用程序。它在我的 phone 上运行良好,但在 Android.
的 VS 模拟器上崩溃了
这里崩溃了:
at (wrapper managed-to-native) OpenTK.Graphics.ES30.GL/Core.CreateShader (OpenTK.Graphics.ES30.All) <0x00012>
并且之前出现错误:
E/EGL_emulation( 1977): tid 1977: eglGetConfigAttrib(606): error 0x3004 (EGL_BAD_ATTRIBUTE)
不知模拟器是否不支持OpenGL ES 3.0
在 this post 的 OpenGL ES 支持 部分,
VS Emulator for Android can now render apps that make use of OpenGL ES up to version 2.0
那么,Android 的 Visual Studio 模拟器是否支持 OpenGL ES 3.0?
相关日志:
D/Mono ( 1977): Found as 'java_interop_jnienv_get_object_array_element'.
E/EGL_emulation( 1977): [getAttribValue] Bad attribute idx
E/EGL_emulation( 1977): tid 1977: eglGetConfigAttrib(606): error 0x3004 (EGL_BAD_ATTRIBUTE)
D/Mono ( 1977): DllImport searching in: '__Internal' ('(null)').
D/Mono ( 1977): Searching for 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): Probing 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): Found as 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): DllImport searching in: '__Internal' ('(null)').
D/Mono ( 1977): Searching for 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Probing 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Found as 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Assembly Ref addref Xamarin.OpenGL[0xb42b90a0] -> System[0x9e581dc0]: 4
D/Mono ( 1977): Assembly Ref addref Xamarin.OpenGL[0xb42b90a0] -> System.Core[0x9d8b71c0]: 4
Resolved pending breakpoint at 'ShaderProgram.cs:27,1' to void CSharpGLES.ShaderProgram.Create (string vertexShaderSource, string fragmentShaderSource, System.Collections.Generic.Dictionary<int,string> attributeLocations) [0x00001].
D/Mono ( 1977): DllImport attempting to load: 'GLESv2'.
D/Mono ( 1977): DllImport error loading library './libGLESv2': 'dlopen failed: library "/data/app/Xamarin.OpenGL.Xamarin.OpenGL-1/lib/x86/./libGLESv2" not found'.
D/Mono ( 1977): DllImport loaded library './libGLESv2.so'.
D/Mono ( 1977): DllImport searching in: 'GLESv2' ('./libGLESv2.so').
D/Mono ( 1977): Searching for 'glCreateShader'.
E/mono-rt ( 1977): Stacktrace:
E/mono-rt ( 1977):
E/mono-rt ( 1977): at <unknown> <0xffffffff>
E/mono-rt ( 1977): at (wrapper managed-to-native) OpenTK.Graphics.ES30.GL/Core.CreateShader (OpenTK.Graphics.ES30.All) <0x00012>
E/mono-rt ( 1977): at OpenTK.Graphics.ES30.GL.CreateShader (OpenTK.Graphics.ES30.All) [0x00002] in /Users/builder/data/lanes/4009/9578cdcd/source/monodroid/src/OpenGLES/OpenTK/Graphics/ES30.Android/GL.cs:1559
相关:
- Does the Android Emulator support OpenGL ES 2.0?
- Does the Android emulator support OpenGL ES 3.0?
有人帮我找到了答案:不支持OpenGLES 3.0。
... the VS Emulator for Android can now render apps that make use of OpenGL ES > up to version 2.0. .... (If you’re curious, under the hood we’re forwarding
OpenGL ES calls to the host machine’s GPU and using ANGLE to translate the
calls to DirectX).
来自角度 (https://chromium.googlesource.com/angle/angle/+/master/README.md)
仍未完全支持 GLES3.0(进行中)。
所以可能会导致模拟器上shader编译出错
更新:
MS的工作人员在另一个网站上告诉我,模拟器的驱动程序不支持OpenGLES 3.0。所以目前模拟器不支持 OpenGL ES 3.0,即使 ANGLE 支持。
我用 Xamarin.Android 开发了一个 OpenGL ES 3.0 应用程序。它在我的 phone 上运行良好,但在 Android.
的 VS 模拟器上崩溃了这里崩溃了:
at (wrapper managed-to-native) OpenTK.Graphics.ES30.GL/Core.CreateShader (OpenTK.Graphics.ES30.All) <0x00012>
并且之前出现错误:
E/EGL_emulation( 1977): tid 1977: eglGetConfigAttrib(606): error 0x3004 (EGL_BAD_ATTRIBUTE)
不知模拟器是否不支持OpenGL ES 3.0
在 this post 的 OpenGL ES 支持 部分,
VS Emulator for Android can now render apps that make use of OpenGL ES up to version 2.0
那么,Android 的 Visual Studio 模拟器是否支持 OpenGL ES 3.0?
相关日志:
D/Mono ( 1977): Found as 'java_interop_jnienv_get_object_array_element'.
E/EGL_emulation( 1977): [getAttribValue] Bad attribute idx
E/EGL_emulation( 1977): tid 1977: eglGetConfigAttrib(606): error 0x3004 (EGL_BAD_ATTRIBUTE)
D/Mono ( 1977): DllImport searching in: '__Internal' ('(null)').
D/Mono ( 1977): Searching for 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): Probing 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): Found as 'java_interop_jnienv_get_field_id'.
D/Mono ( 1977): DllImport searching in: '__Internal' ('(null)').
D/Mono ( 1977): Searching for 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Probing 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Found as 'java_interop_jnienv_get_int_field'.
D/Mono ( 1977): Assembly Ref addref Xamarin.OpenGL[0xb42b90a0] -> System[0x9e581dc0]: 4
D/Mono ( 1977): Assembly Ref addref Xamarin.OpenGL[0xb42b90a0] -> System.Core[0x9d8b71c0]: 4
Resolved pending breakpoint at 'ShaderProgram.cs:27,1' to void CSharpGLES.ShaderProgram.Create (string vertexShaderSource, string fragmentShaderSource, System.Collections.Generic.Dictionary<int,string> attributeLocations) [0x00001].
D/Mono ( 1977): DllImport attempting to load: 'GLESv2'.
D/Mono ( 1977): DllImport error loading library './libGLESv2': 'dlopen failed: library "/data/app/Xamarin.OpenGL.Xamarin.OpenGL-1/lib/x86/./libGLESv2" not found'.
D/Mono ( 1977): DllImport loaded library './libGLESv2.so'.
D/Mono ( 1977): DllImport searching in: 'GLESv2' ('./libGLESv2.so').
D/Mono ( 1977): Searching for 'glCreateShader'.
E/mono-rt ( 1977): Stacktrace:
E/mono-rt ( 1977):
E/mono-rt ( 1977): at <unknown> <0xffffffff>
E/mono-rt ( 1977): at (wrapper managed-to-native) OpenTK.Graphics.ES30.GL/Core.CreateShader (OpenTK.Graphics.ES30.All) <0x00012>
E/mono-rt ( 1977): at OpenTK.Graphics.ES30.GL.CreateShader (OpenTK.Graphics.ES30.All) [0x00002] in /Users/builder/data/lanes/4009/9578cdcd/source/monodroid/src/OpenGLES/OpenTK/Graphics/ES30.Android/GL.cs:1559
相关:
- Does the Android Emulator support OpenGL ES 2.0?
- Does the Android emulator support OpenGL ES 3.0?
有人帮我找到了答案:不支持OpenGLES 3.0。
... the VS Emulator for Android can now render apps that make use of OpenGL ES > up to version 2.0. .... (If you’re curious, under the hood we’re forwarding OpenGL ES calls to the host machine’s GPU and using ANGLE to translate the calls to DirectX).
来自角度 (https://chromium.googlesource.com/angle/angle/+/master/README.md)
仍未完全支持 GLES3.0(进行中)。
所以可能会导致模拟器上shader编译出错
更新:
MS的工作人员在另一个网站上告诉我,模拟器的驱动程序不支持OpenGLES 3.0。所以目前模拟器不支持 OpenGL ES 3.0,即使 ANGLE 支持。