summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2000-06-27 22:10:00 +0000
committerBrian Paul <[email protected]>2000-06-27 22:10:00 +0000
commit2d8db39301349f67e17fc1b21e5d33d5f44cd521 (patch)
treec877df2f77ecd09fa50e526101198643bbeba473 /src/mesa/main
parent24507ff6ab91a85f98da60745bd6585499968b60 (diff)
added aligned memory allocations (Gareth Hughes)
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/context.c26
-rw-r--r--src/mesa/main/matrix.c23
-rw-r--r--src/mesa/main/matrix.h6
3 files changed, 31 insertions, 24 deletions
diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
index 7ed7f12425f..eb9ed313bfd 100644
--- a/src/mesa/main/context.c
+++ b/src/mesa/main/context.c
@@ -1,4 +1,4 @@
-/* $Id: context.c,v 1.72 2000/06/27 21:42:13 brianp Exp $ */
+/* $Id: context.c,v 1.73 2000/06/27 22:10:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1391,7 +1391,7 @@ _mesa_initialize_context( GLcontext *ctx,
ctx->PB = gl_alloc_pb();
if (!ctx->PB) {
- FREE( ctx->VB );
+ ALIGN_FREE( ctx->VB );
FREE( ctx );
return GL_FALSE;
}
@@ -1404,9 +1404,9 @@ _mesa_initialize_context( GLcontext *ctx,
/* allocate new group of display lists */
ctx->Shared = alloc_shared_state();
if (!ctx->Shared) {
- FREE(ctx->VB);
- FREE(ctx->PB);
- FREE(ctx);
+ ALIGN_FREE( ctx->VB );
+ FREE( ctx->PB );
+ FREE( ctx );
return GL_FALSE;
}
}
@@ -1436,9 +1436,9 @@ _mesa_initialize_context( GLcontext *ctx,
if (!alloc_proxy_textures(ctx)) {
free_shared_state(ctx, ctx->Shared);
- FREE(ctx->VB);
- FREE(ctx->PB);
- FREE(ctx);
+ ALIGN_FREE( ctx->VB );
+ FREE( ctx->PB );
+ FREE( ctx );
return GL_FALSE;
}
@@ -1465,11 +1465,11 @@ _mesa_initialize_context( GLcontext *ctx,
ctx->Save = (struct _glapi_table *) CALLOC(dispatchSize * sizeof(void*));
if (!ctx->Exec || !ctx->Save) {
free_shared_state(ctx, ctx->Shared);
- FREE(ctx->VB);
- FREE(ctx->PB);
+ ALIGN_FREE( ctx->VB );
+ FREE( ctx->PB );
if (ctx->Exec)
- FREE(ctx->Exec);
- FREE(ctx);
+ FREE( ctx->Exec );
+ FREE( ctx );
}
_mesa_init_exec_table(ctx->Exec, dispatchSize);
_mesa_init_dlist_table(ctx->Save, dispatchSize);
@@ -1612,7 +1612,7 @@ gl_free_context_data( GLcontext *ctx )
/* Free cache of immediate buffers. */
while (ctx->nr_im_queued-- > 0) {
struct immediate * next = ctx->freed_im_queue->next;
- FREE( ctx->freed_im_queue );
+ ALIGN_FREE( ctx->freed_im_queue );
ctx->freed_im_queue = next;
}
gl_extensions_dtr(ctx);
diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c
index 5eb5bb43f0c..5db2542a6e8 100644
--- a/src/mesa/main/matrix.c
+++ b/src/mesa/main/matrix.c
@@ -1,4 +1,4 @@
-/* $Id: matrix.c,v 1.17 2000/04/08 18:57:45 brianp Exp $ */
+/* $Id: matrix.c,v 1.18 2000/06/27 22:10:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -1562,16 +1562,23 @@ void gl_calculate_model_project_matrix( GLcontext *ctx )
void gl_matrix_ctr( GLmatrix *m )
{
+ if ( m->m == 0 ) {
+ m->m = (GLfloat *) ALIGN_MALLOC( 16 * sizeof(GLfloat), 16 );
+ }
+ MEMCPY( m->m, Identity, sizeof(Identity) );
m->inv = 0;
- MEMCPY( m->m, Identity, sizeof(Identity));
m->type = MATRIX_IDENTITY;
m->flags = MAT_DIRTY_DEPENDENTS;
}
void gl_matrix_dtr( GLmatrix *m )
{
- if (m->inv != 0) {
- FREE(m->inv);
+ if ( m->m != 0 ) {
+ ALIGN_FREE( m->m );
+ m->m = 0;
+ }
+ if ( m->inv != 0 ) {
+ ALIGN_FREE( m->inv );
m->inv = 0;
}
}
@@ -1579,7 +1586,7 @@ void gl_matrix_dtr( GLmatrix *m )
#if 0
void gl_matrix_set_identity( GLmatrix *m )
{
- MEMCPY( m->m, Identity, sizeof(Identity));
+ MEMCPY( m->m, Identity, sizeof(Identity) );
m->type = MATRIX_IDENTITY;
m->flags = MAT_DIRTY_DEPENDENTS;
}
@@ -1587,15 +1594,15 @@ void gl_matrix_set_identity( GLmatrix *m )
void gl_matrix_alloc_inv( GLmatrix *m )
{
- if (m->inv == 0) {
- m->inv = (GLfloat *)MALLOC(16*sizeof(GLfloat));
+ if ( m->inv == 0 ) {
+ m->inv = (GLfloat *) ALIGN_MALLOC( 16 * sizeof(GLfloat), 16 );
MEMCPY( m->inv, Identity, 16 * sizeof(GLfloat) );
}
}
void gl_matrix_copy( GLmatrix *to, const GLmatrix *from )
{
- MEMCPY( to->m, from->m, sizeof(Identity));
+ MEMCPY( to->m, from->m, sizeof(Identity) );
to->flags = from->flags | MAT_DIRTY_DEPENDENTS;
to->type = from->type;
diff --git a/src/mesa/main/matrix.h b/src/mesa/main/matrix.h
index d0fcdabb627..b142afb4613 100644
--- a/src/mesa/main/matrix.h
+++ b/src/mesa/main/matrix.h
@@ -1,4 +1,4 @@
-/* $Id: matrix.h,v 1.5 1999/12/10 20:01:06 brianp Exp $ */
+/* $Id: matrix.h,v 1.6 2000/06/27 22:10:00 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -34,8 +34,8 @@
typedef struct {
- GLfloat m[16];
- GLfloat *inv; /* optional */
+ GLfloat *m; /* 16-byte aligned */
+ GLfloat *inv; /* optional, 16-byte aligned */
GLuint flags;
GLuint type;
} GLmatrix;