Author Topic: Visual curruption on lower end hardware  (Read 2597 times)

sgonchar

  • Guest
Visual curruption on lower end hardware
« on: September 05, 2012, 02:34:44 PM »
Hello,

We're getting odd visual corruption on low end hardware for some of our game users. Fonts are probably the bigger issue, but some sprites aren't loading ether.
Any thoughts, guesses or suggestions are greatly appreciated ... we're running low on ideas :|

Info is limited from the users with the problem but this is what we know:
- We're thinking visual quality was an issue, but turns out it only clears things up for a second then goes back to being corrupted. (we can turn off shadows etc at runtime)
- Latest chrome browser (21.0.1180.89 m) with Unity Plugin (not the Chrome native client). But we've seen this on up to date Firefox uses as well (hence we think it's not browser related).
- Latest possible drivers. (one user is currently trying older drivers just to see)
- DX9 seems in order, but we're checking on that.
- Hardware is:
-- User1: AMD Athlon 7750 Dual Core 2.7Ghz. 2 Gigs of ram. GeForce 9600 GT.
-- User2: Intel Core 2 Duo E7500 2.9Ghz. 6 Gigs of ram. ATI Radeon HD 4550.
- This seems to have happened with our upgrade from NGUI 1.6 to 2.1.0 but just a guess based on timing user first saw this issue.

Attached are two files, pic of visual corruption and pic of expected look. Note that he corruption blinks in/out, seems like every frame and slightly different each time ... almost like sprites are interlaced (same depth in NGUI used to cause this).

Questions we can think of:
- Could we be running out of depths for NGUI widgets?
- Could we be running out of memory for NGUI widgets (UI as in pics has about 350 widgets/sprites/labels)
- Why would it show up well for a second then start corrupting?
- Is there anything that changed in new NGUI to cause Z-depth fighting?

Thank you.

sgonchar

  • Guest
Re: Visual curruption on lower end hardware
« Reply #1 on: September 05, 2012, 02:57:41 PM »
Update:
- Turns out this issue can be fired by restarting the game.
- Also Direct X is quite out of date on a lot of the users machines, but this wasn't an issue before NGUI upgrade.

Repro steps update:
- This issue turns up only sometimes, many people with similar hardware saw this happen but very very few suffer from it all the time.

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Visual curruption on lower end hardware
« Reply #2 on: September 05, 2012, 03:55:04 PM »
Default UI shaders that come with NGUI don't use depth by default. Did you set "depth" option on the UIPanel? That's the only thing I can think of that would cause the UI to write to depth.

sgonchar

  • Guest
Re: Visual curruption on lower end hardware
« Reply #3 on: September 05, 2012, 04:13:37 PM »
Hey,
We didn't change anything in UIPanels from default, never really needed to as everything works great.
By "Depth" I mean the UIWidget::depth that gets set to unique numbers every time we add more widgets (for some internal depth sorting of some kind). Actual 3D Z-depth in unity doesn't seem to matter much for NGUI, a lot of them are set to 0 (zero) ... could it be that NGUI depths are ignored sometimes?

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Visual curruption on lower end hardware
« Reply #4 on: September 05, 2012, 04:15:09 PM »
No, I mean UIPanel.depthPass :)

sgonchar

  • Guest
Re: Visual curruption on lower end hardware
« Reply #5 on: September 05, 2012, 04:43:00 PM »
Hi, The depthPass is not enabled, do you think it may help?

ArenMook

  • Administrator
  • Hero Member
  • *****
  • Thank You
  • -Given: 337
  • -Receive: 1171
  • Posts: 22,128
  • Toronto, Canada
    • View Profile
Re: Visual curruption on lower end hardware
« Reply #6 on: September 05, 2012, 07:14:22 PM »
Nope, it should be off. Your UI shaders don't write to depth, right? Are you using the default NGUI shader (Unlit/Transparent Colored)?

sgonchar

  • Guest
Re: Visual curruption on lower end hardware
« Reply #7 on: September 06, 2012, 08:02:51 AM »
Yup, Unlit/Transparent Colored.