logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: 1 [2] 3  Send TopicPrint
Very Hot Topic (More than 25 Replies) SDL2Drv & SDL2Launch (Read 12163 times)
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #15 - Apr 9th, 2015 at 10:48am
Print Post  
after some tests and some more reading I see that there are quite some problems with SDL_WINDOW_FULLSCREEN_DESKTOP - it's only supposed to use the current desktop resolution, instead of using the pre-set fullscreen size (resizing it). I didn't get that at first when I read what you wrote.
I don't see a way to make proper use of that in this context since its not the expected behavior. Maybe it could use an additional setting for that purpose though, but that would be the only way it makes sense I think.

I also can't reproduce this mousepointer issue, I very much assume this is a dual monitor problem as well.
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #16 - Apr 9th, 2015 at 2:13pm
Print Post  
Looks like the crash happens only on first map change. If you manage to mapchange once successfully, all the subsequent changes will be successful too. But for me, the very first map started (to test I just use Deathmatch, DmAriza, 4 skilled bots) crashes at about a 75% rate.

The error message can be a bit different each time, though. Here's a selection:
Code
Select All
Backtrace: LinkCleanup <- UStruct::Link <- UState::Link <- UClass::Link <- UStruct::Serialize <- UState::Serialize <- UClass::Serialize <- LoadObject <- ULinkerLoad::Preload <- ULinkerLoad::Preload <- ULinkerLoad::CreateExport <- IndexToObject <- ULinkerLoad<<UObject <- ULevelBase::Serialize <- ULevel::Serialize <- LoadObject <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- LoadLevel <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- ClientTravel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main 


Code
Select All
Backtrace: FArray::Realloc <- FArray::Realloc <- Localize <- UObject::LoadLocalized <- UClass::Serialize <- LoadObject <- ULinkerLoad::Preload <- ULinkerLoad::Preload <- ULinkerLoad::CreateExport <- IndexToObject <- ULinkerLoad<<UObject <- ULevelBase::Serialize <- ULevel::Serialize <- LoadObject <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- LoadLevel <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- ClientTravel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main 


Code
Select All
%ls.%ls 


