[Nouveau] nv50/gallium: a few comments about latest patches

Christoph Bumiller e0425955 at student.tuwien.ac.at
Wed Mar 10 06:33:38 PST 2010


Just wanted to communicate some thoughts I had while reading the diffs,
even thought I didn't have the time to look at everything in detail yet.

- nv50: use relocs rather than re-uploading TIC all the time
It's nice that we can write relocs to arbitrary buffers, and it's much
less work than emitting the whole state object obviously.
Just, you forgot the card won't care until you write NV50TCL_TIC_FLUSH.
I was waiting for our new memory manager to alleviate the problem.

- nv50: rework state emission
At some point we talked about getting rid of some of these non constant
stateobjs, it doesn't really make much sense to allocate, emit, destroy
them all the time, except for multiple contexts maybe; and even then for
some state like stencil ref or blend color just using RING directly
still seems to be better to me.
Anyway, the code became nicer here :-)

- nv50: always emit dummy relocs for all still-referenced buffers
flush notify took care of that ...

- nv50: remove horrific abuse of nouveau_channel.flush_notify
Horrific ? The card doesn't complain about relocating between Begin/End,
and I think I even remember testing that they take effect immediately.

- nv50: move magic 0x142c stuff to after state emission
It's not too magical, it's used when vertex buffers have been modified,
and when you emit an OpenGL fence, for some reason ...

- nv50: make use of scissor enable/disable method
This isn't actually scissors but a VIEWPORT_HORIZ/VERT, it doesn't
affect CLEAR_BUFFERS.
VIEWPORT_HORIZ/VERT is scissors, and you can't turn that off. The blob
never turns off 0xe00.

- nv50: the whole vertex emission rewrite ...
I've never seen any indication that index emission has to be split in
some way if you have to use multiple push buffers.
But I suspect you'll use that util to lift the edge flag to new heights,
not relegating it to the slow push path ...

The instance_init thing is done too often for my taste now.

Regards,
 Christoph


More information about the Nouveau mailing list