Showing posts from October, 2017

VK9 - Status Report - OCT

This month progress has continued on shader support. Several new features have been added including swizzle operations on targets, temporary registers, input/output register decoration, and many small improvements/fixes. As of this writing my current focus is on constant registers. D3D9 allows constants to be defined either in the shader or by calling functions from the C++ code. The equivalent feature in Vulkan would be push constants. However, The minimum size guaranteed for push constants is only enough for a couple matrices. Currently I'm handling DEF instructions with true constants inside of the shader. My intended approach with the ones defined from c++ code is to look at every place one is used that is not defined and create a push constant block that includes variables for all of them. If more are used than are allowed by the current hardware for now I'll write an error. I have noticed that some hardware allows 256 bytes instead of 128 bytes which gives us more space …