Once you have the geometry shaders, the tesselation shaders are in a large part more of the same. In other words, the issues we're going to have with having more than two shaders, the register linking, interpolation provider, all that will be done. It will just be adding a pair of passes. Only the software rendering will require work to implement the fixed-function part of the tesselation.
Two things I think are going to be painful with 4.00+:
- double support - gallium is fundamentally not ready for this, intel may or may not be be ok (as long as you have hardware support of course)
- subroutines - nobody is ready for this
The rest looks mostly ok (more direct access to vram pointers, more possibilities to keep things in vram, more fallout of unifications...).
OG.
Why are people always making such a big deal out of s3tc? Is it really so hard to install libtxc_dxtn from a third-party repo? I'm sure there's an Ubuntu PPA with it, for Fedora RPMFusion has it, for Arch it's in AUR, Gentoo has it in the main repo even.
Yeah, the ideal would be to not require even that. But Fedora users are already used to getting some stuff (multimedia packages) from third-party repos, and Ubuntu users are no strangers to PPAs. So why the big deal out of the requirement to install an extra package?
Float textures are different, you can't just install an additional tiny library, you need to recompile mesa with --enable-texture-float. Even that can be handled with drop-in replacement packages from third-party repos, though this requires that the third-party repo maintainers always keep the replacement in sync with what the distro ships. So it's not as simple as libtxc_dxtn, which is a one time deal - you install it and that's that.
Which isn't required. Like I said, third-party repos have the library packaged, and distro users are familiar with those already.
If installing extra packages makes Linux sucks for him, then it already sucks for him. So why is a special big deal being made out of this particular library?
Technical reasons. S3TC is a rather good texture compression - 1/8th size best case scenario (from RGBA to DXT1, alpha channel discarded). Amount of memory used isn't the only issue; there's also time taken having to transfer data around. So from a performance perspective, it's quite nice.
There's also other side effects. What if you wanted to generate mipmap levels from a base texture? In distributing a game, you can just provide the base texture, then generate the mipmaps at runtime. This makes for a smaller game data set - and if you're looking at something such as, say, megatexture-type implementations, and you have to provide the data up front, it can add up to a few gigabytes of extra data that's not actually required.
So yeah, having the freedom to use an open source library implementation of S3TC is kind of useful.