Removed r_smp and r_showsmp. We are using SMP by default now
diff --git a/src/engine/GPURenderer/r_cmds.cpp b/src/engine/GPURenderer/r_cmds.cpp
index c0fe54e..2800911 100644
--- a/src/engine/GPURenderer/r_cmds.cpp
+++ b/src/engine/GPURenderer/r_cmds.cpp
@@ -105,7 +105,6 @@ R_IssueRenderCommands
*/
void R_IssueRenderCommands( bool runPerformanceCounters )
{
- static sint c_blockedOnRender, c_blockedOnMain;
renderCommandList_t* cmdList = &backEndData->commands[tr.smpFrame];
assert( cmdList );
@@ -115,26 +114,8 @@ void R_IssueRenderCommands( bool runPerformanceCounters )
// clear it out, in case this is a sync and not a buffer flip
cmdList->used = 0;
- if( glConfig.smpActive )
+ if( glConfig.smpActive && renderThreadActive )
{
- // if the render thread is not idle, wait for it
- if( renderThreadActive )
- {
- c_blockedOnRender++;
- if( r_showSmp->integer )
- {
- CL_RefPrintf( PRINT_ALL, "R" );
- }
- }
- else
- {
- c_blockedOnMain++;
- if( r_showSmp->integer )
- {
- CL_RefPrintf( PRINT_ALL, "." );
- }
- }
-
// sleep until the renderer has completed
GLimp_FrontEndSleep();
}
@@ -155,7 +136,7 @@ void R_IssueRenderCommands( bool runPerformanceCounters )
}
else
{
- GLimp_WakeRenderer( cmdList );
+ GLimp_WakeRenderer( cmdList->cmds );
}
}
}
diff --git a/src/engine/GPURenderer/r_init.cpp b/src/engine/GPURenderer/r_init.cpp
index 01026fa..795e836 100644
--- a/src/engine/GPURenderer/r_init.cpp
+++ b/src/engine/GPURenderer/r_init.cpp
@@ -58,8 +58,6 @@ convar_t* r_detailTextures;
convar_t* r_znear;
convar_t* r_zproj;
convar_t* r_stereoSeparation;
-convar_t* r_smp;
-convar_t* r_showSmp;
convar_t* r_skipBackEnd;
@@ -327,19 +325,16 @@ static void InitOpenGL( void )
glConfig.smpActive = false;
- if( r_smp->integer )
+ CL_RefPrintf( PRINT_DEVELOPER, "Trying SMP acceleration...\n" );
+
+ if( GLimp_SpawnRenderThread( RB_RenderThread ) )
{
- CL_RefPrintf( PRINT_DEVELOPER, "Trying SMP acceleration...\n" );
-
- if( GLimp_SpawnRenderThread( RB_RenderThread ) )
- {
- CL_RefPrintf( PRINT_DEVELOPER, "...succeeded.\n" );
- glConfig.smpActive = true;
- }
- else
- {
- CL_RefPrintf( PRINT_DEVELOPER, "...failed.\n" );
- }
+ CL_RefPrintf( PRINT_DEVELOPER, "...succeeded.\n" );
+ glConfig.smpActive = true;
+ }
+ else
+ {
+ CL_RefPrintf( PRINT_DEVELOPER, "...failed.\n" );
}
}
@@ -1264,8 +1259,6 @@ void R_Register( void )
r_vertexLight = cvarSystem->Get( "r_vertexLight", "0", CVAR_ARCHIVE | CVAR_LATCH, "Enable vertex lighting (faster, lower quality than lightmap) removes lightmaps, forces every shader to only use a single rendering pass, no layered transparancy, environment mapping, world lighting is completely static, and there is no dynamic lighting when in vertex lighting mode. (recommend dynamiclight 0 and this 1) direct FPS benefit" );
r_uiFullScreen = cvarSystem->Get( "r_uifullscreen", "0", 0, "Sets the User Interface(UI) running fullscreen." );
r_subdivisions = cvarSystem->Get( "r_subdivisions", "4", CVAR_ARCHIVE | CVAR_LATCH, "Patch mesh/curve sub divisions, sets number of subdivisions of curves, increasing makes curves into straights." );
- r_smp = cvarSystem->Get( "r_smp", "1", CVAR_ARCHIVE | CVAR_LATCH, "Enables symmetric multiprocessing acceleration." );
- r_showSmp = cvarSystem->Get( "r_showSmp", "0", CVAR_ARCHIVE, "Toggle display of multi processor (SMP) info on the HUD" );
r_stereoEnabled = cvarSystem->Get( "r_stereoEnabled", "0", CVAR_CHEAT, "Enables stereo separation, for 3D effects" );
r_greyscale = cvarSystem->Get( "r_greyscale", "0", CVAR_ARCHIVE | CVAR_LATCH, "Enables greyscaling of everything" );
cvarSystem->CheckRange( r_greyscale, 0, 1, false );
diff --git a/src/engine/GPURenderer/r_local.h b/src/engine/GPURenderer/r_local.h
index 34e804e..8619fa7 100644
--- a/src/engine/GPURenderer/r_local.h
+++ b/src/engine/GPURenderer/r_local.h
@@ -1896,8 +1896,6 @@ extern convar_t* r_portalOnly;
extern convar_t* r_subdivisions;
extern convar_t* r_lodCurveError;
-extern convar_t* r_smp;
-extern convar_t* r_showSmp;
extern convar_t* r_skipBackEnd;
extern convar_t* r_anaglyphMode;
@@ -2608,8 +2606,6 @@ extern sint max_polyverts;
extern backEndData_t* backEndData; // the second one may not be allocated
-void R_SyncRenderThread( void );
-
extern volatile bool renderThreadActive;
void* R_GetCommandBuffer( sint bytes );
diff --git a/src/engine/GPURenderer/r_scene.cpp b/src/engine/GPURenderer/r_scene.cpp
index 8096c87..ee7bd0d 100644
--- a/src/engine/GPURenderer/r_scene.cpp
+++ b/src/engine/GPURenderer/r_scene.cpp
@@ -52,16 +52,9 @@ R_InitNextFrame
*/
void R_InitNextFrame( void )
{
- if( r_smp->integer )
- {
- // use the other buffers next frame, because another CPU
- // may still be rendering into the current ones
- tr.smpFrame ^= 1;
- }
- else
- {
- tr.smpFrame = 0;
- }
+ // use the other buffers next frame, because another CPU
+ // may still be rendering into the current ones
+ tr.smpFrame ^= 1;
backEndData->commands[tr.smpFrame].used = 0;
diff --git a/src/engine/GPURenderer/r_shader.cpp b/src/engine/GPURenderer/r_shader.cpp
index 641e488..90c76e7 100644
--- a/src/engine/GPURenderer/r_shader.cpp
+++ b/src/engine/GPURenderer/r_shader.cpp
@@ -3637,12 +3637,7 @@ static void InitShader( pointer name, sint lightmapIndex )
{
sint i;
- // make sure the render thread is stopped, because we are probably
-// going to have to upload an image
- if( r_smp->integer )
- {
- R_IssuePendingRenderCommands();
- }
+ R_IssuePendingRenderCommands();
// clear the global shader
::memset( &shader, 0, sizeof( shader ) );
GitHub
sha: dd9c5931