@karolherbst@chaos.social titelbild
@karolherbst@chaos.social avatar

karolherbst

@karolherbst@chaos.social

Linux Graphics Developer
Freedesktop Code of Conduct Enforcement team member

Mostly working on Rusticl and Nouveau
Implemented OpenCL in Rust for fun

🏳️‍🌈🏳️‍⚧️ are welcomed.

Nazis, $hitcoin cultists, Right-Libertarians, Longterminists, Tankies, techbros and other fascists not welcomed. This is a shithead free zone.

Private account, please direct all business inquiries to: https://twitter.com/karolherbst

#mesa
#nouveau
#nvk
#opencl
#rust #rustlang
#rusticl
#coc

Dieses Profil is von einem föderierten Server und möglicherweise unvollständig. Auf der Original-Instanz anzeigen

18+ karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

the social democratic leadership sees austerity as the only option.

The same as 95 years ago.

It's really heartbreaking seeing political leaders doing the same mistakes over and over again.

karolherbst OP ,
@karolherbst@chaos.social avatar

@nCrazed I'm sure they do it deliberately in the meaning of "that's how the system works and that's what we have to do", but not deliberately in the sense of "haha, we want to ruin our system".

And people like the FDP finance minister just say, that they don't believe the studies claiming it does...

Maybe it's deliberate from the "liberals", but uhh.. I think they are just ideologically blinded.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

the weirdest image format is R9G9B9E5

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

soooo.. in OpenCL C builtins like get_global_offset have to return defined values on out of bound accesses, but apparently Intel's driver also gets this wrong. Now I'm considering if I should keep it broken as well, or actually fix it as defined in the spec...

@bashbaug any thoughts on this? Maybe we should add OpenCL CTS tests for this and annoy everybody else with this?

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

It's still funny to me, how all the OpenCL work in mesa led to drivers using OpenCL C to emulate geometry or tessellation shaders 🙃

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I think the funniest part of the new POSIX version is the removal of "ioctl"

karolherbst OP ,
@karolherbst@chaos.social avatar

@VegaHarmonia yeah, it was kinda weird having it in posix in the first place, because it was all implementation defined anyway. So they removed it, because POSIX really has no business there.

karolherbst OP ,
@karolherbst@chaos.social avatar

@VegaHarmonia it's mostly funny in regards to POSIX purists and them not wanting to use non POSIX stuff in software.

Granted, you almost never need to use ioctl directly in most cases, but still...

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I wonder...

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I've finally finished the work to fix the spirv linker so it can link programs together originating from llvm-17 or newer.

Yes, this is a dirty workaround, but apparently we have no other options at this point.

https://github.com/KhronosGroup/SPIRV-Tools/pull/5534

karolherbst OP ,
@karolherbst@chaos.social avatar

@Man2Dev this PR only really matters if you link two spir-vs together, which I think besides mesa almost nobody is doing anyway, I think.

TheEvilSkeleton , an Random Englisch
@TheEvilSkeleton@treehouse.systems avatar

"Keep politics out of FOSS" is an interesting political statement

karolherbst ,
@karolherbst@chaos.social avatar

@TheEvilSkeleton what did I miss, or is it that new fancy web browser thing?

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

anyway, some 🦀 content today:

I'm considering using serde in rusticl, however my use case is not to parse arbitrary data, but always structs with no custom data allowed. In short: the struct defines the data layout.

And we have some helpers in mesa dealing with reading/writing data to a blob.

So I'm wondering if a custom serde serialize/deserializer is what I want, or if I want something more special/focused as serde seems to be too generic for my use case here.

karolherbst OP ,
@karolherbst@chaos.social avatar

@matt it's C code and we use it for e.g. serializing GPU shaders so it can be stored in a shader cache. But it's all manual serialization and deserialization code, it's just mostly there to deal with alignment, padding and buffer overruns (like you can check if the buffer used for reading/writing wasn't big enough and handle it).

So, because writing the code yourself is annoying I was wondering if something can take a struct and generate the code for me in rust.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

TIL: elephants have names

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

soo.. apparently the broadcom VC4+ GPUs (the ones used in raspberry pis and stuff) do not support format-less image writes, sooo.. supporting OpenCL images in #rusticl on that hardware will be a bit "difficult", because it needs to be handled within the kernel...

I should probably check out how other drivers are handling this, because either I'm missing something here or some other vendors are kinda in the same situation (not for all hardware, probably just older GPUs).

karolherbst OP ,
@karolherbst@chaos.social avatar

@tnt format not known at compile time

ExpiredPopsicle , an Random Englisch
@ExpiredPopsicle@vt.social avatar

#XMPP is what you get when you design a protocol around edging an XML parser.

karolherbst ,
@karolherbst@chaos.social avatar

@mary @ExpiredPopsicle okay, so the <zero/> and <one/> part is what it is, but one thing actually got my attention: "if a server supports Binary XMPP it advertises a special DNS SRV record _bxmpp._tcp"

And I got curious: Does XMPP uses DNS for anything real? Yes it does! It totally does :)

https://wiki.xmpp.org/web/Tech_pages/XEP-0368#DNS_setup

karolherbst ,
@karolherbst@chaos.social avatar

@mary @ExpiredPopsicle there is more info here: https://wiki.xmpp.org/web/SRV_Records

but I think the tldr is, that XMPP clients need to query those DNS records in order to figure out how to connect to a domain/XMPP server + specifying backup domains.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

good that I've disabled remote SSH access on my router a while ago 🙃

karolherbst OP ,
@karolherbst@chaos.social avatar

