[SOLVED] The joys of building Ogre with TDM MinGW 4.8.1

Problems building or running the engine, queries about how to use features etc.
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

[SOLVED] The joys of building Ogre with TDM MinGW 4.8.1

Post by HackerManiac »

Edit: I finally managed to build Ogre 1.10.0 successfully with TDM 4.8.1 on Windows 7 x64
I also updated the MinGW Wiki page for MinGW with all (I think) fixes that I came across during my whole month adventure of trying to get it to work. The page is here http://www.ogre3d.org/tikiwiki/tiki-ind ... +and+MinGW.


I've been trying to set up Ogre3D and I'm still quite new to it, please excuse me if I made a newbie error here.
I was trying to get the first tutorial to work using the tutorial framework, but it crashes when mRoot -> showConfigDialog() is called.
I get the same error when using Ogre 1.10.0 and 1.9.0 (with the appropriate frameworks for each) in both Debug and Release builds.
Here's a screenshot of the crash: http://puu.sh/cw47l/fda2e84e58.png
And a screenshot of the call stack: http://puu.sh/cw46j/b673906040.png

To me it seemed like a file was missing that was needed for the config dialog, but then I copied the SampleBrowser.exe into my project folder, and when running it showed the config dialog correctly.
I am linking with static libraries and using the GL3Plus Rendering System.

Contents of Ogre.log:

Code: Select all

10:04:14: Creating resource group General
10:04:14: Creating resource group Internal
10:04:14: Creating resource group Autodetect
10:04:14: SceneManagerFactory for type 'DefaultSceneManager' registered.
10:04:14: Registering ResourceManager for type Material
10:04:14: Registering ResourceManager for type Mesh
10:04:14: Registering ResourceManager for type Skeleton
10:04:14: MovableObjectFactory for type 'ParticleSystem' registered.
10:04:14: ArchiveFactory for archive type FileSystem registered.
10:04:14: ArchiveFactory for archive type Zip registered.
10:04:14: ArchiveFactory for archive type EmbeddedZip registered.
10:04:14: DDS codec registering
10:04:14: FreeImage version: 3.15.3
10:04:14: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
10:04:14: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti
10:04:14: ETC codec registering
10:04:14: Registering ResourceManager for type HighLevelGpuProgram
10:04:14: Registering ResourceManager for type Compositor
10:04:14: MovableObjectFactory for type 'Entity' registered.
10:04:14: MovableObjectFactory for type 'Light' registered.
10:04:14: MovableObjectFactory for type 'BillboardSet' registered.
10:04:14: MovableObjectFactory for type 'ManualObject' registered.
10:04:14: MovableObjectFactory for type 'BillboardChain' registered.
10:04:14: MovableObjectFactory for type 'RibbonTrail' registered.
10:04:14: *-*-* OGRE Initialising
10:04:14: *-*-* Version 1.9.0 (Ghadamon)
10:04:14: Installing plugin: GL 3+ RenderSystem
10:04:14: OpenGL 3+ Rendering Subsystem (EXPERIMENTAL) created.
10:04:15: Plugin successfully installed
10:04:15: Installing plugin: Cg Program Manager
10:04:15: Plugin successfully installed
10:04:15: Installing plugin: Octree Scene Manager
10:04:15: Plugin successfully installed
10:04:15: Installing plugin: ParticleFX
10:04:15: Particle Emitter Type 'Point' registered
10:04:15: Particle Emitter Type 'Box' registered
10:04:15: Particle Emitter Type 'Ellipsoid' registered
10:04:15: Particle Emitter Type 'Cylinder' registered
10:04:15: Particle Emitter Type 'Ring' registered
10:04:15: Particle Emitter Type 'HollowEllipsoid' registered
10:04:15: Particle Affector Type 'LinearForce' registered
10:04:15: Particle Affector Type 'ColourFader' registered
10:04:15: Particle Affector Type 'ColourFader2' registered
10:04:15: Particle Affector Type 'ColourImage' registered
10:04:15: Particle Affector Type 'ColourInterpolator' registered
10:04:15: Particle Affector Type 'Scaler' registered
10:04:15: Particle Affector Type 'Rotator' registered
10:04:15: Particle Affector Type 'DirectionRandomiser' registered
10:04:15: Particle Affector Type 'DeflectorPlane' registered
10:04:15: Plugin successfully installed
10:04:15: Installing plugin: BSP Scene Manager
10:04:15: Plugin successfully installed
10:04:15: Creating resource group Essential
10:04:15: Added resource location 'Media/Packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
10:04:15: Added resource location 'Media' of type 'FileSystem' to resource group 'General'
10:04:15: Added resource location 'Media/Materials/Scripts' of type 'FileSystem' to resource group 'General'
10:04:15: Added resource location 'Media/Materials/Textures' of type 'FileSystem' to resource group 'General'
10:04:15: Added resource location 'Media/Models' of type 'FileSystem' to resource group 'General'
I hope I have provided enough info, please tell me if I lack something.
Last edited by HackerManiac on Wed Dec 03, 2014 6:56 pm, edited 3 times in total.
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Guess I forgot to mention I built Ogre 1.9.0 and 1.10.0 from source using the TDM MinGW compiler (4.8.1) on Windows 7 64 bit. I built 64 bit libs as well.
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

I assume whatever is going on in your build process, you aren't embedding the resources into the exe. Then you try to use said resources in the config dialog and the call to DialogBox returns -1. This is not the first time I've seen a mingw user report this issue, but I can't say I know what the fix is (or care to find out ... windows compiler for windows platform ftw)
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Thank you very much, that helped me get the lead on the problem here. I had missed out a small part about static Ogre libs here.
It says:
Resource Files

If you use the default config or error dialogs, you will need the Windows resources to go with them. These are compiled into OgreWin32Resources[_d].res and are located in the ogrenew/lib folder with all the other libraries. Add this file to your linker just like a regular .lib file to embed the dialog resources in your own executable so that they can be used. Normally these resources are embedded in OgreMain[_d].dll but since we're linking statically, your own binary has to carry them.
The problem here is that this file is not built together with Ogre (perhaps the guide is outdated?). I can find OgreWin32Resources.rc (not .res) in the Ogre source folder. The first line of which says

Code: Select all

// Microsoft Visual C++ generated resource script.
so I don't think this is the right file (linking against it doesn't work anyway, I tried). In CMake instructions, in the Ogre source, I can find that this file is used for building the Cube Mapping sample. (I don't know whether that's useful, but I thought it was worth mentioning).

Again, sorry if I missed something obvious (maybe ogre win32 resources are only built together with DirectX? I never built that, only OpenGL), but I'm really confused :?
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

New update on my progress with the issue: I dedicated some more time for googling about using static Ogre and MinGW on Windows and found a few things. One of them is that CMake builds the OgreWin32Resources.rc into OgreWin32Resources.rc.obj and that is located in "ogrenew/OgreMain/". The strangest thing that I've never done before, is that I can link against this file (I just copied it to my "ogre/lib" folder) and then the config dialog works :D.
Now I thought everything was going to be great, but when I run the program it opens for a while with a black window, and then crashes...

Ogre.log has a lot more output this time, here are the contents:

Code: Select all

