nv30: broken vertex animation and skinning on nv40 Curie, maybe bad number max vertex uniforms
In the thread about enabling ARB_framebuffer_object
on nv40 Curie I reported some visual glitches I've noticed when running Unvanquished on an NV4A C51 Curie Nvidia GeForce 6150 LE GPU.
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 Mesa main, commit 90a38bad with !19513 (closed) MR applied on top.
I'm running released Unvanquished 0.53.2, which can be downloaded there: https://unvanquished.net/download/