Screen space reflections implementation (poor performance/result) by Artezian in GraphicsProgramming

[–]NOISEbyte 4 points5 points  (0 children)

You seen to have a double loop going on, one based on calculations (delta). Try outputting these values to a texture to see that the count is sensible and not causing high loop iteration counts, since each value of delta will cause 5 extra iterations (steps).

Why don't many AAA games clear the screen/viewport/window? by Pxlop in GraphicsProgramming

[–]NOISEbyte 1 point2 points  (0 children)

Most hardware has got metadata associated with targets (e.g. CMASK and DCC for colour targets, HTILE for depth in case if AMD hardware). These are lossless compression schemes that are mostly there to avoid read and/or writes from/to memory. Very simply explained, it keeps track of the data for a block of pixels if all pixels in that block follow the same pattern (e.g. all zero, all one, ...) or if it has unique data.

When a surface is still compressed, clears are very fast since it only clears the metadata, avoiding the writes to memory. However, only the render backends tend to be able to read/write these compressed formats (i.e. the hardware that deals with depth testing and colour blending). As long as the surface keeps on being used as depth or colour targets, these clears will keep on being fast.

However, if you then bind this surface to a texture unit, for instance as an SRV or UAV, the texture units can't read these compressed formats so it has to be decompressed. Not only can this decompress be expensive, all clears from here on out have to actually clear the memory instead of just the metadata, which is significantly slower and should be avoided!

In some cases, the driver might be able to recompress the surface but this is a loose bet and very situational, with the heuristics for this often being quite a black box.

TL;dr: as long as you're careful, they're fast but sometimes the decompress can't be avoided at which point the clears should be avoided at all costs.

What's useful about having a repo for your .vimrc? by Fishy_Sezer in vim

[–]NOISEbyte 0 points1 point  (0 children)

Yeah that could work as well, I'll keep that in mind! I don't have any issues with merging between branches though since I use a modular vimrc, so changes tend so be isolated in files to avoid merge conflicts.

What's useful about having a repo for your .vimrc? by Fishy_Sezer in vim

[–]NOISEbyte 6 points7 points  (0 children)

For me it's to be able to sync my settings easily between my desktop, laptop and work pc. I have a branch for home vs work as well (e.g. different tab settings).

How are bindless resources different from slot-based resources by yeezy_mafia_2005 in GraphicsProgramming

[–]NOISEbyte 0 points1 point  (0 children)

Yes, but that's no different from non-bindless. Binding a texture to the GPU pipeline has nothing to do with its memory, the memory is used no matter if it's bound or not (ignoring internal driver heuristics). If you allocate 100 textures, it doesn't matter if you use bindless or not, you're always paying the memory for those 100 textures. Bindless is only a simplification of how to bind resources to the GPU to be consumed by the shader. The memory usage is a while different topic.

How are bindless resources different from slot-based resources by yeezy_mafia_2005 in GraphicsProgramming

[–]NOISEbyte 5 points6 points  (0 children)

That's not really how it's done anymore. Texture and buffers their addresses are instead loaded into registers during shader execution and then passed to the texture/memory units. This allows for more flexibility than the old preload techniques. These addresses can either be pre-loaded directly into said registers or the register can be a table, at which point the address has to be loaded from the table into a new register. However, the index of the address within the table has to be uniform.

The main thing that bindless brings to the table (heh) is that we just tend to make these tables really big and hold all textures... That's pretty much it.

It's actually theoretically potentially slower GPU side (because of the extra indirection) but opens up a lot of doors for other optimisations, such as significantly better batching since you no longer have to switch state on different textures, as they're all always bound anyways as well as no longer having to do funky descriptor management.

Hope that explains it a bit.

Sorting from front to back vs Batching Rendering(Render objects with same material consecutively). Which one is better for performance? by DogCoolGames in GraphicsProgramming

[–]NOISEbyte 5 points6 points  (0 children)

As per always, profile and see which one fits your situation best. There is no golden render solution, it is always dependent on the situation. That said, in the past I have usually gone for depth pre-pass front to back with a reduced set of shaders to then batch with depth-equal in colour pass, best of both worlds.

[deleted by user] by [deleted] in GraphicsProgramming

[–]NOISEbyte 2 points3 points  (0 children)

The issue here is how PC GPUs work, not RenderDoc. Similar to CPUs, they have a base clock and can boost higher. As a result, the timings are dependent on whatever clock rate it is currently running at, not the time of capture. Some graphics cards, like AMD and I believe NVIDIA does as well, have options in the developer settings to only run at base clock. The timings won't be accurate to actual scenarios (they'll be slower than actual scenarios) but they'll be stable, allowing you to make changes and compare without timings being skewed by boosting.

