@wolfpld@mastodon.gamedev.place
@wolfpld@mastodon.gamedev.place avatar

wolfpld

@wolfpld@mastodon.gamedev.place

Author of Tracy Profiler, etcpak, and some other stuff.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

wolfpld, to random
@wolfpld@mastodon.gamedev.place avatar

Gnome and window decorations, again.

https://factorio.com/blog/post/fff-408

rovarma, to random
@rovarma@mastodon.gamedev.place avatar

The filesystem APIs on Linux remind me of Vulkan in a way. There's all these little low-level bits and bobs that can be used to build anything, but there's not a convenience function in sight, so everybody ends up implementing the exact same things in slightly different ways.

Sometimes a guy just wants to move a file to a different location, ya know?

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @rovarma @molecularmusing Can you elaborate on that last sentence? The assumption seems a bit far-fetched to me.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @rovarma @molecularmusing Yeah, but it just reduces to: it's a library always available to be installed.

When I was using Gnome some time ago (when xwayland had broken DPI scaling on KDE), I avoided KDE applications, because there was always something wrong with them visually.

(Recently it turned out it might be https://gitlab.gnome.org/GNOME/adwaita-icon-theme/-/issues/288)

Some people may want to have a consistent look of their desktop UI. There are reasons why eg. Qt may not be installed on a system.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @rovarma @dotstdy @molecularmusing It amuses me to read about zsh being "new" or "modern". I have a screenshot (actual screenshot of a CRT, taken with a camera) of a kernel panic from 20 years ago, and it has the exact zsh prompt I still use today. Makes you think about how little innovation there is in unix shells.

dotstdy, to random
@dotstdy@mastodon.social avatar

Ordered a Hawk Point ultrabook (ASUS Zenbook 14 oled), time to get some avx512 on!

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @dotstdy Why weird? You can have two broken cores in a chiplet due to random silicon defects and still be able to sell it if you only enable 6 cores. Getting a fully functional chiplet is presumably rare, so the price is higher.

forrestthewoods, to random
@forrestthewoods@mastodon.gamedev.place avatar

Proving that Immediate Mode GUIs aren’t significant battery hogs. Computers are really fast!

MacBook M1 Idle: 3.5 watts

Dear ImGui: 7.5
ImPlot: 8.9
EGUI: 8.2
Rerun: 11.1

Spotify: 5.8
VSCode: 7.0
YouTube: 11.5
Facebook: 8.7

Compiling: 50.0

Full blog post: https://www.forrestthewoods.com/blog/proving-immediate-mode-guis-are-performant/

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @theWarhelm @forrestthewoods All Tracy does is checking if the zone is big enough to show on the screen, and if not, where is the next zone large enough to be visible. It is brute force, nothing too smart about it. Combine that with small data structures and parallel processing to overcome memory latency and that's it.

https://github.com/wolfpld/tracy/blob/master/profiler/src/profiler/TracyTimelineItemThread.cpp#L415-L469

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @theWarhelm @forrestthewoods For plots, it checks if the number of plot items to draw is less than an arbitrary number, then draw all, otherwise do random sampling.

https://github.com/wolfpld/tracy/blob/master/profiler/src/profiler/TracyTimelineItemPlot.cpp#L132-L235

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @theWarhelm @forrestthewoods I have thought about how to improve this, but have not come up with a satisfactory solution. You either have a ton of metadata and a hard time when you need to insert a new item in the middle of already existing ones, or you have to do some kind of partitioning scheme. But then you have to decide whether to do it by time or by number of items, and your basic problem does not go away anyway, it just happens some time later.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen @theWarhelm @forrestthewoods What you describe seems to be quite tricky to me ;) But I think I get the general gist of it.

The zones are not the problem though, they are fine as they are. You can run a debug build and it will go happily at 144 FPS, even if the screen is full or razor thin zones.

The real problem is with handling plot data, including CPU usage, which basically does a binary search for each screen column, and it's slow.

dougbinks, to random
@dougbinks@mastodon.gamedev.place avatar

I mentioned earlier that I'd love a single toggle to turn off Visual Studio C++ auto-formatting my code, but it now appears that I can't even turn it off by toggling lots of options.

Some options only have a choice of how to format, none of which are 'leave alone' and none are what I want.

Getting very tired of formatting everything by hand multiple times as every minor change triggers auto-format to format incorrectly.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dougbinks @dotstdy No. That UI is completely broken and I always had the exact same problems you describe.

dotstdy, to random
@dotstdy@mastodon.social avatar

Not being able to run your CI locally seems like a bit of a pain in the ass. I always end up with these N commit chains to fix simple problems in github actions because I can't just launch it locally and fix things the easy way.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@TTimo @dotstdy It stays in the build history, though.

dougbinks, to random
@dougbinks@mastodon.gamedev.place avatar

I was just looking at zstd project and was surprised at how many files there now are, and how complex building it looks to be.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dougbinks It's not that complex, though. I always just put the lib/ contents into my projects and that's it. You just need to add those files to the source list. No macro definitions, no fancy compilation flags, nothing.

The only semi-complex thing is the x64 assembly file used for decompression, but it just works, I never had any problems with it.

There is also build/single_file_libs to generate a single source file, but I've never used it.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dougbinks Ah, I have the same problem in Tracy, where some performance significant code is not needed in some utilities. As a result, one of the source files compiled with a specific flag gives two different API/ABIs.

