Age | Commit message (Collapse) | Author |
|
Thanks to the PS3 RSX project for figuring this out.
|
|
|
|
The old code suffered from a number of issues, the most severe being that
with the Mesa VBO merge even swtcl used the driver's bufferobj interface.
On most VBO types (or non-AGP cards) the buffer ended up in vram, and
killed swtcl performance greatly. All bufferobj's start in system memory
now, until they get referenced as a "real" VBO.
The other big change is that only potentially "damaged" areas are
uploaded/downloaded to/from the hardware.
|
|
|
|
NV30/40 fragprog: build FP_CONTROL per-shader, still some hardcoded bits for
this reg.. It looks like it has to do with the number of
temps used, but needs more looking at.
NV40 vtxprog : build VP_IN_REG/VP_OUT_REG during shader compile
|
|
|
|
|
|
incomplete. But, it works well enough that windows can be
moved/resized.
|
|
- NV30FP/NV40VP: Clear any fields before we OR new values into them
- NV40VP: It seems that it might be possible to write a result reg at the
same time a temp is written. In InitInstruction, initialise OUT_DEST to
OUT_DEST_TEMP so result regs don't get clobbered by default.
|
|
Fragprog consts are inlined, so make sure we update *all* occurances of a
param :)
|
|
much..
|