Initial TBR chapter.
NB, fix the TBR link to the Simple Game Engine tutorial when it is published.
Can I ask if a lot of this was written by AI? I'm very surprised by a lot of the text. Also the notion that one might as a SW developer 'choose' between TBR vs IMR, and have code trying to determine what to pick (ref the PowerConsumptionAnalyzer code) is very strange to me.
Parts were written by AI, specifically the power consumption analyzer code as that is outside my normal wheelhouse; but looking at the references they looked solid and I edited it to make it read mostly correct to me. So, genesis by AI sure, but heavy human editing.
I'm not able to a point by point feedback, but for example the VK_EXT_robustness2 section seems like total nonsense to me. And claims about use of VK_KHR_dynamic_rendering_local_read by Unity and Unreal is as far as I know also not true. As I scroll through the guide there is in general a lot of strange claims and commentary I think.
Okay, no worries, I'll rewrite it.
Probably not too useful to drop more 'random' drive-by comments like this, but for another example I think none of the use-cases mentioned for VK_EXT_shader_tile_image (bloom, edge-detection, FXAA, SSR) makes sense as the extension only gives access to the current pixel while all of these effects need access to other pixels.
FWIW I've ping some folks here at Arm to see if we can help review and support development of the guide -- I think it's a great initiative to be clear, but it probably needs some close review especially as there is not too much good and up-to-date public info about current mobile GPUs to pull from (hence also why the idea of the guide is good, of course) :)
Thanks it's MUCH appreciated. I'm by far not the best expert at TBR; and I really want to try to get updated information out there. There's a reason I read all of the research articles linked and tried to put as much research into this chapter as I could. If we could get more details and more review, I'm much happier. Soon as I get a chance, I'm going to update from the comments already generated here.
The chapter title is Tile-Based Rendering Best Practices, but most of what it talks about is nothing to do with tile-based rendering but related to other aspects of vendor-specific implementation detail or orthogonal mobile GPU issues (constant registers, coherent memory, thermal, etc). For a Vulkan guide I'd probably split this up - having a topic focused only on the effects of being tile based is useful and the rest is somewhat a distraction.
The most important things for tilers (good use of loadOp/storeOp) seems to be buried right at the end, and the second most important (good use of pipeline barriers to get pipelining) isn't mentioned at all.
Not that much of a hardware guy, but isn't laziliy allocated memory / transient attachment and important Vulkan concept for TBRs? If so might be good to add that.
And I second the remarks about the power consumption part of that chapter. I tried to understand the code and data, but felt kinda lost. Wouldn't stuff like that require querying vendor specific apis to get real world power usage? Didn't see that mentioned anywhere.
Also some of the links don't point to anything usefull, e.g. these:
Imagination PowerVR Architecture Guide: Shows tile memory providing 10-20x bandwidth compared to external memory
Qualcomm Adreno Performance Guide: Demonstrates GMEM (tile memory) efficiency in mobile gaming scenarios
NVIDIA Tegra TBR Analysis: Research paper showing 60% power reduction through bandwidth optimization
IEEE Computer Graphics and Applications: Tile-Based Rendering analysis and improvements research
IEEE Transactions on Computers: Thermal management in mobile graphics processing research
Either point to or redirect to a (company) landing page instead of the linked e.g. "Research papers" or documents.
And other links don't make sense, e.g. this:
Vulkan-Hpp: Modern C++ bindings with TBR optimization examples
That links to the Vulkan-Hpp headers, I don't see why or how that relates to TBR optimizations?
I'm going to rewrite this. Sorry not ready for prime time.
Huawei Maleoon GPU Guide: Maleoon GPU Rendering Optimization
Currently information is scattered in various corners. And same information appears a few times including thing like "profile on target devices", or "Tile size not exposed by core Vulkan". The documentation structure could be improved by establishing a main line of reasoning and developing the content within the framework of this logic. The current version does not seem to be really useful for developers.