Posts

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

dotstdy, to random
@dotstdy@mastodon.social avatar

There's a bit of stuff in this article which phrases it in terms of changes over time, e.g. compute capability has grown and we no longer need big data. But it seems closer to reality that it was never required, and continues to not be required. (looking forward to the same style of post happening in a few years vis-a-vis microservices)

https://mastodon.social/@ltratt/112518285832831004

pervognsen,
@pervognsen@mastodon.social avatar
dotstdy,
@dotstdy@mastodon.social avatar

@pervognsen @ltratt @pkhuong Ah this is amazing, I was just thinking of the much simpler classic: https://yourdatafitsinram.net/

dotstdy, to random
@dotstdy@mastodon.social avatar

subgroup ops are a mindfuck on top of the existing mindfuck of work groups, local work groups, dispatches and invocations.

dotstdy,
@dotstdy@mastodon.social avatar

@zeux @oblomov Well it's hard to argue with the vulkan spec on matters of terminology, no matter how ridiculous it is.

> [vkCmdDispatch] When the command is executed, a global workgroup consisting of groupCountX × groupCountY × groupCountZ local workgroups is assembled.
> Decorating a variable with the GlobalInvocationId built-in decoration will make that variable contain the location of the current invocation within the global workgroup.

zeux,
@zeux@mastodon.gamedev.place avatar

@dotstdy @oblomov It’s easy to argue with it! But yes this makes it clear that that’s what they meant. I maintain that this is an unnecessary overloading of meaning of work group in the spec.

dotstdy, to random
@dotstdy@mastodon.social avatar

Anyway I'm curious whether I can move the coarse bitmap to LDS, merging the two culling passes. Basically dispatch a "coarse" tile, which loops over all the incoming primitives, writing the bitmap to LDS (16KiB per tile, too much?), then switch to one invocation per "fine" tile, looping over the data in LDS and writing out the final culled tiles.

dotstdy, to random
@dotstdy@mastodon.social avatar

i keep getting results for the church of the latter day saints when i look for LDS smh

Doomed_Daniel,
@Doomed_Daniel@mastodon.gamedev.place avatar

@dotstdy surprising, I would've expected "did you mean LSD?"

dotstdy, to random
@dotstdy@mastodon.social avatar

I wonder why the performance counters don't work in RGP captures on my APU. I guess something isn't plumbed up yet for RDNA3 :'(

Doomed_Daniel,
@Doomed_Daniel@mastodon.gamedev.place avatar

@dotstdy
the Radeon 7xxx cards are RDNA3 as well

dotstdy, to random
@dotstdy@mastodon.social avatar

Has anyone ever made a good system for gameplay queries? (of the "give me all the apples nearby" or "trigger when x happens" style) I'm somewhat of the opinion that any generalized approach here is going to end up in tears, but I'm also of the opinion that gameplay scripting in particular wants to have a pretty generalized approach to help with auditing content (e.g. you want to tightly control what data scripts can access, and when they can access it).

pervognsen, (edited )
@pervognsen@mastodon.social avatar

@dotstdy Why would it end in tears? Unless you take an ideologically motivated hard-line approach (i.e. you have to do everything through the query system) it would presumably just be a toolbox just like we already have a toolbox of specific gameplay queries like ray/sphere casts or whatever. Now that I think about it, those do usually end in tears if you care about performance. :)

dotstdy,
@dotstdy@mastodon.social avatar

@pervognsen yeah specifically for performance, and specifically my tears around shipping season. :')

edit: and raycasts also kind of count, as soon as you start driving the logic for individual casts from within a gameplay script it's not going to end well I think. like it's totally fine in the small scale, but absurdly bad for things like ground-snapping. (largely because it makes it very difficult to do sweeping changes like batching and rate limiting across all your content)

dotstdy, to random
@dotstdy@mastodon.social avatar

I find it funny the way people give away their own lack of understanding sometimes. Reading this comments on this (why i do this) https://bikepacking.com/plog/man-or-bear-debate/ and there's the classic "[RE: meeting women on the trail] Never in my silly mind crossed the thought of me making them uncomfortable."

If it has never crossed your mind that you might be making somebody uncomfortable - that's a you problem - and specifically one of the core issues the whole damn piece is talking about!

dotstdy,
@dotstdy@mastodon.social avatar

There's a lot of things that pretty trivially give away when somebody hasn't even attempted to rub two brain cells together on a problem, but a man saying "ive never even considered the possibility of making a woman uncomfortable when i meet them alone in the wilderness" is a real banger.

dotstdy, to random
@dotstdy@mastodon.social avatar

Anyway here's the two level binning code. https://github.com/jsimmons/narcissus/commit/a2f73579cd48f1fec26503a170f02e50719ee7d2 And as usual it has been written following the "copy pasta approaches from themaister" methodology. https://themaister.net/blog/2019/10/12/emulating-a-fake-retro-gpu-in-vulkan-compute/

dotstdy, to random
@dotstdy@mastodon.social avatar

To be honest I'm surprised the "one small rock a day" diet hasn't caught on outside of Sweden. Arguably it's one of the biggest reasons swedes are all so healthy and attractive. The rest of the world could learn a lot from Europe.

pervognsen,
@pervognsen@mastodon.social avatar

@dotstdy Signed, the Rocksmith

Doomed_Daniel,
@Doomed_Daniel@mastodon.gamedev.place avatar

@dotstdy
is this about rusk?

dotstdy, to random
@dotstdy@mastodon.social avatar

It's always fun when you remove a parallel foreach and do some basic re-organization and end up with a result that's 25% faster on a single core than the old version was spread across 10 cores.

dotstdy, to random
@dotstdy@mastodon.social avatar

Err is the GPU supposed to fault if you try to bind a descriptor set to a bind point before you bind a pipeline? I couldn't see any mention of there being an ordering requirement on the spec, but maybe I missed it in the sea of VUIDs

vkCmdBindPipeline()  
vkCmdBindDescriptorSets()  
vkCmdDispatch() // totally fine  
vkCmdBindDescriptorSets()  
vkCmdBindPipeline()  
vkCmdDispatch() // totally explosion  

Well, perhaps I should also mention that there's a graphics happening before this too.

nanokatze,
@nanokatze@mastodon.gamedev.place avatar
dotstdy, to random
@dotstdy@mastodon.social avatar

CPU optimisation guide: You should try vectorizing
GPU optimisation guide: You should try scalarizing

CHOOSE A LANE

aras,
@aras@mastodon.gamedev.place avatar

@dotstdy so basically, "you should try the thing the hardware was not originally intended for"

dotstdy,
@dotstdy@mastodon.social avatar
dotstdy, to random
@dotstdy@mastodon.social avatar

I feel like the most difficult part of subgroups and GPU programming in general, is getting all the terminology straight in your head. Sometimes it seems like it would be easier just writing rdna asm directly. :')

pervognsen,
@pervognsen@mastodon.social avatar

@dotstdy You know what has never helped? Every IHV and API having their own incompatible terminology!

dotstdy,
@dotstdy@mastodon.social avatar

@pervognsen To be honest nvidia has the best naming scheme, everyone should just adopt that one.

dotstdy, to random
@dotstdy@mastodon.social avatar

I bet a lot of people think of themselves as important game development influencers, but the simple truth is that in the last decade or so the single most impactful game development thought leader is the "can you pet the dog" twitter account

dotstdy, to random
@dotstdy@mastodon.social avatar

Masahiro Sakurai's youtube channel continues to be very wholesome https://www.youtube.com/

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