-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
Render "GLES2" does not draw Polygon2D on Android #35772
Comments
scenes that use Polygon2D produce the following errors:
|
Info that might be useful, what Android devices are you testing this on, and does it work when you try in 3.2? (Or just a simple test case for Polygon2D that exhibits the problem, not necessarily your whole project) |
Could you try with Godot 3.2? This might have been fixed in that release. |
I have not migrated to version 3.2 yet. Because it is necessary to rebuild all the templates.
BOOST3-SE |
There is a problem on 3.2 To repeat the error you need: Cut a part of the texture using "Polygon 2D" |
@Valeryn4 I wonder if the issue is caused by the texture and not by the Polygon2D. From the errors you reported it looks like you are using a unique type of texture. Could you please try running the same scene with the texture removed to see if the issue is still present? |
EXAMPLE PROJECT: https://github.com/Valeryn4/GodotPolygon2DBug I am using PNG. Imported as "LOSS" or as "VRAM" If you do not use Skeleton2D and do not deform the polygon, there is no such problem. |
There is no such problem on a PC. Also, the "GLES3" render does not send the correct colors to some devices. If you use a polygon and a skeleton: |
@Valeryn4 Thanks for the updates! I did a search through existing issues as well and it seems that using Skeleton2D with Polygon2D has many bugs right now. For example, your color bug is reported here #27919 Soon I will put together a big issue tracker so we can properly track all the Skeleton2D issues on GLES2. At this point it appears we need to do a lot of work to make it work properly. |
What is the alternative? |
@Valeryn4 Unfortunately, I don't think there is an alternative right now. It seems that it is just broken. It needs to be fixed. |
Using the stable version, I expect everything to work there. Why are there no warnings when using the Polygon or Skeleton that it does not work on some devices? Such errors incur losses during development, and not a word about them in the documentation. |
Unfortunately it is a bug the we were unaware of. Because we did not know it was a problem we couldn't fix it in time for 3.2. Please understand that Godot is not made by a large professional team. It is made by a handful of volunteers. It is impossible for us to test every combination on every device out there. Unfortunately it turns out that your device has trouble with this combination of features. We will do our best to fix it in a reasonable amount of time. |
I came across such a device! HUAWEI Y6 Prime 2018 example GLES3: https://github.com/Valeryn4/GodotBugGles3OnSpecificDevice Other games on this device work!
|
There's a good chance we can fix this as part of the new GLES2 2d renderer, I'm putting in software transform paths for most of the primitives (have done rects, lines, ninepatches so far). May possibly be done by 3.2.2 although it depends how many other regressions there are to fix. |
Are there any developments? |
Sorry this has been delayed both by a rewrite (because regressions were very problematic to deal with in the old version) and more importantly dealing with coronavirus. New version only deals with rects so far and I'd prefer to get that in testing before the other primitives (the logic is simpler for quads). So I can't give any promises or definite timescale for this. On the other hand if you are prepared to build from source you will be able to get it sooner when I do get around to it (probably some weeks yet). In any case I'll try and link to this thread when there is something available. |
sure! |
I had to abandon the skeleton = ( OLD (Use skeleton): https://www.youtube.com/watch?v=4YfzkH1RHsg |
Good afternoon! Any news?) |
I won't be able to look at it until the regressions for the rects are all sorted, and as it requires writing a completely new path it is quite likely to be after 3.2.2. There's also the need to start work on a GLES renderer for 4.x. It needs two features essentially:
|
Hey, just wanted to bump this thread and ask if it did get fixed in 3.2.2 or if it is planned in future releases? I am still seeing it not draw and wanted to check its the same issue. |
@dnadan2 This wasn't fixed in 3.2.2, and it may take a while for it to be fixed. That said, since Polygon2D rendering is much slower than sprite rendering, you may not want to rely on it on mobile in the first place anyway. |
Hi @Calinou - does this mean that 2d skeletons are currently not supported on GLES 2? Thanks. |
@kjav Probably not, there are other issues about it already: https://github.com/godotengine/godot/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+gles2+skeleton2d |
Had forgotten about this, but it's on my roadmap. Currently I've had a pause on work on the batching until 3.2.3 is released (which is meant to be just bug fixes for 3.2.2), then a couple of PRs for light angles need to get merged and I can get stuck in for GLES3 batching. This has taken a lot longer than expected due to the delay on 3.2.3. Once GLES2 and GLES3 both use the unified path I can look at batching the other primitives and this software path. Otherwise it just means trying to work on several different forks simultaneously and having to throw out a lot of work. |
Note that you can still work on features/PRs which will be merged after 3.2.3 is released. The earliest we get big changes merged in prevision of 3.2.4, the better :) |
I've now added a software path as part of batching in #42119. It will probably be a project setting to switch between sofware and hardware 2d skinning. Sorry took so long to get round to it! 😊 |
Fixed by #42119. |
BUMP! @akien-mga |
Make sure you have EDIT: Have checked and logic seems correct with anti-aliasing, this shouldn't affect it. And it uses the correct software transform path when tested on desktop with AA switched on. Maybe it's your version, I wonder if anything here was fixed between 3.3 and 3.3.3 (which is the current stable version). There were some small fixes since 3.3, it may be fixed in 3.3.3. But either way it would be good to have the small part of this project that is used that has this problem so I can investigate. I'll try your old MRP but I'm pretty sure that worked fine as I was using it to test things as I developed. There might be some small difference in your shipping version from the MRP. I've retested your old MRP with the fuzzy yellow blob and it works fine using the software skinning. So maybe there is something specific in your shipping project. Also confirm that your texture size is 2048x2048 or lower and is power of 2 sized. We are assuming here that the problem is skinning, but it could be something else like the texture that is not supported on that hardware. |
@lawnjelly I don't think we have added checks everywhere for hardware dependent max texture sizes. So it could indeed be a texture size issue. |
godot 3.1.2-stable
Android 6.0 (BF166_BOOST3-SE_L010)
If you use the "GLES2" render, then the Polygon2D is not drawn!
If you use the "GLES3" render, then everything works
Textures imported as Loss
GLES2:
GLES3:
PS:
I need it for beautiful animations
The text was updated successfully, but these errors were encountered: