The name on this is somewhat self-explanatory in this case, with enhanced layouts dealing with ways to optimize the layout of data in shader programs for greater efficiency. Khronos’s other major addition with OpenGL 4.4 is enhanced layouts for the OpenGL Shader Language (ARB_enhanced_layouts). Like most Khronos additions this is a forward looking feature, with a clear outlook towards what can be done with HSA and HSA-like products that are due to be launching soon. The buffer storage mechanism in turn also formally allows GPUs to access those buffers not being stored locally, giving GPUs a degree of visibility into the contents of system memory where it’s necessary. Buffer storage at its most basic level allows developers to control where memory buffer objects are stored in these unified devices, giving developers the ability to specify whether buffers are stored in video memory or system memory, and how those buffers are to be cached. Buffer storage is directly targeted at APUs, SoCs, and other GPU/CPU integrated devices where the two processors share memory pools, address space, and other resources. The biggest feature hitting the OpenGL core specification in 4.4 is buffer storage (ARB_buffer_storage). Most of these are admittedly so low level that it would be difficult for anyone but developers to appreciate, but there are a few items we wanted to go over for their importance and for wider reflection of the state of OpenGL. This year Khronos isn’t making such sweeping changes to OpenGL, but they are adding several new low-level features that should catch the eyes of developers. OpenGL 4.4 follows up on OpenGL 4.3, which last year broke significant ground for OpenGL by introducing compute shaders, ASTC texture compression, and other new functionality for the API.
This being the 5 th edition of OpenGL 4.x, Khronos has continued iterating on OpenGL in concert with their pipelined development process. Khronos’s first announcement for SIGGRAPH 2013 is that the OpenGL 4.4 specification has been ratified and released. Khronos membership in turn is a who’s who of technology, and includes virtually every major GPU vendor, both desktop and mobile. The Khronos Group is of course the industry consortium responsible for OpenGL, OpenCL, WebGL, and other open graphics/multimedia standards and APIs, so their announcements carry a great deal of importance for the industry. Most years the first major announcement to hit the wire comes from the Khronos Group, and this year is no different.
As a result SIGGRAPH offers something for everyone in the graphics/GPU trident, gaming, compute, and professional rendering alike.
And though it isn’t really a gaming conference – this is a show dedicated to professional software and hardware – a number of those announcements do end up being gaming related, if only tangentially.
Outside of the individual vendor events and individual technologies we cover throughout the year, SIGGRAPH is typically the major venue for new technology and standards announcements.
What that is mean in practice? What code it's going to allow you to write? That's the question we needs to ask ourselves when we think about graphics APIs.Kicking off this week is the annual SIGGRAPH conference, the graphics industry’s yearly professional event. This "CTM: closer to the metal" idea is BS, it doesn't mean anything.
This is replacing CPU side resource switching by GPU based resource indexing.įrom my experiments out of that stuff in a synthetic benchmark so that I could hit the GPU command processors bottleneck, I could launch 800000 draws per frame at 60Hz on Kepler and 300000 draws per frame at 60 Hz on Southern Islands. What's better than low overhead? No overhead. Why having access to an "infinite" number of resources is interesting?īecause of MultiDrawIndirect (OpenGL 4.3, supported by AMD, Intel and NVIDIA) that allows the GPU command processor to submit itself the draws and for each draw we can index different resources in the GPU. The bindless API is actually a less efficient API that the resource binding API but it provides that feature. The bindless API is interesting because it means that when the GPU is executing something it can access any resources as long as the resource is in GPU accessible memory.