Luminescent
Veteran
This is usually part of the definition of the TMU
There may be some sharing, but each texture may have different LODs, texture coords, etc. so many (all?) of the calculations will have to be done separately.Dave H said:This is usually part of the definition of the TMU
In an Nx2 design, doesn't the 2nd TMU in the pipe share most of these calculations with the 1st? Are there really 2 address units or just 1 shared between the 2 TMUs?
Nx2 has less pixels to be written out so you can save on a lot of post pixel shade stuff (fog, blending, Z, etc.).If not, what transistors are saved by going Nx2 instead of 2Nx1? (Well, I can come up with some answers to this question, but not too satisfying.)
Dave H said:In an Nx2 design, doesn't the 2nd TMU in the pipe share most of these calculations with the 1st? Are there really 2 address units or just 1 shared between the 2 TMUs?
Hyp-X said:I'd think that's the unit that calculates partial derivatives of texture coordinates, and determines the LOD and the amount of anisotropy required.
This is usually part of the definition of the TMU, but I think ATI marketeers felt that it wouldn't sound impressive if there was only a TMU and an arithmetic unit, so they split the TMU into the address processing and sampling part.
Dave H said:This is usually part of the definition of the TMU
In an Nx2 design, doesn't the 2nd TMU in the pipe share most of these calculations with the 1st? Are there really 2 address units or just 1 shared between the 2 TMUs?
I doubt it. Otherwise we'd see support for the standard filtering techniques on other storage formats, such as floating-point textures. I'm pretty confidant that all modern GPU's have hardware dedicated to texture filtering alone.Luminescent said:I believe there is no differentiation between texture processors (which both filter and address, according to Nvidia) and pixel program processors, in NV3X. They both seem to use the same alu's. This maybe why the units support ddx/ddy instructions. Anybody agree/disagree?
LeStoffer said:One of the new features of PS 2.0 is that texture data and sampling is decoupled (according to DX9 specs because there are now sampler registers in addition to the texture registers).
texld r3, t2
texld r3, t2, s3
demalion said:Also, Hyp-X seems to be saying calculations necessary for anisotropic filtering are performed in the floating point address processor in such a way that other operations are precluded in the same cycle a texture is filtered anisotropically. Is this true?
One way to check (I think) would be to contrast the impact of anisotropic filtering for a small texture using a simple texture look up/address op/color op shader...I didn't have time to double check the benchmarks we have right now to see if one could serve.
Hyp-X said:...
One way to check (I think) would be to contrast the impact of anisotropic filtering for a small texture using a simple texture look up/address op/color op shader...I didn't have time to double check the benchmarks we have right now to see if one could serve.
You mean a texture that small so there is only magnification and therefore no actual anisotropic filtering will occur only bilinear?
DemoCoder said:In 1.4, the coordinate register is implicitly tied to the sampler. Register t2 always samples from texture#2.
...
You can't use the same coordinate register to sample from other textures, and you can't even copy that register to another, because the texture coordinate registers are read only. The best you can do, is copy to R_n registers and use those in phase 2.