Skip to content
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

Visual Bug With AutoCompletion #77582

Closed
PrideBeeTrans opened this issue May 28, 2023 · 11 comments
Closed

Visual Bug With AutoCompletion #77582

PrideBeeTrans opened this issue May 28, 2023 · 11 comments

Comments

@PrideBeeTrans
Copy link

PrideBeeTrans commented May 28, 2023

Godot version

3.6 Beta 2

System information

Linux: Xubuntu 20.04
Render Drive: GLES2
Processor : AMD Athlon(tm) Dual Core Processor 4450B
Integrated video card: AMD RS780C [Radeon 3100]

Issue description

When type some code times auto completion pass front the code
what

Steps to reproduce

Just type some code and can be appear some times

Minimal reproduction project

Just type some code and can be appear some times pass front

@lawnjelly
Copy link
Member

lawnjelly commented May 29, 2023

Have you seen this behaviour on any earlier versions of Godot? I.e. is it new in 3.6 beta 2?

I've not yet been able to reproduce but knowing when it started might help pinpoint the cause.

The only significant rendering change off the top of my head in 3.6 beta 2 is MultiRect, which you can switch off by going to project_settings/rendering/batching/options/use_multirect, and restarting the editor. I'm not sure it should be able to cause a change in transparency, but it would be worth a try if this is new to 3.6 beta 2.

Also knowing your GPU / processor could be useful as this kind of thing is sometimes just down to graphics drivers.

@PrideBeeTrans
Copy link
Author

Only appear to me on 3.6 beta 2 i was using beta 1 never encounter this visual bug

@PrideBeeTrans
Copy link
Author

PrideBeeTrans commented May 29, 2023

I did test disabled project_settings/rendering/batching/options/use_multirect still having this issue
ggq

@lawnjelly
Copy link
Member

lawnjelly commented May 29, 2023

Ah, the GPU seems from 2008, so that is more suggestive of a driver / GPU bug, although why it should occur in beta 2 and not beta 1 I'm not sure. I've been looking through the commits but nothing obvious springs up.