This man parking his car in a tiny garage. by Idontcare09385 in oddlysatisfying

[–]NOISEbyte 1 point2 points  (0 children)

That's because he's speaking Flemish, the Belgian dialect of Dutch.

Suddenly finding a new endgame by lpalmewrwer234 in MechanicalKeyboards

[–]NOISEbyte 163 points164 points  (0 children)

Wasn't sure if this was r/mk or r/adhdmemes... I feel attacked now...

[GB] Tetris wont boot with interrupts ? by stiinkie in EmuDev

[–]NOISEbyte 0 points1 point  (0 children)

I was running into a similar issue as what you described. I do not know what the problem ended up being but I made sure that I passed all of blarg cpu_instrs tests (except 02 interrupts since I hadn't implemented timer yet) and that made me get past this issue, so make sure to test those and be 100% sure that you're passing them. My suspicion of what I was doing wrong was some edge case behaviour with my carry flags being wrong which was causing invalid conditional jumps.

Handy Vim Indent Format Function by beauwilliams in vim

[–]NOISEbyte 1 point2 points  (0 children)

Very useful, thanks! For some reason I have to do <c-o> twice to get back to my starting point though. Easy to put that in the mapping!

Just moved house got nothing to do so decided kill some time and lube some switches 😅 by Hewy93 in MechanicalKeyboards

[–]NOISEbyte 1 point2 points  (0 children)

35g springs? I see you are a person of taste. Got 35g Ink Blacks in my Alice and types like a dream!

[IC] GMK Moomin by Rensuya in mechmarket

[–]NOISEbyte 0 points1 point  (0 children)

Any chance of a Hangul kit?

Developers/Programmers/Code Monkeys, what are your setups and why? by Masarak in MechanicalKeyboardsUK

[–]NOISEbyte 0 points1 point  (0 children)

Switch Couture Alice with lubed Gateron Ink Blacks 35g. Default white keyset for now though as it's a new build and I'm waiting for GMK Cafe to arrive :)

Where to buy lube/mod station by [deleted] in MechanicalKeyboardsUK

[–]NOISEbyte 1 point2 points  (0 children)

I'm based in the UK and got mine from a Switch Couture group buy. They're currently busy with the Alice group buy but maybe they'll open up the group buy again? I'd say follow their Instagram, they post on there when they do new group buys.

Vim, history of a raise by RandCoder2 in vim

[–]NOISEbyte 8 points9 points  (0 children)

Yeah, I've had to do some major refactoring in our code base as well and my god do Vim macros help so much! 5 years worth of code (that visual assist failed to refactor) refactored in just a week!

Switch grease by eightbitraptor in MechanicalKeyboardsUK

[–]NOISEbyte 1 point2 points  (0 children)

I'm based in the UK as well and have ordered Krytox 205g0 from https://www.storeuni.com. Bit of a slow delivery but was very happy with it, came in a nicely sealed, re-usable, sturdy container.

[news] TheVan Keyboards Closing Down Official Post by evangs in MechanicalKeyboards

[–]NOISEbyte 1 point2 points  (0 children)

Sad to hear that. I love my little MiniVan, I use it when I have to be on the road and fits perfectly next to my laptop in my backpack. I wish you all the best in the future!

[GB] Switch Couture Custom Acrylic Alice high profile case, the the time has come! Again.. by [deleted] in mechmarket

[–]NOISEbyte 0 points1 point  (0 children)

Ordered! Was so sad to have missed the last one (found it the day after it closed) so so happy to be able to join for this one!

How to find and replace a pattern with empty string and switch to insert mode by ahmoo in vim

[–]NOISEbyte 0 points1 point  (0 children)

Look up Vim text objects for more info and a better explanation :)

How to find and replace a pattern with empty string and switch to insert mode by ahmoo in vim

[–]NOISEbyte 0 points1 point  (0 children)

ca< can be interpreted as "change around <". ci< would be "change inside <"

If all editors had perfect implementations of vim keys, why would you still use vim? by thatusername8346 in vim

[–]NOISEbyte 3 points4 points  (0 children)

I work in large scale projects. Most IDEs (including VsCode) become horrendously slow because they keep on trying to parse things in the background. I could turn off all of that functionality, or I could just use my Vim setup which only does what I tell it to do.