@lkundrak fun, but the only port exposed to the internet is 443 here.

karolherbst OP ,
@karolherbst@chaos.social avatar

@lkundrak ohh and 68 because... $reasons

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

ahh, hail at 30ºC

karolherbst OP ,
@karolherbst@chaos.social avatar

@Lyude yeah, "Extreme thunderstorm warning" and all the fun stuff here right now.

It went from 30ºC heatwave to 22ºC thunderstorm heavy rain weather within minutes.

karolherbst OP ,
@karolherbst@chaos.social avatar
karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

it's barely noon and I'm already done with the heat.

For context: here in Germany it's kinda rare to have ACs at all.

so yeah... it's 30ºC/86ºF with 50% humidity, and no AC 😓 and I'm just done with it 🙃

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I wonder what should I focus on next quarter.

I'm mildly leaning towards proper SVM/USM support in , because that's also required by more and more software (e.g. AdaptiveCPP)

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

melting

karolherbst OP ,
@karolherbst@chaos.social avatar

@VegaHarmonia summer was a mistake, can we please remove summer

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

Soo. the initial set of enablement patches for the raspberry pi4 and newer are merged and will be part of mesa 24.2 (https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25362)

It doesn't support profiling and images yet, but it's stable enough to pass around 97% of the OpenCL CTS

Of course there will be bugs, so any kind of testing will be appreciated.

In the meantime I'll try to get images supported.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

"omitting the parameter name in a function definition is a C2x extension [-Werror,-Wc2x-extensions]"

...

fine...

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

hot take: the next C release should just remove data types with an unspecified size, e.g. int or unsigned

karolherbst OP ,
@karolherbst@chaos.social avatar

@matt mhh maybe, though I always tried to avoid those before I even knew rust existed.

But maybe I'm young enough that "I want int to be small on those specific machines" was never a use case I had to think about.

karolherbst OP ,
@karolherbst@chaos.social avatar

@matt I started programming right when we had the 32 to 64 bit transition, so maybe I just learned very early that unsized data types cause problems, because that was quite the hot topic at that time.

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

I'm already melting and it's "only" 27ºC

karolherbst OP ,
@karolherbst@chaos.social avatar

@jeisom it's around 45% atm

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

off by 0.0000000000000001 bug

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

uhh, so a few days ago I found out, that passing structs by value in through OpenCL C or SPIR-V in fact doesn't pass the argument by value.

Turns out we don't handle the SPIR-V "ByVal" Function Parameter Attribute...

this might explain a few bugs I've seen in the past...

karolherbst OP ,
@karolherbst@chaos.social avatar
sima , an Random
@sima@chaos.social avatar

dieser toot geht nur auf deutsch, oder zumindest zu faul, den ganzen kontext zu erklären

so auf der strasse oder sonst wo öffentlich von älteren männern geduzt werden, jetzt nach der FFS, ist die erste echte überraschung. aber ja macht sinn in dieser gesellschaft, und macht hässig

🤷‍♀️

karolherbst ,
@karolherbst@chaos.social avatar

@sima I'm just getting a rice cooker honestly

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

After 50 hours, I've finally completed the main game of baba is you....

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

tbh systemd-resolved is really awesome. My biggest use case with it is, that I can still use my local network DNS server for custom domain and DNS resolution, while still gettind my redhat.com things resolved via the VPN provided DNS server

:3

Sadly I still have to manually configure the domain/dns part after connecting to VPN, but I think I can make things persistent somehow.

karolherbst OP ,
@karolherbst@chaos.social avatar

Yes, I have "ipv4.dns" and "ipv4.dns-search" set in NetworkManager, but somehow it still gets dropped after connecting to the VPN.

karolherbst OP ,
@karolherbst@chaos.social avatar

ohh, turns out a negative "ipv4.dns-priority" value on the VPN connections makes all other connections lose their DNS settings. So now I have it set to 0 for the VPN as I don't care about DNS leaks, or rather I prefer if all non redhat.com DNS requests go through my local DNS server 🙃

I might have to play around with the priorities a bit more, but finally that's figured out :)

karolherbst OP ,
@karolherbst@chaos.social avatar

oh, and there also seems to be a special "~." entry for ipv4.dns-search just redirecting everything to that connection and that was also set on my work VPN connection. So double the fun.

Anyway, I've fixed my DNS setup for realz now and I hope it stays that way as in the past I had to fight with my work DNS server breaking apart randomly and other fun things breaking my internet.

karolherbst OP ,
@karolherbst@chaos.social avatar

oh, one thing I should try out as well is, what if I'm on VPN with work and my home while on a different network and stuff. But I think I should be able to figure those things out now at least :)

karolherbst OP ,
@karolherbst@chaos.social avatar

@airlied could just add more custom domains to the vpn connection then, it's a list of values

karolherbst , an Random Englisch
@karolherbst@chaos.social avatar

for anybody curious, yes the docker "cluster" running on my router is doing great

karolherbst OP ,
@karolherbst@chaos.social avatar

update on my budget docker cluster: I've added the watchtower docker container, which updates other docker containers when the used image tag got updated on dockerhub 🙃

sadly the acme-companion tags don't have a "stable" thing, so I might have to update their tags manually from time to time, but at least all the nginx ones use "stable-alpine" and that's great :)

karolherbst OP ,
@karolherbst@chaos.social avatar

@swick nah, it runs on docker and I already verified it's working correctly, but good to know.

  • Alle
  • Abonniert
  • Moderiert
  • Favoriten
  • random
  • haupteingang
  • Alle Magazine