a810c8c5f6 Update changelog for Godot 3.6 beta 2
a810c8c5f6 Update changelog for Godot 3.6 beta 2
fc58d93176 Merge pull request #77454 from m4gr3d/update_alpha_status_code_3x
3bef5f29ec Update the format for the app version code and name
68c507f59b Merge pull request #77387 from akien-mga/3.x-gdnative-core-1-4
474265701f Merge pull request #77349 from akien-mga/3.x-bullet-3.25
88189c6c5d Merge pull request #77281 from MJacred/3.x-cherrypick
894739109d Merge pull request #77245 from novalis/slider-3.5
63bb2485f1 Merge pull request #77232 from AThousandShips/id_doc_3_x
f1fa69a58d Merge pull request #76753 from Calinou/itemlist-tree-add-allow-search-property-3.x
5f4fb87327 Merge pull request #76723 from aaronfranke/3.x-ancestortecedent
1bc03d9d65 GDNative: Add Core API 1.4, move `Transform2D::determinant` there
b958e8a236 bullet: Sync with upstream 3.25
1c63c54ab3 [3.x] Warn against using non-uniform scale for 3D physics (in  class reference only)
f6b918a1ca Stop dragging when a slider changes editability
96ad972dc5 [3.x] Clarify range of various ID values are 32 bit
1538b870f1 Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
e5e73e7068 Merge pull request #74583 from m4gr3d/setup_play_store_builds_3x
4cc2229a52 Merge pull request #72251 from RandomShaper/robust_sync_3.x
567128b64f Merge pull request #76671 from dioptryk/obj-vertex-colors
94d6c3dcc6 Augment the `InputEvent` class with a `CANCELED` state
716fef79ef Merge pull request #76962 from akien-mga/3.x-linux-joypad-skip-udev-if-sandboxed
bf56a3a143 Merge pull request #76902 from lawnjelly/safe_acos
8a23fa41a8 Linux: Don't use udev for joypad hotloading when running in a sandbox
3762fe3d9d Merge pull request #76981 from m4gr3d/fix_input_anr_3x
2509c1691d Follow up to https://github.com/godotengine/godot/pull/76400 to fix input ANR in the Godot Android edito
a810c8c5f6 Update changelog for Godot 3.6 beta 2
fc58d93176 Merge pull request #77454 from m4gr3d/update_alpha_status_code_3x
3bef5f29ec Update the format for the app version code and name
68c507f59b Merge pull request #77387 from akien-mga/3.x-gdnative-core-1-4
474265701f Merge pull request #77349 from akien-mga/3.x-bullet-3.25
88189c6c5d Merge pull request #77281 from MJacred/3.x-cherrypick
894739109d Merge pull request #77245 from novalis/slider-3.5
63bb2485f1 Merge pull request #77232 from AThousandShips/id_doc_3_x
f1fa69a58d Merge pull request #76753 from Calinou/itemlist-tree-add-allow-search-property-3.x
5f4fb87327 Merge pull request #76723 from aaronfranke/3.x-ancestortecedent
1bc03d9d65 GDNative: Add Core API 1.4, move `Transform2D::determinant` there
b958e8a236 bullet: Sync with upstream 3.25
1c63c54ab3 [3.x] Warn against using non-uniform scale for 3D physics (in  class reference only)
f6b918a1ca Stop dragging when a slider changes editability
96ad972dc5 [3.x] Clarify range of various ID values are 32 bit
1538b870f1 Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
e5e73e7068 Merge pull request #74583 from m4gr3d/setup_play_store_builds_3x
4cc2229a52 Merge pull request #72251 from RandomShaper/robust_sync_3.x
567128b64f Merge pull request #76671 from dioptryk/obj-vertex-colors
94d6c3dcc6 Augment the `InputEvent` class with a `CANCELED` state
716fef79ef Merge pull request #76962 from akien-mga/3.x-linux-joypad-skip-udev-if-sandboxed
bf56a3a143 Merge pull request #76902 from lawnjelly/safe_acos
8a23fa41a8 Linux: Don't use udev for joypad hotloading when running in a sandbox
3762fe3d9d Merge pull request #76981 from m4gr3d/fix_input_anr_3x
2509c1691d Follow up to https://github.com/godotengine/godot/pull/76400 to fix input ANR in the Godot Android edito
a810c8c5f6 Update changelog for Godot 3.6 beta 2
fc58d93176 Merge pull request #77454 from m4gr3d/update_alpha_status_code_3x
3bef5f29ec Update the format for the app version code and name
68c507f59b Merge pull request #77387 from akien-mga/3.x-gdnative-core-1-4
474265701f Merge pull request #77349 from akien-mga/3.x-bullet-3.25
88189c6c5d Merge pull request #77281 from MJacred/3.x-cherrypick
894739109d Merge pull request #77245 from novalis/slider-3.5
63bb2485f1 Merge pull request #77232 from AThousandShips/id_doc_3_x
f1fa69a58d Merge pull request #76753 from Calinou/itemlist-tree-add-allow-search-property-3.x
5f4fb87327 Merge pull request #76723 from aaronfranke/3.x-ancestortecedent
1bc03d9d65 GDNative: Add Core API 1.4, move `Transform2D::determinant` there
b958e8a236 bullet: Sync with upstream 3.25
1c63c54ab3 [3.x] Warn against using non-uniform scale for 3D physics (in  class reference only)
f6b918a1ca Stop dragging when a slider changes editability
96ad972dc5 [3.x] Clarify range of various ID values are 32 bit
1538b870f1 Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
e5e73e7068 Merge pull request #74583 from m4gr3d/setup_play_store_builds_3x
4cc2229a52 Merge pull request #72251 from RandomShaper/robust_sync_3.x
567128b64f Merge pull request #76671 from dioptryk/obj-vertex-colors
94d6c3dcc6 Augment the `InputEvent` class with a `CANCELED` state
716fef79ef Merge pull request #76962 from akien-mga/3.x-linux-joypad-skip-udev-if-sandboxed
bf56a3a143 Merge pull request #76902 from lawnjelly/safe_acos
8a23fa41a8 Linux: Don't use udev for joypad hotloading when running in a sandbox
3762fe3d9d Merge pull request #76981 from m4gr3d/fix_input_anr_3x
2509c1691d Follow up to https://github.com/godotengine/godot/pull/76400 to fix input ANR in the Godot Android editor
c4becb0ca4 [ci/web] update mymindstorm/setup-emsdk to v12
6f8e632848 (origin/safe_acos) Make acos and asin safe
df4075604e Merge pull request #76867 from Calinou/doc-3d-particles-color-3.x
6fc3fb5d62 Merge pull request #76775 from lawnjelly/multirect_refine_bug
c65967c17f Document 3D particle color properties requiring vertex color as albedo
f9ae38d87c Merge pull request #73692 from m4gr3d/update_touchscreen_editor_settings_3x
43b6205887 (origin/multirect_refine_bug) Multirect - Fix refining regions for all derived Textures
627a2909c2 Merge pull request #76833 from kleonc/gridcontainer-max-row-column-calculations-fix
e250950760 Merge pull request #76703 from kleonc/tilemap-nested-atlas-texture-rendering-fix
281e5703b1 Merge pull request #76544 from AThousandShips/bit_poly_size_3_x
793a45dbbd Merge pull request #76400 from RandomShaper/fix_android_input_anr_3.x
0ce6ef7215 Fix GridContainer max row/column calculations not skipping hidden children
e5b399be65 Allow concurrent buffering and dispatch of input events
b78935ef51 Adds a `scale_gizmo_handles` entry to the `Touchscreen` editor settings
aac5558760 Add allow_search property to ItemList and Tree
92f0c9272f [3.x] Fix small mistake in docs, "antecedents" -> "ancestors"
12c923cb8b Fix rendering tiles using nested AtlasTextures
ab8792cc7b Add vertex color support to OBJ importer
48347499c2 Fix size error in `BitMap.opaque_to_polygons`
adee8cfee6 Merge pull request #76533 from lawnjelly/message_queue_perf
b3bcec8c4a Merge pull request #76346 from HolonProduction/suggest-class-name
cc60359a6c (origin/message_queue_perf, message_queue_perf) MessageQueue - Fix max usage performance statistic
30e3e301e0 Update the gradle build tasks to generate play store builds.
e09ca30b32 Merge pull request #76453 from aaronfranke/3.x-gltf-physics
83e91ab818 Merge pull request #76323 from aaronfranke/3.x-t2d-basis-det
571e4189fd [3.x] Implement physics support in the GLTF module
15c729e1d9 Merge pull request #76321 from Calinou/doc-projectsettings-ubershader-3.x
d20305a718 Improve documentation related to ubershaders in ProjectSettings
3956ea7ddf Merge pull request #76424 from timothyqiu/nested-folders-3.x
2df077915d Merge pull request #76423 from timothyqiu/editor-dialog-3.x
a2534cecf2 Merge pull request #76216 from belzecue/backport-PR55313
bfb6877b3c Merge pull request #75612 from lawnjelly/fix_skele2d_bounds2
54e293bfcb Merge pull request #69952 from lawnjelly/canvas_layer_ordering
31224276ee Merge pull request #63193 from BimDav/visibility_enabler2
d6672d8fe4 Make create folder popup support nested folders
392f65fe09 Fix inconsistent file dialog settings usage
dc97a2e543 Merge pull request #75699 from m4gr3d/fix_ux_controls_3x
e31b1a76f8 Make `EditorPropertyLayersGrid` responsive to touch taps
de20011cbe Make tab's close button responsive to touch taps
3943de2e6c Merge pull request #71875 from m4gr3d/editor_optimization_3x
d46684057b Merge pull request #76329 from m4gr3d/downgrade_agp_3x
141783d90f [3.x] Expose `determinant` in Transform2D, rename internal method
8dae3d71b2 Suggest class_name in 3.x autocompletion.
837db0b051 Downgrade android gradle plugin to version 7.2.1.
efb4a0a6d5 Backport from Godot 4 - Fix RigidDynamicBody gaining momentum with bounce #55313
17e0a0205d Merge pull request #76072 from dsnopek/webxr-ar-clear-fix
78739f7266 Merge pull request #76016 from AThousandShips/image_compress
a6b01ca69d Merge pull request #75995 from AThousandShips/3_x_autohide_theme
d02656f91f Merge pull request #75992 from jasonwinterpixel/bugfix/3.x-fix-android-null
e3656745cc Merge pull request #69723 from lawnjelly/surface_tool_revamp
4c5a934408 Merge pull request #68960 from lawnjelly/multirect
77deae0483 Disable blending before blitting to framebuffer from WebXR
Unfortunately unless we can reproduce this might be tricky to narrow down.

