This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit 880e67a40dc995961cec9f1a03093a003233b04d
Author: Donny <m4n4t4...@gmail.com>
Date:   Tue Oct 20 07:37:39 2015 -0400

    All: Fix not swapping buffers because out of cmd buffer space
---
 MP/code/rend2/tr_cmds.c    | 22 +++++++++++++++++-----
 MP/code/renderer/tr_cmds.c | 22 +++++++++++++++++-----
 SP/code/rend2/tr_cmds.c    | 22 +++++++++++++++++-----
 SP/code/renderer/tr_cmds.c | 22 +++++++++++++++++-----
 4 files changed, 68 insertions(+), 20 deletions(-)

diff --git a/MP/code/rend2/tr_cmds.c b/MP/code/rend2/tr_cmds.c
index c2bbe9a..6d7555f 100644
--- a/MP/code/rend2/tr_cmds.c
+++ b/MP/code/rend2/tr_cmds.c
@@ -131,12 +131,12 @@ void R_IssuePendingRenderCommands( void ) {
 
 /*
 ============
-R_GetCommandBuffer
+R_GetCommandBufferReserved
 
 make sure there is enough command space
 ============
 */
-void *R_GetCommandBuffer( int bytes ) {
+void *R_GetCommandBufferReserved( int bytes, int reservedBytes ) {
        renderCommandList_t *cmdList;
 
        if ( !tr.registered ) {  //DAJ BUGFIX
@@ -146,8 +146,8 @@ void *R_GetCommandBuffer( int bytes ) {
        bytes = PAD(bytes, sizeof(void *));
 
        // always leave room for the end of list command
-       if ( cmdList->used + bytes + 4 > MAX_RENDER_COMMANDS ) {
-               if ( bytes > MAX_RENDER_COMMANDS - 4 ) {
+       if ( cmdList->used + bytes + sizeof( int ) + reservedBytes > 
MAX_RENDER_COMMANDS ) {
+               if ( bytes > MAX_RENDER_COMMANDS - sizeof( int ) ) {
                        ri.Error( ERR_FATAL, "R_GetCommandBuffer: bad size %i", 
bytes );
                }
                // if we run out of room, just start dropping commands
@@ -162,6 +162,18 @@ void *R_GetCommandBuffer( int bytes ) {
 
 /*
 =============
+R_GetCommandBuffer
+
+returns NULL if there is not enough space for important commands
+=============
+*/
+void *R_GetCommandBuffer( int bytes ) {
+       return R_GetCommandBufferReserved( bytes, sizeof ( swapBuffersCommand_t 
) );
+}
+
+
+/*
+=============
 R_AddDrawSurfCmd
 
 =============
@@ -618,7 +630,7 @@ void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
        if ( !tr.registered ) {
                return;
        }
-       cmd = R_GetCommandBuffer( sizeof( *cmd ) );
+       cmd = R_GetCommandBufferReserved( sizeof( *cmd ), 0 );
        if ( !cmd ) {
                return;
        }
diff --git a/MP/code/renderer/tr_cmds.c b/MP/code/renderer/tr_cmds.c
index bd3c76e..390f680 100644
--- a/MP/code/renderer/tr_cmds.c
+++ b/MP/code/renderer/tr_cmds.c
@@ -124,12 +124,12 @@ void R_IssuePendingRenderCommands( void ) {
 
 /*
 ============
-R_GetCommandBuffer
+R_GetCommandBufferReserved
 
 make sure there is enough command space
 ============
 */
-void *R_GetCommandBuffer( int bytes ) {
+void *R_GetCommandBufferReserved( int bytes, int reservedBytes ) {
        renderCommandList_t *cmdList;
 
        if ( !tr.registered ) {  //DAJ BUGFIX
@@ -139,8 +139,8 @@ void *R_GetCommandBuffer( int bytes ) {
        bytes = PAD(bytes, sizeof(void *));
 
        // always leave room for the end of list command
-       if ( cmdList->used + bytes + 4 > MAX_RENDER_COMMANDS ) {
-               if ( bytes > MAX_RENDER_COMMANDS - 4 ) {
+       if ( cmdList->used + bytes + sizeof( int ) + reservedBytes > 
MAX_RENDER_COMMANDS ) {
+               if ( bytes > MAX_RENDER_COMMANDS - sizeof( int ) ) {
                        ri.Error( ERR_FATAL, "R_GetCommandBuffer: bad size %i", 
bytes );
                }
                // if we run out of room, just start dropping commands
@@ -155,6 +155,18 @@ void *R_GetCommandBuffer( int bytes ) {
 
 /*
 =============
+R_GetCommandBuffer
+
+returns NULL if there is not enough space for important commands
+=============
+*/
+void *R_GetCommandBuffer( int bytes ) {
+       return R_GetCommandBufferReserved( bytes, sizeof ( swapBuffersCommand_t 
) );
+}
+
+
+/*
+=============
 R_AddDrawSurfCmd
 
 =============
@@ -559,7 +571,7 @@ void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
        if ( !tr.registered ) {
                return;
        }
-       cmd = R_GetCommandBuffer( sizeof( *cmd ) );
+       cmd = R_GetCommandBufferReserved( sizeof( *cmd ), 0 );
        if ( !cmd ) {
                return;
        }
diff --git a/SP/code/rend2/tr_cmds.c b/SP/code/rend2/tr_cmds.c
index 6c9e4a7..940bcbe 100644
--- a/SP/code/rend2/tr_cmds.c
+++ b/SP/code/rend2/tr_cmds.c
@@ -128,20 +128,20 @@ void R_IssuePendingRenderCommands( void ) {
 
 /*
 ============
-R_GetCommandBuffer
+R_GetCommandBufferReserved
 
 make sure there is enough command space
 ============
 */
-void *R_GetCommandBuffer( int bytes ) {
+void *R_GetCommandBufferReserved( int bytes, int reservedBytes ) {
        renderCommandList_t *cmdList;
 
        cmdList = &backEndData->commands;
        bytes = PAD(bytes, sizeof(void *));
 
        // always leave room for the end of list command
-       if ( cmdList->used + bytes + 4 > MAX_RENDER_COMMANDS ) {
-               if ( bytes > MAX_RENDER_COMMANDS - 4 ) {
+       if ( cmdList->used + bytes + sizeof( int ) + reservedBytes > 
MAX_RENDER_COMMANDS ) {
+               if ( bytes > MAX_RENDER_COMMANDS - sizeof( int ) ) {
                        ri.Error( ERR_FATAL, "R_GetCommandBuffer: bad size %i", 
bytes );
                }
                // if we run out of room, just start dropping commands
@@ -156,6 +156,18 @@ void *R_GetCommandBuffer( int bytes ) {
 
 /*
 =============
+R_GetCommandBuffer
+
+returns NULL if there is not enough space for important commands
+=============
+*/
+void *R_GetCommandBuffer( int bytes ) {
+       return R_GetCommandBufferReserved( bytes, sizeof ( swapBuffersCommand_t 
) );
+}
+
+
+/*
+=============
 R_AddDrawSurfCmd
 
 =============
@@ -631,7 +643,7 @@ void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
        if ( !tr.registered ) {
                return;
        }
-       cmd = R_GetCommandBuffer( sizeof( *cmd ) );
+       cmd = R_GetCommandBufferReserved( sizeof( *cmd ), 0 );
        if ( !cmd ) {
                return;
        }
diff --git a/SP/code/renderer/tr_cmds.c b/SP/code/renderer/tr_cmds.c
index 9b65950..7cef1e2 100644
--- a/SP/code/renderer/tr_cmds.c
+++ b/SP/code/renderer/tr_cmds.c
@@ -121,20 +121,20 @@ void R_IssuePendingRenderCommands( void ) {
 
 /*
 ============
-R_GetCommandBuffer
+R_GetCommandBufferReserved
 
 make sure there is enough command space
 ============
 */
-void *R_GetCommandBuffer( int bytes ) {
+void *R_GetCommandBufferReserved( int bytes, int reservedBytes ) {
        renderCommandList_t *cmdList;
 
        cmdList = &backEndData->commands;
        bytes = PAD(bytes, sizeof(void *));
 
        // always leave room for the end of list command
-       if ( cmdList->used + bytes + 4 > MAX_RENDER_COMMANDS ) {
-               if ( bytes > MAX_RENDER_COMMANDS - 4 ) {
+       if ( cmdList->used + bytes + sizeof( int ) + reservedBytes > 
MAX_RENDER_COMMANDS ) {
+               if ( bytes > MAX_RENDER_COMMANDS - sizeof( int ) ) {
                        ri.Error( ERR_FATAL, "R_GetCommandBuffer: bad size %i", 
bytes );
                }
                // if we run out of room, just start dropping commands
@@ -149,6 +149,18 @@ void *R_GetCommandBuffer( int bytes ) {
 
 /*
 =============
+R_GetCommandBuffer
+
+returns NULL if there is not enough space for important commands
+=============
+*/
+void *R_GetCommandBuffer( int bytes ) {
+       return R_GetCommandBufferReserved( bytes, sizeof ( swapBuffersCommand_t 
) );
+}
+
+
+/*
+=============
 R_AddDrawSurfCmd
 
 =============
@@ -572,7 +584,7 @@ void RE_EndFrame( int *frontEndMsec, int *backEndMsec ) {
        if ( !tr.registered ) {
                return;
        }
-       cmd = R_GetCommandBuffer( sizeof( *cmd ) );
+       cmd = R_GetCommandBufferReserved( sizeof( *cmd ), 0 );
        if ( !cmd ) {
                return;
        }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/iortcw.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to