vsync
(12-12-2014, 01:04 AM)Kp link Wrote:Your tactfulness is appreciated.  Unfortunately, it looks like derhass posted only Windows executables and did not make the source code used to create the modified version publicly available (despite posting a derived work for public consumption). 
That is only partly true. The debugtimers-X2.exe is the vanilla dxx-rebirth 0.58+1 + my debugtimers path + my syncgl patch. I did post links to the diff files for each of these in this thread (but I have to admit, a bit scattered across several posts).

However, I actually advise not to use the -X2 version; use the syncgl version. The -X2 version was an intermediate build meant for debugging (as any version with the debugtimers patch I built). It will write the timing stats for each frame to a textfile, and this can't be deactivated. I strongly recommend anyone using the X2 exe to switch to the syncgl version, as found in this post (including the sources): http://www.dxx-rebirth.com/frm/index.php...l#msg20745

(12-12-2014, 01:04 AM)Kp link Wrote:Without the source, I cannot incorporate any of his fixes into the next version.

Well, I planned to clean up the source code before asking to integrate it into the official version. However, I have not yet found the time for doing that.
"Perfection is attained not when there is nothing more to add, but when there is nothing more to remove." -- Antoine de Saint Exupéry
Reply
(12-12-2014, 07:08 PM)derhass link Wrote:Well, I planned to clean up the source code before asking to integrate it into the official version. However, I have not yet found the time for doing that.
Please do so, fixes are needed more than anything - I find your work very important and appreciate it, hoping it will be included in next release whenever it happens.
Reply
Actually the diff files are better than the whole source as the changes are highlighted. Some text file readers even do color highlights on them.

I just ran accross these links:
https://www.opengl.org/sdk/docs/man3/xht...itSync.xml
https://www.opengl.org/wiki/Sync_Object
"Because OpenGL must execute and complete commands in order, when a fence becomes signaled, you can be certain that the GPU has completed all OpenGL commands issued before the fence was created." With fence signaling it seems you can know how many frames the GPU has buffered.

Looking back at my buffering idea here:
http://www.dxx-rebirth.com/frm/index.php...l#msg20966

The buffer I'm suggesting would be composed of a series of GL commands, not yet sent to the GPU. The game engine would not be writing to the GPU directly, rather to this buffer system.

A GL command buffer manager would monitor the fence signaling. Only when the GPU buffer is running out would the GL command buffer manager write an entire frame to the GPU.

The game engine would also monitor the "GL command buffer", and if it already has 2 unread buffers it won't even create a new render frame for the current physics frame (unless by chance the timestamps on the buffer is very out of date.) However it could still being doing physics and audio in the mean time (some of the physics frames might not be rendered, but not a big deal.)

Just out of curiosity, does Rebirth not pre-cache every texture and their mipmaps before the level starts? Judging by the quick load time it seems that it doesn't.
Reply
derhass has readied his syncgl patch for and it has been merged into unification a few minutes ago. The next build should have it.
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
Please note that in the final version, I did change the command line paramters a bit.

-gl_syncmethod <n> replaces the -syncgl <n> switch, and besides the modes 0-4 as before the new mode 5 (which is the default) has been added as a more conservative automatic mode: if the ARB_sync extension is available, it will use it, otherwise, it will do nothing (instead of falling back to the hard flushing method, as mode 1 and 2 do in these cases). 

-gl_synwait  <ms> replaces -syncwait <ms>

The parameters are now also documented in the -help.

This should introduce no negavtie effects in most situations. If you suspect any issues from feature, -gl_syncmethod 0 can still be used to completely disable it.
"Perfection is attained not when there is nothing more to add, but when there is nothing more to remove." -- Antoine de Saint Exupéry
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)