1,482,339 events recorded by gharchive.org of which 1,482,339 were push events containing 2,006,340 commit messages that amount to 115,236,856 characters filtered with words.py@e23d022007... to these 36 messages:
(code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE (#66657)
ever see the tram take 10 milliseconds per movement to move 2100 objects? now you have https://user-images.githubusercontent.com/15794172/166198184-8bab93bd-f584-4269-9ed1-6aee746f8f3c.mp4 About The Pull Request
fixes #66887
done for the code bounty posted by @MMMiracles to optimize the tram so that it can be sped up. the tram is now twice as fast, firing every tick instead of every 2 ticks. and is now around 10x cheaper to move. also adds support for multiz trams, as in trams that span multiple z levels.
the tram on master takes around 10-15 milliseconds per movement with nothing on it other than its starting contents. why is this? because the tram is the canary in the coal mines when it comes to movement code, which is normally expensive as fuck. the tram does way more work than it needs to, and even finds new ways to slow the game down. I'll walk you through a few of the dumber things the tram currently does and how i fixed them.
the tram, at absolute minimum, has to move 55 separate industrial_lift platforms once per movement. this means that the tram has to unregister its entered/exited signals 55 times when "the tram" as a singular object is only entering 5 new turfs and exiting 5 old turfs every movement, this means that each of the 55 platforms calculates their own destination turfs and checks their contents every movement. The biggest single optimization in this pr was that I made the tram into a single 5x11 multitile object and made it only do entering/exiting checks on the 5 new and 5 old turfs in each movement.
way too many of the default tram contents are expensive to move for something that has to move a lot. fun fact, did you know that the walls on the tram have opacity? do you know what opacity does for movables? it makes them recalculate static lighting every time they move. did you know that the tram, this entire time, was taking JUST as much time spamming SSlighting updates as it was spending time in SStramprocess? well it is! now it doesnt do that, the walls are transparent. also, every window and every grille on the tram had the atmos_sensitive element applied to them which then added connect_loc to them, causing them to update signals every movement. that is also dumb and i got rid of that with snowflake overrides. Now we must take care to not add things that sneakily register to Moved() or the moved signal to the roundstart tram, because that is dumb, and the relative utility of simulating objects that should normally shatter due to heat and conduct heat from the atmosphere is far less than the cost of moving them, for this one object.
all tram contents physically Entered() and Exited() their destination and old turfs every movement, even though because they are on a tram they literally do not interact with the turf, the tram does. also, any objects that use connect_loc or connect_loc behalf that are on the same point on the tram also interact with each other because of this. now all contents of the tram act as if theyre being abstract_move()'d to their destination so that (almost) nothing thats in the destination turf or the exit turf can react to the event of "something laying on the tram is moving over you". the rare things that DO need to know what is physically entering or exiting their turf regardless of whether theyre interacting with the ground can register to the abstract entered and exited signals which are now always sent.
many of the things hooked into Moved(), whether it be overrides of Moved() itself, or handlers for the moved signal, add up to a LOT of processing time. especially for humans. now ive gotten rid of a lot of it, mostly for the tram but also for normal movement. i made footsteps (a significant portion of human movement cost) not do any work if the human themselves didnt do the movement. i optimized has_gravity() a fair amount, and then realized that since everything on the tram isnt changing momentum, i didnt actually need to check gravity for the purposes of drifting (newtonian_move() was taking a significant portion of the cost of movement at some points along the development process). so now it simply doesnt call newtonian_move() for movements that dont represent a change in momentum (by default all movements do).
also i put effort into 1. better organizing tram/lift code so that most of it is inside of a dedicated modules folder instead of scattered around 5 generic folders and 2. moved a lot of behavior from lift platforms themselves into their lift_master_datum since ideally the platforms would just handle moving themselves, while any behavior involving the entire lift such as "move to destination" and "blow up" would be handled by the lift_master_datum.
also https://user-images.githubusercontent.com/15794172/166220129-ff2ea344-442f-4e3e-94f0-ec58ab438563.mp4 multiz tram (this just adds the capability to map it like this, no tram does this) Actual Performance Differences
to benchmark this, i added a world.Profile(PROFILER_START) and world.Profile(PROFILER_START) to the tram moving, so that it generates a profiler output of all tram movement without any unrelated procs being recorded (except for world.Profile() overhead). this made it a lot easier to quantify what was slowing down both the tram and movement in general. and i did 3 types of tests on both master and my branch.
also i should note that i sped up the "master" tram test to move once per tick as well, simply because the normal movement speed seems unbearably slow now. so all recorded videos are done at twice the speed of the real tram on master. this doesnt affect the main thing i was trying to measure: cost for each movement.
the first test was the base tram, containing only my player mob and the movables starting on the tram roundstart. on master, this takes around 13 milliseconds or so on my computer (which is pretty close to what it takes on the servers), on this branch, it takes between 0.9-1.3 milliseconds.
ALSO in these benchmarks youll see that tram/proc/travel() will vary significantly between the master and optimized branches. this is 100% because there are 55 times more platforms moving on master compared to the master branch, and thus 55x more calls to this proc. every test was recorded with the exact same amount of distance moved
here are the master and optimized benchmark text files: master master base tram.txt https://user-images.githubusercontent.com/15794172/166210149-f118683d-6f6d-4dfb-b9e4-14f17b26aad8.mp4 also this shows the increased SSlighting usage resulting from the tram on master spamming updates, which doesnt happen on the optimized branch
optimized optimization base tram.txt https://user-images.githubusercontent.com/15794172/166206280-cd849aaa-ed3b-4e2f-b741-b8a5726091a9.mp4
the second test is meant to benchmark the best case scaling cost of moving objects, where nothing extra is registered to movement besides the bare minimum stuff on the /atom/movable level. Each of the open tiles of the tram had 1 bluespace rped filled with parts dumped onto it, to the point that the tram in total was moving 2100 objects. the vast majority of these objects did nothing special in movement so they serve as a good base case. only slightly off due to the rped's registering to movement.
on master, this test takes over 100 milliseconds per movement master 2000 obj's.txt https://user-images.githubusercontent.com/15794172/166210560-f4de620d-7dc6-4dbd-8b61-4a48149af707.mp4
when optimized, about 10 milliseconds per movement https://user-images.githubusercontent.com/15794172/166208654-bc10086b-bbfc-49fa-9987-d7558109cc1d.mp4 optimization 2000 obj's.txt
the third test is 300 humans spawned onto the tram, meant to test all the shit added on to movement cost for humans/carbons. in retrospect this test is actually way too biased in favor of my optimizations since the humans are all in only 3 tiles, so all 100 humans on a tile are reacting to the other 99 humans movements, which wouldnt be as bad if they were distributed across 20 tiles like in the second test. so dont read into this one too hard.
on master, this test takes 200 milliseconds master 300 catgirls.txt
when optimized, this takes about 13-14 milliseconds. optimization 300 catgirls on ram ranch.txt Why It's Good For The Game
the tram is literally 10x cheaper to move. and the code is better organized. currently on master the tram is as fast as running speed, meaning it has no real relative utility compared to just running the tracks (except for the added safety of not having to risk being ran over by the tram). now the tram of which we have an entire map based around can be used to its full potential.
also, has some fixes to things on the tram reacting to movement. for example on master if you are standing on a tram tile that contains a banana and the TRAM moves, you will slip if the banana was in that spot before you (not if you were there first however). this is because the banana has no concept of relative movement, you and it are in the same reference frame but the banana, which failed highschool physics, believes you to have moved onto it and thus subjected you to the humiliation of an unjust slipping. now since tram contents that dont register to abstract entered/exited cannot know about other tram contents on the same tile during a movement, this cannot happen.
also, you no longer make footstep sounds when the tram moves you over a floor TODO
mainly opened it now so i can create a stopping point and attend to my other now staling prs, we're at a state of functionality far enough to start testmerging it anyways.
add a better way for admins to be notified of the tram overloading the server if someone purposefully stuffs it with as much shit as they can, and for admins to clear said shit. automatically slow down the tram if SStramprocess takes over like, 10 milliseconds complete. the tram still cant really check tick and yield without introducing logic holes, so making sure it doesnt take half of the tick every tick is important go over my code to catch dumb shit i forgot about, there always is for these kinds of refactors because im very messy remove the area based forced_gravity optimization its not worth figuring out why it doesnt work fix the inevitable merge conflict with master lol create an icon for the tram_tunnel area type i made so that objects on the tram dont have to enter and exit areas twice in a cross-station traversal
add an easy way to vv tram lethality for mobs/things being hit by it. its an easy target in another thing i already wanted to do: a reinforced concept of shared variables from any particular tram platform and the entire tram itself. admins should be able to slow down the tram by vv'ing one platform and have it apply to the entire tram for example.
Changelog
cl balance: the tram is now twice as fast, pray it doesnt get any faster (it cant without raising world fps) performance: the tram is now about 10 times cheaper to move for the server add: mappers can now create trams with multiple z levels code: industrial_lift's now have more of their behavior pertaining to "the entire lift" being handled by their lift_master_datum as opposed to belonging to a random platform on the lift. /cl
mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks
commit 0b28179a6138a5edd9d82ad2687c05b3773c387b upstream.
Patch series "memcg: prohibit unconditional exceeding the limit of dying tasks", v3.
Memory cgroup charging allows killed or exiting tasks to exceed the hard limit. It can be misused and allowed to trigger global OOM from inside a memcg-limited container. On the other hand if memcg fails allocation, called from inside #PF handler it triggers global OOM from inside pagefault_out_of_memory().
To prevent these problems this patchset: (a) removes execution of out_of_memory() from pagefault_out_of_memory(), becasue nobody can explain why it is necessary. (b) allow memcg to fail allocation of dying/killed tasks.
This patch (of 3):
Any allocation failure during the #PF path will return with VM_FAULT_OOM which in turn results in pagefault_out_of_memory which in turn executes out_out_memory() and can kill a random task.
An allocation might fail when the current task is the oom victim and there are no memory reserves left. The OOM killer is already handled at the page allocator level for the global OOM and at the charging level for the memcg one. Both have much more information about the scope of allocation/charge request. This means that either the OOM killer has been invoked properly and didn't lead to the allocation success or it has been skipped because it couldn't have been invoked. In both cases triggering it from here is pointless and even harmful.
It makes much more sense to let the killed task die rather than to wake up an eternally hungry oom-killer and send him to choose a fatter victim for breakfast.
Link: https://lkml.kernel.org/r/0828a149-786e-7c06-b70a-52d086818ea3@virtuozzo.com Signed-off-by: Vasily Averin vvs@virtuozzo.com Suggested-by: Michal Hocko mhocko@suse.com Acked-by: Michal Hocko mhocko@suse.com Cc: Johannes Weiner hannes@cmpxchg.org Cc: Mel Gorman mgorman@techsingularity.net Cc: Roman Gushchin guro@fb.com Cc: Shakeel Butt shakeelb@google.com Cc: Tetsuo Handa penguin-kernel@i-love.sakura.ne.jp Cc: Uladzislau Rezki urezki@gmail.com Cc: Vladimir Davydov vdavydov.dev@gmail.com Cc: Vlastimil Babka vbabka@suse.cz Cc: stable@vger.kernel.org Signed-off-by: Andrew Morton akpm@linux-foundation.org Signed-off-by: Linus Torvalds torvalds@linux-foundation.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
[MDB IGNORE] The Tilening V2 - Damaged Tile Overlays Edition (#67761)
About The Pull Request
Hello once more! As we near summer, I continued to reminisce on several PRs done throughout last year! One of them was the controversial, but rather positive Tilening V1, as done by me and Twaticus a while back (#58932), and felt I could've done a better job with how it was presented.
And thus, thanks to @Fikou encouraging me with a very interesting find of a previous tile resprite attempt, I've successfully done it!
Ladies and Gentlemen, I present to you all, Tilening Version Two! image
Now this isn't your run of the mill tile resprite. While I did improve the appearance of several tiles I haven't touched last time (including the showroom/freezer tiles now), I decided to do something special that most mappers shall appreciate!
Don't you hate it when of all damaged states, there's only ones for grey tiles when we have white, black, terracotta and a bunch of other materials? Don't you wish they were overlays instead?
Well golly gee do I have good news for you! image image
After painstakingly spending at least several hours trying to learn enough code to pull it off, I have successfully made it so most tiles display transparent versions of damage overlays over them! This means mappers can express their creativity that much better! And thanks to how the code is written, its super easy to snowflake certain tile types to make them use unique damaged states (looking at you wooden tiles), so fret not in that aspect.
Credits to: @WJohn For actually making those damaged overlays! Wouldn't've done the PR if it wasn't for you. @dragomagol, @RigglePrime and @LemonInTheDark for helping me out in a VC at 10 PM to 12 AM troubleshooting the code to make this improvement work! Why It's Good For The Game
The shading is done better as compared to last time, making them feel more cubical and less like a pancake when seen from above! This PR also makes it so that we never ever have to touch damaged tiles ever again potentially, saving up some RSC regarding icons.
However, due to how damaged tiles are currently mapped in, rather than overlayed as I envision in the future, it'll require a PR by San to be merged later that should make it safe to remove these icons. Changelog
cl PositiveEntropy, WJohnston, Dragomagol, LemonInTheDark, Riggle imageadd: Resprites most variety of tiles into a better shaded version! code: Damaged floors are now damaged overlays, meaning that most tiles should properly display a damaged state! /cl
Add scripts and adjust plumbing for many temp items (#670)
- Add scripts and adjust plumbing for many temp items
Adds Scripts for items. Adds Effect scripts for X_BOOST_II Updates Effect scripts for the following:
ACCURACY_BOOST ATTACK_BOOST INTENSION MAGIC_SHIELD MULTI_STRIKES MULTI_SHOTS PAX PHYSICAL_SHIELD POTENCY RAMPART
Adjusts item_usable use times to 1s.
Notes on effects:
Ascetics Tonic/Gambir - +25/+50 MATT/MACC A big Thank You to Nyu for confirming the Intension effect for MACC. https://www.bg-wiki.com/bg/Ascetic's_Tonic https://www.bg-wiki.com/bg/Ascetic's_Gambir
Bravers Drink - +15 to All Stats https://www.bg-wiki.com/bg/Braver's%20Drink Reference to Icons/Effects - https://youtu.be/JYT5a_pTA3o?t=20
Champions Tonic - +15 Haste / +3 Crit rate Champions Drink/Gambir - +18 Haste / +5% Crit rate Expected Haste effect to be Magic pool based on BG comment (18 and 15) Critical Hit rate, no data available from community sources, conservative value of 5 (Drink/Gambir) 3 (Tonic) Both BG and 'clopedia sources confirm Critical Hit Rate (as does the effect description), however, only BG has a reference to Haste value. https://www.bg-wiki.com/bg/Champion's_Tonic
Gnostics Drink - Enmity -10 No community resources confirm this value, using SCH Animus Minuo as an reference. https://www.bg-wiki.com/bg/Gnostic's%20Drink https://www.bg-wiki.com/bg/Animus_Minuo
Monarchs Drink - Regain +3 (30/1000 per tick) for 3 minutes. https://www.bg-wiki.com/bg/Monarch's_Drink
Stalwart's Tonic/Gambir - ACC/RACC 50/100 ATTP/RATTP 25/50 A big Thank You to Nyu for confirming the effects apply ACC/RACC and ATTP/RATTP across two effects. https://www.bg-wiki.com/bg/Stalwart's_Tonic https://www.bg-wiki.com/bg/Stalwart's_Gambir
Berserker's Tonic/Drink - DA 50/100 Thanks to Nyu for confirming the MULTI_STRIKES effect and 1m duration. https://ffxiclopedia.fandom.com/wiki/Berserker%27s_Drink No full data on DA rate, minus 'clopedia which has verification tags. Working on the expectation that this follows a good portion of the other items and follows the half potency values for the lesser item.
Swiftshot Tonic/Drink - Double Shot 50/100 https://www.ffxiah.com/forum/topic/28603/fools-tonic-broken#1749569
Dusty Scroll of Reraise - Reraise III, 10m duration. https://www.bg-wiki.com/bg/Dusty_Reraise
Spiritual Incense/Fools Drink/Tonic/Powder: See effects/magic_shield Carnal Incense/Fanatics Drink/Tonic/Powder: See effects/physical_shield
-
Removed copypasta subp and trailing whitespace.
-
Item script clean-up and move effect functions to item_utils.
-
Resolve Conflicts
Convert namespace in scripts from item_utils to xi.item_utils PHYS_ABSORB to Percent from 10000 Scale
[MIRROR] Vim mecha changes (#541)
- Vim mecha changes (#66153)
This PR changes the following:
fixes a bug with Vim overlays, making it always appear as if there was a pilot inside, even after leaving it
adds a balloon alert when a mob fails to enter the mech due to its size
adds a crafting recipe for Vim in the "robots" category
allows using Vim as a circuit shell
allows small mobs to use the mech as well
My reasoning behind the changes:
fixing the overlay bug - bugfixes good, bugs bad
balloon alert - it should help reduce confusion among players who can't figure why on earth they cannot enter the mech
crafting recipe - I think a crafting recipe will make it a lot more accessible to players, especially because there is no way to learn about its existence in-game
circuit shell - non-standard circuit shells can be pretty fun and people seemed to enjoy the ability to use circuits inside their piano synths or cameras, so I figured we could expand on this, while giving players more ways to interact with sentient pets
maximum mob size increase - Vim has never really been built too often, most likely because even if people got their hands on a sentient pet, it wouldn't probably fit in the tiny mecha anyway. Currently pretty much only butterflies, rats and cockroaches can use Vim and they pretty much never become sentient.
- Vim mecha changes
Co-authored-by: B4CKU 50628162+B4CKU@users.noreply.github.com Co-authored-by: Debian debian@packer-output-01d6f1be-59bf-4994-80ec-c61b12fe30e1
change license (again)
haha unlicense is public domain but not really so i'm using cc0 now.
i fucking hate all of this copyright bullshit just let people use my code
Resonance cascade polishening, bugfixes and better logging (#67488)
This PR rewrites almost all messages related to cascade events. Some messages felt kinda clunky to read or could have been written better. Overall, the new messages add to the experience as a cascade being a terrifying event in a way that I felt the old ones missed, and they make the event feel overall a lot sharper.
While looking at the resonance cascade code, I noticed that there a lot of stuff about cascades in the air which was not touched on. So, as I do, this PR evolved into a polish and roundup PR for cascades. There was a lot of stuff still hanging out relating to the event, and although the big backend of it sits, there was still a bit left to be completed. Therefore this PR deserves more the title of the "Resonance cascade POLISHENING" instead of the "REFLAVAHRING". But yeah, you ever go on a massive tangent before?
Created Text For URL [www.latimes.com/entertainment-arts/music/story/2022-06-24/dove-cameron-boyfriend-breakfast-disney-queer]
Bagel Update 13.7 (#8690)
-
fuck shit ass shit
-
Add files via upload
Allow putting tilesets in ../Tilesets
I hate adding NewerSMBW-specific hacks to Reggie, but given that this is a widespread annoyance and I'm not planning on ever implementing a more proper solution (i.e. loading Riivo patches instead of raw Stage folders)... this is a good enough compromise
bring some of the shit back
also just make every auth attempt valid because fuck you
gggggrrrrr i hate that bitch making this stupid fucking dumb idiot i deleted >:((((((
fuck yopu bitches
Merge #80894 #81200 #81330 #81406
80894: build,gcp: enable nightly config to run GCP unit tests r=adityamaru a=adityamaru
Previously, the pkg/cloud/gcp
tests package was skipped on CI
because most of the tests require credentials, and we risked exfiltration
of these secrets when running on public teamcity agents.
With the ability to run tests on agents that are not part of the public
pool we now have a Cloud Unit Test
config that runs these tests nightly.
This change adds the script invoked by the config and cleans up the unit
tests to be more uniform in their authentication and environment variable
checks.
Informs: cockroachdb/cockroach#80877
Release note: None
81200: ui: Improve time picker keyboard input r=jocrl a=jocrl
Fixes #80655, mostly.
Previously, users had to type 1:03 PM (UTC)
in order to enter text into the time picker.
This commit modifies the time picker so that users would instead type either
1:03
, or01:03
to enter text into the time picker. Copying and re-pasting the text from a time picker still works.
Alternate approaches not pursued (these are not needed with the removal of AM/PM).
-
Make our own time picker component, and style it to look like antd's. There's a general issue of antd's components not being keyboard friendly: ant-design/ant-design#5685
-
Upgrade to
antd
version 4, and use an undocumented prop type.antd
's time picker uses the time picker from therc-picker
library under the hood. Inrc-picker
, theformat
prop is of typeString | String[]
, where if it's an array the first value will be used for display and the remaining ones will be used for parsing, as documented here. In theory,antd
passesformat
(and also any remaining, additional props in addition to the specified ones) to therc-picker
component. So even though theantd
TimePicker
componentformat
prop is not documented to take in a string array, one might think that passing in a string array anyway would work. In practice, passing in a string array works inantd
version4.20.4
, as tested in the antd sandbox (render<TimePicker format={ ["h:mm A", "h:mma"]}/>
). However, this does not work in our codebase (which installsantd
v3.25.2
), or in theantd
version3.x
sandbox. The errors that appear in these two situations are different, and in a way demonstrate the potential for breakage from using an undocumented feature in future upgrades from a version that we've to work. If we do this, we should add a test. -
Dead end: The
antd
TimePicker
component takes anonChange
prop with a secondtimeString
paramater. However,onChange
only fires if the input is of the correct, parsable format. The specific code that ignores text input that is not of a parsable format is inrc-picker
, here. This prevents us from being the one to do the fuzzy matching and passing the value back to the component.
Release note (ui): The time picker component has been improved such that users
can use keyboard input to select a time without having to type " (UTC)"
81330: authors: add annrpom to authors r=annrpom a=annrpom
Release note: None
81406: geomfn: check NaN coordinates for ST_MinimumBoundingCircle r=rafiss a=otan
Resolves #81277
Release note (bug fix): Fix a bug where ST_MinimumBoundingCircle with NaN coordinates could panic.
Co-authored-by: Aditya Maru adityamaru@gmail.com Co-authored-by: Josephine Lee josephine@cockroachlabs.com Co-authored-by: Annie Pompa annie.pompa@cockroachlabs.com Co-authored-by: Oliver Tan otan@cockroachlabs.com
Disable the VT color quirk for pwsh and modern inbox powershell (#13352)
In #6810, we introduced a "quirk" for all known versions of PowerShell that suppressed their requests for black background/gray foreground. This was done to avoid an issue in PSReadline where it would paint black bars all over the screen if the default background color wasn't the same as the ANSI black color.
Years have passed since that quirk was introduced. The underlying bug was fixed, and the fix was released broadly long ago. It's time for us to remove the quirk... almost.
Terminal still runs on versions of Windows that ship a broken version of PSReadline. We must maintain the quirk there -- the user can't do anything about it, and we would make their experience worse if we removed the quirk entirely.
PowerShell 7.0 also ships a broken version of PSReadline. It is still in support for another 6 months, but updates have been available for some time. We can encourage users to update.
Therefore, we only need the quirk for Windows PowerShell, and then only for specific versions of Windows.
Inside Windows, we don't even need that: we're guaranteed to be built alongside a fixed version of PowerShell!
Closes #6807
Manually copy trailing attributes on a resize (#12637)
This is a fairly naive fix for this bug. It's not terribly performant, but neither is resize in the first place.
When the buffer gets resized, typically we only copy the text up to the
MeasureRight
point, the last printable char in the row. Then we'd just
use the last char's attributes to fill the remainder of the row.
Instead, this PR changes how reflow behaves when it gets to the end of the row. After we finish copying text, then manually walk through the attributes at the end of the row, and copy them over. This ensures that cells that just have a colored space in them get copied into the new buffer as well, and we don't just blat the last character's attributes into the rest of the row. We'll do a similar thing once we get to the last printable char in the buffer, copying the remaining attributes.
This could DEFINITELY be more performant. I think this current implementation walks the attrs on every cell, then appends the new attrs to the new ATTR_ROW. That could be optimized by just using the actual iterator. The copy after the last printable char bit is also especially bad in this regard. That could likely be a blind copy - I just wanted to get this into the world.
Finally, we now copy the final attributes to the correct buffer: the new one. We used to copy them to the old buffer, which we were about to destroy.
I'll add more gifs in the morning, not enough time to finish spinning a release Terminal build with this tonight.
Closes #32 🎉🎉🎉🎉🎉🎉🎉🎉🎉 Closes #12567
(cherry picked from commit 855e1360c0ff810decf862f1d90e15b5f49e7bbd)
Fixes the wapproj fast-up-to-date check (#11806)
I'm working on making the FastUpToDate check in Vs work for the Terminal project. This is one of a few PRs in this area.
FastUpToDate lets vs check quickly determine that it doesn't need to do anything for a given project.
However, a few of our projects don't produce all the right artifacts, or check too many things, and this eventually causes the wapproj
to rebuild, EVERY TIME YOU F5 in VS.
This third PR deals with the Actual fast up to date check for the CascadiaPackage.wapproj. When #11804, #11805 and this PR are all merged, you should be able to just F5 the Terminal in VS, and then change NOTHING, and F5 it again, without doing a build at all.
The wapproj GetResolvedWinMD
target tries to get a winmd from every cppwinrt
executable we put in the package. But we DON'T produce a winmd. This makes the
FastUpToDate check fail every time, and leads to the whole wapproj build
running even if you're just f5'ing the package. EVEN AFTER A SUCCESSFUL BUILD.
Setting GenerateWindowsMetadata=false is enough to tell the build system that we don't produce one, and get it off our backs.
[3:38 PM] Dustin Howett however, that's not the only thing that "GetTargetPath" checks.
[3:38 PM] Dustin Howett oh yeah more info: wapproj calls GetTargetPath on all projects it references
[3:38 PM] Dustin Howett when it calls GTP on WindowsTerminal.vcxproj it is getting back a winmd (!)
[3:39 PM] Dustin Howett here's the magic
[3:39 PM] Dustin Howett it checks if any Link items specify GenerateWindowsMetadata
[MIRROR] Removes (in) smoke and foam reactions [MDB IGNORE] (#13963)
-
Removes (in) smoke and foam reactions (#67270)
-
Removes smoke and foam reactions
Turns out when you let reagents react in foam/smoke, people put bombs in them.
This behavior was initially added to just smoke, accidentially in (56f7ac0c0a29e8f898c4aab35947d027952b43f7) accidentialy (thalpy tried to make both foam and smoke instant react, but instead made smoke's temporary holder reagent instant instead. hhhhhhh)
Assuming this was intentional it was then extended to foam in (1879e2d338c9bf5f191cef6c39944b26a41e6092)
Basically, we're idiots. Anyway lets just walk this all back to instant reaction on smoke/foam formation. Hate you people
- Removes another source of gunpowder smoke
Temporal told me about this. Gunpowder uses an ex_act signal as a starter, and that also counts for smoke objects.
Really don't want instant detonation smoke bombs, so let's just... not shall we?
- Removes (in) smoke and foam reactions
Co-authored-by: LemonInTheDark 58055496+LemonInTheDark@users.noreply.github.com
If I put the value in r8 first, then move from r8 to rax letter, I'm good... which is super weird. And confusing. I definitely don't understand it. It definitely seems wrong. Setting rsp shouldn't change how the address is... Hmmmmmmmm. Hmm. Is GCC storing it on the stack still, because that's how I passed it in? Hmm, well, this was starting to make a lot of sense, until... Oh, maybe it still does! Making a new variable still has the same issue... but it's not a heap-allocated variable. It's literally on the stack, and I literally can't access it anymore once I change rsp. Okay, thank God, this finally makes sense. And goes from frustrating and annoying to kinda cool to have had to wrestle with. Okay, still committing, before I figure out how I actually want to do things, now that I understand what's going on. What a relief! Phew!
Adds a bunch of shit
-Fuck you -They're the power rangers -Science ship??? -Ignore the honksquad suit it isn't real
Legendary 4638 shared texture perf improvement
This fixes remaining performance and frame pacing issues when using CEF 95 with texture sharing on Windows. I hacked Chromium internally to treat shared textures similarly to how the 3770 method worked.
Let me document my little adventure.
First, we were getting system freezes, and from analysis of the bluescreen dumps, they were always during synchronization, so I had a hunch: "are keyed mutexes doing this?" The system freeze issue left me hopeless. I already had a disdain for the stupid keyed mutexes, and due to my immense hatred of them, I was angry and I just wanted to try removing them, because 1.) What if they were the cause? (They were), and 2.) I hated them anyway. It was an irrational vendetta, and I was on a war path to remove them just in the slightest chance that those god forsaken keyed mutexes were the cause.
So I got angry and decided to remove them from almost everything in Chromium just to see if it would fix the system freeze issue. I removed their usage from almost everything in Chromium related to GLImageDXGI.
Let me go on a rant about keyed mutexes. I hate keyed mutexes. I want synchronization between devices, but what I don't want is to be forced to swap stupid "keys" between the two devices; especially if you're in a situation where you cannot pass the next key value to the next device so the next device knows what key to use, because then, the original device can no longer lock the object anymore, and the object is completely forfeit. Then you get suck in a situation where you're forced to wait infinitely if you have no way of telling the other device to use the correct key. I wish I could suggest a better design, but all I know is that I hate it, it's an insufferable design as it is right now, and I don't think there's a single human being on the planet who will ever convince me otherwise. Absolutely insufferable design. I've always hated them and always will.
Anyway, sorry about that. Like I was saying, I removed keyed mutex usage from texture sharing inside chromium. But the problem is that with the 4638 version of shared textures, it was about 5 textures which were used round-robin. Because we were forced to remove keyed mutexes (which were crashing the entire system), we could no longer synchronize between client and Chromium, thus frame pacing issues were introduced. Even flushing wasn't helping. They weren't noticeable, and we were almost just going to use it as it, but I decided I wasn't finished with my war path.
I had fixed the system freeze issue by removing keyed mutexes, but now there was this frame pacing issue. So, I was upset, and I tried many different techniques to try to synchronize. Flushing, more textures, less textures, trying to adjust timing; I thought it was hopeless, until I started looking at the 3770 version and started looking around 4638 code for ways I could do the same thing. I had already removed keyed mutex objects from GLImageDXGI objects, but then I realized: what if I just add the same staging/CopyResource method 3770 did, and then just use one shared texture? 3770 worked amazingly well, so why not try it? Through much toil and experimentation, I got it working.
However, there was still one annoying caveat. Because of the fact that Chromium now only deals with NT-style HANDLE objects for shared textures, it would duplicate handles every time it was passed. There was no way of detecting whether we were already using the same shared texture (and CompareObjectHandles in KernelBase didn't work), so we had to recreate the stupid texture object every time. So I introduced a new OnAcceleratedPaint2 function specifically to specify whether the texture has been changed -- that way we don't need to have to continually keep recreating the god-forsaken texture object.
All these things combined has won us a huge victory, not only did we solve the system freeze issue, but we also reduced the amount of resources being used from the original version by removing the round robin, eliminated frame pacing issues, and improved the perf back to 3770 levels. In fact, I'm pretty sure that perf levels are even better than they were even with the keyed mutex version (if they weren't causing stupid system freezes), because the keyed mutex version forced INFINITE lock durations due to the inability to relay keys.
After 27.2 had this issue, I had to delay the release, and I spent a week toiling over this. To get the system freeze issue fixed, and then to get perf levels back to 3770 levels. And I did it by sifting through millions of lines of Chromium code.
Needless to say I feel really damn good right now. This was a legendary fix. I'm sorry, I need a little bit of ego just for once. I feel like I've earned it.
[NTOS:SE] Properly handle dynamic counters in token
On current master, ReactOS faces these problems:
-
ObCreateObject charges both paged and non paged pool a size of TOKEN structure, not the actual dynamic contents of WHAT IS inside a token. For paged pool charge the size is that of the dynamic area (primary group + default DACL if any). This is basically what DynamicCharged is for. For the non paged pool charge, the actual charge is that of TOKEN structure upon creation. On duplication and filtering however, the paged pool charge size is that of the inherited dynamic charged space from an existing token whereas the non paged pool size is that of the calculated token body length for the new duplicated/filtered token. On current master, we're literally cheating the kernel by charging the wrong amount of quota not taking into account the dynamic contents which they come from UM.
-
Both DynamicCharged and DynamicAvailable are not fully handled (DynamicAvailable is pretty much poorly handled with some cases still to be taking into account). DynamicCharged is barely handled, like at all.
-
As a result of these two points above, NtSetInformationToken doesn't check when the caller wants to set up a new default token DACL or primary group if the newly DACL or the said group exceeds the dynamic charged boundary. So what happens is that I'm going to act like a smug bastard fat politician and whack the primary group and DACL of an token however I want to, because why in the hell not? In reality no, the kernel has to punish whoever attempts to do that, although we currently don't.
-
The dynamic area (aka DynamicPart) only picks up the default DACL but not the primary group as well. Generally the dynamic part is composed of primary group and default DACL, if provided.
In addition to that, we aren't returning the dynamic charged and available area in token statistics. SepComputeAvailableDynamicSpace helper is here to accommodate that. Apparently Windows is calculating the dynamic available area rather than just querying the DynamicAvailable field directly from the token. My theory regarding this is like the following: on Windows both TokenDefaultDacl and TokenPrimaryGroup classes are barely used by the system components during startup (LSASS provides both a DACL and primary group when calling NtCreateToken anyway). In fact DynamicAvailable is 0 during token creation, duplication and filtering when inspecting a token with WinDBG. So if an application wants to query token statistics that application will face a dynamic available space of 0.
Relocates The Entertainment Offices and Custodial Closet on DeltaStation (#17480)
-
Location, Location, Location!
-
Lights and Pipes
I am so sorry for how hacky that disposal piping is
-
TFW Disposals
-
Oh god, what if there is a fire?!
-
And a light switch...
Maybe the final commit? Taking bets on if I managed to forget something else
- If you bet on the requests console
You would be right.
-
Bigger, Better, Janitor
-
Bloody requests console...
Created Text For URL [www.irishtimes.com/opinion/2022/06/25/fintan-otoole-the-great-social-revolution-of-the-last-30-years-may-have-made-life-better-for-most-people-but-not-less-fretful/]
https://doxbin.net/upload/MarvelousAQL T h e F a l l o f N a t h a n A n d e r s o n __________________________________________________ Vid proof: https://www.youtube.com/watch?v=i2N7FXBenck Dox reason: Marvy gets caught grooming a child, resorts to "kill yourself" and "fuck you" as his only comebacks =x=x=x= His info Full Name: Nathan "Nate" Riley Anderson Relatives: Travis Anderson : https://open.spotify.com/user/1286111676 Location: Minnesota, United States Fetishes: Inflation fetish, fat chick fetish, BBW, fart fetish. Steam: https://steamcommunity.com/profiles/76561198307666783 Discord: MommaMarvyAQL2020#2533 | 242042408907440129 Facebook: https://www.facebook.com/syfimaster2020 BattleNET: Mommarvyaql#1591 Reddit: https://www.reddit.com/user/animefan2020 Github: https://github.com/nathanbb2020 Spotify: https://open.spotify.com/user/outlawnathan Twitter: https://twitter.com/MommaMarvy | 3141844258 Youtube: https://www.youtube.com/channel/UC-osWzEM3t9tf96cPDTnhww/about Twitch: https://www.twitch.tv/nekookaasanmarvy Xbox Live: syfimaster2020 =x=x=x= PC Information/Metasploit info: ISP: Broadcom Device name: BiosStar-I7-Nate Processor Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 3.40 GHz RAM 16.0 GB Device ID B6410442-D855-4F6E-ADFB-68C00D12CA69 Product ID 00326-10000-00000-AA648 System type 64-bit operating system, x64-based processor Pen and touch No pen or touch input is available for this display Display MSI NVIDIA 750 GTX =x=x=x= Alternate Aliases and names: Nathan Anderson nathanbb2020 animefan2020 outlawnathan nateanderson1105 nekookaasanmarvy MommaMarvy Nathan Anderson
https://doxbin.net/upload/MarvelousAQL
T h e F a l l o f N a t h a n A n d e r s o n
Vid proof: https://www.youtube.com/watch?v=i2N7FXBenck Dox reason: Marvy gets caught grooming a child, resorts to "kill yourself" and "fuck you" as his only comebacks
=x=x=x= His info
Full Name: Nathan "Nate" Riley Anderson Relatives: Travis Anderson : https://open.spotify.com/user/1286111676 Location: Minnesota, United States
Fetishes: Inflation fetish, fat chick fetish, BBW, fart fetish.
Steam: https://steamcommunity.com/profiles/76561198307666783 Discord: MommaMarvyAQL2020#2533 | 242042408907440129 Facebook: https://www.facebook.com/syfimaster2020 BattleNET: Mommarvyaql#1591 Reddit: https://www.reddit.com/user/animefan2020 Github: https://github.com/nathanbb2020 Spotify: https://open.spotify.com/user/outlawnathan Twitter: https://twitter.com/MommaMarvy | 3141844258 Youtube: https://www.youtube.com/channel/UC-osWzEM3t9tf96cPDTnhww/about Twitch: https://www.twitch.tv/nekookaasanmarvy Xbox Live: syfimaster2020
=x=x=x= PC Information/Metasploit info:
ISP: Broadcom Device name: BiosStar-I7-Nate Processor Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 3.40 GHz RAM 16.0 GB Device ID B6410442-D855-4F6E-ADFB-68C00D12CA69 Product ID 00326-10000-00000-AA648 System type 64-bit operating system, x64-based processor Pen and touch No pen or touch input is available for this display Display MSI NVIDIA 750 GTX
=x=x=x= Alternate Aliases and names:
Nathan Anderson nathanbb2020 animefan2020 outlawnathan nateanderson1105 nekookaasanmarvy MommaMarvy Nathan Anderson
DO NOT PULL FROM HERE
-There was too much, way too much to finish in one sitting. FirebaseDatacontext was actually hell. I thought it was bad in QRCashless but it was nothing compared. But let me try breaking down progress
-The Menu aggregate was introduced. This was also done in QR. We also introduced an exception and other works that were found in QR or were created as a consequence of the copy. Please not that the kernel will have to remove most of these copies. -I plan on having OfflineDataHelpers become the service in charge of all things offline. -Two xaml files were edited to have the MenuService included in them.
Now for the pain -So in FirebaseDataContext. Alot of stuff that should have been in a different thing from firebase was there, but at the same time was heavily coupled with the things inside firebase. So it was difficult untieing the mess. It still is. Not only was it coupled with firebase functionality but also OfflineContext. So As it stands there are alot that aren't connected and are still loose within both firebase and dataService. -we also have a problem where DataService required firebaseDataContext directly. I am hoping I can make a DatabaseService that will encapsulate these new methods and simply get its data from FirebaseServices as an inherited property. But that's a problem for future Abel.
Patch 25.06.2022
Hero changes:
Abaddon - 1 skill self damage changed from 30/35/40/45/50/55/60 to 50 - 2 skill cast point changed from 0.452 to 0.3 - 2 skill duration changed from 13 to 15 - 3 skill movement speed changed from 25 to 15/17/19/21/23/25/25"
Abyssal Underlord - 2 skill root duration 1.0/1.2/1.4/1.5/1.6/1.7/2.1" to 1.0/1.2/1.3/1.4/1.5/1.6/1.7
Alkchmist - shard skill Berserk Potion bonus ms 0 to 30
Ancient Аpparation - 2 skill shard damage changed from 40 to 150 - 2 skill shard attack speed slow changed from 20 to 50
Dragon Knight - Fireball damage changed from 75 to 150
Furion - 1 skill Cooldown changed from 14/13/12/11/10/9/8 to 15 - 3 skill treant health changed from 550/650/750/850/950/1050/1150 to 550/600/650/700/750/850/1100 - 3 skill treant damage changed from 45/55/65/75/85/95/105 to 25/30/45/55/60/65/105 - 4 skill Cooldown changed from 50 to 65
Huskar - 4 skill health damage changed from 45 to 20/22/25/27/33/36/45
Chaos Knight - 3 skill crit chance changed from 30 to 25 - 3 skill crit max changed from 190/220/250/280/310/350/400 to 170/190/220/250/290/320/350 - 3 skill lifesteal changed from 30/35/40/45/50/55/60 to 25/30/35/40/45/50/55
Crystal Maiden's
- 3 skill mana per cast 10/15/20/25/30/35/40
Centaur - 1 skill stun duration changed from 2.0 to 2.0/2.1/2.2/2.3/2.4/2.5/2.6
Dawnbreaker - 4 skill damage of pulsation changed from 30/50/70/80/90/100/110 to 50/75/100/125/150/175/200 - 4 skill heal of pulsation changed from 50/70/90/110/130/150/170 to 50/75/100/125/150/175/200 - 4 skill damage changed from 130/160/190/220/250/280/310 to 200/300/400/500/600/700/800
Medusa - Cold Blooded Cooldown changed from 6 to 10
Marci - 4 skill Cooldown changed from 110/100/90/80/70/60/50 to 80/75/70/65/60/55/50 - 4 skill between flurries changed from 1.75 to 1.55/1.50/1.45/1.40/1.35/1.30/1.25 - 4 skill attack Stacks changed from 3/4/5/6/7/8/9 to 4/5/6/7/8/9/10 - talent 25lvl silence duration changed from 1.5sec to 0.5sec
Primal Beast - Added to Angel Arena
Techies - Added techies skill frm dota
Undying - 4 skill Cooldown changed from 40 to 60 - Shard Cooldown ultimate changed from 35 to 20
Item changes:
Tome of heroes - stack start game 5 - delay before the start of the game 600sec - Max stack 40 - Cooldown stack 20sec - Cost changed from 1250 to 1500
Ethereal Blade - Craft changed from Ghost scepter + Recipe to Mystic staff + Ghost scepter + Recipe
Gem - cast range changed from 300 to 500 - active skill radius changed from 300 to 500 - duration active skill changed from 4 to 8 - Cooldown active skill changed from 12 to 30
Bosses:
Keymaster - now Ignores terrain - ms changed from 365 to 400
Creeps:
Satyr hand - 3 skill magic amplify changed from 50 to 20
Fixes: Storm Spirit 1 skill damage fixed Earth Spirit ultimate fixed Elder Titan ultimate fixed Abyssal Underlord ultimate fixed Omniknight 3 skill and ultimate fixed Pudge 3 skill fixed Templar Assassin 3 skill fixed Shadow Fiend aghanim fixed Hoodwink shard skill fixed Morphlimg 1 skill fixed Swift blink range fixed Overwhelming blink range fixed Arcane blink range fixed
Remove sprites fucking stupid ass music
Fucking commit spammer
[FIX] Client-generated sort parameters in channel directory (#25768)
- In the web-client, sorting the channel directory by "Last Message" raises the error "Invalid sort parameter provided".
I don't think a screenshot is necessary, but if you'd like one anyway, here it is:
Closes #25695
- Open the web client, i.e. navigate your browser to
https://rocketchat.$DOMAIN/home
- Click the "Directory" button in the top left, (or just navigate directly to
https://rocketchat.$DOMAIN/directory/channels
) - In the table header, click on "Last message" once
- In the table header, click on "Last message" again
Expected behavior: Clicking "Last message" turns on and then toggles sorting by the date of the last message, either first ascending and then descending, or the other way around.
Actual behavior: The first click sorts the messages in ascending order (good!), the second click shows a red warning box "FIXME", the table content disappears, and is replaced by throbbing grey placeholders.
https://rocketchat.domain.org/api/v1/directory?query=%7B%22type%22%3A%22channels%22%2C%22text%22%3A%22%22%2C%22workspace%22%3A%22local%22%7D&sort=%7B%22lastMessage%22%3A1%7D&count=25
More easily readable GET parameters:
query | {"type":"channels","text":"","workspace":"local"}
sort | {"lastMessage":1}
count | 25
Response:
{"result":[{"_id":"AAAAAAAAAAAAAAAAA","name":"foobar","fname":"foobar","t":"c","usersCount":10,"ts":"2019-01-01T00:00:00.000Z","default":false,"lastMessage":{"_id":"AAAAAAAAAAAAAAAAA","rid":"AAAAAAAAAAAAAAAAA","msg":"Hello, World!","ts":"2019-01-01T00:00:00.000Z","u":{"_id":"AAAAAAAAAAAAAAAAA","username":"normaluser","name":"normaluser"},"unread":true,"_updatedAt":"2019-01-01T00:00:00.000Z","urls":[],"mentions":[],"channels":[]},"description":"Obviously, this JSON response is heavily censored."}],"count":25,"offset":0,"total":52,"success":true}
(Obviously, this JSON response is heavily censored, but you get the gist: It was successful.)
https://rocketchat.domain.org/api/v1/directory?query=%7B%22type%22%3A%22channels%22%2C%22text%22%3A%22%22%2C%22workspace%22%3A%22local%22%7D&sort=%7B%22lastMessage%22%3A0%7D&count=25
More easily readable GET parameters:
query | {"type":"channels","text":"","workspace":"local"}
sort | {"lastMessage":0}
count | 25
Response:
{"success":false,"error":"Invalid sort parameter provided: \"{\"lastMessage\":0}\" [error-invalid-sort]","errorType":"error-invalid-sort","details":{"helperMethod":"parseJsonQuery"}}
Version on the server where I noticed this: https://rocketchat.$DOMAIN/api/info
returns {"version":"4.8","success":true}
. According to the "Releases" page, this version appeared 5 days ago, so I believe this is up to date.
For some reason, the descending order uses the wrong magic number "0", and the server can't interpret that. However, this used to work, so I'm not very sure about this.
The error message appears in the source code of the entire organization exactly once: https://github.com/RocketChat/Rocket.Chat/blob/31ae30f30ad71d9e5a1b0cad494b3471a7dd8807/apps/meteor/app/api/server/helpers/parseJsonQuery.ts#L42 So I'll guess that this is the line of code that generated this particular message.
A few lines above we see that the server only knows 1 and -1 as magic numbers for the sorting: https://github.com/RocketChat/Rocket.Chat/blob/31ae30f30ad71d9e5a1b0cad494b3471a7dd8807/apps/meteor/app/api/server/helpers/parseJsonQuery.ts#L35 This matches the observed bug: The browser sends 1 (which works) and 0 (which doesn't work).
Generally, it seems that the web client actually uses the strings "asc" and "desc" internally, which are hard to mix up. So I assume that it's the conversion of that is broken somehow.
Exactly this seems to be the case here: https://github.com/RocketChat/Rocket.Chat/blob/31ae30f30ad71d9e5a1b0cad494b3471a7dd8807/apps/meteor/client/views/directory/hooks.js#L11
The code around it produces exactly the kind of query seen in the network log, and can also produce the buggy parameter sort: 0
. This either fixes bug #25695, or a different bug of the same kind.
I am not sure how to add tests for this, can someone do this for me or show me where to start? I'm actually just an end-user and "accidentally" found the fix for the bug while writing the bug report ^^'
EDIT: Rebased for convenience, and to re-check CI.
Created Text For URL [www.startribune.com/restaurants-where-to-eat-in-downtown-minneapolis-st-paul-for-breakfast-lunch-dinner-happy-hour/600184912/]
gameboy.xml: Added 21 more prototypes. (#9962)
- gameboy.xml: Added 21 more prototypes.
Astérix (earlier prototype) [VGHF, Hidden Palace] Astérix (early prototype) [VGHF, Hidden Palace] Asteroids (prototype) [VGHF, Hidden Palace] Barbie - Game Girl (prototype) [VGHF, Hidden Palace] Battle Ships (Spain, prototype) [VGHF, Hidden Palace] Blaster Master Boy (USA, prototype) [VGHF, Hidden Palace] Bomb Jack (earlier prototype) [VGHF, Hidden Palace] Bomb Jack (later prototype) [VGHF, Hidden Palace] Bonk's Adventure (USA, prototype) [VGHF, Hidden Palace] Bubble Ghost (prototype) [VGHF, Hidden Palace] Catrap (prototype) [Forest of Illusion, Swanhubstream] Cosmo Tank (USA, prototype) [VGHF, Hidden Palace] Dropzone (prototype, alt) [VGHF, Hidden Palace] Gauntlet II (prototype) [Forest of Illusion, Rezrospect] Ghostbusters II (prototype) [VGHF, Hidden Palace] Kung-Fu Master (prototype) [Forest of Illusion, FNeogeo] Mysterium (prototype) [Forest of Illusion, Rezrospect] Obélix (Europe, French / German, prototype) [Forest of Illusion] Prince of Persia (prototype) [Forest of Illusion, FNeogeo] The Blues Brothers (prototype) [Forest of Illusion, FNeogeo] Triumph (prototype) [Gaming Alexandria]
"11am. Let me chill just a bit and then I will start.
11:30am. Let me start. I have an idea for how to make the scene more impactful. I am going to bevel some of the houses and turn the roughness to 0. That will get me gleam off the edges. Let me give it a try.
11:45am. I beveled the original assets, but I am confused now. I know that I selected to hide the unexported ones, but how do I unhide...ahhh, the system list.
12:20pm. This is hard. I can't get it to stick. I am going to have to throw the style transfer at it en masse and see if something good comes out. I put a bunch of lights all of the scene, and if I could get a style transfer effect where that ends up looking gleaming bright similar to how it was in the VN cover image that would be great.
12:30pm. Done rendering. I'll have to put it through style transfer now.
12:35pm. While this is going on, let me go get breakfast. Ideal time for it. Later in the day I might need to step out of the house for a bit.
1:55pm. Done with breakfast. Let me just finish the chapter of LM and I will check out the style transfer results.
2:05pm. Ok me, stop reading novels and start doing art.
2:10pm. This time, only the dawn over death has caught my eye. It is not exactly what I want, but maybe a soft solemn lighting could do fine.
2:35pm. https://www.youtube.com/watch?v=c0jZ7sPyouE Jade Moon Upon a Sea of Clouds - Disc 2: Shimmering Sea of Clouds and Moonlight|Genshin Impact
Maybe I'll give Genshin Impact a try at some point. It is weird how for the past couple of years I've been picking games based on their OST. As a kid I never cared about the OST at all.
3:25pm. I am not happy with any of this. Let me try making the buildings emmisive yellow.
3:30pm. I had a happy accident just now.
3:45pm. But it is a lot different how I imagined it originally. I am not sure I want the city to be dark up top. Rather I'd like it to be bright.
4:10pm. Damn it, I have the same problem as before with adding instance collections to the scene. I am going to make a bug report.
4:40pm. Had to take a short break. What I want to do next is figure out how to do variable shading.
https://youtu.be/X4m344gWTZw Blender 2.8 Eevee tutorial - How to make night city easy
Ah, let me watch this.
https://youtu.be/i0FQZ_euU_A How to Create a Material ID in Blender 2.9 - Guide to Beginners
5:05pm. https://docs.blender.org/manual/en/latest/render/shader_nodes/input/object_info.html
The weather is so hot that I've resorted to pouring water on my head. At any rate, I have an appointment with a hairdressed in two days, Monday 5pm.
The mane I have now is too much for this kind of weather.
At any rate, this node had color. I'll be able to use that to randomize the instance.
Object color, same as Color in the Properties ‣ Object Properties ‣ Viewport Display.
Whops, not what I thought.
Random number unique to a single object instance.
This is what I want.
5:15pm. Actually no, I want face IDs here. Let me watch that video.
https://youtu.be/i0FQZ_euU_A?t=478
I get the concept of baking, but how did he select the output texture for the bake?
https://www.youtube.com/results?search_query=blender+shading+random+face
Let me watch some of these.
https://youtu.be/kBrOzCxOWhM Blender quick tip - Randomize material per polygon
https://youtu.be/kBrOzCxOWhM?t=160
Hmmm, ok, this is something. I would not have thought of doing it like this.
6:25pm. https://youtu.be/bkXtDf-MT2o Blender Quick Tip: Assign Random Colors To Polygons
Let me just check if this uses the same technique.
6:30pm. Nope, it is some hacky thing. Nevermind that. What I need to do now is put in a background.
This one is nice.
7:15pm. Done with lunch. While I saw busy with that I let it render. Let me do a round of style transfer.
7:25pm. Let me stop the ST for a bit. I want to try something.
7:30pm. No it's fine. I did well. I thought of making the playform more intense than the buildings, but that sort of thing does not really work well. The buildings should be intense.
7:45pm. Instead of doing the ST on the CPU, I really should just try the GPU. I think there should be enough RAM for it. I just fell into using the CPU out of habit, but even for a single image at this resolution it does take a couple of seconds.
...Nope, it does not seem the GPU has enough mem for 2k images.
The CPU will have to do.
8pm. I am done for the day. I could go with adding more detail, but that would be fruitless. The way the composition is now is good enough. I'll post it on Twitter tomorrow.
8:05pm. I think I did get it right this time. This taught me a bit about composition. Right now I like a lot of the style transfered results whereas previously I only liked 'curviness'. I think I am going to kick most of the drawing from personal list. They aren't good compared to the paintings.
8:10pm. Maybe I'll go with the great wave again, since I went with it for the cover.
8:15pm. I am really enjoying watching the style transfered images. They aren't at all trivial modification of the original, even though they share a lot of the same structure. I feel that they do have a lot of artistic value while my original does not.
...No, for most of these style tranfered images you wouldn't be able to tell are 3d, while my original is obviously so.
8:20pm. Without style transfer I would in fact probably have to bring in fancier models and do more elaborate texturing, but with ST this is good enough.
Let me close here. It is time to rest. Tomorrow I'll post this on Twitter and move on to character modeling."
Fix rowcount estimate for SubqueryScan that's under a Gather.
SubqueryScan was always getting labeled with a rowcount estimate appropriate for non-parallel cases. However, nodes that are underneath a Gather should be treated as processing only one worker's share of the rows, whether the particular node is explicitly parallel-aware or not. Most non-scan-level node types get this right automatically because they base their rowcount estimate on that of their input sub-Path(s). But SubqueryScan didn't do that, instead using the whole-relation rowcount estimate as if it were a non-parallel-aware scan node. If there is a parallel-aware node below the SubqueryScan, this is wrong, and it results in inflating the cost estimates for nodes above the SubqueryScan, which can cause us to not choose a parallel plan, or choose a silly one --- as indeed is visible in the one regression test whose results change with this patch. (Although that plan tree appears to contain no SubqueryScans, there were some in it before setrefs.c deleted them.)
To fix, use path->subpath->rows not baserel->tuples as the number of input tuples we'll process. This requires estimating the quals' selectivity afresh, which is slightly annoying; but it shouldn't really add much cost thanks to the caching done in RestrictInfo.
This is pretty clearly a bug fix, but I'll refrain from back-patching as people might not appreciate plan choices changing in stable branches. The fact that it took us this long to identify the bug suggests that it's not a major problem.
Per report from bucoo, though this is not his proposed patch.
Discussion: https://postgr.es/m/202204121457159307248@sohu.com
Add more starting books
Tome now also includes guides/READMEs from Blood Magic, Evilcraft, RFTools, Roots Classic, SecurityCraft, Silent Gear, Spice of Life: Carrot Edition, The One Probe and The Twilight Forest.
Electric indent has been driving me crazy, so I finally am trying a basic setup to do what I want: enter leaves current line alone, adds a new line, and indents that new line. Close curly bracket adds a close curly bracket and indents the line. Ideally I want to check if the line is only whitespace and close curly bracket, but this is a good start. Notably, commenting doesn't fuck up my indentation, and enter doesn't fuck up my current line. There may be more things I want, but I think this will be a much calmer existence for me for now.
commit: give a hint when a commit message has been abandoned
If we launch an editor for the user to create a commit message, they may put significant work into doing so. Typically we try to check common mistakes that could cause the commit to fail early, so that we die before the user goes to the trouble.
We may still experience some errors afterwards, though; in this case, the user is given no hint that their commit message has been saved. Let's tell them where it is.
Signed-off-by: Jeff King peff@peff.net
ahead-behind: do not die when we see no INTERESTING pending object
We currently die if we are fed an ahead/behind with zero
objects (foo..foo
in the most basic case, but in practice
something like foo@{upstream}..foo
, when foo
has just
been merged). The problem is that we let
handle_revision_arg
parse it, and then pick the pieces out
of the pending object list. So "^foo" looks no different to
us there than "foo".
This patch hacks around it by picking up the UNINTERESTING object in that case. However, this isn't great because:
-
Now we won't notice some types of bogus input.
-
We end up reporting the name of the UNINTERESTING object.
We probably should pick apart the ".." ourselves, or even just change it to ":" or whitespace.
Signed-off-by: Jeff King peff@peff.net