// With the VK_KHR_maintenance1 extension, you can specify negative viewport height. // This allows negative height to be specified in the height field to perform a // y-inversion of the clip-space to framebuffer-space transform. This allows you // to avoid having to use gl_Position.y = -gl_Position.y, and makes porting to other // APIs like DirectX12 much easier. // You negate the height *and* move the "origin" to the bottom left. // Unlike the original AMD extension which just negated height. VkViewport viewport = {}; viewport.x = drawState->viewport.x; viewport.y = drawState->viewport.height - drawState->viewport.y; viewport.width = drawState->viewport.width; viewport.height = -drawState->viewport.height; viewport.minDepth = drawState->viewport.minZ; viewport.maxDepth = drawState->viewport.maxZ; vkCmdSetViewport(commandBuffer, 0, 1, &viewport);