RSP bottleneck correction and another dangerous microoptimization

  Рет қаралды 3,710

KazeClips

KazeClips

Күн бұрын

Пікірлер: 65
@KazeClips
@KazeClips Ай бұрын
i misspoke at the end, it would be a 50 microsecond improvement, not 500.
@Kram1032
@Kram1032 Ай бұрын
so like 0.003 frames (at a target of 60fps), right?
@KazeClips
@KazeClips Ай бұрын
it'd be 0.18 frames if i was already at 60fps. at my current fps it's closer to 0.13 frames.
@Kram1032
@Kram1032 Ай бұрын
@@KazeClips ok that's much more significant. 1 microsecond = 0.000001 seconds, right? I just calculated 50 microseconds = 0.00005s =, if we had 60fps, 0.00005 * 60 = 0.003, i.e. 0.3% of the total gap between two frames. How are you reaching 0.13 or 0.18?
@KazeClips
@KazeClips Ай бұрын
1000/16.617 - 1000/16.667
@samuraivader3814
@samuraivader3814 Ай бұрын
You brought shame to your family.
@kewinzabojca7226
@kewinzabojca7226 Ай бұрын
With every optimization video, one thing haunts my mind, how much fps could we get if we just put mario in an empty void
@JunScunthorpe
@JunScunthorpe Ай бұрын
Need.
@dogyX3
@dogyX3 Ай бұрын
After all these optimisations, it looks like you'll only get a few more frames 😂
@KazeN64
@KazeN64 Ай бұрын
N64 is hard capped at 60, but frame time there is around 8.2ms, so itd be 120fps.
@lpfan4491
@lpfan4491 Ай бұрын
N64 modders on their way to make sure no commercial game ever framedrops again while running on 60FPS widescreen with AA: 🏃‍♂️🏃‍♀️🏃
@marioluigism64
@marioluigism64 Ай бұрын
Hello everyone
@KazeClips
@KazeClips Ай бұрын
hello marioluigism64
@silvererercoin
@silvererercoin Ай бұрын
​@@KazeClips hello KazeClips
@permik
@permik Ай бұрын
This is the grindset I'd love to see from modern AAA game development. As much as there's art in the end product, there's an equal or double the amount of art in the backend holding it all up. Freaking love the work you do ❤
@rehaansiddiqie
@rehaansiddiqie Ай бұрын
I dunno if AAA developers would have the time to do this, tho.
@permik
@permik Ай бұрын
@@rehaansiddiqie "not having the time" is just an excuse to not do something and thinking something is more important than the thing you're "not having the time" to do. And yes, I acknowledge the bean counter's response of "this will cut to our profits", but they do not understand that the number on the bank account doesn't equate to the value of their work. Essentially, getting paid too much for a subpar job is one of our driving forces of inflation.
@rehaansiddiqie
@rehaansiddiqie Ай бұрын
@permik To be fair, they are on a budget, yes, but also under a deadline. They need to make the game, make it function in the first place, add features, etc. Deadlines are the reason why cool stuff like this can't happen unfortunately in the AAA sphere. Indie developers can do this, though.
@amykatname
@amykatname Ай бұрын
@@rehaansiddiqie as permik said it's not an excuse, in this case you hire individuals separate from the main coding of the project, individuals that specialize in micro optimizations like what Kaze is doing
@rehaansiddiqie
@rehaansiddiqie Ай бұрын
@@amykatname there could be a chance of many things going wrong in the game that needs to be frequently QA'd then. Especially with how complex games are these days compared to just developing an N64 game with an engine that was based off another one, with a deadline.
@Wyatt_James
@Wyatt_James Ай бұрын
Is the display list always filled from start to end with no holes?
@KazeClips
@KazeClips Ай бұрын
if there were holes, you'd get an instant crash
@Wyatt_James
@Wyatt_James Ай бұрын
Well surely not if you branched past them. Anyway, I'm wondering if you're evicting more than you need to from DCache. A quick Google shows an 8KB direct-mapped DCache with 16-byte lines, so 512 lines. That's only 1024 GFX commands possibly in cache at once, so you would only, at max, need to flush the last 1024, no? Edit: oh, I may have been wrong about the associativity, but that shouldn't affect the hypothesis.
@KazeClips
@KazeClips Ай бұрын
i can not evict more than there is in cache
@Wyatt_James
@Wyatt_James Ай бұрын
I was moreso thinking about the iteration itself. I guess it wouldn't really matter since you aren't CPU-bound, though.
@KazeClips
@KazeClips Ай бұрын
yeah adding logic to prevent further iteration would cost more data throughput in the form of instruction cache, so it might end up being more expensive. i've counted the total iterations though and it's barely more than writebackall (and with base libultras writeback all, it's less loop iterations even)
@fruitsnackia2012
@fruitsnackia2012 Ай бұрын
so basically this make it only refresh what needs to be refresh instead of refreshing the entire cache block?
@KazeClips
@KazeClips Ай бұрын
yeah although "refresh" isn't the right word - more like "commit to memory"
@fruitsnackia2012
@fruitsnackia2012 Ай бұрын
@@KazeClips ah ok got it. cool :P
@adamzheng27
@adamzheng27 Ай бұрын
why is Mario's head frozen while looking towards the right? (near beginning of the video) potential animation error?
@malachigv
@malachigv Ай бұрын
IIRC I remember Kaze mentioning it was to reduce variance in the performance benchmarks, that or maybe the animation is paused to give time for benchmarking in the first place? If the animation code takes the same amount of time as the benchmark algorithms, then pausing the animation gives time for benchmarking while still getting a rough idea of real time processing. At least I think that's what's going on...
@KazeClips
@KazeClips Ай бұрын
having mario stand still gives us consistent overdraw so that the perf benchmarks vary less
@dchen73
@dchen73 Ай бұрын
With all these optimizations, how hard would it be for other modders to add or change things in the engine?
@KazeClips
@KazeClips Ай бұрын
most things are easier to change and modify imo because of how debloated the code is and how things that used to work 2 different ways now just work 1 way. but there are volatile things where touching them could cause crashes in the future.
@timmygilbert4102
@timmygilbert4102 Ай бұрын
Let's go 🎉
@nintendo4life132
@nintendo4life132 Ай бұрын
You have more to say about it
@lessi5_ua
@lessi5_ua Ай бұрын
Have you played yoshi's story
@crabbyboi9127
@crabbyboi9127 Ай бұрын
why are you using wsl instead of just installing linux?
@Vizimech
@Vizimech Ай бұрын
Because desktop Linux is a miserable experience and the Linux community is too up its own ass to ever consolidate it and fix it
@brahillms1374
@brahillms1374 Ай бұрын
for a less sensationalist answer, it makes developing for linux easier than via a VM for users that run Windows on their host machine.
@KazeClips
@KazeClips Ай бұрын
i would not be able to use half the programs i use for developing on linux i would not be able to do my dayjob if i was using linux
@crabbyboi9127
@crabbyboi9127 Ай бұрын
@@KazeClips interesting, out of curiosity which programs would be causing you problems?
@KazeClips
@KazeClips Ай бұрын
photoshop, sony vegas, hxd, nemu, pj64 and ares i believe
Was everyone wrong about the N64's slow memory?
5:29
KazeClips
Рет қаралды 6 М.
If Jerma was Programmer
6:44
Tsoding Out Of Context
Рет қаралды 9 М.
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН
Make Video Games
44:12
Pirate Software
Рет қаралды 1,5 МЛН
Optimizing with "Bad Code"
17:11
Kaze Emanuar
Рет қаралды 233 М.
Godot Signalling Methods that Nobody Talks About
6:26
Overlite
Рет қаралды 6 М.
55 FPS Performance snapshot
4:18
KazeClips
Рет қаралды 16 М.
2024's Biggest Breakthroughs in Math
15:13
Quanta Magazine
Рет қаралды 687 М.
I Spent 18 Months Using Rust And Regret It
38:36
ThePrimeTime
Рет қаралды 539 М.
I made a horror game that's IMPOSSIBLE to SCREENSHOT!
3:52
Branta Games
Рет қаралды 2,9 МЛН
What it's like to release a game on Steam
39:50
Game Maker's Toolkit
Рет қаралды 305 М.
Why Devs NEED TO know about Render Matrices!
11:31
Kaze Emanuar
Рет қаралды 105 М.
Silliest Optimization yet (56fps)
1:50
KazeClips
Рет қаралды 81 М.