16:50:34: Creating resource group General
16:50:34: Creating resource group Internal
16:50:34: Creating resource group Autodetect
16:50:34: SceneManagerFactory for type 'DefaultSceneManager' registered.
16:50:34: Registering ResourceManager for type Material
16:50:34: Registering ResourceManager for type Mesh
16:50:34: Registering ResourceManager for type Skeleton
16:50:34: MovableObjectFactory for type 'ParticleSystem' registered.
16:50:34: ArchiveFactory for archive type FileSystem registered.
16:50:34: ArchiveFactory for archive type Zip registered.
16:50:34: ArchiveFactory for archive type EmbeddedZip registered.
16:50:34: DDS codec registering
16:50:34: FreeImage version: 3.15.3
16:50:34: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
16:50:34: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,3fr,arw,bay,bmq,cap,cine,cr2,crw,cs1,dc2,dcr,drf,dsc,dng,erf,fff,ia,iiq,k25,kc2,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,ptx,pxn,qtk,raf,raw,rdc,rw2,rwl,rwz,sr2,srf,srw,sti
16:50:34: ETC codec registering
16:50:34: Registering ResourceManager for type HighLevelGpuProgram
16:50:34: Registering ResourceManager for type Compositor
16:50:34: MovableObjectFactory for type 'Entity' registered.
16:50:34: MovableObjectFactory for type 'Light' registered.
16:50:34: MovableObjectFactory for type 'BillboardSet' registered.
16:50:34: MovableObjectFactory for type 'ManualObject' registered.
16:50:34: MovableObjectFactory for type 'BillboardChain' registered.
16:50:34: MovableObjectFactory for type 'RibbonTrail' registered.
16:50:34: *-*-* OGRE Initialising
16:50:34: *-*-* Version 1.9.0 (Ghadamon)
16:50:34: Installing plugin: GL 3+ RenderSystem
16:50:34: OpenGL 3+ Rendering Subsystem (EXPERIMENTAL) created.
16:50:34: Plugin successfully installed
16:50:34: Installing plugin: Cg Program Manager
16:50:34: Plugin successfully installed
16:50:34: Installing plugin: Octree Scene Manager
16:50:34: Plugin successfully installed
16:50:34: Installing plugin: ParticleFX
16:50:34: Particle Emitter Type 'Point' registered
16:50:34: Particle Emitter Type 'Box' registered
16:50:34: Particle Emitter Type 'Ellipsoid' registered
16:50:34: Particle Emitter Type 'Cylinder' registered
16:50:34: Particle Emitter Type 'Ring' registered
16:50:34: Particle Emitter Type 'HollowEllipsoid' registered
16:50:34: Particle Affector Type 'LinearForce' registered
16:50:34: Particle Affector Type 'ColourFader' registered
16:50:34: Particle Affector Type 'ColourFader2' registered
16:50:34: Particle Affector Type 'ColourImage' registered
16:50:34: Particle Affector Type 'ColourInterpolator' registered
16:50:34: Particle Affector Type 'Scaler' registered
16:50:34: Particle Affector Type 'Rotator' registered
16:50:34: Particle Affector Type 'DirectionRandomiser' registered
16:50:34: Particle Affector Type 'DeflectorPlane' registered
16:50:34: Plugin successfully installed
16:50:34: Installing plugin: BSP Scene Manager
16:50:34: Plugin successfully installed
16:50:34: Creating resource group Essential
16:50:34: Added resource location 'Media/Packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
16:50:34: Added resource location 'Media' of type 'FileSystem' to resource group 'General'
16:50:34: Added resource location 'Media/Materials/Scripts' of type 'FileSystem' to resource group 'General'
16:50:34: Added resource location 'Media/Materials/Textures' of type 'FileSystem' to resource group 'General'
16:50:34: Added resource location 'Media/Models' of type 'FileSystem' to resource group 'General'
16:50:44: CPU Identifier & Features
16:50:44: -------------------------
16:50:44:  *   CPU ID: AuthenticAMD: AMD FX(tm)-8350 Eight-Core Processor
16:50:44:  *      SSE: yes
16:50:44:  *     SSE2: yes
16:50:44:  *     SSE3: yes
16:50:44:  *      MMX: yes
16:50:44:  *   MMXEXT: yes
16:50:44:  *    3DNOW: no
16:50:44:  * 3DNOWEXT: no
16:50:44:  *     CMOV: yes
16:50:44:  *      TSC: yes
16:50:44:  *      FPU: yes
16:50:44:  *      PRO: yes
16:50:44:  *       HT: no
16:50:44: -------------------------
16:50:44: *** Starting Win32GL Subsystem ***
16:50:44: GL3PlusRenderSystem::_createRenderWindow "TutorialApplication Render Window", 800x600 windowed  miscParams: FSAA=0 FSAAHint= colourDepth=32 displayFrequency=0 gamma=false vsync=false vsyncInterval=1 
16:50:44: Created Win32Window 'TutorialApplication Render Window' : 816x638, 32bpp
16:50:44: GL_VERSION = 4.4.0 NVIDIA 344.48
16:50:44: GL_VENDOR = NVIDIA Corporation
16:50:44: GL_RENDERER = GeForce GTX 770/PCIe/SSE2
16:50:44: GL_EXTENSIONS = 
16:50:44: GL_AMD_multi_draw_indirect
16:50:44: GL_AMD_seamless_cubemap_per_texture
16:50:44: GL_ARB_arrays_of_arrays
16:50:44: GL_ARB_base_instance
16:50:44: GL_ARB_bindless_texture
16:50:44: GL_ARB_blend_func_extended
16:50:44: GL_ARB_buffer_storage
16:50:44: GL_ARB_clear_buffer_object
16:50:44: GL_ARB_clear_texture
16:50:44: GL_ARB_color_buffer_float
16:50:44: GL_ARB_compatibility
16:50:44: GL_ARB_compressed_texture_pixel_storage
16:50:44: GL_ARB_conservative_depth
16:50:44: GL_ARB_compute_shader
16:50:44: GL_ARB_compute_variable_group_size
16:50:44: GL_ARB_copy_buffer
16:50:44: GL_ARB_copy_image
16:50:44: GL_ARB_debug_output
16:50:44: GL_ARB_depth_buffer_float
16:50:44: GL_ARB_depth_clamp
16:50:44: GL_ARB_depth_texture
16:50:44: GL_ARB_draw_buffers
16:50:44: GL_ARB_draw_buffers_blend
16:50:44: GL_ARB_draw_indirect
16:50:44: GL_ARB_draw_elements_base_vertex
16:50:44: GL_ARB_draw_instanced
16:50:44: GL_ARB_enhanced_layouts
16:50:44: GL_ARB_ES2_compatibility
16:50:44: GL_ARB_ES3_compatibility
16:50:44: GL_ARB_ES3_1_compatibility
16:50:44: GL_ARB_explicit_attrib_location
16:50:44: GL_ARB_explicit_uniform_location
16:50:44: GL_ARB_fragment_coord_conventions
16:50:44: GL_ARB_fragment_layer_viewport
16:50:44: GL_ARB_fragment_program
16:50:44: GL_ARB_fragment_program_shadow
16:50:44: GL_ARB_fragment_shader
16:50:44: GL_ARB_framebuffer_no_attachments
16:50:44: GL_ARB_framebuffer_object
16:50:44: GL_ARB_framebuffer_sRGB
16:50:44: GL_ARB_geometry_shader4
16:50:44: GL_ARB_get_program_binary
16:50:44: GL_ARB_gpu_shader5
16:50:44: GL_ARB_gpu_shader_fp64
16:50:44: GL_ARB_half_float_pixel
16:50:44: GL_ARB_half_float_vertex
16:50:44: GL_ARB_imaging
16:50:44: GL_ARB_indirect_parameters
16:50:44: GL_ARB_instanced_arrays
16:50:44: GL_ARB_internalformat_query
16:50:44: GL_ARB_internalformat_query2
16:50:44: GL_ARB_invalidate_subdata
16:50:44: GL_ARB_map_buffer_alignment
16:50:44: GL_ARB_map_buffer_range
16:50:44: GL_ARB_multi_bind
16:50:44: GL_ARB_multi_draw_indirect
16:50:44: GL_ARB_multisample
16:50:44: GL_ARB_multitexture
16:50:44: GL_ARB_occlusion_query
16:50:44: GL_ARB_occlusion_query2
16:50:44: GL_ARB_pixel_buffer_object
16:50:44: GL_ARB_point_parameters
16:50:44: GL_ARB_point_sprite
16:50:44: GL_ARB_program_interface_query
16:50:44: GL_ARB_provoking_vertex
16:50:44: GL_ARB_robust_buffer_access_behavior
16:50:44: GL_ARB_robustness
16:50:44: GL_ARB_sample_shading
16:50:44: GL_ARB_sampler_objects
16:50:44: GL_ARB_seamless_cube_map
16:50:44: GL_ARB_seamless_cubemap_per_texture
16:50:44: GL_ARB_separate_shader_objects
16:50:44: GL_ARB_shader_atomic_counters
16:50:44: GL_ARB_shader_bit_encoding
16:50:44: GL_ARB_shader_draw_parameters
16:50:44: GL_ARB_shader_group_vote
16:50:44: GL_ARB_shader_image_load_store
16:50:44: GL_ARB_shader_image_size
16:50:44: GL_ARB_shader_objects
16:50:44: GL_ARB_shader_precision
16:50:44: GL_ARB_query_buffer_object
16:50:44: GL_ARB_shader_storage_buffer_object
16:50:44: GL_ARB_shader_subroutine
16:50:44: GL_ARB_shader_texture_lod
16:50:44: GL_ARB_shading_language_100
16:50:44: GL_ARB_shading_language_420pack
16:50:44: GL_ARB_shading_language_include
16:50:44: GL_ARB_shading_language_packing
16:50:44: GL_ARB_shadow
16:50:44: GL_ARB_sparse_texture
16:50:44: GL_ARB_stencil_texturing
16:50:44: GL_ARB_sync
16:50:44: GL_ARB_tessellation_shader
16:50:44: GL_ARB_texture_border_clamp
16:50:44: GL_ARB_texture_buffer_object
16:50:44: GL_ARB_texture_buffer_object_rgb32
16:50:44: GL_ARB_texture_buffer_range
16:50:44: GL_ARB_texture_compression
16:50:44: GL_ARB_texture_compression_bptc
16:50:44: GL_ARB_texture_compression_rgtc
16:50:44: GL_ARB_texture_cube_map
16:50:44: GL_ARB_texture_cube_map_array
16:50:44: GL_ARB_texture_env_add
16:50:44: GL_ARB_texture_env_combine
16:50:44: GL_ARB_texture_env_crossbar
16:50:44: GL_ARB_texture_env_dot3
16:50:44: GL_ARB_texture_float
16:50:44: GL_ARB_texture_gather
16:50:44: GL_ARB_texture_mirror_clamp_to_edge
16:50:44: GL_ARB_texture_mirrored_repeat
16:50:44: GL_ARB_texture_multisample
16:50:44: GL_ARB_texture_non_power_of_two
16:50:44: GL_ARB_texture_query_levels
16:50:44: GL_ARB_texture_query_lod
16:50:44: GL_ARB_texture_rectangle
16:50:44: GL_ARB_texture_rg
16:50:44: GL_ARB_texture_rgb10_a2ui
16:50:44: GL_ARB_texture_stencil8
16:50:44: GL_ARB_texture_storage
16:50:44: GL_ARB_texture_storage_multisample
16:50:44: GL_ARB_texture_swizzle
16:50:44: GL_ARB_texture_view
16:50:44: GL_ARB_timer_query
16:50:44: GL_ARB_transform_feedback2
16:50:44: GL_ARB_transform_feedback3
16:50:44: GL_ARB_transform_feedback_instanced
16:50:44: GL_ARB_transpose_matrix
16:50:44: GL_ARB_uniform_buffer_object
16:50:44: GL_ARB_vertex_array_bgra
16:50:44: GL_ARB_vertex_array_object
16:50:44: GL_ARB_vertex_attrib_64bit
16:50:44: GL_ARB_vertex_attrib_binding
16:50:44: GL_ARB_vertex_buffer_object
16:50:44: GL_ARB_vertex_program
16:50:44: GL_ARB_vertex_shader
16:50:44: GL_ARB_vertex_type_10f_11f_11f_rev
16:50:44: GL_ARB_vertex_type_2_10_10_10_rev
16:50:44: GL_ARB_viewport_array
16:50:44: GL_ARB_window_pos
16:50:44: GL_ATI_draw_buffers
16:50:44: GL_ATI_texture_float
16:50:44: GL_ATI_texture_mirror_once
16:50:44: GL_S3_s3tc
16:50:44: GL_EXT_texture_env_add
16:50:44: GL_EXT_abgr
16:50:44: GL_EXT_bgra
16:50:44: GL_EXT_bindable_uniform
16:50:44: GL_EXT_blend_color
16:50:44: GL_EXT_blend_equation_separate
16:50:44: GL_EXT_blend_func_separate
16:50:44: GL_EXT_blend_minmax
16:50:44: GL_EXT_blend_subtract
16:50:44: GL_EXT_compiled_vertex_array
16:50:44: GL_EXT_Cg_shader
16:50:44: GL_EXT_depth_bounds_test
16:50:44: GL_EXT_direct_state_access
16:50:44: GL_EXT_draw_buffers2
16:50:44: GL_EXT_draw_instanced
16:50:44: GL_EXT_draw_range_elements
16:50:44: GL_EXT_fog_coord
16:50:44: GL_EXT_framebuffer_blit
16:50:44: GL_EXT_framebuffer_multisample
16:50:44: GL_EXTX_framebuffer_mixed_formats
16:50:44: GL_EXT_framebuffer_multisample_blit_scaled
16:50:44: GL_EXT_framebuffer_object
16:50:44: GL_EXT_framebuffer_sRGB
16:50:44: GL_EXT_geometry_shader4
16:50:44: GL_EXT_gpu_program_parameters
16:50:44: GL_EXT_gpu_shader4
16:50:44: GL_EXT_multi_draw_arrays
16:50:44: GL_EXT_packed_depth_stencil
16:50:44: GL_EXT_packed_float
16:50:44: GL_EXT_packed_pixels
16:50:44: GL_EXT_pixel_buffer_object
16:50:44: GL_EXT_point_parameters
16:50:44: GL_EXT_provoking_vertex
16:50:44: GL_EXT_rescale_normal
16:50:44: GL_EXT_secondary_color
16:50:44: GL_EXT_separate_shader_objects
16:50:44: GL_EXT_separate_specular_color
16:50:44: GL_EXT_shader_image_load_store
16:50:44: GL_EXT_shader_integer_mix
16:50:44: GL_EXT_shadow_funcs
16:50:44: GL_EXT_stencil_two_side
16:50:44: GL_EXT_stencil_wrap
16:50:44: GL_EXT_texture3D
16:50:44: GL_EXT_texture_array
16:50:44: GL_EXT_texture_buffer_object
16:50:44: GL_EXT_texture_compression_dxt1
16:50:44: GL_EXT_texture_compression_latc
16:50:44: GL_EXT_texture_compression_rgtc
16:50:44: GL_EXT_texture_compression_s3tc
16:50:44: GL_EXT_texture_cube_map
16:50:44: GL_EXT_texture_edge_clamp
16:50:44: GL_EXT_texture_env_combine
16:50:44: GL_EXT_texture_env_dot3
16:50:44: GL_EXT_texture_filter_anisotropic
16:50:44: GL_EXT_texture_integer
16:50:44: GL_EXT_texture_lod
16:50:44: GL_EXT_texture_lod_bias
16:50:44: GL_EXT_texture_mirror_clamp
16:50:44: GL_EXT_texture_object
16:50:44: GL_EXT_texture_shared_exponent
16:50:44: GL_EXT_texture_sRGB
16:50:44: GL_EXT_texture_sRGB_decode
16:50:44: GL_EXT_texture_storage
16:50:44: GL_EXT_texture_swizzle
16:50:44: GL_EXT_timer_query
16:50:44: GL_EXT_transform_feedback2
16:50:44: GL_EXT_vertex_array
16:50:44: GL_EXT_vertex_array_bgra
16:50:44: GL_EXT_vertex_attrib_64bit
16:50:44: GL_EXT_import_sync_object
16:50:44: GL_IBM_rasterpos_clip
16:50:44: GL_IBM_texture_mirrored_repeat
16:50:44: GL_KHR_debug
16:50:44: GL_KTX_buffer_region
16:50:44: GL_NV_bindless_multi_draw_indirect
16:50:44: GL_NV_bindless_multi_draw_indirect_count
16:50:44: GL_NV_bindless_texture
16:50:44: GL_NV_blend_equation_advanced
16:50:44: GL_NV_blend_square
16:50:44: GL_NV_compute_program5
16:50:44: GL_NV_conditional_render
16:50:44: GL_NV_copy_depth_to_color
16:50:44: GL_NV_copy_image
16:50:44: GL_NV_depth_buffer_float
16:50:44: GL_NV_depth_clamp
16:50:44: GL_NV_draw_texture
16:50:44: GL_NV_ES1_1_compatibility
16:50:44: GL_NV_ES3_1_compatibility
16:50:44: GL_NV_explicit_multisample
16:50:44: GL_NV_fence
16:50:44: GL_NV_float_buffer
16:50:44: GL_NV_fog_distance
16:50:44: GL_NV_fragment_program
16:50:44: GL_NV_fragment_program_option
16:50:44: GL_NV_fragment_program2
16:50:44: GL_NV_framebuffer_multisample_coverage
16:50:44: GL_NV_geometry_shader4
16:50:44: GL_NV_gpu_program4
16:50:44: GL_NV_gpu_program4_1
16:50:44: GL_NV_gpu_program5
16:50:44: GL_NV_gpu_program5_mem_extended
16:50:44: GL_NV_gpu_program_fp64
16:50:44: GL_NV_gpu_shader5
16:50:44: GL_NV_half_float
16:50:44: GL_NV_light_max_exponent
16:50:44: GL_NV_multisample_coverage
16:50:44: GL_NV_multisample_filter_hint
16:50:44: GL_NV_occlusion_query
16:50:44: GL_NV_packed_depth_stencil
16:50:44: GL_NV_parameter_buffer_object
16:50:44: GL_NV_parameter_buffer_object2
16:50:44: GL_NV_path_rendering
16:50:44: GL_NV_pixel_data_range
16:50:44: GL_NV_point_sprite
16:50:44: GL_NV_primitive_restart
16:50:44: GL_NV_register_combiners
16:50:44: GL_NV_register_combiners2
16:50:44: GL_NV_shader_atomic_counters
16:50:44: GL_NV_shader_atomic_float
16:50:44: GL_NV_shader_buffer_load
16:50:44: GL_NV_shader_storage_buffer_object
16:50:44: GL_NV_texgen_reflection
16:50:44: GL_NV_texture_barrier
16:50:44: GL_NV_texture_compression_vtc
16:50:44: GL_NV_texture_env_combine4
16:50:44: GL_NV_texture_multisample
16:50:44: GL_NV_texture_rectangle
16:50:44: GL_NV_texture_shader
16:50:44: GL_NV_texture_shader2
16:50:44: GL_NV_texture_shader3
16:50:44: GL_NV_transform_feedback
16:50:44: GL_NV_transform_feedback2
16:50:44: GL_NV_vertex_array_range
16:50:44: GL_NV_vertex_array_range2
16:50:44: GL_NV_vertex_attrib_integer_64bit
16:50:44: GL_NV_vertex_buffer_unified_memory
16:50:44: GL_NV_vertex_program
16:50:44: GL_NV_vertex_program1_1
16:50:44: GL_NV_vertex_program2
16:50:44: GL_NV_vertex_program2_option
16:50:44: GL_NV_vertex_program3
16:50:44: GL_NVX_conditional_render
16:50:44: GL_NVX_gpu_memory_info
16:50:44: GL_NVX_nvenc_interop
16:50:44: GL_NV_shader_thread_group
16:50:44: GL_NV_shader_thread_shuffle
16:50:44: GL_KHR_blend_equation_advanced
16:50:44: GL_SGIS_generate_mipmap
16:50:44: GL_SGIS_texture_lod
16:50:44: GL_SGIX_depth_texture
16:50:44: GL_SGIX_shadow
16:50:44: GL_SUN_slice_accum
16:50:44: GL_WIN_swap_hint
16:50:44: WGL_EXT_swap_control
16:50:44: Supported WGL extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle 
16:50:44: **************************************
16:50:44: ***   OpenGL 3+ Renderer Started   ***
16:50:44: ***          EXPERIMENTAL          ***
16:50:44: **************************************
16:50:44: Registering ResourceManager for type GpuProgram
16:50:44: GL3+: Using FBOs for rendering to textures
16:50:44: FBO PF_UNKNOWN depth/stencil support: D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:44: FBO PF_L8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:44: FBO PF_L16 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_BYTE_LA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_R5G6B5 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A8B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_R8G8B8A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_DEPTH depth/stencil support: D0S0 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_R3G3B2 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:45: FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_SHORT_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R11G11B10_FLOAT depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8B8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8B8A8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16B16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16B16A16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32B32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32B32A32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8B8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R8G8B8A8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16B16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R16G16B16A16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32B32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: FBO PF_R32G32B32A32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
16:50:46: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_R8G8B8A8 PF_DEPTH PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB PF_R11G11B10_FLOAT PF_R8_UINT PF_R8G8_UINT PF_R8G8B8_UINT PF_R8G8B8A8_UINT PF_R16_UINT PF_R16G16_UINT PF_R16G16B16_UINT PF_R16G16B16A16_UINT PF_R32_UINT PF_R32G32_UINT PF_R32G32B32_UINT PF_R32G32B32A32_UINT PF_R8_SINT PF_R8G8_SINT PF_R8G8B8_SINT PF_R8G8B8A8_SINT PF_R16_SINT PF_R16G16_SINT PF_R16G16B16_SINT PF_R16G16B16A16_SINT PF_R32_SINT PF_R32G32_SINT PF_R32G32B32_SINT PF_R32G32B32A32_SINT 
16:50:46: RenderSystem capabilities
16:50:46: -------------------------
16:50:46: RenderSystem Name: OpenGL 3+ Rendering Subsystem (EXPERIMENTAL)
16:50:46: GPU Vendor: nvidia
16:50:46: Device Name: GeForce GTX 770/PCIe/SSE2
16:50:46: Driver Version: 4.4.0.0
16:50:46:  * Fixed function pipeline: no
16:50:46:  * Hardware generation of mipmaps: yes
16:50:46:  * Texture blending: yes
16:50:46:  * Anisotropic texture filtering: yes
16:50:46:  * Dot product texture operation: yes
16:50:46:  * Cube mapping: yes
16:50:46:  * Hardware stencil buffer: yes
16:50:46:    - Stencil depth: 8
16:50:46:    - Two sided stencil support: yes
16:50:46:    - Wrap stencil values: yes
16:50:46:  * Hardware vertex / index buffers: yes
16:50:46:  * 32-bit index buffers: yes
16:50:46:  * Vertex programs: yes
16:50:46:  * Number of floating-point constants for vertex programs: 4096
16:50:46:  * Number of integer constants for vertex programs: 4096
16:50:46:  * Number of boolean constants for vertex programs: 4096
16:50:46:  * Fragment programs: yes
16:50:46:  * Number of floating-point constants for fragment programs: 2048
16:50:46:  * Number of integer constants for fragment programs: 2048
16:50:46:  * Number of boolean constants for fragment programs: 2048
16:50:46:  * Geometry programs: yes
16:50:46:  * Number of floating-point constants for geometry programs: 2048
16:50:46:  * Number of integer constants for geometry programs: 0
16:50:46:  * Number of boolean constants for geometry programs: 0
16:50:46:  * Tesselation Hull programs: yes
16:50:46:  * Number of floating-point constants for tesselation hull programs: 2048
16:50:46:  * Number of integer constants for tesselation hull programs: 2048
16:50:46:  * Number of boolean constants for tesselation hull programs: 2048
16:50:46:  * Tesselation Domain programs: yes
16:50:46:  * Number of floating-point constants for tesselation domain programs: 2048
16:50:46:  * Number of integer constants for tesselation domain programs: 2048
16:50:46:  * Number of boolean constants for tesselation domain programs: 2048
16:50:46:  * Compute programs: no
16:50:46:  * Number of floating-point constants for compute programs: 0
16:50:46:  * Number of integer constants for compute programs: 0
16:50:46:  * Number of boolean constants for compute programs: 39708
16:50:46:  * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 glsl400 glsl410 glsl420 glsl430
16:50:46:  * Texture Compression: yes
16:50:46:    - DXT: yes
16:50:46:    - VTC: yes
16:50:46:    - PVRTC: no
16:50:46:    - ATC: no
16:50:46:    - ETC1: no
16:50:46:    - ETC2: yes
16:50:46:    - BC4/BC5: yes
16:50:46:    - BC6H/BC7: yes
16:50:46:  * Scissor Rectangle: yes
16:50:46:  * Hardware Occlusion Query: yes
16:50:46:  * User clip planes: yes
16:50:46:  * VET_UBYTE4 vertex element type: yes
16:50:46:  * Infinite far plane projection: yes
16:50:46:  * Hardware render-to-texture: yes
16:50:46:  * Floating point textures: yes
16:50:46:  * Non-power-of-two textures: yes
16:50:46:  * 1d textures: yes
16:50:46:  * Volume textures: yes
16:50:46:  * Multiple Render Targets: 8
16:50:46:    - With different bit depths: yes
16:50:46:  * Point Sprites: yes
16:50:46:  * Extended point parameters: yes
16:50:46:  * Max Point Size: 189.875
16:50:46:  * Vertex texture fetch: yes
16:50:46:  * Number of world matrices: 0
16:50:46:  * Number of texture units: 16
16:50:46:  * Stencil buffer depth: 8
16:50:46:  * Number of vertex blend matrices: 0
16:50:46:    - Max vertex textures: 32
16:50:46:    - Vertex textures shared: yes
16:50:46:  * Render to Vertex Buffer : yes
16:50:46:  * Hardware Atomic Counters: yes
16:50:46:  * GL 1.5 without VBO workaround: no
16:50:46:  * Frame Buffer objects: yes
16:50:46:  * Frame Buffer objects (ARB extension): no
16:50:46:  * Frame Buffer objects (ATI extension): no
16:50:46:  * PBuffer support: no
16:50:46:  * GL 1.5 without HW-occlusion workaround: no
16:50:46:  * Vertex Array Objects: yes
16:50:46:  * Separate shader objects: yes
16:50:46: Registering ResourceManager for type Texture
16:50:46: DefaultWorkQueue('Root') initialising on thread main.
16:50:46: Particle Renderer Type 'billboard' registered
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 2 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 3 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 4 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 5 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message(0Œ-) 131185: Buffer detailed info: Buffer object 5 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message(0Œ-) 131185: Buffer detailed info: Buffer object 5 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 6 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message(0Œ-) 131185: Buffer detailed info: Buffer object 6 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: OpenGL:message(0Œ-) 131185: Buffer detailed info: Buffer object 6 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
16:50:46: Disabling Cg Plugin for GL3+
16:50:46: SceneManagerFactory for type 'OctreeSceneManager' registered.
16:50:46: SceneManagerFactory for type 'BspSceneManager' registered.
16:50:46: Registering ResourceManager for type BspLevel
16:50:46: OverlayElementFactory for type Panel registered.
16:50:46: OverlayElementFactory for type BorderPanel registered.
16:50:46: OverlayElementFactory for type TextArea registered.
16:50:46: Registering ResourceManager for type Font
16:50:46: Parsing scripts for resource group Autodetect
16:50:46: Finished parsing scripts for resource group Autodetect
16:50:46: Creating resources for group Autodetect
16:50:46: All done
16:50:46: Parsing scripts for resource group Essential
16:50:46: Parsing script SdkTrays.material
16:50:46: Parsing script SdkTrays.fontdef
16:50:46: Parsing script SdkTrays.overlay
16:50:46: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
16:50:46: OpenGL:message() 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) will use SYSTEM HEAP memory as the source for buffer object operations.
16:50:46: OpenGL:message(8LÙ) 131185: Buffer detailed info: Buffer object 7 (bound to GL_PIXEL_UNPACK_BUFFER_ARB, usage hint is GL_DYNAMIC_DRAW) has been mapped WRITE_ONLY in SYSTEM HEAP memory (fast).
16:50:46: Finished parsing scripts for resource group Essential
16:50:46: Creating resources for group Essential
16:50:46: All done
16:50:46: Parsing scripts for resource group General
16:50:46: Parsing script Ogre.material
16:50:46: Finished parsing scripts for resource group General
16:50:46: Creating resources for group General
16:50:47: All done
16:50:47: Parsing scripts for resource group Internal
16:50:47: Finished parsing scripts for resource group Internal
16:50:47: Creating resources for group Internal
16:50:47: All done
16:50:47: *** Initializing OIS ***
This shows that the program crashes when OIS is initialising. Some debugging traces the error to a particular function throwing the SIGSEGV exception in OIS source.

