Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RZ/G1E + VLP 2.1.0 or later + Gecko 60 で WebGL が正常動作しない #90

Open
dynamis opened this issue Sep 13, 2019 · 4 comments
Open
Labels
bug gecko60 Gecko 60 で再現する問題 Renesas RZ/G1 RZ/G1 で再現する問題

Comments

@dynamis
Copy link
Contributor

dynamis commented Sep 13, 2019

RZ/G1 シリーズの Gecko 60 では WebGL をサポートしているが、RZ/G1E + VLP 2.1.0 + Gecko 60 環境でのみ WebGL が動作しない問題が報告されている。

RZ/G1M 最新 VLP や、RZ/G1E の古い VLP では正常動作ているし、不具合のある環境でも about:config や https://webglreport.com/ などではサポートしていると表示されるため、API 有効化的には問題ないが何らかのエラーで WebGL コンテンツが正常出来ない。

まずはもう少し詳細な症状と原因の調査を行う必要がある。現時点ではプラリオリティ設定は無し。

@dynamis dynamis added bug Renesas RZ/G1 RZ/G1 で再現する問題 gecko60 Gecko 60 で再現する問題 labels Sep 13, 2019
@ashie
Copy link
Contributor

ashie commented Sep 26, 2019

私の方ではこの問題を追う時間を取れなさそうですが、meta-gecko-embeddedapitraceのレシピを入れてあるので、これを使うと(OpenGLのAPIコールにおいて)どの辺りで問題が発生しているか追いやすいです。ブラウザ側のリビルド無しで使用できます。apitraceを実機向けにビルドして、以下のような感じで実行します。

$ apitrace trace --api=egl --output=/tmp/dump.trace firefox

過去に別の問題で調べたときには、例えば以下のような感じのトレースを取れています(長いので先頭の一部のみ)。
動く条件でのトレースと動かない条件でのトレースをとり、止まっているところのC++のコードを探すと問題を把握しやすいです。

// process.name = "/usr/lib/firefox/firefox"
0 eglGetDisplay(display_id = 0xb6921120) = 0x1
1 eglInitialize(dpy = 0x1, major = NULL, minor = NULL) = EGL_TRUE
9 eglChooseConfig(dpy = 0x1, attrib_list = {EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_NONE}, configs = {0x2, 0x1, 0x3}, config_size = 64, num_config = &3) = EGL_TRUE
14 eglCreateWindowSurface(dpy = 0x1, config = 0x2, win = 0x93e7ba90, attrib_list = {}) = 0x93c4b400
15 eglBindAPI(api = EGL_OPENGL_ES_API) = EGL_TRUE
16 eglCreateContext(dpy = 0x1, config = 0x2, share_context = NULL, attrib_list = {EGL_CONTEXT_MAJOR_VERSION, 2, EGL_NONE}) = 0x93e29700
140 eglGetCurrentContext() = NULL
141 eglMakeCurrent(dpy = 0x1, draw = 0x93c4b400, read = 0x93c4b400, ctx = 0x93e29700) = EGL_TRUE
142 glViewport(x = 0, y = 0, width = 668, height = 343) // fake
143 glScissor(x = 0, y = 0, width = 668, height = 343) // fake
202 glGetIntegerv(pname = GL_VIEWPORT, params = {0, 0, 668, 343})
203 glGetIntegerv(pname = GL_SCISSOR_BOX, params = {0, 0, 668, 343})
204 glGetIntegerv(pname = GL_MAX_TEXTURE_SIZE, params = &4096)
205 glGetIntegerv(pname = GL_MAX_CUBE_MAP_TEXTURE_SIZE, params = &4096)
206 glGetIntegerv(pname = GL_MAX_RENDERBUFFER_SIZE, params = &4096)
207 glGetIntegerv(pname = GL_MAX_VIEWPORT_DIMS, params = {4096, 4096})
208 glGetIntegerv(pname = GL_MAX_SAMPLES, params = &4)
209 glBindFramebuffer(target = GL_FRAMEBUFFER, framebuffer = 0)
210 eglGetCurrentContext() = 0x93e29700
211 eglGetCurrentContext() = 0x93e29700
212 eglGetCurrentContext() = 0x93e29700
213 glBlendFuncSeparate(sfactorRGB = GL_ONE, dfactorRGB = GL_ONE_MINUS_SRC_ALPHA, sfactorAlpha = GL_ONE, dfactorAlpha = GL_ONE_MINUS_SRC_ALPHA)
214 glEnable(cap = GL_BLEND)
215 glCreateShader(type = GL_VERTEX_SHADER) = 70001
216 glShaderSource(shader = 70001, count = 1, string = &"#ifdef GL_ES

#5027@ClearCode

@ashie
Copy link
Contributor

ashie commented Sep 26, 2019

qapitraceというGUIツールもあって、PC上で実機のダンプを読み込ませることもできます。
このツールである程度描画をPC上で再現させることもできます。

@dynamis dynamis changed the title RZ/G1E + VLP 2.1.0 + Gecko 60 で WebGL が正常動作しない RZ/G1E + VLP 2.1.0 or later + Gecko 60 で WebGL が正常動作しない Sep 26, 2019
@dynamis
Copy link
Contributor Author

dynamis commented Sep 26, 2019

デバッグツール情報ありがとうございますっ!
まだタイミングなどは未決定ですが、調査を始める際にはこちら参考にさせて頂きます。

@cosmo0920
Copy link

実際にapitraceを使用する際に僕は以下のようにしてデバッグしました。

これらの記事の方がまとまっていて概要は掴みやすいと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug gecko60 Gecko 60 で再現する問題 Renesas RZ/G1 RZ/G1 で再現する問題
Projects
None yet
Development

No branches or pull requests

3 participants