Skip to content
0:00 / 0:00

#levelofdetail#imposters#gpupipeline

When Optimisations Work, But for the Wrong Reasons

SimonDev

237K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 3 people: 3 in engineering communities.
  • Presented by SimonDev

Intermediate. Assumes working knowledge.

1.7M views2 years ago3 recommendations

Graphics and audioHardwareRenderingGPUs, shaders and CUDAPerformance and optimization

SimonDev explains why graphics optimizations like level of detail and imposters work from a GPU hardware perspective.

Level of detail and imposters are effective optimizations that work for reasons you may not fully understand. Let's explore why, from a hardware perspective, these work. Gamedev Courses: simondev.teachable.com/ Support me on Patreon: patreon.com/simondevyt Follow me on: Instagram: instagram.com/beer_and_code/ Twitter: twitter.com/iced_coffee_dev In this video, we explore the underlying reasons why optimizations like level of detail work. This involves understanding at a deep level, what the GPU expects in terms of data, what the hardware is optimized for, and how the pipeline and physical hardware units are setup. References: developer.nvidia.com/content/life-triangle-nvidias-logical-p… gpuopen.com/wp-content/uploads/2021/01/AMD_Graphics_pipeline… amd.com/system/files/documents/rdna-whitepaper.pdf shaderbits.com/blog/octahedral-impostors humus.name/index.php?page=Comments&ID=228 g-truc.net/post-0662.html developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/… developer.arm.com/documentation/102695/0100/Triangle-and-pol… youtube.com/watch?v=ZRhJT2nmvA4 youtube.com/watch?v=EE-4GvjKcfs youtube.com/watch?v=jKQem4Z6ioQ youtube.com/watch?v=QdBZY2fkU-0 youtube.com/watch?v=nWm_OhIKms8 youtube.com/watch?v=-50MJf7hyOw

Why it's here

3 people recommend this

What people say. Recommended for its clear explanation of how GPU hardware pipelines handle small triangles and why level of detail optimizations are necessary.

u/Supercoder2in r/GraphicsProgramming • Recommends

On “Does triangle surface area matter for rasterized rendering performance?”

If you want to watch a 22min video about exactly this i can recommend: link to this video

u/BrokenG502in r/GraphicsProgramming • Recommends

On “Given only a put_pixel(x,y) function , what is the most impressive thing you can do ?”

IIRC the software rasterizer in unreal was because nanite uses very small geometry, which GPUs aren't great at rendering. This video [video explains it better than I could ever hope to.

u/Unarmed1000in r/GraphicsProgramming • Recommends

On “What am I doing so wrong that I can't draw 1 million points on a screen ?”

While instancing will absolutely help, if your quads a very small that itself can tank the performance. See this article and this video

u/ccapitalKin r/GraphicsProgramming • Mentions

On “Why can compute shaders be faster at rendering points than the hardware rendering pipeline?”

link to this video ?

u/nonunfuckablein r/FPGA • Mentions

On “Can anyone ELI5 the difference among "AI workloads" that work better on different silicon?”

All processors are very sensitive to the shape of data and control flow of a given program. The answer to why one might work better on a specific processor is not very clear cut, and in general you can modify a program slightly to massively improve performance on a specific architecture. There also some bias in that once you have a specific architecture (as google might), you will be more likely to write programs for that architecture, so a side by side comparison is rarely that useful. I would say there are not general answers, but the answers that do exist all stem from data locality, bottlenecks in things like transfers between stages, maximum operations inside cores, and how well the pr…

u/european_impostorin r/GraphicsProgramming • Mentions

On “rendering without textures”

There is a huge dropoff in performance when you approach 1 triangle per pixel