Code: Select all

void Win32InputManager::_initialize( ParamList &paramList )
{
	HINSTANCE hInst = 0;
	HRESULT hr;


	//First of all, get the Windows Handle and Instance
	ParamList::iterator i = paramList.find("WINDOW");
	if( i == paramList.end() ) 
		OIS_EXCEPT( E_InvalidParam, "Win32InputManager::Win32InputManager >> No HWND found!" );

	// Get number as 64 bit and then convert. Handles the case of 32 or 64 bit HWND
#ifdef _MSC_VER
	unsigned __int64 handle = _strtoui64(i->second.c_str(), 0, 10);
#else
    unsigned __int64 handle = strtoull(i->second.c_str(), 0, 10);
#endif
	hWnd  = (HWND)handle;

	if( IsWindow(hWnd) == 0 )
		OIS_EXCEPT( E_General, "Win32InputManager::Win32InputManager >> The sent HWND is not valid!");

	hInst = GetModuleHandle(0);

	//Create the device
	hr = DirectInput8Create( hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (VOID**)&mDirectInput, NULL );
    if (FAILED(hr))	
		OIS_EXCEPT( E_General, "Win32InputManager::Win32InputManager >> Not able to init DirectX8 Input!");

	//Ok, now we have DirectInput, parse whatever extra settings were sent to us
	_parseConfigSettings( paramList );

	// Enumerate devices ...
	_enumerateDevices();
}
I included the entire function for clarity, the line causing the crash is: hr = DirectInput8Create(...);