Kind of things we often try are getting you to make a recording with e.g. APITRACE or RenderDoc. This can sometimes suggest when something is likely to be a driver bug, as it records the OpenGL calls and we can examine the state, and see if it reproduces with the same API calls on different hardware.

Also if you are able to go through the commits manually to bisect where the problem first occurs this can help pinpoint:
https://docs.godotengine.org/en/stable/contributing/workflow/bisecting_regressions.html

You can often do this by downloading the artifacts from github from the PR pages (look for the green ticks on the CI builds) rather than building the engine yourself. For some reason this doesn't seem to be in the docs.

Other option is just to be patient and see if anyone else reports the problem, often times this helps narrow it down, and if no one else does have the problem, it can be a GPU / driver issue
rather than something our side.

@belzecue
Copy link

belzecue commented Jul 14, 2023

I also get the issue for 3.6B2 (but not for 3.6B1) on two Intel NUC boxes, a Linux box (NUC7) and a Windows10 box (NUC6). Both have integrated Intel GPUs. The NUC7 was manufactured in early 2018. I reproduced the issue on both devices. For 3.6B2 there was obvious bleed-through. For 3.6B1, the autocomplete text background was opaque with no bleed-through.

To test, I created a project each for 3.6B1 and 3.6B2 with a single script to test autocomplete against this visual glitch. I put them in separate folders so that each was pristine. I also deleted the editor_settings-3.tres file in each to force it to regenerate to default in both cases -- both regenerated files are identical.

