1

私はXamarin.AndroidでOpenGL ES 3.0アプリケーションを開発しました。それは私の携帯電話でうまく動作しますが、AndroidのVSエミュレータでクラッシュしました。Android用のVisual StudioエミュレータはOpenGL ES 3.0をサポートしていますか?

ここはクラッシュ:(ラッパーは管理ツーネイティブ)OpenTK.Graphics.ES30.GL/Core.CreateShader(OpenTK.Graphics.ES30.All)で

< 0x00012>

エラーが発生する前に:

E/EGL_emulation(1977):TID 1977年eglGetConfigAttrib(606):エラー0x3004(EGL_BAD_ATTRIBUTE)

simluatorがOpenGL ES 3.0をサポートしていないのだろうかと思います。

Android用VSエミュレータは、今では、バージョン2.0

までのOpenGL ESを利用するアプリケーションをレンダリングすることができ this postのOpenGL ESのサポートセクションで

は、ビジュアルを行いますAndroid対応スタジオエミュレータ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 

答えて

1

誰かが私の答えを見つけました:OpenGLES 3.0はサポートされていません。

https://blogs.msdn.microsoft.com/visualstudioalm/2015/02/23/the-visual-studio-emulator-for-android-in-vs2015-ctp6/から... Android用VSエミュレータはバージョン2.0までのOpenGL ES>を利用するアプリケーションをレンダリングすることができます。 ....(好奇心が強い場合は、 OpenGL ESをホストマシンのGPUに呼び出し、ANGLEを使用して のDirectXへの呼び出しを転送しています)。

角度から(https://chromium.googlesource.com/angle/angle/+/master/README.md

まだ完全に(進行中)GLES3.0をサポートしていません。

です。エミュレータのシェーダのコンパイル時にエラーが発生することがあります。

更新:MSの

スタッフエミュレータのドライバがOpenGLES 3.0をサポートしていないことを別のサイトに私に言いました。したがって、ANGLEがサポートしていても現在、エミュレータはOpenGL ES 3.0をサポートしていません。

関連する問題