Pin the buffer index and register for push constants
A push constant block has no binding number, so neither translation has
anything to derive a buffer index or a register from, and a backend
mapping it onto something native has to be told where it ended up.
For MSL, an automatically assigned index would land among the low ones,
which is where the Metal backend of QRhi packs the vertex buffers, so
pin it in the range already reserved for SPIRV-Cross's implicit buffers.
The index is only reported when the block survives translation, since
SPIRV-Cross drops it from the entry point when nothing reads it. For
HLSL, reserve b0 for the block so that every stage agrees on the
register whatever its uniform block count, and report it the way the MSL
path reports its index. translateToHLSL() gains the shader info out
parameter translateToMSL() already had.
qsb -d learns to print the two new keys.
Task-number: QTBUG-145700
Change-Id: Ifa1760fab08ca0d0c798c3afc5bc90604bc4ca79
Reviewed-by: Aurélien Brooke <aurelien@bahiasoft.fr>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>