美文网首页
关于UNITY_BRANCH、UNITY_UNROLL的小知识

关于UNITY_BRANCH、UNITY_UNROLL的小知识

作者: 暴走TA | 来源:发表于2019-09-26 08:30 被阅读0次

    在CSDN看到的 转过来分享一下


    • UNITY_BRANCH这个宏在下列平台中被定义为[branch]:

    D3D11、GLCore、GLES3、Metal、PSSL、Switch、Vulkan、XBoxOne

    意为如果if表达式为false,不执行if中的语句。详见MSDN。

    而在GLES2和不可识别的平台上被定义为空,则不论表达式的结果是什么,都会执行所有分支的语句。可能是在这类平台上不支持[branch]特性的关系,这一点有待确认。


    • UNITY_UNROLL这个宏在下列平台中被定义为[unroll]:

    D3D11、GLCore、GLES3、Metal、PSSL、Switch、Vulkan、XBoxOne

    意为基于循环次数展开循环。详见MSDN。

    而在GLES2和不可识别的平台上被定义为空,根据文档的说明,这种情况下首先尝试不展开循环,如果尝试失败,才使用展开循环的版本。可能是这类平台自身指令数的限制,展开循环容易导致指令数过多,这一点有待确认。


    ————————————————
    版权声明:本文为CSDN博主「金城寺」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_42163773/article/details/85099711

    相关文章

      网友评论

          本文标题:关于UNITY_BRANCH、UNITY_UNROLL的小知识

          本文链接:https://www.haomeiwen.com/subject/ihibuctx.html