diff options
author | Eric Anholt <anholt@FreeBSD.org> | 2004-06-08 09:19:17 +0000 |
---|---|---|
committer | Eric Anholt <anholt@FreeBSD.org> | 2004-06-08 09:19:17 +0000 |
commit | e84f77be215ec1fc7a27388819b6c3a711057e4a (patch) | |
tree | e7f86df30254abcdb5f5581a9dc00a41d0877ac6 /src/mesa/drivers/dri/sis/sis_dd.c | |
parent | a94185474d38f88f141d45d8d42bf9ea081c483d (diff) |
* Convert to use t_vertex.c instead of sis_vb.[ch]
* Don't dispatch vertices directly to MMIO; queue them up in dma-like buffers
first. This makes things more uniform between AGP and MMIO paths, cleans up
some locking ugliness, and makes the driver look more like other drivers.
* Don't use the AGP Cmd buffer provided by the server. Instead allocate one in
the client, which avoids the need for lots of synchronization stuff.
* Mark some MMIO accesses volatile that should have been.
* Disable the AGP submission path by default (agp_disable=true) due to
unresolved issues in the new code. The old code had its own (serious) errors
with AGP, so this is not really a step backwards.
Diffstat (limited to 'src/mesa/drivers/dri/sis/sis_dd.c')
-rw-r--r-- | src/mesa/drivers/dri/sis/sis_dd.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/sis/sis_dd.c b/src/mesa/drivers/dri/sis/sis_dd.c index 1cfca69af2..152df5622e 100644 --- a/src/mesa/drivers/dri/sis/sis_dd.c +++ b/src/mesa/drivers/dri/sis/sis_dd.c @@ -38,12 +38,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "sis_lock.h" #include "sis_alloc.h" #include "sis_state.h" +#include "sis_tris.h" #include "swrast/swrast.h" #include "utils.h" -#define DRIVER_DATE "20030810" +#define DRIVER_DATE "20040608" /* Return the width and height of the given buffer. */ @@ -85,12 +86,14 @@ sisGetString( GLcontext *ctx, GLenum name ) } } -/* Send all commands to the hardware. No-op, due to mmio. +/* Send all commands to the hardware. */ static void sisFlush( GLcontext *ctx ) { - /* Do nothing */ + sisContextPtr smesa = SIS_CONTEXT(ctx); + + SIS_FIREVERTICES(smesa); } /* Make sure all commands have been sent to the hardware and have @@ -101,8 +104,10 @@ sisFinish( GLcontext *ctx ) { sisContextPtr smesa = SIS_CONTEXT(ctx); - sisFlush( ctx ); + SIS_FIREVERTICES(smesa); + LOCK_HARDWARE(); WaitEngIdle( smesa ); + UNLOCK_HARDWARE(); } void |