View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000829 | Spring engine | General | public | 2008-01-29 13:03 | 2008-02-08 15:21 |
| Reporter | zizu | Assigned To | Auswaschbar | ||
| Priority | normal | Severity | feature | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Summary | 0000829: [patch]Single step fix + new avi generator | ||||
| Description | This patch fixes single step rendering and implements a new multithreaded avi generator. | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
| Checked infolog.txt for Errors | |||||
|
|
Awesome. But some comments: 1. Didn't compile on linux 2. After i get it to compile, the CGameServer deadlocked 3. attached modified patch with builds on linux and not deadlocks. Didn't test other things yet. PS.: game can be 0 (in dedicated server) |
|
|
Here is an updated version of the patch, it is largely the same as the old one but should compile on Linux and handles the game==0 case. Btw, do we have a dedicated server? But I still think locking the mutex from both threads is the right thing to do, because the CGameServer member functions are only called from the server and the main thread, with the server thread always given a free pass without locking the mutex the main thread will also never block on it rendering the mutex completely irrelevant. Could you print a stack trace from the relevant threads when it deadlocks? I cannot get it to deadlock on my machine. |
|
|
It is because the CGameServer::UpdateLoop() already locks the mutex before calling CGameServer::Update(), and when Update() calls CreateNewFrame() there will be a deadlock because the mutex is already locked. And dedicated server is currently under development ;) |
|
|
Yes, I missed the lock in UpdateLoop and windows does not deadlock when recursively locking a mutex. Attaching a new hopefully deadlock free patch. The new patch sends two arguments to CreateNewFrame, currently you can get away with only using one but they represent different things so I would like to keep them separated. |
|
|
Tested, works. But someone still should test avi generation before committing. <edit> Committed the singlestep-stuff |
|
|
When recording a video with your patch applied, its neither possible to change game speed nor to pause the game. Would you please fix that, because apart from this your patch works very well. |
|
|
Pausing while recording a video works now. But the inability to change the game speed is a side effect of the video lag reduction scheme. No matter how slow or jerky the game play is while recording a video the resulting video will be perfectly smooth and play at normal (1.0) game speed. A video recorded during a large battle late in the game would be extremely jerky and almost unwatchable without it. Yes, it can be extended to work with all game speeds but I do not think it is worth the extra complexity/work so I will leave it as it is. |
|
|
commited |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2008-01-29 13:03 | zizu | New Issue | |
| 2008-01-29 13:03 | zizu | File Added: single_step_and_avi.patch | |
| 2008-01-29 19:27 | Auswaschbar | Note Added: 0001905 | |
| 2008-01-29 19:27 | Auswaschbar | File Added: patch.diff | |
| 2008-01-29 19:30 | Auswaschbar | Note Edited: 0001905 | |
| 2008-01-30 08:36 | zizu | Note Added: 0001912 | |
| 2008-01-30 08:36 | zizu | File Added: single_step_and_avi_v2.patch | |
| 2008-01-30 09:34 | Auswaschbar | Note Added: 0001913 | |
| 2008-01-30 10:47 | zizu | Note Added: 0001914 | |
| 2008-01-30 10:47 | zizu | File Added: single_step_and_avi_v3.patch | |
| 2008-01-30 16:03 | Auswaschbar | Note Added: 0001915 | |
| 2008-01-30 20:19 | Auswaschbar | Note Edited: 0001915 | |
| 2008-02-04 18:24 | Auswaschbar | Note Added: 0001941 | |
| 2008-02-04 18:24 | Auswaschbar | Status | new => assigned |
| 2008-02-04 18:24 | Auswaschbar | Assigned To | => Auswaschbar |
| 2008-02-06 15:25 | zizu | Note Added: 0001947 | |
| 2008-02-06 15:26 | zizu | File Added: avi_generator_v4.patch | |
| 2008-02-06 17:24 | zizu | File Added: avi_generator_v5.patch | |
| 2008-02-08 15:21 | Auswaschbar | Status | assigned => resolved |
| 2008-02-08 15:21 | Auswaschbar | Resolution | open => fixed |
| 2008-02-08 15:21 | Auswaschbar | Note Added: 0001948 |