First post, by vvbee
S3d is the name of the hardware 3D engine in ViRGE. S3d Toolkit Library is S3's C API for programming the S3d engine. What I'm talking about is the performance of the S3d engine as programmed using the S3d Toolkit Library. The performance of S3d for short.
I wrote a test scene based on one of Tomb Raider's levels. It consists of about 400 triangles of completely static, fully textured geometry. All transformations are baked into the mesh, little runtime load on the CPU. Supports the DOS and Win32 versions of S3d.
The first results on a ViRGE/DX at 640 x 480 with an Athlon 64, vsync disabled:
Though all were run from Windows 98, the DOS versions tended to run faster, which isn't too surprising.
The ViRGE isn't a 640 x 480 platform and the numbers show it, but non-textured performance isn't too bad. The non-textured test used a black color for all vertices, which may or may not affect performance. Ideally I'd pick a color from the texture, and I might make that modification.
What surprises me is that getting rid of screen clear (S3DTK_RectFill) had no impact on performance. I'd expect it to be a relatively fast operation, but not that fast.
That removing perspective correction made no difference in FPS might or might not be due to the particular geometry of the scene, which again is also static.
UV and XY range guards (S3DTK_VERIFY_UVRANGE | S3DTK_VERIFY_XYRANGE) were always enabled. I don't know about the UV coordinates, but there's slight XY overflow.