-
-
Notifications
You must be signed in to change notification settings - Fork 18.8k
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
Multiple errors: Cannot open/create empty project using GLES2-only machine - I guess memory leaks (8c435a343*) #21451
Comments
Also I needed
|
Still have the errors after building with the named fixes... Version |
Gdb backtrace (core) This seems to be more helpful than the above backtrace as this has more line numbers in it. As far as I see the bug constantly happens in the point described by this stack trace (for the sky texture). I will see if I can fix this, but I am completely noob when it comes to your codebase :-). This would be the first try of your engine - except I installed 2.1 some days ago and tried very basic hello world in that. The core file is 1.2Gb so I did not dare to upload here, but I can put it out to somewhere downloadable if some of you are interested - also just tell me what more info you want and I will try my best to tell so ;-) I think Godot 3.1 will be great if it can work on my machine. Looks like a much better engine (for my liking) than others. The scene handling ideas seem to be great.
|
Further GDB information
^^By looking at the code I do not see any clean error but there might be some small hidden error maybe that works on most machines except mine? I will try to change this function into a NO-OP to see if I can go further (just not having a sky texture). |
RELEVANT INFO It seems that if I change the whole method to just "return" without doing anything, then I can start the editor. I did not try too many things, but I see the editor and can move the camera with my mouse. Also I added a simple stderr log in this function that sets the sky texture and so far I see it is only called once and not many-many times, so it is really weird to have the memory depletion problem. I wonder what causes the issue. Is this function rendering something to an offscreen frame buffer to do something for the sky (generate a sky texture)? Also I still get the texture errors from |
Test results with the fake (no-op) sky-function Actually things quite work if I exchange the sky-texture setter method with a no-operation. I tried to add an obj file and some textures as results and I can see them show up if I drag the obj into the scene add a material and set its main texture. I can click on "play" and see my little starship on screen - well textured. I have a camera,a light, the starship and a main spatial (3d) node that has all the other three below it. The material is a "spatial material" which seemed to be the default godot thingy. A slight user experience issue is that clicking play first crashed the newly starting app until I changed the GLES2 backend in its project settings, but that was not a big deal. What was weird to me is that only basic texturing seemed to work: In any way I was positioning my light I always saw the object in the same way so it seems no lightning calculations are in effect. Maybe this is normal as I used all the defaults when creating the material so I thought I should (maybe) enable "vertex lightning" on the material, but when I clicked that I got the memory leak once again and the editor have crashed. The backtrace is the following one.
But at least some basic functionality works. Actually that is even more than I expected as I did not know the system can start on my machine! I am waiting for 3.1 because that supports older cards like I have and just got bored waiting and thought maybe it already "kind of works" if I get the latest git sources. I think godot has a big potential and other than the issues the whole editor works charming-fast on my decade old computer which is really awsome!!! I can imagine there are a lot of work now closing on the 3.1 version, so please not be offended by my results so far. I am just trying to give all the information I can readily provide and help in sorting out the things. I know some opengl, but I do not feel so sure about that I can fix these issues on my own - surely not without help - but it seems if RasterizerStorageGLES2::sky_set_texture(...) could be fixed then people like me would be at least able to start the engine properly and do some basic stuff. I guess 2D things would somewhat work. I tested 3D immediately just out of curiosity ;-) |
Now as I read in the "spatial material" docs I kind of think I should see the effect of lights in the scene as per default setup without enabling "vertex lightning" flag as it is per-pixel the docs say: http://docs.godotengine.org/en/3.0/tutorials/3d/spatial_material.html I also read there about a "depth pre-pass". Maybe that is not working on my machine then and those are the error messages about the "GL_INVALID_OPERATION in glTexImage2D(bad target for depth texture)"? Those are mostly only coming on startup, so maybe the initialization of the depth prepass might be wrong too? I am just thinking. But first I think it would be good to fix the original main problem with the sky texture generation. |
Anyone? I just wonder if people read this or not. :-) |
@prenex Someone will get to your issue eventually. Some issues take longer than others. :) That being said, @karroffel I believe GLES2 is your domain? |
@LikeLakers2 Thank you for your fast answer. I try not to be impatient, just I did fear a bit "what if they see there are many comments and not read the issue as everyone will think maybe already someone works on it" haha. Sorry. I am still happy that at least I can start the engine and see something on screen even though not everthing is completely well. @karroffel I am not sure about the architecture but are the shaders always the very same or they get recompiled according to what features I use? I am asking because I have also spotted these kind of errors lately:
The r300_fragprog_emit.c one is coming very rarely (only one I saw so I pasted that), but the other seems to come both when I open the project and maybe when I mess with the material. It can be that it is only unlit because of this issue of the driver needing a "dummy shader instead". 32 constants does not seem to be too much and these messages seems to come from the driver, but maybe I can get the shader code somewhere and remove some parts I will never need? I mean...Maybe there is a way to get the otherwise used standard spatial material and copy its code into a shader-material so parameterization is nearly the same but fits into my limits or whatever... Just for testing... Also I tried to turn off things in the shader to see what affects this usage number, but I could not change anything to affect it so far. |
I see I can convert the standard stuff into a shader material according to this info: I have found it but it does not seem to work or do anything... |
Does anyone have the shader material corresponding to the main spatial-material? |
When I write my own "shadermaterial" to only show the normals of the object or just simple color I see it is working and that must mean the shader runs - but I still get errors complaining there are 35-36 constants. I wonder how I can go below 32 but I also wonder to see the effect of my vertex and fragment shader despite this error message. |
I also tried to add a simple "light" shader but it seems that way I got endless error messages. Gonna sleep now. I guess in a simple space game I might add a "hacky directional light" encoded into the fragment shader, but that seems like a really hacky thing to do. I would prefer to have these problems properly sorted out - if that is possible... |
This sounds similar to #21551 - does removing the default environment (and/or just its |
As per the above, assuming fixed in the current master branch. Please comment if you can still reproduce it. |
Remark
I will try the version of today (08.26) as it seems there have been memory leak or resource leak fixes and autoclose this issue if it will fix my problem...
I open the issue for documenting the thing and because I am not sure the new build will fix it or not and I already collected the relevant information...
Godot version:
8c435a3
OS/device including version:
Issue description:
I must use the GLES 2.x renderer as that is what my machine supports. Tried to run the editor built from latest version with
godot.x11.tools.32.llvm --video-driver GLES2
which works, but when tried to create a project I get the error of not having GLES 3.x capable card. I figured from an unofficial godot 3.0 backport that also uses the GLES 2.x renderer, that I can get around this using "-e" and starting godot from the directory of the (created) project.<path-to-godot>/godot.x11.tools.32.llvm --video-driver GLES2 -e
This lead to properly use the GLES 2.x renderer, but I got into some endless resouce leak - I can see all of my memory and swap slowly eaten up until my 800mb ram + 1Gb swap completely get exhausted.
Also I kind of dislike the errors in the terminal that says the depth buffer cannot be written to. That seems to be harmless, just I added the full logs so it is visible to others as maybe it only happens on my machine.
Steps to reproduce:
Log of the terminal
The text was updated successfully, but these errors were encountered: