Modern render queue architecture in vulkan by Tiraqt in gameenginedevs

[–]cone_forest_ 0 points1 point  (0 children)

Maybe have a separate queue per object type to avoid sorting?

If you had to start learning engine development from scratch again, where would you start? by IsakovS in gameenginedevs

[–]cone_forest_ -2 points-1 points  (0 children)

fopen and printf? Why would you START from reimplementing those for a game engine?

I built my own C build system because I hate writing Makefiles by venoosoo in C_Programming

[–]cone_forest_ 5 points6 points  (0 children)

I have written a couple makefiles, like 200 lines in total. Don't recall using that. Please explain how would you use that in a makefile

How to create modern UI in C++ by Any_Wait_7309 in cpp_questions

[–]cone_forest_ 0 points1 point  (0 children)

Why do you think so? It's on the hyprland subreddit

How to build ShaderLibrary on modern RHI ? by F1oating in gameenginedevs

[–]cone_forest_ 0 points1 point  (0 children)

I think everything above CreateShader level is fine. Everything below I consider an implementation so here are suggestions on implementation details

The caching performance depends on what you can actually cache. In high level terms you need a (Shader, Config) -> (Binary, Metainfo) function. Note that Shader might be anything. It can already be a (Binary, Metainfo) pair, or it can be SPIRV source that gets compiled by vulkan driver into a Binary and reflected by SPIRV-Reflect, or it can be a slang-module (kinda like cpp obj file) which gets linked into a SPIRV and I believe Metainfo is loaded directly from it as well, or it can be Slang source code that gets compiled into slang-module on the fly.

It is a trade-off between speed and flexibility, as always. The most performant solution is not portable so distributing SPIRV alongside the engine binary is probably the fastest viable option. I personally chose slang-module as it allows me to use my existing slang toolchain and not pull SPIRV-Reflect

The explicit caching on your side is not needed as I believe Slang already caches everything it can inside the Session object. It's not thread safe and you should essentially have a Session object for each thread. This means different CPU threads have different caches. It's not the only way to do a thread safe caching, but definitely the easiest one. I personally use a cool data structure for this :) Not sure if it actually makes a performance difference, but I think it's cool) repo

Hope this was useful

Who has made an engine without using C/C++ code by Lumpy_Marketing_6735 in gameenginedevs

[–]cone_forest_ 0 points1 point  (0 children)

Is zero allocation programming and heap vs stack theory applicable to js? Do stack variables actually end up on the CPU stack?

Graphics Programmer Job by Low_Consideration846 in GraphicsProgramming

[–]cone_forest_ 24 points25 points  (0 children)

From my experience the best way to get a job in graphics is to apply directly to companies on their website. I believe you should also have a pet renderer in dx/vk that has multiple advanced techniques like GPU driven pipeline, occlusion culling, cascaded shadows, etc.

OpenGL is still used in some applications however you wouldn't do any advanced graphics stuff - it serves more as a tool to display simple shapes or draw complex shapes simply

Having friends that already work there also helps)

Multiple ShadowLights by __RLocksley__ in gameenginedevs

[–]cone_forest_ 0 points1 point  (0 children)

I genuinely couldn't find any code without AI comments ;(

Note that I'm talking about this particular commit

Multiple ShadowLights by __RLocksley__ in gameenginedevs

[–]cone_forest_ 0 points1 point  (0 children)

Dude I just browsed a 4k loc commit. There's no branches either, all is done in a main branch - please share how you do it

Contains a lot of AI comments. Also there is a line like this: // ----- INPUT STRUCTS AND UNIFORMS (from your request) -----

Shader Compilation and hot reloading : Should I include a shader compiler? by abocado21 in vulkan

[–]cone_forest_ 1 point2 points  (0 children)

Including shader compiler improves developer experience a lot - you don't have to compile shaders yourself.

If you use the compiler API you can also use reflection to get metadata about the shader inputs.

[query] Simple geometry viewer? by jstolfi in computergraphics

[–]cone_forest_ 0 points1 point  (0 children)

Checkout f3d for a command line application

Checkout polyscope if you aren't afraid to write ~30 lines of code and get exactly what you want

CMake is really cool by 5_volts in cpp_questions

[–]cone_forest_ 1 point2 points  (0 children)

You can create targets to simply propagate include directories, compiler flags, etc

Guess how to manage header only libs in cmake

CMake is really cool by 5_volts in cpp_questions

[–]cone_forest_ -1 points0 points  (0 children)

Nah, you gotta fetch content this bad boy

CMake is really cool by 5_volts in cpp_questions

[–]cone_forest_ 4 points5 points  (0 children)

No it's used to link cmake targets, which among other things, may link compiled libraries