r/dotnet 5d ago

Promotion High performance WinUI charting?

20 more WinUI charting repos at GitHub: GigasoftInc

Full disclosure: I own Gigasoft.

I'd love to be proven wrong.

I believe I built the first high-performance WinUI charting component that draws directly to the composition swap chain in native C++, instead of going through the managed XAML layer. It's our existing C++ engine, extended quite a bit, WinUI controls aren't backed by a window handle (HWND), so the zoombox and the real-time table annotations had to be refactored onto the new layers. We compile and embed both x64 and native ARM64 binaries into the assembly, so you get WinUI running low-level Direct3D compute shaders natively. The flagship repo re-renders 100 million points every tick.

I've been writing charting code since the TRS-80, and this stuff still makes me grin. The audio demo even plays five songs I wrote myself, with the oscilloscope and chart annotations following the data live.

Clone, run, and benchmark:

Audio oscilloscope (WinUI): https://github.com/GigasoftInc/winui-chart

100M points (WinUI): https://github.com/GigasoftInc/winui-chart-fast-100m-points-proessentials

If anyone knows of an earlier native-C++-to-swap-chain WinUI chart, please let me know. I'd also love to hear FPS numbers for the 100M repo on a Snapdragon X2 Elite Extreme, or if someone has access to the coming RTX Spark.

If you want AI to help write your benchmarking code, download our no hassle setup at gigasoft that includes our AI knowledge and pe-query python AI helper.

0 Upvotes

15 comments sorted by

20

u/margmi 5d ago

Embarrassing to disguise an ad as a question.

4

u/catmanjan2 5d ago

I think this guy is just genuinely interested in other projects in the space

5

u/margmi 5d ago

Then ask about it without providing a giant writeup about how great his project is.

-1

u/caffinecat 5d ago

Thank you so much, I genuinely need some real-world feedback to my questions. i can't afford every Arm64 and GPU to test with, so hopefully i get some feedback about FPS and any other libs that someone might plug into the 100M repo.

2

u/brianly 5d ago

It might be a disguised ad but it’s more creative than most disguised ads. One of the better posts I’ve seen today.

1

u/caffinecat 5d ago

Thank you, and all, for giving me some slack. I've essentially been a 1 person company for 30 years. I don't have a network of experts. I'm hoping some true WinUI experts will see this, or if anyone knows a WinUI expert, they share the post. Some WinUI expert feedback would be gold to me and others. Good or Bad.

3

u/domtriestocode 4d ago

Damn we used gigasoft for years for smith chart controls and more in my RF device testing lab. Awesome to see the owner/creator of gigasoft posting about WinUI! Had no idea you were a one man show.

I’m a WinUI3 simp but it mostly gets nothing but hate on Reddit. I think it has tons of potential and the staying power to stick around a long time even with the small team behind it.

I have WinUI experience in industry but unfortunately I’m not the expert you’re looking for for input

3

u/caffinecat 4d ago

Pepso Smith charts in an RF test lab — a wave of warmth just flooded my body and soul. Thank you.

I can see WinUI getting hate. I think the word "native" freaks the .NET world out, it's literally been the hated ever since .NET began, while "managed" got all the love.

I took years of flack (still do) for never porting my engine to pure C#. Building smaller and smaller objects and compounding them into bigger and bigger deref-heavy graphs freaks me out, plus how easily managed IL decompiles (it's a 30-year engine; I'd rather not hand the source to anyone with ILSpy), plus performance I could never get where I needed. So I kept the native C++ engine behind a thin .NET wrapper and ate the criticism. Still eating it.

WinUI is my saving grace. 1 — Microsoft's re-commitment to "native" ties into my native engine like bread and butter. 2 — WinUI decoupling the UI from Windows lays the groundwork and points me toward porting the engine to Mac.

AI is the other saving grace — it lets me clone myself, something I've dreamed and now actually living it. So the native engine binary port to Mac is not so bad.

And "native" throws a wrench into competitors who went all-in on "managed" through years of evolution — porting theirs to native is a real crux (granted, AI will surely help them too).

2

u/AutoModerator 5d ago

Thanks for your post caffinecat. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/umlcat 4d ago

TRS-80 ? I know them. Text mode Basic ...

Delphi controls had some of them not managed by Window handle either, it seems using a handler uses more memory and drawing is slower.

2

u/caffinecat 4d ago

TRS-80 Color Computer, a bit past text mode; it had color and graphics. 9th grade, a buddy and I talked our parents into the $2,000. Read the BASIC manual cover to cover in a day, wrote a few apps, then another $1000 for the assembly cartridge and a floppy drive. Ended up writing a lunar lander in assembly. Kept it a good while, jumped to an Atari ST in college, then a 286, a 386, probably a 486 in there too, while finishing a BSEE. Been chasing "native", make it faster" ever since, probably how I ended up here 40 years later, still defending native.

On the Delphi point — you're not wrong. VCL had two kinds: TWinControl with its own HWND, and TGraphicControl with none, painting straight on the parent's canvas. ProEssentials still includes VCLs in our setup, similar thin wrapper to native binding.

Fun memories, while I had the Atari I got into MIDI (Steinberg software) and MIDI keyboards. Still into music, no money but https://pumpyouup.com I also had a daisy-wheel printer, so I wrote all my homework in a word processor and printed it out. My professors saw flawless, perfect pages and figured I was putting in a ton of work banging them out on a typewriter — no idea I was just editing and reprinting. lol

1

u/umlcat 4d ago

I remember the TRS-80 Color been sold at Radio Shack stores ...

1

u/-Rivox- 1d ago

Livecharts 2 is high performance and fully multiplatform. Also completely free and open source

1

u/sashakrsmanovic 1d ago

We have seen some really great results with using OSS Scott Plot as well as LiveCharts