3.6B1 - solid autocomplete background
Godot-3 52-default

3.6B2 - transparent background
Godot-3 6B2-default

UPDATE: I can confirm the issue with 3.6B2 also happens on my gaming laptop, a Dell G15 5515 with Windows 10 and NVIDIA GeForce RTX 3060 6GB.

@lawnjelly
Copy link
Member

lawnjelly commented Jul 14, 2023

I'll try and have another look at this if it is occurring on several systems, it makes it more difficult not being able to reproduce locally. Ideally we'd bisect it to the PR that introduced it (could well be one of mine 😁 ).

EDIT: Ah correction, it is actually reproducing on my new PC! 👍 That should make it far easier to track down and fix.

It doesn't appear to be the canvas layer ordering, I'll bisect tommorrow as it's bedtime.

UPDATE: I have bisected and as suspected it is a regression from my MultiRect PR #68960 .
The finding that disabling MultiRect in project settings doesn't get rid of the regression suggests it might be down to some small text framework changes (wrapping to support MultiRect). I'll see if I can fix this. 👍

It was down to changes to FontDrawer which now uses caching after the MultiRect PR, and TextEdit drawing the auto-completion boxes without flushing the existing text. I'm just assessing the most future proof way to fix then will make a PR. 👍

@belzecue
Copy link

belzecue commented Jul 15, 2023

Here's the git bisect.

beta 1
632a544

beta 2
68c507f

Bisecting: 43 revisions left to test after this (roughly 6 steps)
[ab8792c] Add vertex color support to OBJ importer

git bisect bad
Bisecting: 21 revisions left to test after this (roughly 5 steps)
[392f65f] Fix inconsistent file dialog settings usage
git bisect good
Bisecting: 10 revisions left to test after this (roughly 4 steps)
[3956ea7] Merge pull request #76424 from timothyqiu/nested-folders-3.x
git bisect good
Bisecting: 4 revisions left to test after this (roughly 3 steps)
[e09ca30] Merge pull request #76453 from aaronfranke/3.x-gltf-physics
git bisect good
Bisecting: 2 revisions left to test after this (roughly 1 step)
[b3bcec8] Merge pull request #76346 from HolonProduction/suggest-class-name
git bisect good
Bisecting: 0 revisions left to test after this (roughly 1 step)
[adee8cf] Merge pull request #76533 from lawnjelly/message_queue_perf
git bisect good

ab8792c is the first bad commit
commit ab8792c
Author: Bartłomiej Karwacki <[email protected]>
Date: Tue May 2 12:03:01 2023 +0200

Add vertex color support to OBJ importer

editor/import/resource_importer_obj.cpp | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)

This looks wrong. I think I goofed (my first time bisecting) and will have to redo. Obviously any changes to OBJ importer file will not affect the editor. I think my misstep was using --depth 100 on the assumption that there were only around 50 commits between Beta 1 and Beta 2.

@lawnjelly
Copy link
Member

Ah thanks! I've actually already bisected (manually) earlier and fixed it with the above PR, although it has to be reviewed and merged yet.

I've never actually used the git bisect function either 😀 as I can usually guess from the commits which is likely to be causing a particular bug.

@belzecue
Copy link

belzecue commented Jul 15, 2023

Good to hear it's fixed, but alarming that git bisect (in my case) wasn't even in the ballpark. I repeated the process from scratch without the --depth 100 when pulling the 3.x branch, and it followed the exact same sequence, so I no longer think I erred in how I carried out the bisect. At least I learned the way to do it. I'll take more opportunities to use it and decide if it's me or bisect that's being useless. UPDATE: It's me.

@belzecue
Copy link

Alright, just to put this bisect issue to bed, here's what I learned after my first try. You have to keep running bisects until your 'good' and 'bad' bisects meet up. I thought a single bisect job would eventually arrive at this state, where the good and bad commits are identified side by side, but that was not the case when I performed my bisect earlier in this thread. The good and bad-marked commits were still far apart. So I started a new bisect using the original 'good' commit but this time using the newly identified 'bad' commit value (ab8792c). After the second round of bisecting completed, I knew we had arrived at the actual bug commit, seeing the two bisects side by side:

2023-07-16_03-59

@akien-mga akien-mga added this to the 3.6 milestone Aug 1, 2023
@akien-mga akien-mga added the bug label Aug 1, 2023
@akien-mga
Copy link
Member

Fixed by #79498.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants