------- Comment #8 from j.w.r.degoede@... 2007-12-28 23:51 PST -------
(In reply to comment #7)
> Looks good to me. Ultimately, a better solution would be to have a driver
> backend which optimizes temp usage, but avoiding unnecessary temps in the first
> place can't hurt (though might make the code slightly more complicated to
> I think there are more temps which could be avoided in some places. For
> instance those ambient/diffuse/specular possible temps are only used one after
> another, though changing that will make the code a bit harder to read and
> scheduling of the instructions less optimal (if using a backend which doesn't
> reschedule things).
Well if that leads to less then optimal code, I guess we should leave it as is.
Esp since in the maniadrive code, the highest temp usage was reached in the
else of the if (p->state->unit[i].light_eyepos3_is_zero) check at the top of
the light loop, it used to cobble 6 of the available 14 temps there with
maniadrive, and thats not even the worst case scenario, worst case it would
have taken 9, and with my patch still 7 :(
> build_sphere_texgen seems to use a unnecessary inv_m temp
> (could just use tmp instead).
I'll leave fixing that up to you, I'm not into vertex programs at all, I just
used my (well developed) common sense to come up with the current fix.
> Oh, and if you have a r4xx card you should be able to use more temps, since for
> PS2.0 the limit was 12, but for PS2.0b it was 32, and I don't think it was
> upped without having ati hw support for it. Dunno if those are addressed the
> same or need some special treatment (like requiring different reg class)
I don't have an r4xx, I have an r3xx, but it would indeed be nice to support
those additional temps! However I wouldn't know where to start.
Any chance you could also take a look at my off by one fix for the temps usage
check in rx00_vertprog.c? And a look at the reverting of commit:
To fix the wrong rendering of maniadrive?
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.