Compute Demo
Our Renderer is very new and all 10 previous techdemos run on Graphics Queue and have Graphics work only.
I spent a few days adding multi-queue submission to YugenRendererBackend or as we like to call it YRB.
Also spent good amount of time completing our SPVReflector to deduce SPIR-V (generated by HLSL) DescriptorTypes.
Thanks to this wiki page by DirectXShaderCompiler.
Finally YRB now has the feature to submit to different queues and submit compute work and put Cross-Queue barriers.
Here is our 11th TechDemo which is updating 2 milion cubes positions in a Compute Pass and Will Render them instanced in a Graphics Pass.
Also there is a flag to enable/disable using Graphics or Compute Queue, I didn’t expect much difference due to several reasons:
- The job is heavy but the CommandBuffer is actually light-weight (Dispatch+some setup)
- Our 2 passes are linear and dependant on eachother, so nothing good unless we try async compute in a more complex rendering pipeline.
#if USE_COMPUTE_QUEUE > 0
YRB::ComputeQueue_Submit(si);
#else
YRB::GraphicsQueue_Submit(si);
#endif
There seemed to be no difference as expected :)
Also make sure to checkout my other posts on Yugen Engine