Comments (20)
From: @JanSimek (Radegast)
Date: 2012-05-25T18:28:59Z
This feature needs to be enabled at compile time by running premake with @--enable-smp@ option and then setting r_smp cvar to 1.
from etlegacy.
From: @adanski (Dragonji)
Date: 2012-08-10T01:38:19Z
SMP was present in Q3 engine to increase performance for multi-processors machines. Those still exist but are rarely seen.
I would like to ask what about multi-cores support? It will be a lot of work, I am aware of that, but such a feature will provide much better FPS for most ET players in my opinion.
from etlegacy.
From: @JanSimek (Radegast)
Date: 2012-08-10T06:54:48Z
TheDushan implemented multicore support in OpenWolf and I vaguely remember he gave me a patch for ET:L (and now his repository is public). I didn't do anything about it because 1) I don't understand this stuff and 2) This is a huge thing that would likely results in a few bugs which we don't need right now. However, we can create a ticket for version version:2.80
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2012-08-10T07:18:17Z
Dragon, as far as I know the OS (running a multi core) already deals with this - see processor affinity.
Radegast, I did change the title of ticket and did open it again:
{TODO}
Set more precompiler marcros for smp code - see #ifdef SMP
Related vars and functions
see
- smpActive
- r_smp
- R_SyncRenderThread()
- R_InitCommandBuffers(void)
- R_ToggleSmpFrame(void)
from etlegacy.
From: @adanski (Dragonji)
Date: 2012-08-10T12:30:04Z
IR4T4 wrote:
Dragon, as far as I know the OS (running a multi core) already deals with this - see processor affinity.
Hmm, but what about the "tweak" which results in more FPS when you set your ET process to use one core only?
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2012-08-11T09:53:06Z
Don't know if this is a tweak ... some installs may have better FPS results if one core is set. However you are already able to set affinity by OS so why should we add such a feature again?
from etlegacy.
From: @adanski (Dragonji)
Date: 2012-08-14T18:02:00Z
IR4T4 wrote:
Don't know if this is a tweak ... some installs may have better FPS results if one core is set. However you are already able to set affinity by OS so why should we add such a feature again?
I think you don't understand what I mean.
There is such a cvar in Enemy Territory: Quake Wars:
[Dual/Multi-Core Tweaks]
r_useThreadedRenderer [0,1,2 ] - Added as of the 1.2 Patch, this option allows you to enable multithreading if you have a dual or multi-core CPU, and this can improve the performance of ET:QW. By default it's disabled (set to 0), but you can set it to either 1 or 2, with a value of 1 locking the renderer to your in-game frames, while 2 allows it to run unlocked. The developers recommend a value of 2 for this variable if you wish to enable it. Note that you must enable it either by inserting it in your autoexec.cfg file, or by entering it in the console prior to the start of a game; it can't be changed during a game.
I mean that something like this could be introduced into ET:L.
from etlegacy.
From: @JanSimek (Radegast)
Date: 2012-08-15T20:41:47Z
The game now crashes when compiled without @SMP_SUPPORT@ in RB_ExecuteRenderCommands function -> if (!r_smp->integer || data == backEndData[0]->commands.cmds)
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2012-08-15T21:07:15Z
Radegast wrote:
The game now crashes when compiled without @SMP_SUPPORT@ in RB_ExecuteRenderCommands function ->
if (!r_smp->integer || data == backEndData[0]->commands.cmds)
shouldn't occure anymore
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2012-08-18T12:38:57Z
Dragon wrote:
I mean that something like this could be introduced into ET:L.
I do exactly understand what you are talking about but QW is written in C++ and ETL in plain C ... time will tell.
from etlegacy.
From: @adanski (Dragonji)
Date: 2012-11-24T13:04:16Z
This is what I get when starting the game with +set r_smp 1. I dunno what does it mean, however why not to share it with you. Maybe it's just a false info.
Oh BTW, my CPU is Intel Core 2 Duo.
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2012-11-24T13:28:36Z
r_smp is apple only /* better safe than sorry for now. */
from etlegacy.
From: @adanski (Dragonji)
Date: 2012-11-25T02:53:19Z
Oh lol.
from etlegacy.
From: @JanSimek (Radegast)
Date: 2012-11-26T15:04:46Z
SMP doesn't work for me on my Mac. However, it is part of the code and for those people who want to test it on other platforms and report their findings I removed the hardcoded disablement.
It will likely cause trouble for most users who use it, but since they have to 1) enable @FEATURE_SMP@ and 2) set @r_smp@ to 1 and they receive several warnings in the process, I think it is quite noob-proof.
Dushan implemented real multithreading in OpenWolf by using OpenMP. Maybe we could try to port it..
from etlegacy.
From: @TheDushan (TheDushan)
Date: 2013-01-14T23:22:58Z
I had few years ago working R_SMP inside OpenWolf, just how I remember I didn't get much improvements. It just OpenGL renderer into separate thread. As you can see on first three pictures.
Don't think that today it will be success to have or to use that. I remember that I had enormous problems with getting it to work on XreaL renderer, while with vanilla it was working perfectly.
Last two pictures are some experimental build of OpenWolf with most of loops moved into parallelism and compiled with OpenMP.
At that time I believed that it I move everything into work-sharing constructs that I could get better and more stable engine.
from etlegacy.
From: @JanSimek (Radegast)
Date: 2013-01-24T23:21:36Z
After what Dushan said and seeing that Tim Angus @ ioquake also removed SMP support, I don't think we have any reason to fix/keep it.
from etlegacy.
From: @JanSimek (Radegast)
Date: 2013-01-25T00:43:08Z
Applied in changeset commit:f3b840b19e64f6a3ae030a34d0146916b15bb36f.
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2013-01-25T12:27:38Z
R_Init fails here after http://www.etlegacy.com/projects/etlegacy/repository/revisions/f3b840b19e64f6a3ae030a34d0146916b15bb36f
----- R_Init -----
SDL using driver "x11"
Initializing OpenGL display
Estimated display aspect: 1.600
...setting mode 13:
1440 900
Available modes: '720x450 840x525 960x600 1440x900 1680x1050 680x384 1360x768 960x540 320x240 400x300 512x384 640x480 700x525 800x600 832x624 1024x768 1152x864 1280x960 1400x1050 1280x1024'
Couldn't get a visual
...WARNING: could not set the given mode (13)
Initializing OpenGL display
...setting mode 13:
1440 900
Available modes: '720x450 840x525 960x600 1440x900 1680x1050 680x384 1360x768 960x540 320x240 400x300 512x384 640x480 700x525 800x600 832x624 1024x768 1152x864 1280x960 1400x1050 1280x1024'
Couldn't get a visual
...WARNING: could not set the given mode (13)
Setting r_mode 13 failed, falling back on r_mode 3
Initializing OpenGL display
...setting mode 3:
640 480
Available modes: '720x450 840x525 960x600 1440x900 1680x1050 680x384 1360x768 960x540 320x240 400x300 512x384 640x480 700x525 800x600 832x624 1024x768 1152x864 1280x960 1400x1050 1280x1024'
Couldn't get a visual
...WARNING: could not set the given mode (3)
----- CL_Shutdown -----
RE_Shutdown( 1 )
-----------------------
GLimp_Init() - could not load OpenGL subsystem
from etlegacy.
From: @JanSimek (Radegast)
Date: 2013-01-25T17:53:40Z
Several people tested this on different linux distributions, Windows and Mac and reported that they do not experience any issues. I went through the commit diff once again, but I don't know what could be wrong with it.
from etlegacy.
From: @IR4T4 (IR4T4)
Date: 2013-01-25T18:26:05Z
OK .. I've deleted fs_homepath content and it does work again. I don't know which cvar caused that ... I assume somemthing went terribly wrong as I did test the code for #175.
from etlegacy.
Related Issues (20)
- R_GetCommandBuffer returns misaligned command buffer addresses HOT 1
- Sniper scope unscopes too fast when pressing sprint
- Disappearing Replays list
- Make cycle work with float values
- Segfault in _et_gentity_set on Win x64 HOT 1
- Highest acc and highest HS acc awards are broken
- Decrease FG42 fire rate
- Sys_FOpen: open cfg file, permission issue errno: 13 HOT 1
- Add kill assist feature HOT 2
- Reward player with + 1 xp Battle Sense for gib
- Add Omni-Bot support for Linux aarch64 (aka RPI/RPIT builds) HOT 10
- ET:L crashes 2 seconds after joining a server when using AMD drivers newer than 2022 HOT 4
- Check for akimbos (or SMG for Soldier class 4) on team switch
- Can't set crosshair position HOT 18
- Fix scoped K43 and Garand recoil to 71 FPS physics
- Setting `r_scale` to 2 on a 4K display crashes the game and prevents restarting it until profile's `etconfig.cfg` is edited
- Reduce tank MG jiggle
- Simple item textures lack mipmaps, making them look grainy at a distance HOT 2
- Callvote shuffle teams by damage
- Investigate using `sv_fps 40` as a default
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from etlegacy.