I don't understand everything they're talking about - some of it is just over my head, but one thing really caught my attention:
To reduce even more driver overhead, and to better compete against DirectX 12, they added a new way to set and store model state in optimized memory locations on the GPU.
Supposedly this speeds up matrix-based transformation operations by as much as 12%, which is important since we transform tens of millions of vertices a frame. Fillrate is still the main bottleneck, but still this is a great improvement and might save you a few milliseconds per frame on the GPU's side.
AMD was giving a video example of it behind closed doors today, but the video is behind a paywall and required me to sign a NDA. If you can't access it, in the video they showed this example code:
[rollup="AMD example code"]
vkBegin(); //Begins a series of Vulkan commands.
vkPushMatrix(VK_MODELVIEW); //Pushes a new matrix, so the videocard keeps it in memory for the future operations.
vkPushVertex3f(1.0f, 1.0f, 0.0f, nullptr); //Pushes a vertex as part of a 3D model. Always pass 'nullptr' into the fourth parameter,
vkPushVertex3f(0.0f, 0.5f, 0.0f, nullptr); //because it's just there for future extensibility. Though if you currently have a VK_PROJECTION matrix bound,
vkPushVertex3f(0.0f, 0.5f, 0.0f, nullptr); //you have to cast a boolean 'true' value to a void* and pass that in, or nothing will draw.
vkPopMatrix();
vkEnd(AMD_extension_optimize_for_specific_driver_version_223242114a); //Ends the series of Vulkan commands, or else crashes.
[/rollup]I'm rather excited to get a chance to try this out, but the drivers won't be released until 2019, and will only support one chipset. DirectX 12 is pretty much dead.