What I don't understand is why is it trying to use DirectX8, is it necessary on Windows, doesn't OpenGL have an alternative and why doesn't OIS use that? If there is something, how could I make it work?
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

OIS uses DirectInput on windows. Shouldn't be a problem.

May I ask, why are you using mingw? Do you have specific needs that are only fulfilled by mingw? All your problems are coming from there so far. If you use VS you do not end up with these problems.

EDIT: Errr wait you confused me by saying a windows process sigsegv'd, which is a *nix signal. Does the process actually crash (access violation or something?) or does the OIS_EXCEPT line get run? If it's the latter you can at least examine what the failure return code is.
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Sorry to have confused you, I may have gotten my wording wrong. This is what I mean, since I use MinGW which is a Windows port of GCC, I also use the GDB debugger, that's why I get a "SIGSEGV" aka segmentation fault (cause it's all ported from Unix). The process crashes before it gets to the OIS_EXCEPTION line. I don't really know how to trace the source of the problem any further, any ideas?
I can try making a program that doesn't use Ogre, only DirectX input to see if that would help me find the problem, but I'll have to do that later, no time now.

Now to reply to the first question, I use MinGW because I am trying my best to make things as portable between platforms as possible (hence I am also using OpenGL and avoiding DirectX), partly because this is an idealistic (perhaps also naive) way to support Linux development, and partly because it's good practice in general (eeeviiil winAPI xD)
If I cannot overcome these issues with Ogre, I might give VS a shot :)
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

Ah OK gotcha ... yeah in windows a segfault is an access violation exception or something like that. Anyway the reason I mention using VS is that working with the DX API using mingw seems to cause a lot of heartache from what I have seen. Now if you said something like "robust C99 support is important to me" then I'd say ok you have a solid reason to go with mingw over msvc (and I'm sure there are other reasons). My current project runs on windows and *nix and I use VS for the windows build and very few preprocessor statements. Basically it's a different main() and that's it. I use CMake to generate build solutions for each platform (including mobile ones). I've been using GNU C for almost 15 years prior to getting into windows development, and I really enjoy using visual studio for the windows side of things :) I've seen people complain about it, but I think it's totally lush.

But hey ... far be it for me to rob you of your stickin it to tha man moment when you get your app built using mingw :lol: Sometimes that feeling of accomplishment is worth something!

Also you should know, OIS is not mandatory for using Ogre. You could drop it in favor of other means of getting input, but AFAIK directinput is the favored way of getting input on windows. The only other option I know is windows message queue. I assume other input libraries such as SDL use directinput on windows.
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Program crash in ConfigDialog::Display

Post by frostbyte »

please consider on taking c6burns advice...
i once was a mingw fanatic - mingw tdm gave me nothing but problems....if u insist building ogre yourself please consider using regular mingw...
otherwise u can try a prebuild solution http://www.ogre3d.org/forums/viewtopic.php?f=1&t=81770
any way, mingw for the long run is a nightmare...unmatching sub libraries versions and gcc versions constantly changing...
what more is that lots of ogre related stuff builds out of the box for visual studio - while with mingw you'll continue suffering like you do now...
i personaly moved to visual studio and things are running smothly - so now i can concentrate on using ogre rather then building/debuging ogre and messing with mingw/cmake related problems...

my guess is that you stick with mingw for the editor( code-blocks? ) you are using, if thats the case - it's just isn't worth the pain...
Note i've opened a new thread,feel free to join at anytime and share your experience...http://www.ogre3d.org/forums/viewtopic. ... 23#p511023
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

i once was a mingw fanatic - mingw tdm gave me nothing but problems
I don't quite see why, but I suppose, I still have much to learn. Until now I've been using quite a few libs (SFML, NCurses, GLFW, etc.) and all of them worked very well with the TDM compiler. They've also got active developers, I once reported a bug and it got fixed within a week.
I believe most problems with Ogre are caused by their developer team not having active MinGW devs and not the compiler itself.
otherwise u can try a prebuild solution http://www.ogre3d.org/forums/viewtopic.php?f=1&t=81770
I sure will try that, thanks for the link :)
my guess is that you stick with mingw for the editor( code-blocks? ) you are using
Sorry, but I have to call bull on that one. You can use Code::Blocks with the Visual C++ compiler, if you want. Now don't get me wrong, I'm still thankful for your opinion.

Another reason why I use MinGW, that I had forgotten, is how easy it is to statically link everything into the executable (it's litterally the default option with the TDM compiler and you can change back to dynamic by adding one command in the linker options). I do this due this thing I call the DLL hell, which happens when DLLs are incompatible or are missing and whatnot (hence I also built static Ogre libs). Then again, not having much experience with VS (I've used it a bit, but not a lot), I have no idea whether this can be done as easily.

However this is really getting off-topic now, we can discuss the differences between VS and MinGW in your thread. I'll report back when I try the binaries and VS, and see if this fixes my problem :wink:
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Program crash in ConfigDialog::Display

Post by frostbyte »

actualy you are mostly right about what you think...mingw is great...gcc is great...
problem is less with mingw but with ogre support - and in my opinion mainly with Boost lib side of things...and afaik dx11 is problematic( non exists?? )
never the less iv'e build ogre with mingw about 20-30 times - always had success( with regular mingw )
but still i had hard-time with lots of libs related to ogre( spent a week on cegui - without success ) and eventualy i realized
that i'm sweaming against the stream here - and wasting valuable time...( ogre is much more then fixing compilation problems )

i dislike visual studio( still editing with netbeans/eclipse ) but it has the best support for visual studio compiler( wonder why? )

with mingw you'll be always chasing your tail upgrading to new versions and facing assosiated problems
if u want a "flawless" development with gcc and its cross-platform stuff then linux is the way to go...
never the less the best way to achieve cross-platform as c6burns suggests( damm, he have some good insights... ) is using premake,cmake etc...

if you choose to stay with mingw - avoid mixing regular mingw libs with tdm( i think thats where tdm gave me problems )
and avoid mixing libs from different gcc versions...( may work and may not... )

any way have fun compiling stuff... :wink:
Last edited by frostbyte on Wed Nov 05, 2014 12:52 am, edited 2 times in total.
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

dll hell as I understand it was mainly an issue with win2k and prior 16bit windows versions (often related to COM objects and the weird global class table thingy, or system dlls being overwritten). You are not going to cause or experience dll hell by using dlls in your application. Running an executable without the associated dll generates a simple exception, that's all. Same thing happens when you try to run a program in linux with a missing shared object.

Also static or dynamic library is a choice I make in my build system (CMake), but you can basically flip a switch in VS. I'm sure that's true in any IDE.
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Finally, here's an update, but I don't have much info :(
I built Ogre with VS, it was a little tedious, but that's because Ogre doesn't want to be 64 bit. Eventually I managed to compile the tutorial framework, but it crashes in both release and debug builds, I tried the GL and GL3Plus RenderSystems. I don't even get to the configuration window (not even talking about loading OIS, which happens afterwards and it's as far as I got with MinGW). I can't get anything out of the debugger, it shows many access violation exceptions, but it wants me to load the debugging symbols from somewhere else to give more information and I don't know where to look.
The runtime error window (appears on debug builds only) mentions R6010 (-abort() has been called).
All of this is too vague for me to google for something specific, and I'm not sure how to get more information.
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Program crash in ConfigDialog::Display

Post by frostbyte »

like you feel - no point of googling this error - somthing is very wrong here...
i've build ogre so many time on many compilers/platforms - always builds perfectly...( didn't have ogre crash problems... )
so either you did somthing wrong - playing with compiler flags/changing ogre source is very risky...
or you have a problem you are not aware of( old copy of some lib on you path...etc... )
any way ogre should be built almost out of the box....

Edit: ok now i see that you try to compile TutorialFrameWork...does this mean that SampleBrowser works ok???
meaning: is this a problem with the TutorialFrameWork project or OGRE lib?

btw: glad 4u4 moving to Visual-studio...
now for the next logical step : http://www.ogre3d.org/forums/viewtopic.php?f=4&t=69274
hope your next question will be about OGRE crash on AdvancedTutorialFrameWork :lol:
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..

coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 534

Re: Program crash in ConfigDialog::Display

Post by Kojack »

HackerManiac wrote:Finally, here's an update, but I don't have much info :(
I built Ogre with VS, it was a little tedious, but that's because Ogre doesn't want to be 64 bit.
In what way? Building Ogre in 64 bit just requires choosing a 64 bit compiler in the cmake compiler list (any of the 5 that end with "Win64") instead of a 32 bit one. Nothing should be required. (I use 64 bit ogre myself)
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Thank you for the link, I finally set up this prebuilt SDK and it worked! Yay :D, I wish they had static libs, though... Another problem is that with GL3Plus I had just a black screen, but with GL I had a nice FPS counter in the corner as well.

Since pre-built libraries worked for me, it's either my build options that broke Ogre or how I built it from source.
In what way? Building Ogre in 64 bit just requires choosing a 64 bit compiler in the cmake compiler list (any of the 5 that end with "Win64") instead of a 32 bit one. Nothing should be required. (I use 64 bit ogre myself)
I guess it won't hurt if I post all the steps I took to build Ogre with MinGW - it might help out someone else, so here goes: (Some steps were similar with VS such as steps 9 and 10, but I could skip quite many, making life a lot simpler)
All of this is for 64 bit version of Ogre 1.10.0unstable built on Windows 7 using TDM 4.8.1-3 compiler and CMake 3.0.2.

1. Download ogredeps, but take note, the cabalistic ogredeps from https://bitbucket.org/cabalistic/ogredeps/downloads, cause errors when building Ogre itself and not the dependencies and it requires a lot of re-doing when you get to such a point, so don't bother with them. The problem it causes is something like this (I am not too sure myself, but it's what I understood from googling) - FreeImage contains its own statically linked version of zlib, which causes multiple definitions when compiling Ogre, since it links against both FreeImage and zlib. This is literally the errors I get "multiple definitions of.. blah blah blah".
I found a post by a person called ali1234, who managed to identify and fix the problem :) This is his fork of ogredeps https://bitbucket.org/ali1234/ogredeps

2. Once you have the ogredeps, download the other libraries you might use, in my case I got the Cg Toolkit from https://developer.nvidia.com/cg-toolkit

3. Configure and generate the ogredeps makefiles, no problems here.

4. In FreeImage there is an error somewhere within libTIFF4, due to a bad pointer conversion, this is the place:

Code: Select all

// Warning: tif_fd is declared as 'int' currently (see libTIFF), 
    // may result in incorrect file pointers inside libTIFF on 
    // 64bit machines (sizeof(int) != sizeof(long)). 
    // Needs to be fixed within libTIFF.
	if (tif) {
		tif->tif_fd = (long)handle;
	}

	return tif;
The comment is mentioning the problem and it tells you to go to the source of libTIFF and fix it there, but an easier fix I found is to just change the line causing the problem to this:

Code: Select all

tif->tif_fd = (intptr_t)handle;
intptr_t type is guaranteed to allocate enough space for the data, so no more errors here.

5. The rest of the ogredeps build fine. What you need to do now is change the folder structure, so Ogre can find everything, this is what it should be like:
Ogredeps [Root] contains:
bin
include
lib

In include you paste all the include headers of the dependencies (found in the source).
bin and lib subfolders both have Debug and Release subfolders.
You need to build ogredeps twice to get all the libs you need and put them into their respective folders.
In bin you should have cg.dll and OIS.dll (OIS_d.dll in the Debug folder, all debug libs have a _d name extension)

