@xoofx@mastodon.social
@xoofx@mastodon.social avatar

xoofx

@xoofx@mastodon.social

Director C#/.NET Tech Group at https://unity.com
OSS, lang/compilers, GPU/sound, performance/SIMD/HPC, architecture 🏎️
Microsoft MVP, ex-demoscene PC/Amiga 🎆
Veggie 🌿, opinions are my own

Supporting freedom for 🇺🇦 and 🇵🇸

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

dotstdy, to random
@dotstdy@mastodon.social avatar

It's a bit interesting that the best option for a shading language with Vulkan is probably HLSL, not GLSL.

xoofx,
@xoofx@mastodon.social avatar

@dotstdy oh, why? I was starting to think that I would have to switch to GLSL to use Vulkan more easily 🤔

xoofx, to dotnet
@xoofx@mastodon.social avatar

I'm sold on building my .NET NativeAOT Vulkan prototype on top of wlroots https://gitlab.freedesktop.org/wlroots/wlroots instead of going raw with DRM/KMS. Any folks that experienced wlroots?

Gonna have to create a binding for this one though, before I can start anything, but that will be hopefully a lot less work than dealing directly with DRM/KMS 😅

#dotnet

xoofx, to dotnet
@xoofx@mastodon.social avatar

Just released https://github.com/XenoAtom/XenoAtom.Interop providing a set of low-level and modern .NET P/Invoke for several C/C++ libraries (musl, libgit2, sqlite, zlib...) 🚀

After SharpDX 15 years ago, this is probably the most advanced interop codegen I have made in the past years. 😎

Early preview! Still no doc, but lots of cool stuffs there!

#dotnet #csharp

xoofx, to dotnet
@xoofx@mastodon.social avatar

Just updated my Vulkan bindings https://github.com/XenoAtom/XenoAtom.Interop/tree/main/src/vulkan

I have used the vk.xml registry & parsed the man docs to generate a complete Vulkan API with intellisense! 🚀

I took also the opportunity to add overloads in/out parameters, ReadOnlySpan/Spans and make optional params with default value. Lots of codegen, but that was worth it 😎

The vulkan_core.generated.cs is over 90,000 lines of C# code 🙈

Next step: Bare metal Vulkan C# NativeAOT on top of the Linux kernel + libdrm 😱

#dotnet #csharp

xoofx, to unity
@xoofx@mastodon.social avatar

Somes folks have been wondering what is happening with the .NET Modernization in Unity and the migration to .NET 8 and CoreCLR, so here is an update https://forum.unity.com/threads/unity-future-net-development-status.1092205/page-54#post-9848724 🤗

#unity #unity3d #dotnet #csharp

xoofx, to dotnet
@xoofx@mastodon.social avatar

I just want to get argv[0], please!

Created an issue https://github.com/dotnet/runtime/issues/101837

Surprisingly, it is currently the wild west for something so basic, hope we can fix it for .NET 9.0, I'm happy to try to fix it and make a PR.

#dotnet

xoofx,
@xoofx@mastodon.social avatar

Adding an API proposal https://github.com/dotnet/runtime/issues/101872 to avoid the breaking changes

xoofx,
@xoofx@mastodon.social avatar

@Paxxi That's why I opened the original issue in the 1st place, then It was said that it might break too many folks relying on the existing broken behavior, so I'm trying to introduce a new API, now maybe it might be possible to actually break the existing behavior which seems to be an unintentional change 😅

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

If you use Mastodon on desktop (as opposed to mobile), I cannot praise highly enough Phanpy https://phanpy.social/
It really cleans up my timeline, handles replies very nicely, and allows for a great "refresh" (view updates) experience.

xoofx,
@xoofx@mastodon.social avatar

@aras @BartWronski I tried it a few months ago but couldn't continue to use it because of missing reply counts https://github.com/cheeaun/phanpy/discussions/290

xoofx, to dotnet
@xoofx@mastodon.social avatar

Hey, late Saturday night, but I just released a new .NET library https://github.com/XenoAtom/XenoAtom.CommandLine Finally a lightweight command line parser compatible with NativeAOT, a direct fork/descendant of NDesk.Options/Mono.Options supporting all its features - and more! and the easiness of using it! 🥳

#dotnet #csharp

xoofx,
@xoofx@mastodon.social avatar

@khalidabuhakmeh yes, I'm using ISpanParseable<T> instead of TypeConverter which makes it fully aware of the types/methods that it needs to compile. Often existing command line parsers are including stuffs like declaring options by putting attributes on fields/properties and other similar stuffs, so they have to rely more heavily on System.Reflection and are are usually less NativeAOT friendly. Some are doing source generator, and while it could be nice, it feels overkill.

xoofx,
@xoofx@mastodon.social avatar

@khalidabuhakmeh Ah, yeah, having enough time to code in my sparetime for all the things I want to do is already challenging, so blog posts are even harder! 😅

agocke, to random
@agocke@hachyderm.io avatar

My recollection is that whenever we tested this, it didn't perform any better than standard generational GC
https://mastodon.social/@HalvarFlake/112334372057873051

xoofx,
@xoofx@mastodon.social avatar

@Migueldeicaza @agocke I remember about this prototype, but was never able to find the slides back. Would love to be able to use Arena in C# though

xoofx, to dotnet
@xoofx@mastodon.social avatar

As spotted by @mzikmund https://www.youtube.com/watch?v=wzMMclD8QsI there is a potential new slnx format coming to Visual Studio, which is very welcome, but it might not be MSBuild based which is quite an unexpected and unproductive solution (haha 😁)

