Jump to content
  • Advertisement
Sign in to follow this  
WndProc

Monitor freq goes crazy

This topic is 3993 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi everyone, This time I have realy weired problem to share: Every once in a while when I fly through one of my applications 'ala free chase cam', my screen suddenly freezes for a second and turns off with the message: "H-frequency: 126.5 Hz ; V-frequency: 241.1 Hz ; Display mode not supported" If one thinks that this is weired enough, here are some more facts: 1) This code runs the same DX 9.0c initialisation as all my other programs (which never showed such a behaviour). 2) I run in windowed mode! 3) I already tried D3DPRESENT_INTERVAL_DEFAULT, but it was the same as D3DPRESENT_INTERVAL_IMMEDIATE. Please help me with this. ( Heres my init code: )
D3DDISPLAYMODE d3ddm;
	D3DCAPS9 caps;
	HRESULT hr;

	lpd3d = Direct3DCreate9(D3D_SDK_VERSION);
    if( !lpd3d)
        return 0;

    ERRCHECK(lpd3d->GetAdapterDisplayMode( D3DADAPTER_DEFAULT, &d3ddm))

    ZeroMemory( &d3dpp, sizeof(d3dpp));
	// Backbuffer
	d3dpp.BackBufferCount = 1;
	d3dpp.BackBufferFormat = d3ddm.Format;
	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
	// Multisampling
	d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
	d3dpp.MultiSampleQuality = 0;
    // Autodepthstencil
    d3dpp.EnableAutoDepthStencil = true;
    d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
	// Rates
	d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
	d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;

	if(app->fullscreen)
	{
		d3dpp.Windowed          = false;
		d3dpp.BackBufferWidth   = app->clientwidth = 1280;
		d3dpp.BackBufferHeight  = app->clientheight = 1024;
	}
	else
	{
		d3dpp.Windowed          = true;
	}

	hr = lpd3d->GetDeviceCaps(D3DADAPTER_DEFAULT,  D3DDEVTYPE_HAL, &caps);
	if(FAILED(hr))
	{
		MessageBox(app->hwnd, "HAL-Device isn't supported on your graphics card.\nThe application will now exit.", "Error creating device", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
		return hr;
	}

	ERRCHECK(lpd3d->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, app->hwnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &device))

Share this post


Link to post
Share on other sites
Advertisement
Quote:
2) I run in windowed mode!


What mode is your desktop configured to in the system display properties?

Graphics cards can output in a wide range of modes, most monitors only support a small subset of those modes.

If your system doesn't have monitor drivers installed or doesn't have the "Hide modes that this monitor cannot display" option ticked then your desktop might be in a mode that is actually outside of the capabilities of the monitor.

The message from the monitor definitely suggests either:
- a mode the monitor can't display in some situations but can in others
- a broken monitor (losing its settings and getting confused)
- a driver problem (broken monitor driver, broken graphics card driver)

Note that the resolution and the refresh rate are connected, for example a monitor might be capable of resolutions up to 1280x1024 but only be able to achieve that resolution for refresh rates lower than 80Hz (i.e. the set of resolutions gets smaller the higher the refresh rate goes).

The numbers displayed by your monitor look scarily high: 241Hz for vertical refresh rate? Even if that's really 120Hz with something like interlacing accounting for the doubling it's pretty damn high.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!