nv30: broken vertex animation and skinning on nv40 Curie, maybe bad number max vertex uniforms
Some models were distorted, textures were distorted, and performance was slow. I first thought performance was slow because I know the game uses models with many bones and that may be too much for the hardware and I assumed the game was running using the slower alternative CPU code path.
But when I explicitly forced the CPU code path by setting
r_vboVertexSkinning 0 in game, performance started to be usable (no more 1fps, 15~35fps instead) and all graphical glitches disappeared!
I've noticed this in the dæmon engine log when
r_vboVertexSkinning 1 (VBO vertex skinning enabled):
Using GPU vertex skinning with max 93 bones in a single pass, some models may not be hardware accelerated.
I assume it should be
41 instead of
93. When running the Nvidia 304.134 nvidia driver, the max bone number is reported to be
41. For knowledge, GL 2.1 era radeon GPU (r300) also reports it to be
41. Intel GMA GPUs report it to be
256 (like GL 3.3 Mesa drivers) but that's probably because it's fully emulated.
This being set to
93 on nv40 Curie looks wrong. Nvidia doesn't do that to begin with.
I'm running released Unvanquished 0.53.2, which can be downloaded there: https://unvanquished.net/download/