EMI: On RPI, missing transitions in introduction and video stucks after it #1519
Comments
Hello, I'm still trying to solve this problem. So, I added some After some searches, I found that GLES v2 doesn't support GL_UNSIGNED_INT (only BYTE and SHORT). Perhaps, still a structure problem ... but, if any idea ? |
Good investigative work! Did you also update the corresponding methods?
I think it should work after changing those. Don't think there are any models with more than 65k vertices. |
Hello @Botje and thank you for your response. Yes, it was the changes I did, excepted that I used short instead of int. When googling the problem, I find some references about a problem with complex shaders on RPI. |
No, I don't think there is a way to compile with GLESv2 but without shaders. |
Another idea: can you simplify the fragment shader? For example, the body of |
@Botje Thank you. I've just tested your proposal. So, I still have some glitches during the introduction but the game doesn't stuck anymore. In the game, Guybrush is now replaced by a strange blue transparent square. |
@Botje Hello Botje and sorry for my long silence ... I've just restarted to analyze this problem from the start and I missed something; because now, with your recommendations, I have no GL error anymore. So, what you expected in fact ! Does that mean that the shaders are too complex for the PI ? Thanks :) |
The most probable culprit are the final few lines:
Remove these from the full shader and try again? |
@Botje Bad news. Then, I tested to delete each line one by one and kept only this minimal code:
But the error is still there. Perhaps, is it the texture which is too complex or incompatible with the PI :( |
So it does work if you only do the |
No, same behavior when keeping only Out of memory error on glDrawElements method. |
@Botje Hello again ... After a while, I'm back on this problem and have some new feedback. When I remove the whole block I will go on analyzing this code to get the exact line of the crash. But if you have any idea, I'm interested ! |
The crash occurs in the last instruction When removing it, it works. When replacing by It seems that the light variable is corrupt but don't know why. |
Can you try limiting the for loop for the lighting to just one iteration? |
I've just tested. But note that with only two iterations, Guybrush is really dark. |
The proper fix is to investigate why some lights (here the third) produce this crash, but the quick fix is probably to disable lighting entirely on the Raspberry Pi until somebody figures it out. What do you think? |
Yes, it is probably better. Because, some new tests seem to indicate an instability in that code for the PI.
Code 1 works but code 2 crashes ! :( I will check to do that and will propose you a merge request. |
@Botje Great news ! Here is a list of all limitations and changed I made:
You can check this commit which contains all modifications: https://github.com/lmerckx/residualvm/commit/28b424bc8bcdb42c3242a6e0786559d12e10d63c For information, I've tested my modifications on Raspberry PI 2, Raspberry PI 3 (both OpenGLES2), Odroid XU 4 (OpenGLES3), X86-64 (OpenGLES3, OpenGL without shaders and TinyGL) and it works for any platforms. I'm pretty sure that the same modifications should be done for stark engine too. But I will wait your feedback and review before working on it. A big thanks for your help and support ... |
Wow, excellent work! Can you launch that as a pull request for easier review? The int to uint changes can be applied immediately I think, but I'm a bit more wary about the shader changes. |
Yes, no problem. I'll make a pull request. Here are some sources for problems and limitations:
|
Hello,
I'm testing EMI (French version) on a Raspberry PI 2 (but same problem with PI 3).
I'm using a OpenGL ES 2 driver with hardware acceleration. Here are some information for more details:
There are some minor glitches during the introduction:
But the major problem is that the graphics stuck after the introduction. The sound go on, the dialog propositions are displayed but no image.
Could it be a problem with the GLES library ? Some missing features ?
Thank you in advance.
The text was updated successfully, but these errors were encountered: