On Sat, Mar 27, 2010 at 5:34 PM, Luca Barbieri <l...@luca-barbieri.com> wrote: > Having drivers capable of doing "send-to-hardware-and-forget-about-it" > on arbitrary state setting could be a nice thing instead, but > unfortunately a lot of hardware fundamentally can't do this, since for > instance: > 1. Shaders need to be all seen to be linked, possibly modifying the > shaders themselves (nv30) > 2. Constants need to be written directly into the fragment program (nv30-nv40) > 3. Fragment programs depend on the viewport to implement > fragment.position (r300) > 4. Fragment programs depend on bound textures to specify normalization > type and emulate NPOT (r300, r600?, nv30) > and so on... > 5. Sometimes sampler state and textures must be seen together since > the hardware mixes it
To be fair, this is all "old hardware sucks at new APIs." We're stretching a bit with r300 and nv30, hardware never really meant for this kind of generalized pluggable pipeline setup. r500 and nv40 are better, but it's not until r600 and nv50 that we really are completely unburdened from all of this old suckage. That's life, unfortunately. Also, I'm sure there's always going to be hardware that has quirks, regardless of the set of functionality we expose. We're just going to have to aim for the biggest common subsets plus the least painful way of adding the full pipeline features. Gallium thankfully no longer resembles its original target too much, but it's become a reasonable abstraction. -- When the facts change, I change my mind. What do you do, sir? ~ Keynes Corbin Simpson <mostawesomed...@gmail.com> ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Mesa3d-dev mailing list Mesa3d-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mesa3d-dev