1
13
graphicsguy

@programming.dev

graphicsguy 13 points 3 years ago

Great stuff. I find it really funny that a big feature of modern API's is that applications place barriers instead of being handled by the driver, and we all tried it for a while and then threw up our hands and decided to write graph systems to automatically place them because it was too hard.

path: 0 7620435, hotness: undefined, score: 13, children: 0
graphicsguy 11 points 3 years ago

RenderDoc is made by one person. It's used by every graphics programmer. It's free, open source, faster + better than anything else. I love it.

path: 0 441661, hotness: undefined, score: 11, children: 0
graphicsguy 10 points 3 years ago

You're right that it's messy and imperfect and false positives can be really frustrating.

But the alternative - no efforts to maintain a safe space - is that vulnerable people are typically the target. Toxicity typically punches down.

I'll happily trade some clunky inconvenience so that those people can safely participate

path: 0 3690155 3692798, hotness: undefined, score: 10, children: 5
graphicsguy 5 points 3 years ago

Pointers also allow you to do fun and dangerous things like casting between types!

For example, if you're implementing your own memory allocator, at the base level your allocator only really cares about how many bytes are being requested (along with alignment, offset, other things) so you'd probably just implement it to return a char*, u8*, or void* pointing to the blob of memory you allocated with new, malloc, or whatever scheme you've cooked up. The calling code or higher level allocator code could then cast it to the actual type

path: 0 993852, hotness: undefined, score: 5, children: 0
graphicsguy 4 points 3 years ago

I like to not think of anything as "absolute" or "dealbreaker" (within reason. If there's a culture of harassment I'm gone, for example). But spend intentional time throughout your career reflecting on what matters to you in terms of team culture, code culture, career growth opportunities, compensation, etc. There are a lot of factors to being happy in your work, and a lot of ways to get there. Be intentional about it, and try to always move toward it. It matters a lot more than whatever software you're writing.

path: 0 7332351, hotness: undefined, score: 4, children: 0
graphicsguy 3 points 3 years ago

Also if you branch on a GPU, the compiler has to reserve enough registers to walk through both branches (handwavey), which means lower occupancy.

Often you have no choice, or removing the branch leaves you with just as much code so it's irrelevant. But sometimes it matters. If you know that a particular draw call will always use one side of the branch but not the other, a typical optimization is to compile a separate version of the shader that removes the unused branch and saves on registers

path: 0 1060728 1061185 1128269, hotness: undefined, score: 3, children: 0
graphicsguy 3 points 3 years ago

As a graphics programmer in the games industry, it's always exciting to me when people discover how much fun all this stuff is

path: 0 5342364, hotness: undefined, score: 3, children: 0
graphicsguy 3 points 3 years ago

Ya fair enough. I'd put my "razor" at behaviour that targets vulnerable / minorities, which is probably broader / vaguer than just slurs, but it's going to be a spectrum of opinions and preferences

path: 0 3690155 3692798 3693393 3693963, hotness: undefined, score: 3, children: 1
graphicsguy 2 points 2 years ago

Download renderdoc: https://renderdoc.org/ It's a great, easy graphics debugging tool.

There, you should be able to inspect your draw call and see what's going wrong.

But also, on the topic of API's. OpenGL is basically obsolete as you suggested, but Vulkan / DX12 / Metal are a huge pain. I'd recommend DX11 if you have windows access, or WebGPU if you don't. For WebGPU you can write it in javascript or natively in C++ / Rust (good tutorial here: https://eliemichel.github.io/LearnWebGPU/)

That being said, if all you want to do is live on the shader side and you don't want to write the API side, then Electronic Arts recently open sourced a great tool called GiGi that lets you get right down to authoring shaders and connecting them together. Think ShaderToy but WAY MORE FEATURES. https://github.com/electronicarts/gigi

path: 0 12842985, hotness: undefined, score: 2, children: 1
graphicsguy 2 points 3 years ago

This.

I ask my boss about project-wide stuff that might impact me and my team, discuss strategy / priorities / roadmaps, ask them to weigh in on anything where I need project leadership to help resolve an issue, and any perfunctory "goals" stuff (I hate it so much haha)

path: 0 3672259 3693260, hotness: undefined, score: 2, children: 0
graphicsguy 1 point 3 years ago

My broken brain just goes "but how would a decompressor know if '3101' was originally '30' or 101 '3's in a row?"

path: 0 2897362, hotness: undefined, score: 1, children: 0
graphicsguy 1 point 3 years ago

RenderDoc for debugging graphics

Imgui for tool UI

path: 0 2078427, hotness: undefined, score: 1, children: 0
graphicsguy 1 point 3 years ago

I worked remotely for the first 2 years of the pandemic. It was fine at first but when I switched teams and no longer knew everybody from before the pandemic, the social loss started to wear on me. It's not like we had social meetings on my old team, but I think I was able to pretend better or something when I knew everyone in real life.

I also started to struggle to stop working and I hated that and hated the space occupied by my workstation.

I also have a lot of equipment (console dev kits in games industry) and it takes up a lot of precious space.

For all those reasons I'm back in the office 100%. Also I prefer to collaborate in person in my job (it's much easier to hash things out with an artist in person).

Still, there are some things that are permanently changed in ways that make me sad. There will always be some remote folks, so every meeting must be remote accessible (and rightly so), which means we still have to sit on zoom calls a lot of the time. Also zoom has lowered the friction to having a meeting, so we end up having way more meetings.

I don't begrudge the WFHers. I want everyone to have what they want and be happy, and particularly for the parents out there, the saved commute time and flexible hours are a godsend.

path: 0 1294332, hotness: undefined, score: 1, children: 0

thanks for using Leebra!

go to feed...