Scirra / Construct-bugs

Public bug report submissions for Construct 3 and Construct Animate. Please read the guidelines then click the 'Issues' tab to get started.
https://www.construct.net
107 stars 83 forks source link

HTML Layers delay #8320

Open Dramamini opened 2 days ago

Dramamini commented 2 days ago

When I change layout, if second layout has HTML Layers, they are drawn with a significant delay.

HtmlLayersDelay.zip

Steps to reproduce

  1. Run Project in fullscreen (to see the problem more clearly)
  2. Change layout

Observed result

Html layers are drawn one after another with a delay

https://github.com/user-attachments/assets/96ea514e-0ac6-46b4-a317-7ff0397c59e6

Expected result

To see all the layers drawn at the same time (even if layout takes a little bit longer to load)

More details

The upper layer is drawn last even if it is a non html layer

Chrome, Windows

First affected release:

System details

View details Platform information Product: Construct 3 r415 (beta) Browser: Chrome 130.0.6723.117 Browser engine: Chromium Context: webapp Operating system: Windows 10 Device type: desktop Device pixel ratio: 1 Logical CPU cores: 4 Approx. device memory: 4 GB User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Language setting: en-US Local storage Storage quota (approx): 559 gb Storage usage (approx): 1.7 gb (0.3%) Persistant storage: No Browser support notes This list contains missing features that are not required, but could improve performance or user experience if supported. Nothing is missing. Everything is OK! WebGL information Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium) Numeric version: 2 Supports NPOT textures: yes Supports GPU profiling: no Supports highp precision: yes Vendor: Google Inc. (NVIDIA) Renderer: ANGLE (NVIDIA, NVIDIA GeForce G105M (0x00000A68) Direct3D11 vs_4_1 ps_4_1, D3D11) Major performance caveat: no Maximum texture size: 8192 Point size range: 1 to 1024 Extensions: EXT_clip_control EXT_color_buffer_float EXT_color_buffer_half_float EXT_depth_clamp EXT_disjoint_timer_query_webgl2 EXT_float_blend EXT_polygon_offset_clamp EXT_render_snorm EXT_texture_compression_rgtc EXT_texture_filter_anisotropic EXT_texture_mirror_clamp_to_edge EXT_texture_norm16 KHR_parallel_shader_compile NV_shader_noperspective_interpolation OES_draw_buffers_indexed OES_texture_float_linear WEBGL_blend_func_extended WEBGL_clip_cull_distance WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context WEBGL_multi_draw WEBGL_polygon_mode WEBGL_provoking_vertex WEBGL_stencil_texturing Audio information System sample rate: 48000 Hz Output channels: 2 Output interpretation: speakers Supported decode formats: WebM Opus (audio/webm;codecs=opus) WebM Vorbis (audio/webm;codecs=vorbis) MPEG-4 Opus (audio/mp4;codecs=opus) MPEG-4 AAC (audio/mp4;codecs=mp4a.40.2) MP3 (audio/mpeg) FLAC (audio/flac) PCM WAV (audio/wav;codecs=1) Supported encode formats: WebM Opus (audio/webm;codecs=opus) MPEG-4 Opus (audio/mp4;codecs=opus) MPEG-4 AAC (audio/mp4;codecs=mp4a.40.2) Video information Supported decode formats: WebM AV1 (video/webm;codecs=av01.0.00M.08) WebM VP9 (video/webm;codecs=vp9) WebM VP8 (video/webm;codecs=vp8) MPEG-4 AV1 (video/mp4;codecs=av01.0.00M.08) MPEG-4 H.264 (video/mp4;codecs=avc1.420034) Supported encode formats: WebM AV1 (video/webm;codecs=av01.0.00M.08) WebM VP9 (video/webm;codecs=vp9) WebM VP8 (video/webm;codecs=vp8) WebM H.264 (video/webm;codecs=avc1.420034) MPEG-4 AV1 (video/mp4;codecs=av01.0.00M.08) MPEG-4 VP9 (video/mp4;codecs=vp9) MPEG-4 H.264 (video/mp4;codecs=avc1.420034)
AshleyScirra commented 11 hours ago

As with #8321 it looks like turning off worker mode works around this. However I'm not sure why it doesn't update all the content simultaneously in worker mode - I'll look in to that.

Dramamini commented 5 hours ago

Hi Ashley! Thank you very much for your time to look into that. I tried to turn off worker mode and indeed it's a workaround!

But for issue #8321 isn't working. (I found a workaround for textbox not to show up before layout starts: I keep it invisible and make visible at the first tick using "trigger once". The problem is that at the end of the layout, text box disappears faster than the layout with a noticeable difference and this isn't fixed with worker mode off.)

Thank you very much again. Congratulations for your amazing work.