So, just shared my comment on the issue directly https://developercommunity.visualstudio.com/t/Clean-up-sln-VisualStudio-solution-fil/988209#T-N10636836 📢

Note that, it's not like I love MSBuild, but it is what we have today for authoring and building projects in VS/cmdline and so, let's not repeat the project.json mistake. 👀

#dotnet

xoofx, to random
@xoofx@mastodon.social avatar

That xz backdoor is insane 😱

xoofx, to random
@xoofx@mastodon.social avatar

Quite frequently for my OSS projects, I receive an email about a particular OSS project with some questions and I always respond the same thing.

If a project is OSS, the discussion about it is meant to be open (sourced) by default and I expect this discussion to happen in e.g GitHub issues (at the very least, but personally don't have time for GitHub discussions)

That would be something that I would teach at school these days. 😁

Pass the word, it's a good reminder! 🤗

khalidabuhakmeh, to dotnet
@khalidabuhakmeh@mastodon.social avatar

Join Chris Klug and me today on our latest Livestream. I think this is a spicy 🌶️ take, and I’m curious how many folks agree or disagree with the guest regarding #dotnet #entityframework?

"Stop using Entity Framework as a DTO provider!”

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

xoofx,
@xoofx@mastodon.social avatar

@khalidabuhakmeh Agree, though, I would believe that what Chris is describing with his wrapper over DTO is closer to the more conventional concept of a "ViewModel" over "Model", or am I missing something? A ViewModel doesn't have to be solely designed for an UI scenario, it can be designed for e.g higher level Web API

xoofx, to random
@xoofx@mastodon.social avatar

As promised, I wrote a blog post about the setup of a 10G home network with an OPNsense firewall and a Tailscale VPN https://xoofx.github.io/blog/2024/03/22/building-secure-10g-home-network/ 🥳

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

It's a little sad that after all these years I again find myself without an obvious day to day code editor.

Sublime Text is good... but when I work with Python I want Copilot and Copilot plugin for ST is bad. Python and C++ navigation is also very hit-and-miss out of the box.

VS Code has great Copilot integration and surprisingly good code navigation... but it locks up and becomes way too slow once in a while, requires occasional restarts, has weird UX in places, and nav breaks occasionally.

xoofx,
@xoofx@mastodon.social avatar

@zeux have you tried https://www.jetbrains.com/pycharm/ ?

I have been using many of their full IDE products in the past 25 years and I would not compare the code editor you mention as featured as the one from Jetbrains (they are closer to enhanced text editors than complete IDE)

xoofx,
@xoofx@mastodon.social avatar

@zeux yeah, it seems that you might be able to use CLion with the Python plugin https://www.reddit.com/r/Python/comments/522akp/pycharm_and_c/ but it might not have all the features

@khalidabuhakmeh maybe you know more about the right combination? (Or as suggested on Reddit have both IDE opened)

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

Oh that's a fun bug! So Unity has both Matrix4x4 and float4x4, and the have slightly different syntax, but close enough. The big difference is float4x4 is significantly faster. So a lot of people replace one with the other - happy.

BUT....

To do matrix multiplication with Matrix4x4, you do a = b*c.

To do it with float4x4 you have to do a = math.mul(b,c)

OK whatever. The problem is that a=b*c COMPILES FINE. It just does the componentwise multiply is all.

W
T
F
people.

xoofx,
@xoofx@mastodon.social avatar

@TomF @jvalenzu The initial decision was to use HLSL so that you could copy HLSL snippet code and it would work almost out of the box. HLSL uses per-component operations for regular multiply operator, so we used that. It makes it consistent with the other types.

xoofx, to random
@xoofx@mastodon.social avatar

At last, we got the fiber in our neighborhood a few weeks ago and I finally upgraded my Internet box to the "Free" provider, with the Freebox Ultra, theoretically 8Gbps up/down... and I'm close to that 6.6 Gbps down / 7.6 Gbps up, for 50€/month, in a village a bit in the mountains at 750m above sea level 🤯

I remember my first modem in the mid 1990 was able to do something like 56Kbps (or less, I forgot which one I got first)

This is crazy how far Internet speed can go now. 🚀

xoofx, to dotnet
@xoofx@mastodon.social avatar

Finally took the time to create a reusable GitHub workflow https://github.com/xoofx/.github for all my .NET OSS projects and used it successfully from https://github.com/xoofx/TurboXml/blob/main/.github/workflows/ci.yml 🔁

That's pretty cool, don't know why I waited so long to do that! 😁

#dotnet

xoofx, to dotnet
@xoofx@mastodon.social avatar

Heya! 🥳 Just released TurboXml https://github.com/xoofx/TurboXml a .NET library that provides a SAX like XML parser that can parse small to large XML documents with zero allocations (apart for an internal buffer that is pooled) and is able to accelerate its parsing with SIMD! 🚀

I can now continue my prototype of rendering some SVG by using this library 😅

#dotnet #csharp

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

In a windows application, is there a documented way to detect if it's running on the SteamDeck? I want to do this early at startup before initializing a Vulkan device. Can this be inferred from GetVersion, GetComputerName, or one of these Windows APIs?

xoofx,
@xoofx@mastodon.social avatar

@castano I'm confused, isn't the Steam deck a Linux arch?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • InstantRegret
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • tacticalgear
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • anitta
  • ethstaker
  • GTA5RPClips
  • modclub
  • tester
  • provamag3
  • osvaldo12
  • cisconetworking
  • everett
  • cubers
  • normalnudes
  • megavids
  • Leos
  • lostlight
  • All magazines