6. Download the ogre source from https://bitbucket.org/sinbad/ogre/downloads .

7. If you try to build Ogre right away you will get the error message saying "CPU you selected does not support x86-64 instruction set", so before doing anything with Ogre (before using CMake with it), go into CMakeLists.txt in the Ogre source directory and find the place where it says:

Code: Select all

# set architecture to i686, since otherwise some versions of MinGW can't link the atomic primitives
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
Now change the flag to

Code: Select all

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64")
.

8. Configure Ogre by pointing it to the folder with ogredeps in it, if your folder system is right, it will detect them. Generate the makefiles.

9. In the Ogre-build folder (where I generated my makefiles) you need to open CMakeCache.txt
Find these lines:

Code: Select all

//Path to a file.
Cg_BINARY_DBG:FILEPATH=C:/Program Files (x86)/NVIDIA Corporation/Cg/bin/cg.dll

//Path to a file.
Cg_BINARY_REL:FILEPATH=C:/Program Files (x86)/NVIDIA Corporation/Cg/bin/cg.dll

//x
Cg_INCLUDE_DIR:PATH=C:/Users/Vidminas/Desktop/ogredeps/include/Cg

//x
Cg_LIBRARY_DBG:FILEPATH=C:/Program Files (x86)/NVIDIA Corporation/Cg/bin/cg.dll

//x
Cg_LIBRARY_FWK:STRING=NOTFOUND

//x
Cg_LIBRARY_REL:FILEPATH=C:/Program Files (x86)/NVIDIA Corporation/Cg/bin/cg.dll
This is wrong and you will get undefined reference errors when Ogre tries to build the Cg plugin. What you need to do is copy the cg libs from the folder where you installed them into ogredeps folder and fix the paths in CMakeCache.txt. This is what it ends up like on mine:

Code: Select all

//Path to a file.
Cg_BINARY_DBG:FILEPATH=C:/Users/Vidminas/Desktop/ogredeps/bin/Debug/cg.dll

//Path to a file.
Cg_BINARY_REL:FILEPATH=C:/Users/Vidminas/Desktop/ogredeps/bin/Release/cg.dll

//x
Cg_INCLUDE_DIR:PATH=C:/Users/Vidminas/Desktop/ogredeps/include/Cg

//x
Cg_LIBRARY_DBG:FILEPATH=C:/Users/Vidminas/Desktop/ogredeps/lib/Debug/cg.lib

//x
Cg_LIBRARY_FWK:STRING=NOTFOUND

//x
Cg_LIBRARY_REL:FILEPATH=C:/Users/Vidminas/Desktop/ogredeps/lib/Release/cg.lib
This is a really hack'ish fix that I myself came up with and perhaps something like that could cause problems.

10. Now you can finally proceed to build Ogre, however it is not over yet, you will encounter some errors when Ogre::StringConverter is used. These are caused by some #ifdefs that are a bit strange, the errors themselves are "C:\Users\Vidminas\Desktop\ogre\RenderSystems\GL\src\Win32\OgreWin32Window.cpp|260|error: call of overloaded 'toString(DWORD&)' is ambiguous|", this happens when it tries to use the DWORD type argument (unsigned long long) and there is no overload for this type of argument, the compiler then doesn't know which type to convert to and starts complaining.
This is an example place of where such an error happens: (there are more than 1, but all of them can be fixed using the same logic)

Code: Select all

if (!GetMonitorInfo(hMonitor, &monitorInfoEx))
            {
                DWORD le = GetLastError();
                LogManager::getSingleton().logMessage(LML_CRITICAL, 
                    ::Ogre::String("Win32Window::create(): Call to GetMonitorInfo() failed.")
                    + ::Ogre::String(" GetLastError() returns: ")
                    + ::Ogre::StringConverter::toString(le)
                    );
                OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Call to GetMonitorInfo() failed", "Win32Window::create()");
            }
And I fixed it by converting DWORD to size_t, for which there is an overloaded function.

Code: Select all

+ ::Ogre::StringConverter::toString(size_t(le))
11. You are finally done, now you have to set up the Ogre folder system, but this is not specific to how I built Ogre and can be found elsewhere.

Whew, this was a longer list than I expected :o, I'm sorry if I missed out some important details - let me know! I built Ogre from scratch along writing this, so I think all the steps are in correct order.

Not to mention the Tutorial Framework has a few problems if you have static Ogre libs as well.. (specifically things like still trying to load plugins.cfg or m_StaticPluginLoader.load() never being called, they are minor problems that I could fix myself, but nonetheless, big problems for something so commmonly used).

Overall my opinion is that I put too much work into Ogre to give it up anytime soon :mrgreen: . I've already got the dynamic pre-built SDK working with the GL RenderSystem, which is something I could still use, even if I won't manage to fix anything else.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 534

Re: Program crash in ConfigDialog::Display

Post by Kojack »

That's quite a long list.

For visual studio, the entire thing is just:
- Clone ogre source repo into a directory.
- Clone ogre dependencies repo into a subdirectory of the source directory called Dependencies. (I use the cabalistic repo, I guess the problems you listed with it are due to using TDM)
- Run cmake on the source directory.
- Select a 64 bit vs compiler.
- Press config 3 or so times, then press generate.
- Open the ogre.sln file and press F7 (or control-shift-b, depending on your defaults). Everything will be built (all dependencies, all ogre, all samples, etc).
User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4304
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 135
Contact:

Re: Program crash in ConfigDialog::Display

Post by spacegaier »

And that short list is why I always wonder why people use MinGW :D . It is so easy with VS...

The main problems seems to be that some Ogre dependencies are not really laid out to be compiled with MinGW. So we inherit their problems in our repositories. And I am quite reluctant to modify the dependency sources. But if that is really the only way, we will have to do that or perhaps think about branching the dependency repository into a MinGW optimized branch.
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

spacegaier wrote:And that short list is why I always wonder why people use MinGW :D . It is so easy with VS...
Same here exactly. I use gcc for android and linux and msvc for windows ... path of least resistance, and I don't fall into a sticky porting scenario since I'm constantly testing my code in gcc. MinGW is even trickier in Windows 8 apparently ... since any API changes on the windows side throw mingw for a loop. They made a buttload of changes and pulled directx into the windows sdk.

Certainly can't help mingw users that cmake support doesn't seem so great either. Or perhaps it's just that mingw users need to stay on top of newer cmake versions where the potential fixes are? I know cmake selecting the wrong march flag for x64 mingw is not a new issue so I assume its fixed in 3.x
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

Thank you for helping me out so far guys :)
- Clone ogre dependencies repo into a subdirectory of the source directory called Dependencies. (I use the cabalistic repo, I guess the problems you listed with it are due to using TDM)
CMake complained to me a lot about just pasting the source into a subfolder called "Dependencies". It wanted OIS.dll's to be under /src/bin/Release/ (and /Debug/) and other weird things, so I ended up having to build the ogredeps separately, like before and then copy the binaries into the "Dependencies" folder.
But you were right about the cabalistic ogredeps working out of the box with VS.

This was the n'th time I rebuilt Ogre from source... But finally I got it to work, and it seems like all those exceptions about acess violation were not due to the way I built Ogre. I just wasn't embedding the resources correctly (again) :oops:
Mainly this was because VS is really misleading with its project properties. In Linker -> Input, there is the option to embed managed resource files into the executable, but that doesn't work whatsoever. What I had to do was add the OgreWin32Resources.res file to the project and explicitly specify in the file options to build it in both debug and release configurations.
So now I have static Ogre libs that work with GL rendering.
Another strange VS thing - I am linking against Ogre static libs, so I decided I should use static MSVC integration, but if I set the /MT flag, it complains about me mixing static and dynamic (??). I am forced to use /MD for dynamic libs. My guess is that this is because even with static Ogre libs, OIS is still dynamic and somehow I can mix dynamic (VS) - static (Ogre) - dynamic (OIS), but not static-static-dynamic... The logic is amazing, so probably my theory is not right :lol:

A strange problem that only occurs with static libs is that you cannot link against both GL and GL3Plus as this redefines many macros and somehow this breaks everything and the program doesn't compile, but linking against them separately does work. That's no big deal, honestly, so I won't be going into that.

Next problem: GL works, but GL3Plus doesn't and this is the same problem I experienced with the pre-built binaries.
At least the Ogre.log seems to be helpful this time:

Code: Select all

