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
Add WebGL rendering tests & improve the WebGLHelper API #8977
Conversation
c0aa262
to
b97fc57
Compare
Now the shader and program caches are simply arrays of native WebGL created objects. The WebGLHelper simply takes the sources of the frag and vert shader and produces a program. This removes 2 classes & reduces the general verbosity of the API. Also a `getShaderCompilationErrors` was added on `WebGLHelper` to help debug GLSL errors.
b97fc57
to
0b23e94
Compare
Glad you were able to configure Puppeteer in a way that works in CI without complicating local dev. Thanks for the work on this @jahow. |
I'm glad too ;) thanks |
@jahow I think something is still wrong with the rendering tests. When I run them locally (with
The rendered result is a blank image. Maybe this is related to #9014? |
I think removing this parameter should solve the problem : Line 327 in e9e804a
This "indexof" error appears when the context creation did not succeed, which sometimes happen depending on the environment. |
Which I successfully reproduced on a MacOS environment so should be fixable. Although I'm a bit worried about all the discrepancies between platforms with the webgl rendering. So far the GPU was blacklisted in the CI, I have major glitches on debian/firefox and the rendering fails altogether for a different reason on MacOS. I just hope it comes from my implementation... Did you have those sort of issues with the previous webgl renderers? |
The previous webgl renderers were also unreliable, but at least I got something to see. Now, it just renders nothing. |
In this PR:
heatmap-layer
andwebgl-points
WebGLHelper
class, theWebGLFragment
andWebGLVertex
classes were removed to simplify the system overallPreviously caches of shaders and programs were maintained using the objects uid which required these intermediary classes.