"quick" as in "I write some few lines of code and I see something going on" ..
Ok .. took me basically 3 weeks nearly 1 whole month "to get somewhere that does what I need to do" ( graphically ) "thanks Xbox for forbidding anyone to use anything else but DX12" ( which actually is a good thing because forced me to learn it ) but "no thanks" you made me throw away something that I had already done was hoping to re-use it.
So DX12 is "Vulkan MS version" if they are not identical they are "almost the same" actually I THINK that maybe it's true DX12 "does some things a bit better" but oh boys I think "few things like Vulkan/DX12 give you SO MUCH rope to hang yourself with" .. basically "there's so much you can shit all over the place" ..
If you scared of structures with arrays of structures with arrays of arrays of structures and structures and more structures and pointers to structures that point to pointers to array of other structures and shit like that "don't get close to it" ..
I think "the word" on DX12/Vulkan is ".. there is a Descriptor for that !" they love Descriptors, they really do ..
I'd dare to say that while conceputally quite a few things are not very complex to understand is the implementation details where all goes really weird ( and some things are really complex to understand ) "you want to put A into B" but before you need to be sure that "A" is not really in use nor "B" and that "A" is in a state to be ready to be put into somewhere and "B" is in a state to be ready to accept something and that "A" and "B" can both "accept" what you are exchanging ..
"the heaps" .. of course all that shit need to be/go somewhere "in some memory, of the right type, in the right moment, and be sure you are not touching it while the GPU is using it" .. heap and heaps and heaps descriptors and barriers and "transitions" and the like ..
By the time you'll get "that damned triangle on the screen" you'll totally forget "why you ever wanted it in the first place"
Also must be said "one thing is do things the DX12/Vulkan way" .. but "it's all another" when you actually say ".. but I need to do things in a bit of a DIFFERENT way" ..
Anyway my call would be "reduce the number of descriptors and heaps" .. "make it all one and the same" or such .. also the way shaders are run/compiled ( "you and your strafucking 'shaders signatures' " ) should be simplified a bit.
"Does it REALLY need to be so 'overly fragmented/complicated' I mean really WTF is that HW doing with all that ??"
Anyway it's interesting ? Yes very !
Is it for "doing things quick" ? .. TOTALLY THE OPPOSITE OF IT !
Is it well documented ? .. you are KIDDING ME RIGHT ? .. NO, IT ISN'T !
It is powerful ? Well I SUPPOSE IN THEORY "you can't have more control than that" .. "can you make it really performant ?" .. I'd dare to say MAYBE ONLY if you are someone that works with AMD/NVIDIA AND knows PERFECTLY the API and what it really does and you are "a master" in using "Performance Analysis Tool" which are really complex to use/understand what is really going on.
And also "and you have a fuckload of time to spend in measuring/optimising", again "assuming you really know VERY well the ins/out of the APIs".
I can tell you IMMEDIATELY "I don't and I probably never will" ..
But I can get "something that works OK" at least for what we need.
But yeah "after DX12/Vulkam" the "only other thing I could see" is "program the GPU/CPU directly in ASM without any compiler" .. "because we are kinda like that" .. if it's not really like that it's very close to, only that you use CPP.
But yeah "if you want a degree in SW engineering then use DX12/Vulkan", "if you want to make games" it's not for you