19:53:04: Creating resource group General
19:53:04: Creating resource group Internal
19:53:04: Creating resource group Autodetect
19:53:04: SceneManagerFactory for type 'DefaultSceneManager' registered.
19:53:04: Registering ResourceManager for type Material
19:53:04: Registering ResourceManager for type Mesh
19:53:04: Registering ResourceManager for type Skeleton
19:53:04: MovableObjectFactory for type 'ParticleSystem' registered.
19:53:04: ArchiveFactory for archive type FileSystem registered.
19:53:04: ArchiveFactory for archive type Zip registered.
19:53:04: ArchiveFactory for archive type EmbeddedZip registered.
19:53:04: DDS codec registering
19:53:04: FreeImage version: 3.15.3
19:53:04: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
19:53:04: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic
19:53:04: ETC codec registering
19:53:04: Registering ResourceManager for type HighLevelGpuProgram
19:53:04: Registering ResourceManager for type Compositor
19:53:04: MovableObjectFactory for type 'Entity' registered.
19:53:04: MovableObjectFactory for type 'Light' registered.
19:53:04: MovableObjectFactory for type 'BillboardSet' registered.
19:53:04: MovableObjectFactory for type 'ManualObject' registered.
19:53:04: MovableObjectFactory for type 'BillboardChain' registered.
19:53:04: MovableObjectFactory for type 'RibbonTrail' registered.
19:53:04: *-*-* OGRE Initialising
19:53:04: *-*-* Version 1.10.0unstable (Xalafu)
19:53:04: Installing plugin: GL 3+ RenderSystem
19:53:04: OpenGL 3+ Rendering Subsystem (ALPHA) created.
19:53:06: Plugin successfully installed
19:53:06: Creating resource group Essential
19:53:06: Added resource location 'Media/Packs/SdkTrays.zip' of type 'Zip' to resource group 'Essential'
19:53:06: Added resource location 'Media' of type 'FileSystem' to resource group 'General'
19:53:06: Added resource location 'Media/Materials/Scripts' of type 'FileSystem' to resource group 'General'
19:53:06: Added resource location 'Media/Materials/Textures' of type 'FileSystem' to resource group 'General'
19:53:06: Added resource location 'Media/Models' of type 'FileSystem' to resource group 'General'
19:53:14: CPU Identifier & Features
19:53:14: -------------------------
19:53:14:  *   CPU ID: AuthenticAMD: AMD FX(tm)-8350 Eight-Core Processor
19:53:14:  *      SSE: yes
19:53:14:  *     SSE2: yes
19:53:14:  *     SSE3: yes
19:53:14:  *      MMX: yes
19:53:14:  *   MMXEXT: yes
19:53:14:  *    3DNOW: no
19:53:14:  * 3DNOWEXT: no
19:53:14:  *     CMOV: yes
19:53:14:  *      TSC: yes
19:53:14:  *      FPU: yes
19:53:14:  *      PRO: yes
19:53:14:  *       HT: no
19:53:14: -------------------------
19:53:14: *** Starting Win32GL Subsystem ***
19:53:14: GL3PlusRenderSystem::_createRenderWindow "TutorialApplication Render Window", 1024x768 windowed  miscParams: FSAA=0 FSAAHint= colourDepth=32 displayFrequency=0 gamma=false vsync=true vsyncInterval=1 
19:53:14: Created Win32Window 'TutorialApplication Render Window' : 1040x806, 32bpp
19:53:14: GL_VERSION = 4.4.0 NVIDIA 344.75
19:53:14: GL_VENDOR = NVIDIA Corporation
19:53:14: GL_RENDERER = GeForce GTX 770/PCIe/SSE2
19:53:14: GL_EXTENSIONS = 
19:53:14: GL_AMD_multi_draw_indirect
19:53:14: GL_AMD_seamless_cubemap_per_texture
19:53:14: GL_ARB_arrays_of_arrays
19:53:14: GL_ARB_base_instance
19:53:14: GL_ARB_bindless_texture
19:53:14: GL_ARB_blend_func_extended
19:53:14: GL_ARB_buffer_storage
19:53:14: GL_ARB_clear_buffer_object
19:53:14: GL_ARB_clear_texture
19:53:14: GL_ARB_color_buffer_float
19:53:14: GL_ARB_compatibility
19:53:14: GL_ARB_compressed_texture_pixel_storage
19:53:14: GL_ARB_conservative_depth
19:53:14: GL_ARB_compute_shader
19:53:14: GL_ARB_compute_variable_group_size
19:53:14: GL_ARB_copy_buffer
19:53:14: GL_ARB_copy_image
19:53:14: GL_ARB_debug_output
19:53:14: GL_ARB_depth_buffer_float
19:53:14: GL_ARB_depth_clamp
19:53:14: GL_ARB_depth_texture
19:53:14: GL_ARB_draw_buffers
19:53:14: GL_ARB_draw_buffers_blend
19:53:14: GL_ARB_draw_indirect
19:53:14: GL_ARB_draw_elements_base_vertex
19:53:14: GL_ARB_draw_instanced
19:53:14: GL_ARB_enhanced_layouts
19:53:14: GL_ARB_ES2_compatibility
19:53:14: GL_ARB_ES3_compatibility
19:53:14: GL_ARB_ES3_1_compatibility
19:53:14: GL_ARB_explicit_attrib_location
19:53:14: GL_ARB_explicit_uniform_location
19:53:14: GL_ARB_fragment_coord_conventions
19:53:14: GL_ARB_fragment_layer_viewport
19:53:14: GL_ARB_fragment_program
19:53:14: GL_ARB_fragment_program_shadow
19:53:14: GL_ARB_fragment_shader
19:53:14: GL_ARB_framebuffer_no_attachments
19:53:14: GL_ARB_framebuffer_object
19:53:14: GL_ARB_framebuffer_sRGB
19:53:14: GL_ARB_geometry_shader4
19:53:14: GL_ARB_get_program_binary
19:53:14: GL_ARB_gpu_shader5
19:53:14: GL_ARB_gpu_shader_fp64
19:53:14: GL_ARB_half_float_pixel
19:53:14: GL_ARB_half_float_vertex
19:53:14: GL_ARB_imaging
19:53:14: GL_ARB_indirect_parameters
19:53:14: GL_ARB_instanced_arrays
19:53:14: GL_ARB_internalformat_query
19:53:14: GL_ARB_internalformat_query2
19:53:14: GL_ARB_invalidate_subdata
19:53:14: GL_ARB_map_buffer_alignment
19:53:14: GL_ARB_map_buffer_range
19:53:14: GL_ARB_multi_bind
19:53:14: GL_ARB_multi_draw_indirect
19:53:14: GL_ARB_multisample
19:53:14: GL_ARB_multitexture
19:53:14: GL_ARB_occlusion_query
19:53:14: GL_ARB_occlusion_query2
19:53:14: GL_ARB_pixel_buffer_object
19:53:14: GL_ARB_point_parameters
19:53:14: GL_ARB_point_sprite
19:53:14: GL_ARB_program_interface_query
19:53:14: GL_ARB_provoking_vertex
19:53:14: GL_ARB_robust_buffer_access_behavior
19:53:14: GL_ARB_robustness
19:53:14: GL_ARB_sample_shading
19:53:14: GL_ARB_sampler_objects
19:53:14: GL_ARB_seamless_cube_map
19:53:14: GL_ARB_seamless_cubemap_per_texture
19:53:14: GL_ARB_separate_shader_objects
19:53:14: GL_ARB_shader_atomic_counters
19:53:14: GL_ARB_shader_bit_encoding
19:53:14: GL_ARB_shader_draw_parameters
19:53:14: GL_ARB_shader_group_vote
19:53:14: GL_ARB_shader_image_load_store
19:53:14: GL_ARB_shader_image_size
19:53:14: GL_ARB_shader_objects
19:53:14: GL_ARB_shader_precision
19:53:14: GL_ARB_query_buffer_object
19:53:14: GL_ARB_shader_storage_buffer_object
19:53:14: GL_ARB_shader_subroutine
19:53:14: GL_ARB_shader_texture_lod
19:53:14: GL_ARB_shading_language_100
19:53:14: GL_ARB_shading_language_420pack
19:53:14: GL_ARB_shading_language_include
19:53:14: GL_ARB_shading_language_packing
19:53:14: GL_ARB_shadow
19:53:14: GL_ARB_sparse_texture
19:53:14: GL_ARB_stencil_texturing
19:53:14: GL_ARB_sync
19:53:14: GL_ARB_tessellation_shader
19:53:14: GL_ARB_texture_border_clamp
19:53:14: GL_ARB_texture_buffer_object
19:53:14: GL_ARB_texture_buffer_object_rgb32
19:53:14: GL_ARB_texture_buffer_range
19:53:14: GL_ARB_texture_compression
19:53:14: GL_ARB_texture_compression_bptc
19:53:14: GL_ARB_texture_compression_rgtc
19:53:14: GL_ARB_texture_cube_map
19:53:14: GL_ARB_texture_cube_map_array
19:53:14: GL_ARB_texture_env_add
19:53:14: GL_ARB_texture_env_combine
19:53:14: GL_ARB_texture_env_crossbar
19:53:14: GL_ARB_texture_env_dot3
19:53:14: GL_ARB_texture_float
19:53:14: GL_ARB_texture_gather
19:53:14: GL_ARB_texture_mirror_clamp_to_edge
19:53:14: GL_ARB_texture_mirrored_repeat
19:53:14: GL_ARB_texture_multisample
19:53:14: GL_ARB_texture_non_power_of_two
19:53:14: GL_ARB_texture_query_levels
19:53:14: GL_ARB_texture_query_lod
19:53:14: GL_ARB_texture_rectangle
19:53:14: GL_ARB_texture_rg
19:53:14: GL_ARB_texture_rgb10_a2ui
19:53:14: GL_ARB_texture_stencil8
19:53:14: GL_ARB_texture_storage
19:53:14: GL_ARB_texture_storage_multisample
19:53:14: GL_ARB_texture_swizzle
19:53:14: GL_ARB_texture_view
19:53:14: GL_ARB_timer_query
19:53:14: GL_ARB_transform_feedback2
19:53:14: GL_ARB_transform_feedback3
19:53:14: GL_ARB_transform_feedback_instanced
19:53:14: GL_ARB_transpose_matrix
19:53:14: GL_ARB_uniform_buffer_object
19:53:14: GL_ARB_vertex_array_bgra
19:53:14: GL_ARB_vertex_array_object
19:53:14: GL_ARB_vertex_attrib_64bit
19:53:14: GL_ARB_vertex_attrib_binding
19:53:14: GL_ARB_vertex_buffer_object
19:53:14: GL_ARB_vertex_program
19:53:14: GL_ARB_vertex_shader
19:53:15: GL_ARB_vertex_type_10f_11f_11f_rev
19:53:15: GL_ARB_vertex_type_2_10_10_10_rev
19:53:15: GL_ARB_viewport_array
19:53:15: GL_ARB_window_pos
19:53:15: GL_ATI_draw_buffers
19:53:15: GL_ATI_texture_float
19:53:15: GL_ATI_texture_mirror_once
19:53:15: GL_S3_s3tc
19:53:15: GL_EXT_texture_env_add
19:53:15: GL_EXT_abgr
19:53:15: GL_EXT_bgra
19:53:15: GL_EXT_bindable_uniform
19:53:15: GL_EXT_blend_color
19:53:15: GL_EXT_blend_equation_separate
19:53:15: GL_EXT_blend_func_separate
19:53:15: GL_EXT_blend_minmax
19:53:15: GL_EXT_blend_subtract
19:53:15: GL_EXT_compiled_vertex_array
19:53:15: GL_EXT_Cg_shader
19:53:15: GL_EXT_depth_bounds_test
19:53:15: GL_EXT_direct_state_access
19:53:15: GL_EXT_draw_buffers2
19:53:15: GL_EXT_draw_instanced
19:53:15: GL_EXT_draw_range_elements
19:53:15: GL_EXT_fog_coord
19:53:15: GL_EXT_framebuffer_blit
19:53:15: GL_EXT_framebuffer_multisample
19:53:15: GL_EXTX_framebuffer_mixed_formats
19:53:15: GL_EXT_framebuffer_multisample_blit_scaled
19:53:15: GL_EXT_framebuffer_object
19:53:15: GL_EXT_framebuffer_sRGB
19:53:15: GL_EXT_geometry_shader4
19:53:15: GL_EXT_gpu_program_parameters
19:53:15: GL_EXT_gpu_shader4
19:53:15: GL_EXT_multi_draw_arrays
19:53:15: GL_EXT_packed_depth_stencil
19:53:15: GL_EXT_packed_float
19:53:15: GL_EXT_packed_pixels
19:53:15: GL_EXT_pixel_buffer_object
19:53:15: GL_EXT_point_parameters
19:53:15: GL_EXT_provoking_vertex
19:53:15: GL_EXT_rescale_normal
19:53:15: GL_EXT_secondary_color
19:53:15: GL_EXT_separate_shader_objects
19:53:15: GL_EXT_separate_specular_color
19:53:15: GL_EXT_shader_image_load_store
19:53:15: GL_EXT_shader_integer_mix
19:53:15: GL_EXT_shadow_funcs
19:53:15: GL_EXT_stencil_two_side
19:53:15: GL_EXT_stencil_wrap
19:53:15: GL_EXT_texture3D
19:53:15: GL_EXT_texture_array
19:53:15: GL_EXT_texture_buffer_object
19:53:15: GL_EXT_texture_compression_dxt1
19:53:15: GL_EXT_texture_compression_latc
19:53:15: GL_EXT_texture_compression_rgtc
19:53:15: GL_EXT_texture_compression_s3tc
19:53:15: GL_EXT_texture_cube_map
19:53:15: GL_EXT_texture_edge_clamp
19:53:15: GL_EXT_texture_env_combine
19:53:15: GL_EXT_texture_env_dot3
19:53:15: GL_EXT_texture_filter_anisotropic
19:53:15: GL_EXT_texture_integer
19:53:15: GL_EXT_texture_lod
19:53:15: GL_EXT_texture_lod_bias
19:53:15: GL_EXT_texture_mirror_clamp
19:53:15: GL_EXT_texture_object
19:53:15: GL_EXT_texture_shared_exponent
19:53:15: GL_EXT_texture_sRGB
19:53:15: GL_EXT_texture_sRGB_decode
19:53:15: GL_EXT_texture_storage
19:53:15: GL_EXT_texture_swizzle
19:53:15: GL_EXT_timer_query
19:53:15: GL_EXT_transform_feedback2
19:53:15: GL_EXT_vertex_array
19:53:15: GL_EXT_vertex_array_bgra
19:53:15: GL_EXT_vertex_attrib_64bit
19:53:15: GL_EXT_import_sync_object
19:53:15: GL_IBM_rasterpos_clip
19:53:15: GL_IBM_texture_mirrored_repeat
19:53:15: GL_KHR_debug
19:53:15: GL_KTX_buffer_region
19:53:15: GL_NV_bindless_multi_draw_indirect
19:53:15: GL_NV_bindless_multi_draw_indirect_count
19:53:15: GL_NV_bindless_texture
19:53:15: GL_NV_blend_equation_advanced
19:53:15: GL_NV_blend_square
19:53:15: GL_NV_compute_program5
19:53:15: GL_NV_conditional_render
19:53:15: GL_NV_copy_depth_to_color
19:53:15: GL_NV_copy_image
19:53:15: GL_NV_depth_buffer_float
19:53:15: GL_NV_depth_clamp
19:53:15: GL_NV_draw_texture
19:53:15: GL_NV_ES1_1_compatibility
19:53:15: GL_NV_ES3_1_compatibility
19:53:15: GL_NV_explicit_multisample
19:53:15: GL_NV_fence
19:53:15: GL_NV_float_buffer
19:53:15: GL_NV_fog_distance
19:53:15: GL_NV_fragment_program
19:53:15: GL_NV_fragment_program_option
19:53:15: GL_NV_fragment_program2
19:53:15: GL_NV_framebuffer_multisample_coverage
19:53:15: GL_NV_geometry_shader4
19:53:15: GL_NV_gpu_program4
19:53:15: GL_NV_gpu_program4_1
19:53:15: GL_NV_gpu_program5
19:53:15: GL_NV_gpu_program5_mem_extended
19:53:15: GL_NV_gpu_program_fp64
19:53:15: GL_NV_gpu_shader5
19:53:15: GL_NV_half_float
19:53:15: GL_NV_light_max_exponent
19:53:15: GL_NV_multisample_coverage
19:53:15: GL_NV_multisample_filter_hint
19:53:15: GL_NV_occlusion_query
19:53:15: GL_NV_packed_depth_stencil
19:53:15: GL_NV_parameter_buffer_object
19:53:15: GL_NV_parameter_buffer_object2
19:53:15: GL_NV_path_rendering
19:53:15: GL_NV_pixel_data_range
19:53:15: GL_NV_point_sprite
19:53:15: GL_NV_primitive_restart
19:53:15: GL_NV_register_combiners
19:53:15: GL_NV_register_combiners2
19:53:15: GL_NV_shader_atomic_counters
19:53:15: GL_NV_shader_atomic_float
19:53:15: GL_NV_shader_buffer_load
19:53:15: GL_NV_shader_storage_buffer_object
19:53:15: GL_NV_texgen_reflection
19:53:15: GL_NV_texture_barrier
19:53:15: GL_NV_texture_compression_vtc
19:53:15: GL_NV_texture_env_combine4
19:53:15: GL_NV_texture_multisample
19:53:15: GL_NV_texture_rectangle
19:53:15: GL_NV_texture_shader
19:53:15: GL_NV_texture_shader2
19:53:15: GL_NV_texture_shader3
19:53:15: GL_NV_transform_feedback
19:53:15: GL_NV_transform_feedback2
19:53:15: GL_NV_vertex_array_range
19:53:15: GL_NV_vertex_array_range2
19:53:15: GL_NV_vertex_attrib_integer_64bit
19:53:15: GL_NV_vertex_buffer_unified_memory
19:53:15: GL_NV_vertex_program
19:53:15: GL_NV_vertex_program1_1
19:53:15: GL_NV_vertex_program2
19:53:15: GL_NV_vertex_program2_option
19:53:15: GL_NV_vertex_program3
19:53:15: GL_NVX_conditional_render
19:53:15: GL_NVX_gpu_memory_info
19:53:15: GL_NVX_nvenc_interop
19:53:15: GL_NV_shader_thread_group
19:53:15: GL_NV_shader_thread_shuffle
19:53:15: GL_KHR_blend_equation_advanced
19:53:15: GL_SGIS_generate_mipmap
19:53:15: GL_SGIS_texture_lod
19:53:15: GL_SGIX_depth_texture
19:53:15: GL_SGIX_shadow
19:53:15: GL_SUN_slice_accum
19:53:15: GL_WIN_swap_hint
19:53:15: WGL_EXT_swap_control
19:53:15: Supported WGL extensions: WGL_ARB_buffer_region WGL_ARB_create_context WGL_ARB_create_context_profile WGL_ARB_create_context_robustness WGL_ARB_extensions_string WGL_ARB_make_current_read WGL_ARB_multisample WGL_ARB_pbuffer WGL_ARB_pixel_format WGL_ARB_pixel_format_float WGL_ARB_render_texture WGL_ATI_pixel_format_float WGL_EXT_create_context_es_profile WGL_EXT_create_context_es2_profile WGL_EXT_extensions_string WGL_EXT_framebuffer_sRGB WGL_EXT_pixel_format_packed_float WGL_EXT_swap_control WGL_EXT_swap_control_tear WGL_NVX_DX_interop WGL_NV_DX_interop WGL_NV_DX_interop2 WGL_NV_delay_before_swap WGL_NV_float_buffer WGL_NV_multisample_coverage WGL_NV_render_depth_texture WGL_NV_render_texture_rectangle 
19:53:15: **************************************
19:53:15: ***   OpenGL 3+ Renderer Started   ***
19:53:15: **************************************
19:53:15: Registering ResourceManager for type GpuProgram
19:53:15: GL3+: Using FBOs for rendering to textures
19:53:15: FBO PF_UNKNOWN depth/stencil support: D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_L8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_L16 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_BYTE_LA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_R5G6B5 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: OpenGL error 0x0502 GL_INVALID_OPERATION in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:15: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A8B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:15: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R8G8B8A8 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_DEPTH depth/stencil support: D0S0 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R3G3B2 depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_SHORT_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R11G11B10_FLOAT depth/stencil support: D0S0 D0S8 D16S0 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R8G8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R8G8B8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R8G8B8A8_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R16G16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R16G16B16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R16G16B16A16_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:16: FBO PF_R32G32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32G32B32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32G32B32A32_UINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R8G8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R8G8B8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R8G8B8A8_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R16G16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R16G16B16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R16G16B16A16_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32G32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32G32B32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: FBO PF_R32G32B32A32_SINT depth/stencil support: D0S0 D0S8 D24S0 D32S0 D32S0 Packed-D24S8 Packed-D32S8 
19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: OpenGL error 0x0500 GL_INVALID_ENUM in Ogre::GL3PlusFBOManager::_createTempFramebuffer at line 171 for glTexImage2D

