Hello, I've been trying to add ARB_sample_shading support to nouveau, and am being defeated by the gl_SampleMask tests. Everything else works fine. (And naturally the tests pass with the proprietary driver.) I'm trying to do this for both GT21x, as well as GF100+.
In the GT21x case, it seems like the low bit of method 0x1928 needs to be set (as well as the second-to-lowest bit), for GF100+, the low bit of the last dword of the shader header needs to be set. But exactly which register is the output supposed to go into? It looks like with the proprietary driver, r0..r3 get the first color output, and r4 gets the sample mask. However the way that things are set up with nouveau, r4..r7 get the first color output (and that part works fine). But where should the sample mask go at the end of the fragment program? r0? r8? (I've tried all of those with minimal effect.) Perhaps there's more configuration that I'm missing regarding the sample mask? Also, how does this interact with the frag depth (which also gets implicitly assigned based on color outputs)? Any insight into this would be hugely helpful. In case you feel like taking a look at the actual code, these are my commits: https://github.com/imirkin/mesa/commits/sample_shading . Note that some bits of the sample mask were already there for nvc0 (like setting the shader header bit), thus don't appear in my change. Thanks, -ilia _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
