aardvark.rendering
aardvark.rendering copied to clipboard
Intel IRIS Problems
as we found out in PRo3D, there are problems with new intel chips. It seemed like FBO/Multisample is causing the problems. The workaround was to disable multisampling: https://github.com/pro3d-space/PRo3D/issues/116 with @luithefirst we just found out that text is causing the problems - all ok, put in a text in pro3d - no rendering result. Reproducing this in media - add the text - clear color remains... moving on to vanilla aardvark.rendering - stalls, non-termination etc appears for multisampled text and without (MS).
Conclusions?
Looks like text rendering is broken on iris gpus, disabling multisampling helps in PRo3D but there is something fishy still - just with text alone. We suspect an endless loop, which not breaks fbos, but sometimes, in media cases provokes infinite frametimes there.
What are the most promising features in text to be removed step by step to track it down?
@hyazinthh - that is why your test suite did not detect it ;
Text rendering uses stencil-buffer and sample-shading
I think especially sample-shading might be interesting
but without multisampling - maybe just the existence of sample shading kills. i just found out text rendering also does not work on linux. i think i recompiled glvm (which might be necessary) - somebody any clue - maybe related?
We force the shader to be executed per sample via using gl_SampleCoord, so there could certainly be a difference with/without multisampling. Furthermore i think sample-shading must be enabled client-side (which could be the invalidenum error)
https://pastebin.com/0xurPWgW
- text might work on iris gpu without multisampling
- Slim applications in GL actually have multisampled backbuffers (samplecount = 2) according to RenderDoc -> this makes problems with outline effect. explicitly disabling multisampling fixes this
- the real reason is still unknown. we could not create a mini (non-aardvark) example which makes the troubles. currently still working on renderdoc recordings to submit an issue to driver team
so this is the last conclusion for the moment - it is not possible to make it work on
0: vendor: "Intel"
0: renderer: "Intel(R) Iris(R) Xe Graphics"
0: version: OpenGL 4.5.0 / GLSL 4.5.0 Core
experimenting with
GL.MinSampleShading(1.0f)
GL.Enable(EnableCap.SampleShading)
et al. does not work. so to prevent hanging frames, one needs to disable multisampling enable cap and a fbo without sampleCount = 1.
No repro strategy was successful, i think we need to live with the workaround which as already been deployed and tested in pro3d.