This is enough to enable tessellation support on nvc0. It seems to work a lot better on my GF108 than GK208. I suspect that there's some sort of scheduling shenanigans that need to be adjusted for kepler+. Or perhaps some shader header things.
Even with the GF108, I still get occasional blue triangles in Heaven, but I get a *ton* of them on the GK208 -- seemingly the same issue, but it's much worse on there. Also there's about a 100% chance that gl_PrimitiveID doesn't work. In any case, I plan on pushing this semi-soon unless there are any loud objections. I don't think it's going to do too much good sitting in my tree, or too much evil sitting upstream while core + st/mesa are worked out. Ilia Mirkin (12): nvc0: preliminary tess support nvc0: add support for setting patch vertices at draw time nvc0: add handling for set_tess_state callback nvc0: TESSCOORD comes in as a sysval, not an input nvc0/ir: mark varyings as per-patch based on semantic name nv50/ir: populate info structure based on new tess properties nv50/ir: set perPatch flag on load/stores to per-patch varyings nv50/ir: add support for reading outputs in tess control shaders nvc0/ir: patch vertex count is stored in the upper bits nvc0/ir: handle loads from outputs in control shaders nvc0/ir: allow tess eval output loads to be CSE'd nv50/ir: cleanup private enums that have graduated to gallium src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 4 +- .../drivers/nouveau/codegen/nv50_ir_driver.h | 12 ---- .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 56 +++++++++++++++-- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 7 +++ .../drivers/nouveau/codegen/nv50_ir_peephole.cpp | 2 + src/gallium/drivers/nouveau/nvc0/nvc0_context.h | 8 ++- src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 56 +++++++---------- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 7 +-- src/gallium/drivers/nouveau/nvc0/nvc0_screen.h | 1 + .../drivers/nouveau/nvc0/nvc0_shader_state.c | 3 - src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 71 ++++++++++++++++++++++ .../drivers/nouveau/nvc0/nvc0_state_validate.c | 11 ++++ src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 34 +++++------ src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c | 9 ++- .../drivers/nouveau/nvc0/nvc0_vbo_translate.c | 3 +- 15 files changed, 200 insertions(+), 84 deletions(-) -- 2.3.6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev