Page MenuHomeFeedback Tracker

ui2t rendering blank texture
Feedback, NormalPublic

Description

UI2Texture seems to be struggling when rendering same texture in two different displays, it ends up not showing the texture at all for a good while, even after you reload the mission. Happens in both stable and latest perf

Details

Severity
None
Resolution
Open
Reproducibility
Sometimes
Operating System
Windows 10 x64
Category
Scripting
Steps To Reproduce
  1. Launch fresh game instance
  2. Launch attached mission
  3. Being the mission, activate "Do it!" action
  4. Observe only seeing text but not an icon
  5. Restart the mission, activate "Do it!" action again
  6. Icons should appear after some time
Additional Information

Right now ui2t textures are added to cutRsc and findDisplay 46 displays, the bug happens in this combination only.

  • If you only add it to either display, it works fine.
  • If you add it to two cutRsc displays or twice to findDisplay 46, its also fine.
  • If procedural texture text is random rather than static, bug doesn't happen

Event Timeline

SaMatra created this task.Thu, May 2, 11:34 AM
dedmen set Ref Ticket to AIII-56403.Fri, May 3, 8:19 AM
dedmen added a subscriber: dedmen.Fri, May 3, 9:35 AM

This is essentially the bug we had before.
Where textures referenced in the display, would not be loaded at first, so you need to keep re-rendering the display.

To workaround that I added detection for not-yet-loaded textures.
But, that workaround, that checks if a texture is unloaded. Checks the texture AFTER the first display render.
So if the texture was unloaded during render, then right at the end of render it did load, and after render we check, we see its loaded, so surely all is fine, and we won't need to try again.

Checked that and indeed, before the UI render no mipmaps of the texture are loaded, and after first render all mipmaps are loaded.
But also my "texture is ready" check is faulty, it only checked if the headers were ready. Which for this texture seems to be the case even if no mipmaps of it were loaded.
So we need to check if mipmaps are ready, and do that before the first render

dedmen changed the task status from New to Feedback.Fri, May 3, 3:20 PM

next prof