Posts

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

litherum, to random
@litherum@masto.ai avatar

I’m actually kind of surprised Khronos hasn’t tried to cash in on the AI hype by standardizing an API that runs on AI accelerators

(AFAIK, OpenCL doesn’t run on AI accelerators…)

litherum,
@litherum@masto.ai avatar

@abarker Apple, Intel, and Nvidia all make (parts of) chips specifically for AI. Apple calls theirs the “Apple Neural Engine.” Intel calls theirs a “Neural Processing Unit.” Nvidia calls theirs “Tensor cores.”

The architecture is different than a GPU, has a different instruction set, and is designed for different kinds of computations

Intel also makes a USB stick that you can plug into your computer that just has an NPU on it https://www.intel.com/content/www/us/en/developer/articles/tool/neural-compute-stick.html

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum @abarker Another example is the Edge TPU which has several development boards and also a convenient USB stick (for prototyping). https://coral.ai/products/

litherum, to random
@litherum@masto.ai avatar

Lol

tojiro,
@tojiro@mastodon.social avatar

@litherum LOL. Someone had an unexpectedly good day.

litherum, to random
@litherum@masto.ai avatar

@zachleat my blog looks like shit. http://litherum.blogspot.com/

Should I migrate to eleventy to make it good?

zachleat,
@zachleat@zachleat.com avatar

@litherum that’s a pretty harsh evaluation 😅

I couldn’t say that Eleventy will make it look better but you should migrate it to Eleventy to have full control over it!

litherum, to random
@litherum@masto.ai avatar

WebGPU mesh shading when

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum

Hehe.
No joke we are still filling out the conformance test suite. And still finding bugs with it.

litherum, to random
@litherum@masto.ai avatar

Mesh shading suffers from a terminology problem:

DirectX: Amplification shader / Mesh shader
Metal: Object shader / Mesh shader
Vulkan and Nvidia: Task shader / Mesh shader
AMD: Surface shader / Primitive shader

litherum,
@litherum@masto.ai avatar

@tojiro imo, “fragment” is a better name than “pixel” because:

  • there is no guarantee the results will ever show up on a screen (screens are the things that have pixels on them)
  • there might be more invocations than pixels if you’re doing multisampling and sample shading
  • there might be fewer invocations than pixels if you’re doing variable-rate rasterization

As for object / task / amplification, all these words are bogus and meaningless and equally useless 😅

tojiro,
@tojiro@mastodon.social avatar

@litherum Agreed on all counts.

litherum, to random
@litherum@masto.ai avatar

Startup idea: porting DX9-era closed-source games to the web by transpiling x86 assembly and swapping out system calls / library calls to use all the modern web APIs instead

  • WebGPU
  • Web Workers
  • SharedArrayBuffer
  • File System API
  • Web Assembly
  • Web Audio
  • Pointer Lock
  • WebSockets / WebRTC
  • Gamepad API

There’s a chance it may actually work!

litherum, to random
@litherum@masto.ai avatar

I wonder why so many production compilers are written in C++, a language particularly ill-suited to writing compilers in

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum
Oh this is an interesting question.

First, what is a "production" compiler: that implies maturity and that it underlies serious other business/concerns. Like >10K users over 5+ years, or supports > 100M$ over 5+ years.

From that standpoint Erlang would qualify but is (mostly) written in Erlang.

Aside from that, "most" production compilers are > 10 years old, ruling out Rust and Swift.

1/x

brendan,

@dneto I, for one, very much appreciate Tint being C++ as that made it much easier to integrate into our build pipeline at Unity.

litherum, to random
@litherum@masto.ai avatar

In today's episode of "things I dislike about the Vulkan API"...

When you build an acceleration structure, you have to allocate a destination buffer for the AS to live in. You know how much size to allocate by vkGetAccelerationStructureBuildSizesKHR(), to which you pass a description of the AS you want to build. Sure, fine.

Then, when you want to actually build the AS, you pass the same description object to the build function. Elegant, right?

Turns out, no, it's not ....

(1/4)

litherum,
@litherum@masto.ai avatar

So what's the point of using the same struct if you're just supposed to know that some fields are ignored when passing it to one call, but not ignored when passing it to another call??? And you have to build it in 2 phases?

They should have just made it 2 structs, with one containing the other one. So stupid.

fin.

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum

Seems almost like the pattern of query APIs that serve to both give you the number of results or the results themselves. You have to call them.twice: first to get the count (but with null array ptr) then you allocate space for the answer then you call a.second time to populate the array.

Example
https://registry.khronos.org/OpenCL/sdk/1.0/docs/man/xhtml/clGetPlatformIDs.html

Except in this case it's two different API entry points.

litherum, to random
@litherum@masto.ai avatar

I recently realized, when trying to pick a technology to use:

  • if you want a client/server model, (so, not MPI or distributed actors)
  • and you want discrete messages, rather than streams (so, not raw TCP)
  • and you want reliable delivery (so, not UDP)
  • and you want the server to be able to push data to the client without a request for it (so, not RPC)
  • and you want the pushes to be able to happen even without any requests (so, not HTTP2)

Then the right technology is actually WebSockets!!

litherum,
@litherum@masto.ai avatar

(Despite the project having nothing to do with the web)

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum

Ding ding. Correct answer on the metapoint "despite having nothing to do with the web".

The web platform is cool that way.

litherum, to random
@litherum@masto.ai avatar

People joke about how https://www.apple.com/newsroom/2024/03/the-app-store-spotify-and-europes-thriving-digital-music-market/ is "Thoughts on Spotify" but I think it's actually illustrative to go back and re-read the original Thoughts on Flash https://web.archive.org/web/20100501010616/http://www.apple.com/hotnews/thoughts-on-flash/ back-to-back with this.

Thoughts on Flash is technical, discussing pros and cons of an engineering decision based on the criteria of what makes the best user experience - putting the user first.

This Spotify post is nothing like that. It's all about market share and geopolitics. Users wants aren't considered.

litherum, to random
@litherum@masto.ai avatar

Wow, GTC has branded itself as an “AI” conference https://www.nvidia.com/gtc/

😭

tojiro,
@tojiro@mastodon.social avatar
litherum, to random
@litherum@masto.ai avatar

Trying out libclang this evening, and it's so cool! It just works and does everything I want it to do. And the best part: I didn't even have to install it! It comes with Xcode!

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum
Curious, what did you use it for?

litherum, to random
@litherum@masto.ai avatar

I dislike how, in Vulkan, you have to write different code depending on whether your compute queue is different than your render queue.

The code for a queue transfer doesn't automatically degrade into a regular pipeline barrier if the queue indices happen to be the same.

Boooo Vulkan

litherum, to random
@litherum@masto.ai avatar

Today I discovered that, when main() returns,

This seems like a recipe for disaster

dneto,
@dneto@mastodon.gamedev.place avatar

@litherum Also, throwing an exception in a destructor.+ threads = bad news

litherum, to random
@litherum@masto.ai avatar
litherum,
@litherum@masto.ai avatar

@tojiro WebGPU might legit take the place of “pleasant to write modern 3D graphics API”

tojiro,
@tojiro@mastodon.social avatar

@litherum 🤞

  • 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