Commit Graph

17 Commits

Author SHA1 Message Date
SkyratBot
87e3a63f7d [MIRROR] During unit tests, does extra verification on text based overlays (#6415)
* During unit tests, does extra verification on text based overlays (#59553)

This makes it so during unit tests, adding a text based overlay to something will runtime if the icon does not have an icon state matching that text. I would do this during normal compiles as well but getting the icon states from an icon is surprisingly expensive.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* During unit tests, does extra verification on text based overlays

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2021-06-21 00:48:24 +01:00
SkyratBot
77de99671c [MIRROR] Removes CHECK_TICK from overlays, following the same theory as instant explosions. (#5373)
* Removes CHECK_TICK from overlays, following the same theory as instant explosions. (#58382)

as we learned with instant explosions, sleeping needlessly between appearance changes results in a heavier sendmaps load, let's see how this performs

* Removes CHECK_TICK from overlays, following the same theory as instant explosions.

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2021-05-01 09:43:24 +01:00
SkyratBot
84aa664b58 [MIRROR] Fix overlay subsystem holding on to excessive amounts of icons. (#4899)
* Fix overlay subsystem holding on to excessive amounts of icons. (#58378)

* Fix overlay subsystem holding on to excessive amounts of icons.

The use of the icon file reference should be ok because they aren't ref counted anyways,

* Rename icon

* Makes the shit actually work

* Removes caching all together.

* fix compile errors

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Fix overlay subsystem holding on to excessive amounts of icons.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-04-14 12:48:41 +01:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
f1c9041430 [MIRROR] make overlay lists not persist when empty (#855)
* make overlay lists not persist when empty (#53787)

* make overlay lists not persist when empty

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2020-09-18 05:14:17 +02:00
SkyratBot
1c1ce7b055 [MIRROR] Browser Status Panel (#548)
* Browser Status Panel (#53112)

* Browser Status Panel

Co-authored-by: Couls <coul422@gmail.com>
2020-08-29 20:26:27 +01:00
AnturK
35ad401ef9 Removes priority overlays (#51018)
* Removes priority overlays

* Fixup
2020-05-24 14:04:35 -03:00
oranges
cbf10d8a01 Fixes overlay subsystem being lenient on large amounts of overlays (#50915) 2020-05-06 04:49:52 -07:00
Francesco
40d2a68f56 Make a lot of subsystems' Initialize return ..() (#39955)
Subsystem Initialize has a return value, this makes all the subsystems actually
return it, too.
2018-08-31 19:01:46 -07:00
oranges
29da5a1914 Refactors how overlays handle the compile step (#38002)
Robustin says:

The very heart of our overlay code, a single line that basically boiled
down to overlays = new_overlays, was the cause of so much overlay lag.
Human overlay code was by far the biggest culprit. Most objects have 0-2
overlays but humans are marching around with 20+ most of the time and
the current system was spending a LOT of effort comparing 20+ image with
20+ other images and then apparently rendering them all anyway. Human
overlays are at least 10x the cost of any other overlay process and on a
busy server the overlay compiling was 2x the cost of any other system.

I compared the cost of overlay changes by picking up/dropping a PDA in
the dorms 250 times, with a 50% chance to use our current overlay
compiler and a 50% chance to use a "direct addition/removal (+=, -=)
approach:
CURRENT         1120ms  133     (avg:8.4210529327392578)
SCRAPS  6ms     112     (avg:0.0535714291036129)

Now this PR makes our whole overlay subsystem use that approach for
overlay compiling and the early results look incredible. The best part
is this is just the START of improvements. Humans benefits the most
because their icon system was already designed for small, incremental
overlay updates. By moving other code from "Cut everything, then put it
all back" to only updating the necessary overlays (cough, APC's), we can
see similar improvements.

oranges says:
I've picked up this PR because robustin vanished, but I do see the value
in the approach, only things I added were the checks for the overlay
list len changing

I also retabbed the entire file because I am a brainlet and did it
without thinking
2018-05-31 03:39:28 +03:00
Jordan Brown
31ce6b5b90 Removes runlevels spec from SSoverlays (#35455) 2018-02-10 12:02:05 -05:00
ninjanomnom
53ffc71655 make fire priority values defines 2018-01-17 02:57:14 -05:00
Kyle Spier-Swenson
fa136e71f4 Revert "Merge pull request #33537 from ninjanomnom/priority-defines" (#34528)
This reverts commit 0244b61886, reversing
changes made to 5d07df08ea.
2018-01-16 20:04:35 -05:00
ninjanomnom
a65248928b defines all subsystem priority values 2017-12-15 15:16:31 -05:00
Emmett Gaines
94a7608995 adds a parent level subsystem initialized var (#33456) 2017-12-13 22:11:21 -05:00
Jordan Brown
7ab3d26a48 Fixes bad text2file call 2017-11-20 16:24:03 -05:00
Kyle Spier-Swenson
d7b537ce24 SSoverlay improvements and tweaks (#32371)
* Overlay per-type cost logging.

Overlays will now log how long each type took to process.

Changed up how overlays was done to account for the fact its a queue and not a processor. (it was using almost none of the processing subsystem framework)

Made the overlay loop faster by making it not cut the list until the end.

Added a simple generic benchmark stat tracking system.

I don't know how much overhead this adds to overlays. i may put it behind testing or something, but i do want to test this on the serbers to get some stats.

* Removes flush() as it was creating race conditions

* Use ref

* text2file

* Atoms added as an overlay will have their pending overlays compiled before being converted to an appearance
2017-11-10 20:25:29 +01:00