summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/sis/sis_dd.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2004-06-08 09:19:17 +0000
committerEric Anholt <anholt@FreeBSD.org>2004-06-08 09:19:17 +0000
commite84f77be215ec1fc7a27388819b6c3a711057e4a (patch)
treee7f86df30254abcdb5f5581a9dc00a41d0877ac6 /src/mesa/drivers/dri/sis/sis_dd.c
parenta94185474d38f88f141d45d8d42bf9ea081c483d (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.c13
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