0

I'm trying out OGRE and I'd like to ask a question about the OGRE config dialog.

The dialog which can be opened with Ogre::Root::showConfigDialog(), lists only "800 x 600 @ 32-bit colour" for Video Mode, both for "Direct3D9 Rendering Subsystem" and "Direct3D11 Rendering Subsystem".

My question is, why is there only 800x600x32 ? Is there a way to make it list more video modes, like 1024x768x32, 1980x1080x32, etc?

I've tried Google-searching, but the closest thing I got was how to change video mode without the use of the config dialog.

Any help would be appreciated, thank you!

EDIT:
Here's a link to my screenshot of OGRE Engine Rendering Setup dialog, since I don't have enough reputation to upload images.
https://i.stack.imgur.com/zc1Rj.jpg

James0124
  • 310
  • 2
  • 8
  • Which Ogre version are you using? – Philip Allgaier Feb 15 '15 at 21:23
  • @PhilipAllgaier I'm using OGRE 1.8.1 on VS2012. – James0124 Feb 16 '15 at 00:19
  • The older Ogre version should not play a role in your case. But I saw something different and updated my answer. – Philip Allgaier Feb 16 '15 at 13:14
  • @PhilipAllgaier The older version should not play a role? Do you mean I should use OGRE 1.9 from the repository ? Yes, tried running from explorer context menu using "High performance NVIDIA Processor", nothing changes... – James0124 Feb 16 '15 at 13:20
  • @PhilipAllgaier I just found this message in ogre.log... : WARNING D3D11: Couldn't find requested video mode. Forcing 32bpp. If you have two GPUs and you're rendering to the GPU that is not plugged to the monitor you can then ignore this message. – James0124 Feb 16 '15 at 13:20
  • I would ignore the D3D11 system for now, and stick with D3D9 since that is the more stable one in your Ogre version. But the log message goes in the same direction as my answer: Due to Optimus the wrong GPU gets used. The below described driver policy trick might work. – Philip Allgaier Feb 16 '15 at 13:27

1 Answers1

0

In general: This list will automatically contain all available video modes reported by the selected rendering API drivers. If you are certain that your current API and drivers should allow more, you could debug the respective _initialise() function, e.g. for D3D11 in OgreD3D11RenderSystem.cpp:

RenderWindow* D3D11RenderSystem::_initialise( bool autoCreateWindow, const String& windowTitle )

Internally, the function D3D11VideoModeList::enumerate() will be used to enumerate all possible values from the driver.


I saw that your GPU uses "NVIDIA Optimus". Did you try to tell NVIDIA to use the correct GPU for your Ogre application? I saw that in the config dialog the GTX is selected, but just to make sure: How to select Optimus GPU.

Also this Optimus policy trick might help:

NVIDIA released Optimus rendering policies guidelines not long ago. If the user has driver 302 or higher, we can hint the driver to use the dedicated GPU. All we need to do is to export a variable:

extern "C" {
    _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
}
Philip Allgaier
  • 3,505
  • 2
  • 26
  • 53
  • Thank you for you answer! How would I check if my current API and drivers support more video modes? If my graphics card (GeForce GTX680M) supports other resolutions, wouldn't it mean that the API and drivers support those modes? Thanks in advance! – James0124 Feb 16 '15 at 10:07
  • I would very much expect so (and never heard of any trouble in that regard on our forums). Did you double-check that you definitetly cannot change the 800x600 resolution in the config dialog? Just to make sure: For each render system that you can select in the main drop-down you can adjust the concrete settings in the property grid below. – Philip Allgaier Feb 16 '15 at 11:27
  • I appreciate your reply! I edited my question to include a link to my screenshot. The default is 800x600x32, and the drop-down lists nothing else. – James0124 Feb 16 '15 at 12:15
  • Thank you. I tried both selecting High-performance NVIDIA processor and the NvOptimusEnablement thing, but neither helped... – James0124 Feb 16 '15 at 13:36
  • Sorry I forgot to switch to D3D9... After I did that, it finally worked, I can select other video modes... Thank you. Do you think at future versions of OGRE I will be able to select other video modes in D3D11 ? – James0124 Feb 16 '15 at 13:43
  • @JamesAMD Did only switching to D3D9 work or did you also have to tell Optimus to use the real GPU and/or use the driver trick? In the (near) future our D3D11 integration will receive some improvements, but this video mode selection part should already work properly so I assume no changes in that regard are in the pipeline and those changes will also only affect Ogre 1.10 (current default branch). – Philip Allgaier Feb 16 '15 at 13:46
  • @JamesAMD **Update:** I just realized that by notebook GPU has the same issue (never used D3D11 on it so far). I can however change video modes when selecting the Intel onboard GPU, which in the end might just be displayed wrong and could in fact be starting up the real NVIDIA GPU. Feel free to create a ticket on our [JIRA bug tracker](http://jira.ogre3d.org) and I will look into it. – Philip Allgaier Feb 16 '15 at 13:58
  • Only switching to D3D9 seems to do the trick, but now I can only use Intel HD4000 Graphics and not GTX 680M. So on D3D9:Can select from multiple video modes, only on-board graphics, and on D3D11:Can select only one video mode, but on-board graphics as well as GTX 680M for rendering device. – James0124 Feb 16 '15 at 13:59
  • Thank you for your information. However, I don't really know this JIRA thing, I would very much appreciate if you could do this "create a ticket" thing instead of me when you have the time, I don't wanna mess up your bug tracking. – James0124 Feb 16 '15 at 14:09