I'm not a programmer, though I'm slowly starting to build some basic skills, so I don't really understand how the documentation is translated to code. Do you know of walk-through example of this? Like a blog post detailing how a specific feature was implemented (in some level of detail)? It could be an interesting read!
Excuse me, but nouveau/nv50,nvc0 have been supporting MSAA for a year now (http://cgit.freedesktop.org/mesa/mes...2820b00a9ce667).
Michael, this is wrong:
It runs entirely on the GPU.MLAA in Mesa though is done on the CPU
Of course Mesa as a whole may be cpu-limited, but please don't confuse the two![]()
For an extremely simple feature (ROUND support), it went something like
- read the docs to pick a suitable opcode, if it exists
- check the right file on how the other opcodes around it are implemented, copy-paste a suitable function / add an argument to the handler
- bind it to that function in the tables for the hw
And the result:
http://cgit.freedesktop.org/mesa/mes...bfafcd0800f4f8
My understanding is that MSAA *is* required for GL 3.0 but this was only realized *after* drivers started advertising 3.0 support.
I don't think it was just a simple oversight -- IIRC there was some nuance with earlier GL versions where the extension had to be supported but only 1x support was required (which meant that real MSAA support was *not* really needed at that point).
More likely a missed nuance in a 200-page specification...
At least it wasn't one of those nuances filled with double negatives that you have to re-read two dozen times and draw a UML diagram of in order to offer a hypothesis about what the spec is trying to tell you, all while you do your best to suppress a psychotic episode where you fantasize about the authors' demise.
Just thinking about it fills me with feelings and emotions that no man should be encumbered with in a professional or academic setting.
F
BTW, there's no support for MSAA pre-Gen 6 because only Sandy Bridge onwards have hardware for it.