19:53:17: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_BYTE_LA PF_R5G6B5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_A8B8G8R8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_R8G8B8A8 PF_DEPTH PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB PF_R11G11B10_FLOAT PF_R8_UINT PF_R8G8_UINT PF_R8G8B8_UINT PF_R8G8B8A8_UINT PF_R16_UINT PF_R16G16_UINT PF_R16G16B16_UINT PF_R16G16B16A16_UINT PF_R32_UINT PF_R32G32_UINT PF_R32G32B32_UINT PF_R32G32B32A32_UINT PF_R8_SINT PF_R8G8_SINT PF_R8G8B8_SINT PF_R8G8B8A8_SINT PF_R16_SINT PF_R16G16_SINT PF_R16G16B16_SINT PF_R16G16B16A16_SINT PF_R32_SINT PF_R32G32_SINT PF_R32G32B32_SINT PF_R32G32B32A32_SINT 
19:53:17: RenderSystem capabilities
19:53:17: -------------------------
19:53:17: RenderSystem Name: OpenGL 3+ Rendering Subsystem (ALPHA)
19:53:17: GPU Vendor: nvidia
19:53:17: Device Name: GeForce GTX 770/PCIe/SSE2
19:53:17: Driver Version: 4.4.0.0
19:53:17:  * Fixed function pipeline: no
19:53:17:  * Hardware generation of mipmaps: yes
19:53:17:  * Texture blending: yes
19:53:17:  * Anisotropic texture filtering: yes
19:53:17:  * Dot product texture operation: yes
19:53:17:  * Cube mapping: yes
19:53:17:  * Hardware stencil buffer: yes
19:53:17:    - Stencil depth: 8
19:53:17:    - Two sided stencil support: yes
19:53:17:    - Wrap stencil values: yes
19:53:17:  * Hardware vertex / index buffers: yes
19:53:17:  * 32-bit index buffers: yes
19:53:17:  * Vertex programs: yes
19:53:17:  * Number of floating-point constants for vertex programs: 4096
19:53:17:  * Number of integer constants for vertex programs: 4096
19:53:17:  * Number of boolean constants for vertex programs: 4096
19:53:17:  * Fragment programs: yes
19:53:17:  * Number of floating-point constants for fragment programs: 2048
19:53:17:  * Number of integer constants for fragment programs: 2048
19:53:17:  * Number of boolean constants for fragment programs: 2048
19:53:17:  * Geometry programs: yes
19:53:17:  * Number of floating-point constants for geometry programs: 2048
19:53:17:  * Number of integer constants for geometry programs: 2048
19:53:17:  * Number of boolean constants for geometry programs: 2048
19:53:17:  * Tessellation Hull programs: yes
19:53:17:  * Number of floating-point constants for tessellation hull programs: 2048
19:53:17:  * Number of integer constants for tessellation hull programs: 2048
19:53:17:  * Number of boolean constants for tessellation hull programs: 2048
19:53:17:  * Tessellation Domain programs: yes
19:53:17:  * Number of floating-point constants for tessellation domain programs: 2048
19:53:17:  * Number of integer constants for tessellation domain programs: 2048
19:53:17:  * Number of boolean constants for tessellation domain programs: 2048
19:53:17:  * Compute programs: yes
19:53:17:  * Number of floating-point constants for compute programs: 2048
19:53:17:  * Number of integer constants for compute programs: 2048
19:53:17:  * Number of boolean constants for compute programs: 2048
19:53:17:  * Supported Shader Profiles: glsl glsl130 glsl140 glsl150 glsl330 glsl400 glsl410 glsl420 glsl430 glsl440
19:53:17:  * Texture Compression: yes
19:53:17:    - DXT: yes
19:53:17:    - VTC: yes
19:53:17:    - PVRTC: no
19:53:17:    - ATC: no
19:53:17:    - ETC1: no
19:53:17:    - ETC2: yes
19:53:17:    - BC4/BC5: yes
19:53:17:    - BC6H/BC7: yes
19:53:17:  * Scissor Rectangle: yes
19:53:17:  * Hardware Occlusion Query: yes
19:53:17:  * User clip planes: yes
19:53:17:  * VET_UBYTE4 vertex element type: yes
19:53:17:  * Infinite far plane projection: yes
19:53:17:  * Hardware render-to-texture: yes
19:53:17:  * Floating point textures: yes
19:53:17:  * Non-power-of-two textures: yes
19:53:17:  * 1d textures: yes
19:53:17:  * Volume textures: yes
19:53:17:  * Multiple Render Targets: 8
19:53:17:    - With different bit depths: yes
19:53:17:  * Point Sprites: yes
19:53:17:  * Extended point parameters: yes
19:53:17:  * Max Point Size: 189.875
19:53:17:  * Vertex texture fetch: yes
19:53:17:  * Number of world matrices: 0
19:53:17:  * Number of texture units: 16
19:53:17:  * Stencil buffer depth: 8
19:53:17:  * Number of vertex blend matrices: 0
19:53:17:    - Max vertex textures: 32
19:53:17:    - Vertex textures shared: yes
19:53:17:  * Render to Vertex Buffer : yes
19:53:17:  * Hardware Atomic Counters: yes
19:53:17:  * GL 1.5 without VBO workaround: no
19:53:17:  * Frame Buffer objects: yes
19:53:17:  * Frame Buffer objects (ARB extension): no
19:53:17:  * Frame Buffer objects (ATI extension): no
19:53:17:  * PBuffer support: no
19:53:17:  * GL 1.5 without HW-occlusion workaround: no
19:53:17:  * Vertex Array Objects: yes
19:53:17:  * Separate shader objects: yes
19:53:17: Registering ResourceManager for type Texture
19:53:17: DefaultWorkQueue('Root') initialising on thread main.
19:53:17: Particle Renderer Type 'billboard' registered
19:53:17: OverlayElementFactory for type Panel registered.
19:53:17: OverlayElementFactory for type BorderPanel registered.
19:53:17: OverlayElementFactory for type TextArea registered.
19:53:17: Registering ResourceManager for type Font
19:53:17: Parsing scripts for resource group Autodetect
19:53:17: Finished parsing scripts for resource group Autodetect
19:53:17: Creating resources for group Autodetect
19:53:17: All done
19:53:17: Parsing scripts for resource group Essential
19:53:17: Parsing script SdkTrays.material
19:53:17: Parsing script SdkTrays.fontdef
19:53:17: Parsing script SdkTrays.overlay
19:53:17: Texture: sdk_cursor.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:17: Texture: sdk_tray.png: Loading 1 faces(PF_A8R8G8B8,64x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x64x1.
19:53:17: Texture: sdk_button_up.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
19:53:17: Texture: sdk_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:17: Texture: sdk_mini_tray.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:17: Texture: sdk_track.png: Loading 1 faces(PF_A8R8G8B8,16x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x32x1.
19:53:17: Texture: sdk_handle.png: Loading 1 faces(PF_A8R8G8B8,16x16x1) with 4 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,16x16x1.
19:53:17: Texture: sdk_mini_text_box.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:18: Texture: sdk_label.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:18: Texture: sdk_separator.png: Loading 1 faces(PF_A8R8G8B8,64x16x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x16x1.
19:53:18: Texture: sdk_logo.png: Loading 1 faces(PF_A8R8G8B8,128x64x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x64x1.
19:53:18: Texture: sdk_shade.png: Loading 1 faces(PF_A8R8G8B8,64x48x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,64x48x1.
19:53:18: Texture: sdk_frame.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:18: Texture: sdk_mini_text_box_over.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
19:53:18: Texture: sdk_pulse.png: Loading 1 faces(PF_R8G8B8,8x1x1) with 3 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,8x1x1.
19:53:18: Finished parsing scripts for resource group Essential
19:53:18: Creating resources for group Essential
19:53:18: All done
19:53:18: Parsing scripts for resource group General
19:53:18: Parsing script Ogre.material
19:53:18: Finished parsing scripts for resource group General
19:53:18: Creating resources for group General
19:53:18: All done
19:53:18: Parsing scripts for resource group Internal
19:53:18: Finished parsing scripts for resource group Internal
19:53:18: Creating resources for group Internal
19:53:18: All done
19:53:18: *** Initializing OIS ***
19:53:18: Font SdkTrays/Caption using texture size 512x256
19:53:18: Info: Freetype returned null for character 160 in font SdkTrays/Caption
19:53:18: Texture: SdkTrays/CaptionTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1.
19:53:18: Font SdkTrays/Value using texture size 512x256
19:53:18: Info: Freetype returned null for character 127 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 128 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 129 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 130 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 131 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 132 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 133 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 134 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 135 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 136 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 137 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 138 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 139 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 140 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 141 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 142 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 143 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 144 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 145 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 146 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 147 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 148 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 149 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 150 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 151 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 152 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 153 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 154 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 155 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 156 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 157 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 158 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 159 in font SdkTrays/Value
19:53:18: Info: Freetype returned null for character 160 in font SdkTrays/Value
19:53:18: Texture: SdkTrays/ValueTexture: Loading 1 faces(PF_BYTE_LA,512x256x1) Internal format is PF_BYTE_LA,512x256x1.
19:53:18: ERROR: Failed to create separable program.
19:53:19: ERROR: Failed to create separable program.
19:53:20: ERROR: Failed to create separable program.
19:53:21: ERROR: Failed to create separable program.
19:53:22: ERROR: Failed to create separable program.
19:53:22: Unregistering ResourceManager for type Font
19:53:22: DefaultWorkQueue('Root') shutting down on thread main.
19:53:22: *-*-* OGRE Shutdown
19:53:22: Unregistering ResourceManager for type Compositor
19:53:22: Unregistering ResourceManager for type Skeleton
19:53:22: Unregistering ResourceManager for type Mesh
19:53:22: Unregistering ResourceManager for type HighLevelGpuProgram
19:53:22: Unregistering ResourceManager for type GpuProgram
19:53:22: OpenGL error 0x0502 GL_INVALID_OPERATION in Ogre::GL3PlusFBOManager::~GL3PlusFBOManager at line 147 for glDeleteFramebuffers

19:53:22: Unregistering ResourceManager for type Texture
19:53:22: OpenGL error 0x0502 GL_INVALID_OPERATION in Ogre::GL3PlusTextureManager::~GL3PlusTextureManager at line 50 for glDeleteTextures

19:53:22: *** Stopping Win32GL Subsystem ***
19:53:22: Unregistering ResourceManager for type Material
The errors "ERROR: Failed to create separable program." were repeated like 1000x times, so I deleted most of them to keep the list not as cluttered.

It looks like a problem with Ogre to me, but I cannot tell for sure. If it is, it would be nice to report the problem.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 534

Re: Program crash in ConfigDialog::Display

Post by Kojack »

HackerManiac wrote: Another strange VS thing - I am linking against Ogre static libs, so I decided I should use static MSVC integration, but if I set the /MT flag, it complains about me mixing static and dynamic (??). I am forced to use /MD for dynamic libs. My guess is that this is because even with static Ogre libs, OIS is still dynamic and somehow I can mix dynamic (VS) - static (Ogre) - dynamic (OIS), but not static-static-dynamic... The logic is amazing, so probably my theory is not right :lol:
Generally you shouldn't mix static and dynamic visual studio runtimes. Each runtime has it's own heap, it's own random number seed, etc. So there can be issues if memory is allocated in one heap then deallocated in another (such as if a library makes something for you then you delete it). If you build ogre with static runtime, then every other library should be using static runtime too (ois, plugins, etc). If not, it might not fail, but at the least those other things will still need the dynamic runtime present so you've saved nothing by going static (in fact your program will be larger due to two runtimes being required). I don't know what the cg.dll binary uses, probably the dynamic runtime.
HackerManiac wrote:A strange problem that only occurs with static libs is that you cannot link against both GL and GL3Plus as this redefines many macros and somehow this breaks everything and the program doesn't compile, but linking against them separately does work. That's no big deal, honestly, so I won't be going into that.
I'd guess that most ogre devs use dynamic builds of ogre, so the new gl stuff might not have been tested with a static ogre (or at least not with visual studio).
User avatar
HackerManiac
Halfling
Posts: 50
Joined: Thu Oct 30, 2014 9:46 am
x 3

Re: Program crash in ConfigDialog::Display

Post by HackerManiac »

I have a few things to say:
Firstly VS things:
I managed to get the OIS source separately and I built it statically, then I built Ogre using the static OIS (which took me long, because it requires messing around with CMake (but now, knowing what to do it's really easy) ), but still it wouldn't let me compile programs with /MT. Then I took a better look at the CMake scripts and each one had /MD flags defined, so Ogre and OIS themselves were static, but they were linking to MSVC dynamically. I started from scratch, changed all those flags to /MT (and /MTd for debug), and voila! Everything is 100% static. Oh forgot to mention, I couldn't get around Cg, so I eventually I just got rid of it, as I wasn't going to use it anyways.

Secondly big news for MinGW:
After having built fully static libs for VS, I decided to try doing Ogre with MinGW again (same TDM 4.8.1 compiler). I rebuilt Ogre countless times since I began, but finally, IT WORKS :mrgreen:
The OIS crash was due to it linking to wrong (MSVC) libs by default, so by rebuilding it from source and changing all those libs (and some parts of code, because it was made for VS), I fixed it. I don't know if it's worth writing the list of steps I took to achieve this, since nobody seems to be interested in MinGW Ogre (static + 64 bit). If someone asks for it, I might write a guide :)
But hey ... far be it for me to rob you of your stickin it to tha man moment when you get your app built using mingw :lol: Sometimes that feeling of accomplishment is worth something!
Haha, I did it, and you sure were right. Took me an entire month, but now I already know quite a bit about Ogre before even starting to use it XD

Thank you for all your support guys!

Well, actually not everything is resolved... yet... GL3Plus still doesn't work neither with MSVC nor MinGW, but this thread was originally about crashing on MinGW, and since that is resolved I will ask in another thread (that's what I'm supposed to do, right?)
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Program crash in ConfigDialog::Display

Post by c6burns »

Ooooo this is like that moment in The Incredible Journey when the 3 animals finally arrive home. Congrats :)
User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4304
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 135
Contact:

Re: Program crash in ConfigDialog::Display

Post by spacegaier »

HackerManiac wrote:The OIS crash was due to it linking to wrong (MSVC) libs by default, so by rebuilding it from source and changing all those libs (and some parts of code, because it was made for VS), I fixed it. I don't know if it's worth writing the list of steps I took to achieve this, since nobody seems to be interested in MinGW Ogre (static + 64 bit). If someone asks for it, I might write a guide :)
A guide is always very welcome (also for the OIS changes on Win/VS). Best location would be the Ogre3D Wiki, e.g. by adding a few notes to the MinGW guide that already exists.
HackerManiac wrote:... and since that is resolved I will ask in another thread (that's what I'm supposed to do, right?)
Yes, correct.
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...
User avatar
Mako_energy
Greenskin
Posts: 125
Joined: Mon Feb 22, 2010 7:48 pm
x 9

Re: [SOLVED] The joys of building Ogre with TDM MinGW 4.8.1

Post by Mako_energy »

I appear to be a little late to the party, but I wanted to throw in my input as well given that I also use the TDM-GCC MinGW package. Most of my list for the setup is similar, with a few exceptions.
HackerManiac wrote:1. Download ogredeps, but take note, the cabalistic ogredeps from https://bitbucket.org/cabalistic/ogredeps/downloads, cause errors when building Ogre itself and not the dependencies and it requires a lot of re-doing when you get to such a point, so don't bother with them. The problem it causes is something like this (I am not too sure myself, but it's what I understood from googling) - FreeImage contains its own statically linked version of zlib, which causes multiple definitions when compiling Ogre, since it links against both FreeImage and zlib. This is literally the errors I get "multiple definitions of.. blah blah blah".
I found a post by a person called ali1234, who managed to identify and fix the problem :) This is his fork of ogredeps https://bitbucket.org/ali1234/ogredeps
This is an issue I was having and posted about it elsewhere. Good to know there is a fix available, however I also another repo where I use Ogre 1.8 and I don't have these issues. I am compiling that with TDM-GCC as well. I was suspecting it was a CMake configuration because I was compiling it as a part of a larger project and some setting may have leaked into Ogres build. I am curious what causes me to be able to get passed that in one repo but not with Ogre on it's own.
HackerManiac wrote:4. In FreeImage there is an error somewhere within libTIFF4, due to a bad pointer conversion, this is the place:

Code: Select all

// Warning: tif_fd is declared as 'int' currently (see libTIFF), 
    // may result in incorrect file pointers inside libTIFF on 
    // 64bit machines (sizeof(int) != sizeof(long)). 
    // Needs to be fixed within libTIFF.
	if (tif) {
		tif->tif_fd = (long)handle;
	}

	return tif;
The comment is mentioning the problem and it tells you to go to the source of libTIFF and fix it there, but an easier fix I found is to just change the line causing the problem to this:

Code: Select all

tif->tif_fd = (intptr_t)handle;
intptr_t type is guaranteed to allocate enough space for the data, so no more errors here.
I ran into the same issue, but I change the type to "long long". I believe that has better compiler support, but either works with the main compilers Ogre focuses on.
HackerManiac wrote:7. If you try to build Ogre right away you will get the error message saying "CPU you selected does not support x86-64 instruction set", so before doing anything with Ogre (before using CMake with it), go into CMakeLists.txt in the Ogre source directory and find the place where it says:

Code: Select all

# set architecture to i686, since otherwise some versions of MinGW can't link the atomic primitives
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686")
Now change the flag to

Code: Select all

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64")
.
I have an ongoing JIRA ticket relating to this: https://ogre3d.atlassian.net/browse/OGRE-460
HackerManiac wrote:10. Now you can finally proceed to build Ogre, however it is not over yet, you will encounter some errors when Ogre::StringConverter is used. These are caused by some #ifdefs that are a bit strange, the errors themselves are "C:\Users\Vidminas\Desktop\ogre\RenderSystems\GL\src\Win32\OgreWin32Window.cpp|260|error: call of overloaded 'toString(DWORD&)' is ambiguous|", this happens when it tries to use the DWORD type argument (unsigned long long) and there is no overload for this type of argument, the compiler then doesn't know which type to convert to and starts complaining.
This is an example place of where such an error happens: (there are more than 1, but all of them can be fixed using the same logic)

Code: Select all

if (!GetMonitorInfo(hMonitor, &monitorInfoEx))
            {
                DWORD le = GetLastError();
                LogManager::getSingleton().logMessage(LML_CRITICAL, 
                    ::Ogre::String("Win32Window::create(): Call to GetMonitorInfo() failed.")
                    + ::Ogre::String(" GetLastError() returns: ")
                    + ::Ogre::StringConverter::toString(le)
                    );
                OGRE_EXCEPT(Exception::ERR_RENDERINGAPI_ERROR, "Call to GetMonitorInfo() failed", "Win32Window::create()");
            }
And I fixed it by converting DWORD to size_t, for which there is an overloaded function.

Code: Select all

+ ::Ogre::StringConverter::toString(size_t(le))
This is something I haven't gotten far enough along to encounter. Yikes. Thanks for the heads up.
HackerManiac wrote:Overall my opinion is that I put too much work into Ogre to give it up anytime soon :mrgreen: . I've already got the dynamic pre-built SDK working with the GL RenderSystem, which is something I could still use, even if I won't manage to fix anything else.
I more or less feel the same way. I don't like MSVC and wouldn't touch it with a 50 foot pole if given the option, and thus far I still have the option to stick with MinGW. So I'd like to see these issues fixed and submitted upstream. I've also been wondering, what happened to TheSHEEP?
Post Reply