What Factors and Parameters Affect Bloom Performance?
What factors and parameters have a significant impact on the performance cost of Bloom?
Bloom performance overhead primarily stems from GPU bandwidth, computational load, and multi level sampling. The key influencing factors and tunable parameters are as follows: I. Core Performance Factors 1. Sampling Resolution & Downsampling Levels Bloom typically starts downsampling from 1/2 render resolution e.g., Blur1–Blur5 . Lower resolution e.g., 1/16 and more levels reduce bandwidth but degrade blur quality; conversely, high resolution sampling e.g., 1/2 significantly increases texture read bandwidth and memory throughput pressure. Mobile recommendation: Start from 1/4 or 1/8 to reduce initial sampling overhead. 2. BloomQuality Level default enables all 5 blur levels + high quality convolution – maximum cost. disables certain levels or uses simplified Gaussians, substantially reducing GPU time. 3. ScreenPercentage – Controls Convolution Accuracy means FFT convolution executes at 50% resolution. Increasing this value e.g., to 100% linearly increases compute and bandwidth – trade off carefully. 4. Bloom Convolution Enable Enabling Bloom Convolution triggers FFT convolution, which relies on full resolution kernel textures + extra buffers , significantly increasing GPU compute and memory bandwidth pressure. Recommended only for high‑end devices or offline rendering. 5. Cascading Effects within Post‑Processing Pipeline Bloom is often chained with Tonemapping, Depth of Field, Motion Blur, etc., causing multiple full‑screen texture reads/writes. On mobile platforms especially, multi‑pass post‑processing easily leads to bandwidth bottlenecks measured at 20% of total GPU bandwidth . II. Key Tuneable Console Variables Unreal Engine | Variable | Recommended Value Mobile | Effect | | | | | | | 2–3 | Reduces blur levels, lowers draw calls and sample count | | | 30–50 | Shrinks convolution resolution – directly reduces bandwidth | | | 1 | Enables async compute to relieve render thread pressure | | | 1 | Reuses convolution kernel to avoid re‑uploads | | | false if local exposure not needed | Disables dynamic exposure sampling, saves one texture read | III. Optimization Recommendations ✅ Prefer lowering BloomQuality + ScreenPercentage – better balances quality vs. performance than disabling Bloom entirely. ✅ Use and to quantitatively locate Bloom cost look for the phase . ❌ Avoid enabling Convolution or Dirt Mask on low‑end devices – both add extra texture sampling and blending. 📉 Combine with and frame rate limiting – prevents Bloom from being repeatedly resampled at high frame rates. Note: Bloom has a significant impact on GPU temperature and power consumption. Measured data shows that ~10 GB/s bandwidth can contribute ~1000 mW of power ≈20%+ of total device power , making it a primary cause of overheating on mobile devices. Let me know if you need a more concise or differently formatted version.