nv50/ir: add support for gl_PrimitiveIDIn
authorIlia Mirkin <imirkin@alum.mit.edu>
Sun, 12 Jan 2014 00:42:04 +0000 (19:42 -0500)
committerMaarten Lankhorst <maarten.lankhorst@canonical.com>
Mon, 27 Jan 2014 15:40:42 +0000 (16:40 +0100)
commit6f3219a8f34296cfd21c165ca4d41d7e62bb4cf5
tree9d397e38e38580a3e3d70ff5e40b3cb539e38216
parentf77069419a644e57d3f1baf708a58c699fa16ca5
nv50/ir: add support for gl_PrimitiveIDIn

Note that the primitive id is stored in a[0x18], while usually the
geometry instructions are of the form a[$a1 + 0x4] which gets mapped to
p[] space. We need to avoid the change from a[] to p[] here, so it's
keyed on whether the access is indirect or not.

Note that there's also a use-case for accessing e.g. a[$r1], however
that's not supported for now. (Could be added by checking the register
file of the indirect parameter.)

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp