Very exciting things happening in the new OpenGL 4.3 standard. I'm sitting listening to Mark Kilgard's OpenGL 4.3 talk at SIGGRAPH currently. These are the take-aways:
Compute Shaders - OpenGL now has general CUDA/OpenCL functionality built into the graphics pipeline. Same notion of using a set of threads inside a workgroup is used, and these can all communicate with each other and with global textures. Furthermore, having this inside of a shader allows one to unify the computations and outputs with OpenGL textures, vertex arrays, etc. This means no third-party API is needed for GL <-> GPGPU compute functionality.
Debug - Allows one to annotate and use debug messages help them debug their OpenGL code.
He showed a few examples: a few image processing examples, Soble filtering, Gaussian filtering, etc all in real-time. Looking forward to seeing some of the image processing techniques being used in games. Also showed a particle physics simulation where the compute shader integrated the motion of hte particles and updates the positions in a GL vertex buffer. All without going to the CPU, yay!
Many many many more. Be on the look out for Mark Kilgard's slides on this being posted soon.
Other things: Further Linux support by NVIDIA.
Bindless Graphics: Instead of binding to textures (which leads to a lot of different buffers and textures), you can map all the texture buffers into your GPU address space and access these inside the shader. This means you have access to MANY more textures in a shader, and you don't have to bind them from the CPU side. This is only on NVIDIA's Kepler architecture. Mentions this could be useful for ray-tracing where each ray needs access to the entire scene.
Exploiting the modern graphics pipeline: Similar bindless for Uniforms, materials, etc. MultiDrawIndirect -> Draw several batchs of stuff in a single call. Supports indexed subrouties.
No comments:
Post a Comment