nv50: proper linkage between VP and FP
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Mon, 14 Sep 2009 18:23:39 +0000 (20:23 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Tue, 15 Sep 2009 10:13:23 +0000 (12:13 +0200)
commit6516594c8eec1088ee59e7c3254b2fdced2ff04b
treeae802e374800429562be21ecc3b098862cf5bbb6
parent38849c529e76b99f56f522be183a5935d617bcab
nv50: proper linkage between VP and FP

This moves construction of the mapping between VP outputs
and FP inputs into validation.

The map also contains slots for special outputs like clip
distance and point size, so we need to at least merge the
VP related and FP related parts on validation if we want
to support those.

Now we match every single FP input component with results
from the VP and leave those not read out of the map, or
replace those not written by 0 (xyz) or 1 (w).
The bitmap indicating linear interpolants is also filled,
and flat FP inputs are mapped in only after non-flat ones,
as is required.

Furthermore, we can save some space by only fetching VP
attrs we actually use, and avoid wasting any output regs
because of TGSI using less than 4 components.
src/gallium/drivers/nv50/nv50_context.h
src/gallium/drivers/nv50/nv50_program.c
src/gallium/drivers/nv50/nv50_program.h
src/gallium/drivers/nv50/nv50_state_validate.c