ID:2025923
 
Resolved
Empty PLANE_MASTER planes will no longer attempt to draw anything.
BYOND Version:510.1320
Operating System:Windows 10 Home 64-bit
Web Browser:Chrome 47.0.2526.111
Applies to:Dream Seeker
Status: Resolved (510.1321)

This issue has been resolved.
Descriptive Problem Summary:

When inside of an /area with the PLANE_MASTER appearance flag set the client will start using an extra 5-10% CPU power and visibly slowdown while moving through the area, standing still lets CPU settle back down.

Numbered Steps to Reproduce Problem:

1) Create project.
2) Add any area with PLANE_MASTER set to the map.
3) Walk into said area.
4) Walk around inside of said area a bit.

Code Snippet (if applicable) to Reproduce Problem:
area/bad_area
appearance_flags = PLANE_MASTER


Expected Results:

I didn't really expect it to do anything, I actually set the value accidentally and couldn't figure out why things were running so slowly. Using a ton of CPU probably isn't expected though.

Actual Results:

Sluggish movement, client lag, high CPU usage.

Does the problem occur:
Every time? Or how often? Every time
In other games? Every project I've tested
In other user accounts? Yep
On other computers? Yep

When does the problem NOT occur? When not inside of the area in question.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

Definitely didn't exist in 510 ;)

Workarounds:

Not using PLANE_MASTER inside of /area, slowdown happens in both software and hardware mode.
The same happens if you have a PLANE_MASTER on the client's screen and set the screen_loc to cover the evrything, such as "SOUTHWEST to NORTHEAST".

I'm guessing that it's trying to process each tile as a separate PLANE_MASTER rather than as a single entity.
In response to Bravo1
Bravo1 wrote:
The same happens if you have a PLANE_MASTER on the client's screen and set the screen_loc to cover the evrything, such as "SOUTHWEST to NORTHEAST".

I'm guessing that it's trying to process each tile as a separate PLANE_MASTER rather than as a single entity.

Bingo. If you use screen_loc for a PLANE_MASTER object you only need to give it one tile, like "1,1".

Likewise with areas, an area will generate an icon for each turf in view.

This isn't so much a bug, but one thing I can do for sure is modify the PLANE_MASTER code so that if multiple plane_master icons are encountered in a row (the sort pushes them to the back of their plane so they're encountered first), "empty" ones will be discarded.
I can't really see any valid use in letting /area be PLANE_MASTER in the first place, since it existing on a single tile would kind of defeat the purpose =P
Lummox JR resolved issue with message:
Empty PLANE_MASTER planes will no longer attempt to draw anything.
In response to Bravo1
Bravo1 wrote:
The same happens if you have a PLANE_MASTER on the client's screen and set the screen_loc to cover the evrything, such as "SOUTHWEST to NORTHEAST".

I'm guessing that it's trying to process each tile as a separate PLANE_MASTER rather than as a single entity.

Oh boy I encountered this one, and I could NOT figure out what was wrong until I found this obscure post from this bug report.
I reverted this fix because it caused empty lighting planes not to draw, which is not desirable. However I think I can compromise by discarding empty plane masters that have the exact same object ID coming up next. Probably I should do that post-sort.
It's not entirely critical to have it fixed right now since the workaround is so dead simple, but putting a warning somewhere in the reference or in a primary tutorial on plane masters would be prudent.