I simply provide independent build files for each of the utilities that Tracy provides. You can switch between them in the editor and get the right set of compile flags for clangd, etc.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dougbinks Hashing object files seems like a solution where you just have one build file for everything and do no separation.

I don't know, maybe it's some kind of cargo cult that you need to build everything in your project from one place? I wanted to fix this in the Meson VS Code extension, and it was a constant "yeah, but why?", "nobody does that", and so on.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@dougbinks I believe the current layout of zstd is Yann's original design, before Facebook got involved.

castano, to random
@castano@mastodon.gamedev.place avatar

With the discounted price on the Quest 2 I thought it'd be worth adding it to the library.

The demo app works great out of the box, without the need for any tweaks.

However, the benchmark appears to be much more unstable than on cell phones. I imagine that's due to a combination of thermals and background processes interrupting the tests.

Are there any best practices for benchmarking on Quest?

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@castano
> wear Vive for the last time around 2016 due to nausea
> fast forward to 2024, let's see what's new with Quest
> oh, it's all the same as it was before, literally, the same games are in top 10

https://www.youtube.com/watch?v=YUKmq7UMJys

forrestthewoods, to random
@forrestthewoods@mastodon.gamedev.place avatar

One of the arguments against immediate mode UI is that it will drain your battery. I think that's bollocks!

Here is my "proof of life" test to measure power draw. Preliminary result is that Dear ImGui consumes less power than YouTube. That feels like a fairbar to compare against

I'll of course take some much more rigorous measurements and tests over longer periods of time. This is just the first time I have actual data.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@forrestthewoods I wanted a nice graph like you have, and I know it's possible to get it because I have it in Tracy, but it turns out that... there is nothing that would continuously probe the energy measurements to write out a csv on Linux. WTF.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@forrestthewoods Ok, I put something together and here's my graph. The measurement is done with RAPL over the whole CPU package (supposedly).

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@amonakov @forrestthewoods @castano Googling "repl" or even "intel-repl" does not yield any worthwhile answers. It is not a well-documented topic.

The examples for perf I found produced a single energy consumption value for the given time, and I wanted a graph. There was not an out-of-the-box solution that I could use for this.

While I found some random utilities on github (most were 10 years old), turbostat was not one of them.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@miblo @amonakov @forrestthewoods @castano I wasn't looking for github specifically, I was looking for energy monitoring in general, so that's not really an issue.

There are all these random little utilities that were maybe announced on some mailing list 15 years ago, and you have no chance of finding them unless you know exactly what you are looking for.

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@miblo @amonakov @forrestthewoods @castano The user-friendly GUI applications that monitor the system don't even show all this information that is available.

The system monitor in KDE has fields for GPU usage or GPU memory allocation, but these fields don't show anything. I have to use nvtop to monitor this data. I don't understand why these things can't just work.

There's so much to improve and so little time.

pervognsen, to random
@pervognsen@mastodon.social avatar

Finally got so fed up with Windows that I installed Arch on my laptop (without the help of archinstall so it was a good learning experience). Gotta say, KDE Plasma 6 has blown me away. A few annoying defaults I had to change (e.g. floating panels as a default) but such a great experience coming from Windows 11: https://kde.org/announcements/megarelease/6/

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen This is exactly what I did on my desktop when KDE 6 was released in late February. No regrets.

Modern computing is mostly done in the browser, which is platform independent. For programming I use VS Code, just as I used to on Windows, where the alternative of MSVC got worse with each new release. For smaller things I was using WSL anyway, because the Windows application scene has died out. So why bother with all the bugs in Windows 11 that will not be fixed for literally years?

wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@pervognsen Things that figuratively blew my mind:

  • You can copy multi-gigabyte files instantly, because copy-on-write is a thing in XFS.
  • You can see the bugs you experience being tracked and eventually fixed.
  • The file browser is actually useful, I can open a directory with a bunch of mp3 files and not have to wait half a minute for the browser to unfreeze.
  • Things just work. Games, Davinci, Reaper. Unbelievable 20 years ago.
wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@SonnyBonds @pervognsen I did this some time ago and I think I used yabridge. The windows-only plugins worked flawlessly.

By the way, on Linux you can set low-latency audio routing for Reaper with a single env variable for JACK. On Windows, you have to use a separate ASIO driver that hijacks the audio output from all other programs running on the system.

TodayInTwitter, to random
@TodayInTwitter@mastodon.social avatar
wolfpld,
@wolfpld@mastodon.gamedev.place avatar

@TodayInTwitter @Hipska @SimonCHulse What if Twitter required you to post something once a week, or your account would be deleted and available for anyone to claim? Say, to argue that daily active users are through the roof?

It's Elon's service and Elon's rules. No one is obligated to be held hostage and play his game.

If the kind of scams you describe were to become widespread, Twitter would become an untrustworthy service, even for people who don't care about it right now. That's a win.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • normalnudes
  • tsrsr
  • DreamBathrooms
  • Durango
  • magazineikmin
  • mdbf
  • Youngstown
  • tacticalgear
  • slotface
  • osvaldo12
  • rosin
  • thenastyranch
  • kavyap
  • PowerRangers
  • Leos
  • ngwrru68w68
  • vwfavf
  • GTA5RPClips
  • everett
  • cisconetworking
  • cubers
  • hgfsjryuu7
  • InstantRegret
  • ethstaker
  • modclub
  • tester
  • khanakhh
  • anitta
  • All magazines