nvfx: use dynamically sized rotating BO pool for fragment programs
authorLuca Barbieri <luca@luca-barbieri.com>
Wed, 20 Jan 2010 08:04:37 +0000 (09:04 +0100)
committerLuca Barbieri <luca@luca-barbieri.com>
Tue, 13 Apr 2010 07:55:49 +0000 (09:55 +0200)
commita79521d497bc87309cadc49f3a414703497522bc
tree626ec1037fd0e7fd3911bb3455fd4dbca86f5278
parent9f39d3240b41639cbaa5b6c438a76c34d3f23444
nvfx: use dynamically sized rotating BO pool for fragment programs

Currently we used a single buffer for each fragment programs, leading to
rendering synchronization. This patch uses a doubly linked list of BOs,
which is dynamically resized if all the BOs are busy.

Note that inline image transfers could be an alternative option: this
will be explored later.

This removes one of the big performance limitations of the current
driver.

We also stop using pipe_resource internally in favor of using nouveau_bo
directly.
src/gallium/drivers/nvfx/nvfx_fragprog.c
src/gallium/drivers/nvfx/nvfx_state.h