[AD] Primitives (DirectX) legacy check broken

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


The first thing in prim_directx.c is a function, is_legacy_card. The comment says that older Intel cards are broken and can't handle 3 things so some vertex rearrangement is done. It says they don't support shaders.
 
Testing on Intel 945, the card does support shaders (Pixel Shader 2.0), but is_legacy_card checks for PS3.0 (even though everywhere else we use 2.0) and if 3.0 isn't supported the card is deemed "legacy".
 
If I leave this as is, untextured primitives draw pure white, no matter what color is used. Textured primitives/everything else draw correctly.
 
What's interesting is if I return "false" from is_legacy_card, everything works perfectly fine. The comment mentions DrawIndexedPrimitiveUP, which I didn't check that it was used but textured primitives, untextured primitives both draw correctly (al_draw_prim and high level primitives) if I return false.
 
Not sure, SiegeLord can you clarify which cards this is supposed to detect? Intel 945 is a very old chip.
 
Thanks,
Trent


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/