Conversation
…utorial 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 |
|
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 |
|
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 |
…ines, and implementation-agnostic practices.
|
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". |
…ation, attachment management, and mobile-specific techniques
…sung GPU framebuffer optimization guide
|
A bit orthogonal to tilers, but it might be useful to explain that compute shaders can have lower effective bandwidth compared to the vertex and fragment stages on mobile GPUs. Developers may want to move work to fragment and avoid enabling |
Refine TBR best practices: improve precision guidance, clarify MSAA/HSR sections, and expand attachment operation details
|
#367 I added an embedded chapter here as it looked like some of the advice was starting to get away from TBR and into generic embedded programming. That made me realize we had a gap. Please help review that and see if we need to add things there or move some things from here into there or vice-versa. |
…6/HSR guidance in TBR best practices
# Conflicts: # antora/modules/ROOT/nav.adoc # guide.adoc
NB, fix the TBR link to the Simple Game Engine tutorial when it is published.