kjliew / qemu-3dfx

MESA GL/3Dfx Glide pass-through for QEMU
GNU General Public License v2.0
370 stars 49 forks source link

ATI Ruby Assassin demo: missing 1010102 backbuffer format #126

Closed tomnic79 closed 1 month ago

tomnic79 commented 1 month ago

I'm running all the old ATI demos in my Qemu-3dfx installation and I get an error when trying X1800 based demos, just like Ruby - Assassin: missing 1010102 backbuffer format... is this fixable?

I tried to modify the sushi.ini to use a 8 bit backbuffer format, demo starts loading but it ends with the error DF16 texture feature missing.

I've read that wine d3d9.dll implementation doesn't and won't support such a feature. Is this true?

kjliew commented 1 month ago

You can't be wrong with what Master Dege has already explained at: https://www.vogons.org/viewtopic.php?p=733399#p733399

Yes, both ToyStory and Assassin demos aren't currently supported by Wine. Though I am pretty certain that RGB10_A2 formats are quite common nowadays and supported in OpenGL. This could be a simple wire-up in Wine. DF16 depth texture is ATI specific implementation AFAIK.

You can try your luck at WineHQ bugzilla for both d3d9 features quoting these 2 ATI X1800 demos.

tomnic79 commented 1 month ago

https://bugs.winehq.org/attachment.cgi?id=35038&action=edit this patch should work for DF16, I'll find a way to try to apply it ;)

kjliew commented 1 month ago

Further down reading the same bug, that patch did not work for DF16. I am not surprised otherwise the patch would have gone into wine-staging. There is no simple way of mapping DF16 depth texture in OpenGL as DEPTH_COMPONENT32F is what the current standard exposes as depth texture in float format. I presume the implementation would have to depend on GLSL shaders to perform sampling and conversion.