I still think it would be better to have branching capability than fail to do it because of performance issues.
Future hardware architectures can deal with figuring out how to optimize performance with branching. After all, since 3D is still much more predictable than CPU code, it should still be easier to do the proper branch prediction. What may prove impossible, however, is keeping all pixel pipelines full as often as they are today.
But, game developers need not use branches. Just because they exist in hardware doesn't mean that they need to reduce performance. Any smart developers will only use them in limited situations, and the hardware designers may release white papers on "how to optimally use flow control" in order to keep the pipelines moving.
Some examples might be:
1. Avoid sending pixels whose branches flow in a chaotic order (i.e. lots of pixels that follow the same branch should be sent at once).
2. Keep from having an excessive amount of branching.
Anyway, to me, branching is just a way to avoid the need for auto-multipass, which we know could slow down the pipelines even more (except, perhaps in scene graphs).
Future hardware architectures can deal with figuring out how to optimize performance with branching. After all, since 3D is still much more predictable than CPU code, it should still be easier to do the proper branch prediction. What may prove impossible, however, is keeping all pixel pipelines full as often as they are today.
But, game developers need not use branches. Just because they exist in hardware doesn't mean that they need to reduce performance. Any smart developers will only use them in limited situations, and the hardware designers may release white papers on "how to optimally use flow control" in order to keep the pipelines moving.
Some examples might be:
1. Avoid sending pixels whose branches flow in a chaotic order (i.e. lots of pixels that follow the same branch should be sent at once).
2. Keep from having an excessive amount of branching.
Anyway, to me, branching is just a way to avoid the need for auto-multipass, which we know could slow down the pipelines even more (except, perhaps in scene graphs).