Voxelands Forum

The official Voxelands discussion forum

You are not logged in.

#1 2018-05-06 16:47:50

Wuzzy
Translaterer
Registered: 2014-09-03
Posts: 134

Startup loading screen flashes aggressively

The loading screen when you start Voxelands flashes quite aggressively on startup. Danger of eye cancer! big_smile
On the beginning, the image flashes on and off (between image / blackness).
A few seconds later, the loading text is  very quickly changing between two different texts. This is less serious.


Operating system: GNU/Linux 4.16.5
CPU: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz
Graphics: Haswell-ULT Integrated Graphics Controller
Graphics kernel module: i915
Version: 1709.00.

Last edited by Wuzzy (2018-05-06 16:52:51)

Offline

#2 2018-05-07 15:40:56

neoh4x0r
Member
Registered: 2016-08-26
Posts: 48

Re: Startup loading screen flashes aggressively

Wuzzy wrote:

The loading screen when you start Voxelands flashes quite aggressively on startup. Danger of eye cancer! big_smile
On the beginning, the image flashes on and off (between image / blackness).
A few seconds later, the loading text is  very quickly changing between two different texts. This is less serious.


Operating system: GNU/Linux 4.16.5
CPU: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz
Graphics: Haswell-ULT Integrated Graphics Controller
Graphics kernel module: i915
Version: 1709.00.

This sounds like a problem I had with irrlicht which the whole screen would flicker.
(It was because irrlicht could not set the correct refresh rate).

The only solution for me was to compile my own version of irrlicht and fix the problem.

(irrlicht 1.8.4) CIrrDeviceLinux.cpp (the following was changed):

#ifdef _IRR_LINUX_X11_VIDMODE_
if (XF86VidModeQueryExtension(display, &eventbase, &errorbase))
{
	// enumerate video modes
	s32 modeCount;
	XF86VidModeModeInfo** modes;

	XF86VidModeGetAllModeLines(display, screennr, &modeCount, &modes);

	/* grab the first mode that has the requested width/height
	   this will also use the highest supported refresh rate
	*/
	for (s32 i = 0; i<modeCount; ++i) { if(modes[i]->hdisplay == Width && modes[i]->vdisplay == Height) { bestMode = i; break; } }		
	
	if (bestMode != -1)
	{
		os::Printer::log("Starting vidmode fullscreen mode...", ELL_INFORMATION);
		os::Printer::log("hdisplay: ", core::stringc(modes[bestMode]->hdisplay).c_str(), ELL_INFORMATION);
		os::Printer::log("vdisplay: ", core::stringc(modes[bestMode]->vdisplay).c_str(), ELL_INFORMATION);

		XF86VidModeSwitchToMode(display, screennr, modes[bestMode]);
		XF86VidModeSetViewPort(display, screennr, 0, 0);
		UseXVidMode=true;
	}
	else
	{
	    const core::stringc video_mode = core::stringc("(") +
					      core::stringc((s32)Width) +
					      core::stringc("x") +
					      core::stringc((s32)Height) +
					      core::stringc(")");		  
	    os::Printer::log("Using windowed mode because the specified video mode was not found ", video_mode.c_str(), ELL_WARNING);
	    CreationParams.Fullscreen = false;
	}
	
	XFree(modes);
}
else
#endif

Offline

Board footer

Powered by FluxBB