зеркало из https://github.com/AvaloniaUI/angle.git
Update Debugging Tips document.
BUG=None Change-Id: I9e417b37b072ea3874cd8b111d6b751295b9b0c2 Reviewed-on: https://chromium-review.googlesource.com/321760 Reviewed-by: Jamie Madill <jmadill@chromium.org> Tested-by: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Родитель
c89df2ba30
Коммит
e865bb1299
|
@ -39,5 +39,6 @@ View the [Dev setup instructions](doc/DevSetup.md). For generating a Windows Sto
|
|||
* Read about WebGL on the [Khronos WebGL Wiki](http://khronos.org/webgl/wiki/Main_Page).
|
||||
* Learn about implementation details in the [OpenGL Insights chapter on ANGLE](http://www.seas.upenn.edu/~pcozzi/OpenGLInsights/OpenGLInsights-ANGLE.pdf) and this [ANGLE presentation](https://drive.google.com/file/d/0Bw29oYeC09QbbHoxNE5EUFh0RGs/view?usp=sharing).
|
||||
* Learn about the past, present, and future of the ANGLE implementation in [this recent presentation](https://docs.google.com/presentation/d/1CucIsdGVDmdTWRUbg68IxLE5jXwCb2y1E9YVhQo0thg/pub?start=false&loop=false).
|
||||
* Notes on [debugging ANGLE](doc/DebuggingTips.md).
|
||||
* If you use ANGLE in your own project, we'd love to hear about it!
|
||||
|
||||
|
|
|
@ -7,8 +7,9 @@ There are many ways to debug ANGLE using generic or platform-dependent tools. He
|
|||
[Apitrace](http://apitrace.github.io/) that captures traces of OpenGL commands for later analysis, allowing us to see how ANGLE translates OpenGL ES commands. In order to capture the trace, it inserts a driver shim using `LD_PRELOAD` that records the command and then forwards it to the OpenGL driver.
|
||||
|
||||
The problem with ANGLE is that it exposes the same symbols as the OpenGL driver so apitrace captures the entry point calls intended for ANGLE and reroutes them to the OpenGL driver. In order to avoid this problem, use the following:
|
||||
|
||||
1. Compile ANGLE as a static library so that it doesn't get shadowed by apitrace's shim using the `-D angle_gl_library_type=static_library` gyp flag.
|
||||
2. Ask apitrace to explicitly load the driver instead of using a dlsym on the current module. Otherwise apitrace will use ANGLE's symbols as the OpenGL driver entrypoint (causing an infinite recursion). To do this `export TRACE_LIBGL=/usr/lib/libGL.so.1`.
|
||||
2. Ask apitrace to explicitly load the driver instead of using a dlsym on the current module. Otherwise apitrace will use ANGLE's symbols as the OpenGL driver entrypoint (causing infinite recursion). To do this you must point an environment variable to your GL driver. For example: `export TRACE_LIBGL=/usr/lib/libGL.so.1`. You can find your libGL with `ldconfig -p | grep libGL`.
|
||||
3. Link ANGLE against libGL instead of dlsyming the symbols at runtime; otherwise ANGLE won't use the replaced driver entry points. This can be done by adding `-D angle_link_glx=1`.
|
||||
|
||||
If you follow these steps, apitrace will work correctly aside from a few minor bugs like not being able to figure out what the default framebuffer size is if there is no glViewport command.
|
||||
|
@ -18,7 +19,7 @@ For example, to trace a run of `hello_triangle`, assuming you are using the ninj
|
|||
```
|
||||
./build/gyp_angle -D angle_link_glx=1 -D angle_gl_library_type=static_library
|
||||
ninja -C out/Debug
|
||||
export TRACE_LIBGL="/usr/lib/libGL.so.1"
|
||||
export TRACE_LIBGL="/usr/lib/libGL.so.1" # may require a different path
|
||||
apitrace trace -o mytrace ./out/Debug/hello_triangle
|
||||
qapitrace mytrace
|
||||
```
|
||||
|
|
Загрузка…
Ссылка в новой задаче