码迷,mamicode.com
首页 > Web开发 > 详细

TBDR下msaa 在metal vulkan和ogles的解决方案

时间:2019-07-24 19:41:59      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:alias   nal   locate   tps   str   double   bdr   use   arm   

https://developer.arm.com/solutions/graphics/developer-guides/understanding-render-passes/multi-sample-anti-aliasing

msaa在local mem上做很省但是 带宽不处理多出8x  对于4xmsaa

计算如下

处理前

python
bytesPerFrame4x = 2560 * 1440 * 4 * 4
bytesPerFrame1x = 2560 * 1440 * 4 * 1

# Additional 4x bandwidth is doubled because the additional samples
# are written by one pass and then re-read to resolve the final color
bytesPerFrame = ((bytesPerFrame4x * 2) + bytesPerFrame1x)
bytesPerSecond = bytesPerFrame * 60
               = 7.9 GB/s

处理后


python bytesPerFrame1x = 2560 * 1440 * 4 * 1 # All additional 4x bandwidth is kept entirely inside the tile memory bytesPerSecond = bytesPerFrame1x * 60 = 884 MB/s

 

处理的方法就是load store action选一共1x那种

vulkan和metal都可以这样处理 之前有发blog

https://www.cnblogs.com/minggoddess/p/10950349.html

对于

ogles

用如下扩展

[EXT_multisampled_render_to_texture][EXT_msaa] extension

https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_multisampled_render_to_texture.txt

 

vulkan还要用

using VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT and constructing the VkImage with VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT.做memoryless

metal直接设置memoryless

这块memoryless 还不知道ogles的方案 不过好在这块只是footprint没有bandwidth了

 

所有tbdr下这套解决方案 在ogles 在unity估计写起来比较麻烦。。 多半是extension。。。又够我做一壶的了

 

TBDR下msaa 在metal vulkan和ogles的解决方案

标签:alias   nal   locate   tps   str   double   bdr   use   arm   

原文地址:https://www.cnblogs.com/minggoddess/p/11240211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!