[Nouveau] [Mesa-dev] [PATCH 00/12] Tessellation support for nvc0
Tobias Klausmann
tobias.johannes.klausmann at mni.thm.de
Sun May 17 07:15:37 PDT 2015
as far as i can evaluate this without deeper insight into tess, this
patchseries looks good to me!
Reviewed-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
On 17.05.2015 07:07, Ilia Mirkin wrote:
> 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(-)
>
More information about the Nouveau
mailing list