Thread: GSdx
View Single Post
Old August 27th, 2008   #3072 (permalink)
AWJ
Registered User
 
Join Date: Aug 2008
Location: Canada
Posts: 13
Quote:
Originally Posted by gabest View Post
While there was no difference between 2.0 and 2.0b, I just gave a try to 2.0a and it compiled to fewer instructions to my biggest suprise. Now, the question is what supports 2.0a
PS2.0a is GeForce FX cards, though all cards that support PS3.0 should also support 2.0a (and 2.0b for that matter)

If you compare the generated instructions, you'll see that the lower instruction count is due to 2.0a supporting arbitrary swizzling, e.g. it can do

mul r0.xy, r0.x, c4.zwzw

which has to be done in two instructions on 2.0/2.0b. Also, notice that the texture load instructions are arranged differently--on 2.0 (b) they're bunched up into "nodes", while on 2.0a they're grouped into pairs which are then spread out evenly among the arithmetic instructions.

I doubt there are many people enjoying PCSX2 with GeForce FX cards, but I'm curious as to whether the games that run faster with PS2.0 than with PS3.0 on (some) PS3-capable cards will be even faster on those cards with 2.0a--you should add it and test it!

Note that you have to use D3DXGetPixelShaderProfile to detect hardware support for 2.0a and 2.0b--PixelShaderVersion doesn't distinguish between the 2.0 variations. See: PixelShaderVersion For PS_2_B cards? - GameDev.Net Discussion Forums

Alternately, you could just enable 2.0a for PS3.0-capable cards for now, since all cards that support PS3.0 will support PS2.0a (and PS2.0b).

Quote:
Not all games render the two fields, for example ffx does nothing every second frame, if you switch to weave you will see no sawtooth effect because the even/odd fields of the same image are merged. There are even games that render two full height images and tell the output merger to combine them into one interlaced, throwing out half of the information, that's probably to preserve the thickness of the lines, as one of the gs manuals suggests.
I'm pretty sure that's not the case with this game--all the art is drawn for 640x448 resolution, and I doubt the developers would have created all that high-resolution art only for the GS to throw half the pixels away! Also, on ZeroGS there is sawtoothing clearly visible on horizontally moving objects in this game.

I'll make some GS dumps for you to look at and see what the game is doing. Are GS dumps dependent on plugin settings in any way? i.e. do I have to create one GS dump for each combination of internal resolution and deinterlacing mode, or does the dump only contain what the core actually sends to the GS?
AWJ is offline