Skip to content
0:00 / 0:00

#opengl#driveroverhead#bindlessrendering

Beyond Porting: How Modern OpenGL Can Radically Reduce Driver Overhead (Steam Dev Days 2014)

Steamworks Development

50K subscribers • 4 videos on Hallway

YouTube

Advanced. Deep dive for people who know the field.

59K views12 years ago2 recommendations

Graphics and audioSystems programmingRenderingPerformance and optimizationGPUs, shaders and CUDA

Cass Everitt and John McDonald explain how to use modern OpenGL extensions like bindless rendering and MultiDraw to eliminate driver overhead.

In this session, Cass Everitt and John McDonald from NVIDIA will talk about some newer extensions to OpenGL and how they can reduce (or even eliminate) driver overhead. We'll discuss where performance goes, how to effectively profile GL, as well as specific extensions such as bindless rendering and MultiDraw commands. Speakers: Cass Everitt (NVIDIA), John McDonald (NVIDIA) Slides (PDF): media.steampowered.com/apps/steamdevdays/slides/beyondportin… Slides (PowerPoint): media.steampowered.com/apps/steamdevdays/slides/beyondportin…

Why it's here

2 people recommend this

What people say. Engineers recommend this talk for understanding the costs of state changes and how to optimize render loops.

u/hdhdhdhs73in r/GraphicsProgramming • Recommends

On “Relative Costs of State Changes”

Source: link to this video From 8 years ago and OpenGL, not sure if it’s the same with modern stuff but interesting nonetheless

u/corysamain r/gameenginedevs • Recommends

On “Another Bad Decision? Adding Modern APIs”

What does your render loop currently look like? Is it `for each entity: entity->draw();` or something more like https://realtimecollisiondetection.net/blog/?p=86 and link to this video ? If it's the former, you've got some refactoring to do before stepping up to https://howtovulkan.com/

u/corysamain r/GraphicsProgramming • Recommends

On “Want to get started in Graphics Programming? Start Here!”

…errain segment 22 in sector5,5". With that you just need to figure out how to flatten the transforms quickly. But, resolving arbitrary state permutations at runtime is fighting against the hardware and the driver. For more insight into this, check out https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ link to this video…

u/corysamain r/GraphicsProgramming • Mentions

On “How should I handle textures and factors in the same shader?”

It's a balancing act. But, more than *one* is definitely OK. Ideally, you use a "small" number of shaders so you only change shaders a few times during a frame. But, there's a *lot* of flexibility there. I give some advice on starting out in that direction in the comments here. If you have two shaders that are almost the same, it's totally fine to merge them do a branch based on a constant to cover a small difference. The balance is that if you have a lot of branches like that, the compiler has a hard time keeping the register usage down. For advanced stuff, these are the classic presentations https://gdcvault.com/play/1020791/Approaching-Zero-Driver-Overhead-in link to this video link to this video