(Yes, that's actually what it wrote instead of a backtrace once)
Code
Select All
Backtrace: UObject::ExportProperties <- UClass::Serialize <- LoadObject <- ULinkerLoad::Preload <- ULinkerLoad::Preload <- ULinkerLoad::CreateExport <- IndexToObject <- ULinkerLoad<<UObject <- ULevelBase::Serialize <- ULevel::Serialize <- LoadObject <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- LoadLevel <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- ClientTravel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main 


Code
Select All
Backtrace: SerializeExpr <- SerializeExpr <- SerializeExpr <- UStruct::Serialize <- UFunction::Serialize <- LoadObject <- ULinkerLoad::Preload <- LinkProperties <- UStruct::Link <- UState::Link <- UStruct::Serialize <- UState::Serialize <- LoadObject <- ULinkerLoad::Preload <- LinkProperties <- UStruct::Link <- UState::Link <- UClass::Link <- UStruct::Serialize <- UState::Serialize <- UClass::Serialize <- LoadObject <- ULinkerLoad::Preload <- ULinkerLoad::Preload <- ULinkerLoad::CreateExport <- IndexToObject <- ULinkerLoad<<UObject <- ULevelBase::Serialize <- ULevel::Serialize <- LoadObject <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- LoadLevel <- UGameEngine::LoadMap <- LocalMapURL <- UGameEngine::Browse <- ClientTravel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main 


The LinkCleanup is by far the most common one, but all of these have a lot in common.

As for FULLSCREEN_DESKTOP, yes, it will always be at the native desktop resolution. The whole point is that when a smaller resolution is requested, the game would internally use the smaller resolution, but render into native resolution, with SDL2 doing the scaling work, instead of the graphics card having to change modes. I guess it could be a toggleable option, but I don't see a reason why anyone would want to use mode changes instead.
Also, here's another explanation and a code example:
https://forums.libsdl.org/viewtopic.php?p=42577#42577
  
Back to top
WWW  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #17 - Apr 9th, 2015 at 2:52pm
Print Post  
Oh, and as for dual monitors, you can easily test it with VirtualBox, just set two monitors: http://i.imgur.com/N7vXI3F.png
  
Back to top
WWW  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #18 - Apr 9th, 2015 at 7:16pm
Print Post  
Tested some more, and in network games from time to time I get a crash like this:
Code
Select All
OpenAL: alGenBuffers failed Invalid Name
OpenAL: playing fourth hub 4 (Impulse Tracker 2.14v3 S3M)
Backtrace: UALAudioSubsystem::RegisterMusic <- UALAudioSubsystem::Update <- UGameEngine::Draw <- USDL2Viewport::Repaint <- USDL2Client::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main
Exiting. 



I guess it might be related to the music subsystem changes?

Then, also in network games, HTTP redirect downloads fail for whatever reason, but maps continue to attempt loading, resulting in crashes like this:
Code
Select All
appError called:
Unhashed name 'Brush609'
FName::DeleteEntry <- Names <- UObject::PurgeGarbage <- UObject::CollectGarbage
<- Cleanup <- UGameEngine::LoadMap <- AttemptLoadPending <- TickPending <- UGame
Engine::Tick <- UpdateWorld <- MainLoop <- main
Executing UObject::StaticShutdownAfterError
Executing USDL2Client::ShutdownAfterError
OpenAL: libxmp subsystem shut down.
AL lib: (WW) FreeDevice: (0xbe69c00) Deleting 80 Buffer(s)
UALAudioSubsystem::ShutdownAfterError
UOpenGLRenderDevice::ShutdownAfterError
Unhashed name 'Brush609'
History:
FName::DeleteEntry <- Names <- UObject::PurgeGarbage <- UObject::CollectGarbage
<- Cleanup <- UGameEngine::LoadMap <- AttemptLoadPending <- TickPending <- UGame
Engine::Tick <- UpdateWorld <- MainLoop <- main


Exiting due to error 

  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #19 - Apr 10th, 2015 at 5:57am
Print Post  
GreatEmerald wrote on Apr 9th, 2015 at 2:52pm:
Oh, and as for dual monitors, you can easily test it with VirtualBox, just set two monitors: http://i.imgur.com/N7vXI3F.png


Thats indeed a good idea Smiley

GreatEmerald wrote on Apr 9th, 2015 at 7:16pm:
Tested some more, and in network games from time to time I get a crash like this:
Code
Select All
OpenAL: alGenBuffers failed Invalid Name
OpenAL: playing fourth hub 4 (Impulse Tracker 2.14v3 S3M)
Backtrace: UALAudioSubsystem::RegisterMusic <- UALAudioSubsystem::Update <- UGameEngine::Draw <- USDL2Viewport::Repaint <- USDL2Client::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main
Exiting. 



That's indeed a problem, wondering why none of these appeared here. But my Laptop on which I run Linux is not used very much for playing, so...

GreatEmerald wrote on Apr 9th, 2015 at 7:16pm:
Then, also in network games, HTTP redirect downloads fail for whatever reason, but maps continue to attempt loading, resulting in crashes like this:
Code
Select All
appError called:
Unhashed name 'Brush609'
FName::DeleteEntry <- Names <- UObject::PurgeGarbage <- UObject::CollectGarbageá
<- Cleanup <- UGameEngine::LoadMap <- AttemptLoadPending <- TickPending <- UGame
Engine::Tick <- UpdateWorld <- MainLoop <- main
Executing UObject::StaticShutdownAfterError
Executing USDL2Client::ShutdownAfterError
OpenAL: libxmp subsystem shut down.
AL lib: (WW) FreeDevice: (0xbe69c00) Deleting 80 Buffer(s)
UALAudioSubsystem::ShutdownAfterError
UOpenGLRenderDevice::ShutdownAfterError
Unhashed name 'Brush609'
History:
FName::DeleteEntry <- Names <- UObject::PurgeGarbage <- UObject::CollectGarbageá
<- Cleanup <- UGameEngine::LoadMap <- AttemptLoadPending <- TickPending <- UGame
Engine::Tick <- UpdateWorld <- MainLoop <- main


Exiting due to error 


Really doesn't look like a redirect issue, this seems to be some hash problem in the tree hash, doubt it's related. Could be originated somewhere completely else, could you test a bit with -nomusic parameter or with anything else than ALAudio? A lot of this above smells a bit like a threading problem to me.

Well, really seems I have quite some debug work ahead. Thanks Smiley
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #20 - Apr 10th, 2015 at 10:16am
Print Post  
Smirftsch wrote on Apr 10th, 2015 at 5:57am:
Really doesn't look like a redirect issue, this seems to be some hash problem in the tree hash, doubt it's related. Could be originated somewhere completely else, could you test a bit with -nomusic parameter or with anything else than ALAudio? A lot of this above smells a bit like a threading problem to me.


This always happens when I try to connect to a server like HyperCoop: first, the packages to download are shown, the percentages go up, but as it hits 100% I can briefly see "download failed". It still goes on to the next package and so on until it finishes, and then tries to load the game, and then crashes with that error.

I could try it with different settings, but I doubt it would help downloading packages...
  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #21 - Apr 10th, 2015 at 12:05pm
Print Post  
Oh, don't get that wrong, I never said it wouldn't be the cause or wouldn't be happening when downloading from a redirect, but I doubt it is the origin of the problem Smiley

Unfortunately I can't reproduce this here either, it downloads without any crashes.

So, did you try without music?

Edit: After some messing around with my old ini I noticed the same behavior, it tried to connect, said connection failed, then continued without redirect.
Using a fresh clean ini solved that behavior and it downloaded from the redirect just fine. It seems that redirect download itself is working, however, I have no idea what setting in the old ini caused that behavior.
You can verify that when starting up Unreal with -log parameter from a console, it should look like this:

Quote:
using HTTPDownload
Resolving bobisunreal.ddns.net...
Resolved bobisunreal.ddns.net (69.142.171.8)


No real luck with the crashes so far, it crashed once (with the old ini) after downloading ~90 packages from various servers.
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #22 - Apr 10th, 2015 at 8:10pm
Print Post  
Hmm, interesting. For reference, here's a diff of what I have now: https://bpaste.net/show/5bd78d7694ad
I'll try clearing and recreating it anew, and see about the audio.

EDIT: Cleared it, set to SWFMOD, so far so good, but got another crash when pressing F5 in the server browser:
Code
Select All
FThreadingBase::~FThreadingBase <- AInternetLink::Destroy <- ATcpLink::Destroy <- UObject::ConditionalDestroy <- ShutupSound <- ULevel::DestroyActor <- UObject::ProcessEvent <- UEngine::InputEvent <- USDL2Viewport::CauseInputEvent <- USDL2Viewport::UpdateInput <- UViewport::ReadInput <- AActor::Tick <- TickAllActors <- ULevel::Tick <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main
pthread_join failed!
History:
FThreadingBase::~FThreadingBase <- AInternetLink::Destroy <- ATcpLink::Destroy <- UObject::ConditionalDestroy <- ShutupSound <- ULevel::DestroyActor <- UObject::ProcessEvent <- UEngine::InputEvent <- USDL2Viewport::CauseInputEvent <- USDL2Viewport::UpdateInput <- UViewport::ReadInput <- AActor::Tick <- TickAllActors <- ULevel::Tick <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop <- main 



Looks like this one is easy to reproduce.
« Last Edit: Apr 10th, 2015 at 9:14pm by GreatEmerald »  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #23 - Apr 11th, 2015 at 5:33am
Print Post  
yeah, can't see anything obvious in your ini either, will try with the F5 now, but it really looks like there is a threading problem remaining as suspected initially...

Edit: The annoying thing with such problems is, that different systems behave differently, I don't have any crashes like this either. Nevertheless it gives me a good indication where to look and well..I'm afraid you have to be guinea pig Tongue
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #24 - Apr 11th, 2015 at 7:25am
Print Post  
I am really not happy with SDL_WINDOW_FULLSCREEN_DESKTOP - it won't stretch anything and setting it with SDL_RenderSetLogicalSize(Renderer,NewX,NewY); doesn't help either, the docs about this are not very helpful. I assume it's because of being an OpenGL window, while the stretch is supposed to be working only with SDL rendering functions.
Next problem is, that GetRes always returns desktop resolution then instead of the really set up resolution (using SDL_GetDisplayMode) and I didn't find a corresponding function yet to give the proper resolution back for SDL_WINDOW_FULLSCREEN_DESKTOP.
Granted- I could pass the values instead of retrieving it, but that wouldn't be the idea of it either.
Currently this doesn't seem to be a useful fix for multi desktop environments.
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #25 - Apr 11th, 2015 at 11:51am
Print Post  
Hmm, maybe you should ask on the libsdl forums or so, then. I'm sure there ought to be a way to do all that; after all, a lot of engines do exactly that (Unity and UE4 being prime examples).

By the way, see this post by Martin Grń▀lin, which explains just how terrible traditional mode switching is, especially for KDE: https://mail.gnome.org/archives/wm-spec-list/2012-October/msg00003.html This was a comment on Sam Lantinga's original proposal; he dropped it later on and implemented SDL_WINDOW_FULLSCREEN_DESKTOP instead.
  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #26 - Apr 12th, 2015 at 7:57am
Print Post  
I spent some time this morning to work this out. I found a corresponding function (SDL_RenderGetLogicalSize) which would be the answer for one of the problems. Nevertheless it wouldn't work, because as assumed already, the scaling won't work due to being no SDL_CreateRenderer is being used but "manually" OpenGL. It looks like this would be to much of a hassle right now to modify the old OpenGL renderer to work like that. If I ever can finish my OpenGL3 renderer its an option though.
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #27 - May 22nd, 2015 at 11:02am
Print Post  
So, any progress on the other issues? Especially the issue with SSR crashing? Or should I just give up on finishing my LP of RTNP for now and go start Unreal II instead?
  
Back to top
WWW  
IP Logged
 
Smirftsch
Forum Administrator
*****
Offline



Posts: 7936
Location: at home
Joined: Apr 30th, 1998
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #28 - May 22nd, 2015 at 3:50pm
Print Post  
lol, no need to give up on anything, just didn't find the time yet for checking that.
  

Sometimes you have to lose a fight to win the war.
Back to top
WWWICQ  
IP Logged
 
GreatEmerald
Oldunreal MasterPoster
*
Offline


The Great Emerald

Posts: 5361
Location: Vilnius, Lithuania
Joined: May 21st, 2007
Gender: Male
Re: SDL2Drv & SDL2Launch
Reply #29 - May 22nd, 2015 at 8:14pm
Print Post  
All right, good to know. I need to start a new LP series on the 1st, so I guess if it doesn't work out until then I'll just start something else entirely, so as not to mess up the timeline.
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: 1 [2] 3 
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo