powervr-graphics / PowerVR-Series1

Original source code for the PowerVR Series 1 GPUs : Midas Arcade, PCX1 and PCX2
MIT License
282 stars 20 forks source link

Technical documentation as well? #3

Open stilett0 opened 2 years ago

stilett0 commented 2 years ago

Thank you all so much for this release!

For the most part, with regards to the SGL SDK folder, this is the same SDK previously released by "idspispopd" at VOGONS.org via VOGONSDrivers.com with the permission of ImgTec: http://www.vogonsdrivers.com/getfile.php?fileid=431&menustate=0 and may have been temporarily hosted by ImgTec themselves at http://www.imgtec.com/powervr/insider/sdkdownloads/legacy.asp (I seem to remember seeing it hosted there briefly in 2013 at least, such as https://web.archive.org/web/20130314030346/http://imgtec.com/powervr/insider/sdkdownloads/legacy.asp except that it isn't there. Ask Simon, I guess!)

That said, your other additions, such as the driver sourcecode, are most welcome!

VGAMuseum.info has hosted some of this as well, including backup copies of the NEC datasheets. Not sure if you can add those or not! http://vgamuseum.info/images/doc/videologic/

However, lengthier technical hardware documentation than a 10 or 14-page datasheet from NEC has never been released.

While releasing the SDK under the MIT license goes a long way to fill in the blanks, it would be very cool to see the official NEC hardware chip docs, or whatever ImgTec created themselves.

At any rate, the big win here is the relicensing under the MIT license!

With regards to the Scitech Software stuff, according to Wikipedia (https://en.wikipedia.org/wiki/SciTech_Software ), Alt Richmond Inc is the current IP owner, you would need to reach out to them for permission to add: http://www.altrichmond.ca/contact.html

leilei- commented 2 years ago

Personally I'd like to know if there's at least documentation on how PVR1 does bilinear filtering. How it does RGB is the same as PVR2/3, but the alpha channel might be a 4-bit box filter from my guestimation and i'd like to verify that.

leilei- commented 2 years ago

(actually on second thought, simulat3/texas.c has a lot of insight on that matter)

S-Fe commented 2 years ago

PCX1 didn't do bilinear - it only had linear blending between MIP map levels (and nearest sampling in each level). I think, in "GL speak", it'd be described as GL_LINEAR_MIPMAP_NEAREST

PCX2 added bilinear, but ONLY when in the top map, and it would transition from Bilinear to the LINEAR_MIPMAP_NEAREST when the top MIP map level was minified by about (and don't quote me) 70% ? (This differs from GL which switches between filters once you change from magnification to minification, but I believe we found be visually superior cross-over point)

leilei- commented 2 years ago

I'm just fixated on the blocky texel fuzzies and want to try reproducing them in GLSL :)

PCX2's alpha filtering and modulation has some unique characteristic look to it as well (or at least I think it does in GLQuake/q2/etc). The modulation looks wrong (subtractive?) but was certainly more than what ATI, Matrox and S3 could do then.

S-Fe commented 2 years ago

I'm fairly certain the blending is as I said but it may be that the "alpha" channel in the texture (and/or on the plane) was "translucency" rather than "opacity". Again, it's been a long time so take with a large grain of salt.

leilei- commented 2 years ago

Some years back (while in filter study mode) I've made a gif of PCX2's alpha filtering and modulation

https://i.postimg.cc/cCVkxbsj/pvrfade.gif

S-Fe commented 2 years ago

Sorry - not sure how to interpret that.

If you want to know how the blending is done, I suspect looking in simulat/texas.c might be good start (but again it was a long time ago so that might not be the right place)