nvfx: delay allocation of buffers in GART/VRAM to validation time
authorLuca Barbieri <luca@luca-barbieri.com>
Tue, 23 Mar 2010 15:34:51 +0000 (16:34 +0100)
committerLuca Barbieri <luca@luca-barbieri.com>
Tue, 23 Mar 2010 17:10:59 +0000 (18:10 +0100)
commit208f5bf3cd8555f5b896c3e9d60c26f1bdb8683c
tree0656f60ce6e17d5b95d7833fe32e0d0fda97bd48
parent9f0e302cc792f21c6523a85c353e053f942cd035
nvfx: delay allocation of buffers in GART/VRAM to validation time

Currently we allocate buffers in GART or VRAM at creation time.

However, when using swtnl, this results in reads from uncached
memory, which drastically impair performance.

So, for now, cause nouveau_screen.c to not pass any placement flags
to buffer creation, so that the buffers are moved later.

Previously libdrm itself did this, but was changed to not to do it.

This may introduce an extra copy in normal usage, but this currently
does not seem to introduce significant performance degradation.

This will be revisited when pipebuffer is integrated.

Note that for AGP systems, properly solving this may be complex
since currently there is no fast way of reading from GART/VRAM.

We will probably need to try mapping AGP as writethrough and, in
addition, make buffer creation more aware of future buffer usage.
src/gallium/drivers/nvfx/nvfx_screen.c
src/gallium/drivers/nvfx/nvfx_vbo.c