Next up: Shader Model 6.0

Direct3D X 12 graphics will be finally complete. No more reason to be interested - at least for me - in Vulkan & SPIR-V if this means finally DirectCompute will reach OpenCL and Cuda for the most important features.
Also, I hope this will bring MSAA programmable sample points or something like that.
Finally I have big hopes in templates and lambdas into HLSL.
 
Direct3D X 12 graphics will be finally complete. No more reason to be interested - at least for me - in Vulkan & SPIR-V if this means finally DirectCompute will reach OpenCL and Cuda for the most important features.
Also, I hope this will bring MSAA programmable sample points or something like that.
Finally I have big hopes in templates and lambdas into HLSL.
Do lambdas mean something else in HLSL? Or are they still anonymous functions?
 
AFIK they should be anonymous functions as in C++ and any other C-like language, and I hope in HLSL the compiler will - when it is possible - to automatic inline/unroll those functions like in other language compilers... But I also admit, I find lambda syntactic-sugar pretty when not abused..
 
C++ lambdas are not quite (just) anonymous functions, they are proper objects (of unspecified type, but conceptually equivalent with a functor which may or may not be stateless depending on captures). The differences can be relevant, depending on context and usage pattern (e.g. the ease of unrolling).
 
Thanks; so just to clarify when you refer to lambda unrolling you are referring to the assembly, as in what the compiler was able to unroll it to ?
 
Programmable Blending... wow thats good to hear. Wave level intrinsics. I'm impressed... was hoping for those in Vulkan but DX delivered instead.
 
Thanks; so just to clarify when you refer to lambda unrolling you are referring to the assembly, as in what the compiler was able to unroll it to ?
That should have read as "inlining" and not "unrolling", but I crossed the streams in my mind. There are interactions between the ease of inlining some f() and the ease of automatically unrolling for (...) { f(); } but that's not what was in scope for that post of mine. Having said that, writing an automated unroller such as static_for<...>(...) is terribly nice in the presence of lambdas, imho, since it maintains locality of reasoning.
 
Back
Top