Hardware mipmap generation broken on ATI Linux drivers.

Discussion area about developing or extending OGRE, adding plugins for it or building applications on it. No newbie questions please, use the Help forum for that.
Post Reply
User avatar
cdleonard
Goblin
Posts: 266
Joined: Thu May 31, 2007 9:45 am

Hardware mipmap generation broken on ATI Linux drivers.

Post by cdleonard »

I recently upgraded ATI Linux drivers and now textures look corrupted. All Ogre demos are affected but not other apps (I tested native Doom3 and some windows games through wine). I'm reasonably confident this is due to hardware mipmap generation. The following modification in ExampleApplication.h will work around the issue:

Code: Select all

             // If returned true, user clicked OK so initialise
             // Here we choose to let the system create a default rendering window by passing 'true'
-            mWindow = mRoot->initialise(true);
+            //mWindow = mRoot->initialise(true);
+            mRoot->initialise(false);
+
+            mWindow = mRoot->createRenderWindow("Dummy", 1024, 768, false);
+            Ogre::RenderSystemCapabilities *caps = mRoot->getRenderSystem()->createRenderSystemCapabilities();
+            caps->unsetCapability (Ogre::RSC_AUTOMIPMAP);
+            mRoot->getRenderSystem ()->useCustomRenderSystemCapabilities(caps);
+
+            mRoot->getRenderSystem ()->destroyRenderWindow(mWindow->getName());
+            mRoot->getRenderSystem ()->reinitialise();
+
+            mWindow = mRoot->createRenderWindow("Real", 1024, 768, false);
             return true;
This is obviously not a real solution; it just hacks render system capabilities to avoid hardware mipmaps.

Here is Ogre.log running the TextureFX demo. Ogre version is latest branches/v1-6 svn.

Code: Select all

12:25:10: Creating resource group General
12:25:10: Creating resource group Internal
12:25:10: Creating resource group Autodetect
12:25:10: SceneManagerFactory for type 'DefaultSceneManager' registered.
12:25:10: Registering ResourceManager for type Material
12:25:10: Registering ResourceManager for type Mesh
12:25:10: Registering ResourceManager for type Skeleton
12:25:10: MovableObjectFactory for type 'ParticleSystem' registered.
12:25:10: OverlayElementFactory for type Panel registered.
12:25:10: OverlayElementFactory for type BorderPanel registered.
12:25:10: OverlayElementFactory for type TextArea registered.
12:25:10: Registering ResourceManager for type Font
12:25:10: ArchiveFactory for archive type FileSystem registered.
12:25:10: ArchiveFactory for archive type Zip registered.
12:25:10: FreeImage version: 3.10.0
12:25:10: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
12:25:10: 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
12:25:10: DDS codec registering
12:25:10: Registering ResourceManager for type HighLevelGpuProgram
12:25:10: Registering ResourceManager for type Compositor
12:25:10: MovableObjectFactory for type 'Entity' registered.
12:25:10: MovableObjectFactory for type 'Light' registered.
12:25:10: MovableObjectFactory for type 'BillboardSet' registered.
12:25:10: MovableObjectFactory for type 'ManualObject' registered.
12:25:10: MovableObjectFactory for type 'BillboardChain' registered.
12:25:10: MovableObjectFactory for type 'RibbonTrail' registered.
12:25:10: Loading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/RenderSystem_GL.so
12:25:10: Installing plugin: GL RenderSystem
12:25:10: OpenGL Rendering Subsystem created.
12:25:10: Plugin successfully installed
12:25:10: Loading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_ParticleFX.so
12:25:10: Installing plugin: ParticleFX
12:25:10: Particle Emitter Type 'Point' registered
12:25:10: Particle Emitter Type 'Box' registered
12:25:10: Particle Emitter Type 'Ellipsoid' registered
12:25:10: Particle Emitter Type 'Cylinder' registered
12:25:10: Particle Emitter Type 'Ring' registered
12:25:10: Particle Emitter Type 'HollowEllipsoid' registered
12:25:10: Particle Affector Type 'LinearForce' registered
12:25:10: Particle Affector Type 'ColourFader' registered
12:25:10: Particle Affector Type 'ColourFader2' registered
12:25:10: Particle Affector Type 'ColourImage' registered
12:25:10: Particle Affector Type 'ColourInterpolator' registered
12:25:10: Particle Affector Type 'Scaler' registered
12:25:10: Particle Affector Type 'Rotator' registered
12:25:10: Particle Affector Type 'DirectionRandomiser' registered
12:25:10: Particle Affector Type 'DeflectorPlane' registered
12:25:10: Plugin successfully installed
12:25:10: Loading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_BSPSceneManager.so
12:25:10: Installing plugin: BSP Scene Manager
12:25:10: Plugin successfully installed
12:25:10: Loading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_OctreeSceneManager.so
12:25:10: Installing plugin: Octree & Terrain Scene Manager
12:25:10: Plugin successfully installed
12:25:10: Loading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_CgProgramManager.so
12:25:10: Installing plugin: Cg Program Manager
12:25:10: Plugin successfully installed
12:25:10: *-*-* OGRE Initialising
12:25:10: *-*-* Version 1.6.1 (Shoggoth)
12:25:10: Creating resource group Bootstrap
12:25:10: Added resource location '../../Media/packs/OgreCore.zip' of type 'Zip' to resource group 'Bootstrap'
12:25:10: Added resource location '../../Media' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/fonts' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/materials/programs' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/materials/scripts' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/materials/textures' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/models' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/overlays' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/particle' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/gui' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/DeferredShadingMedia' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/PCZAppMedia' of type 'FileSystem' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/cubemap.zip' of type 'Zip' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/cubemapsJS.zip' of type 'Zip' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/dragon.zip' of type 'Zip' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/fresneldemo.zip' of type 'Zip' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/ogretestmap.zip' of type 'Zip' to resource group 'General'
12:25:10: Added resource location '../../Media/packs/skybox.zip' of type 'Zip' to resource group 'General'
12:25:12: CPU Identifier & Features
12:25:12: -------------------------
12:25:12:  *   CPU ID: AuthenticAMD: AMD Phenom(tm) X4 Quad-Core Processor GP-9600
12:25:12:  *      SSE: yes
12:25:12:  *     SSE2: yes
12:25:12:  *     SSE3: yes
12:25:12:  *      MMX: yes
12:25:12:  *   MMXEXT: yes
12:25:12:  *    3DNOW: yes
12:25:12:  * 3DNOWEXT: yes
12:25:12:  *     CMOV: yes
12:25:12:  *      TSC: yes
12:25:12:  *      FPU: yes
12:25:12:  *      PRO: yes
12:25:12:  *       HT: no
12:25:12: -------------------------
12:25:12: ******************************
*** Starting GLX Subsystem ***
******************************
12:25:12: GLRenderSystem::_createRenderWindow "OGRE Render Window", 1024x768 windowed  miscParams: FSAA=8 displayFrequency=75 MHz gamma= vsync=No 
12:25:12: GLXWindow::create used FBConfigID = 71
12:25:12: GL_VERSION = 2.1.8304 Release
12:25:12: GL_VENDOR = ATI Technologies Inc.
12:25:12: GL_RENDERER = ATI Radeon HD 3870
12:25:12: GL_EXTENSIONS = GL_AMDX_vertex_shader_tessellator GL_AMD_performance_monitor GL_AMD_texture_texture4 GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_transpose_matrix GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_envmap_bumpmap GL_ATI_fragment_shader GL_ATI_meminfo GL_ATI_separate_stencil GL_ATI_texture_compression_3dc GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_copy_texture GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_subtexture GL_EXT_texgen_reflection GL_EXT_texture3D GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_add GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_EXT_transform_feedback GL_EXT_vertex_array GL_KTX_buffer_region GL_NV_blend_square GL_NV_texgen_reflection GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_WIN_swap_hint WGL_EXT_swap_control
12:25:12: Supported GLX extensions: GLX_ARB_get_proc_address GLX_ARB_multisample GLX_EXT_import_context GLX_EXT_visual_info GLX_EXT_visual_rating GLX_MESA_swap_control GLX_OML_swap_method GLX_OML_sync_control GLX_SGI_video_sync GLX_SGIS_multisample GLX_SGIX_fbconfig GLX_SGIX_visual_select_group 
12:25:12: ***************************
12:25:12: *** GL Renderer Started ***
12:25:12: ***************************
12:25:12: Registering ResourceManager for type GpuProgram
12:25:12: GLSL support detected
12:25:12: GL: Using GL_EXT_framebuffer_object for rendering to textures (best)
12:25:12: FBO PF_UNKNOWN depth/stencil support: D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_L8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_L16 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A4L4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_BYTE_LA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_R5G6B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_B5G6R5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A4R4G4B4 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A1R5G5B5 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_B8G8R8A8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A2R10G10B10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_A2B10G10R10 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT16_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT16_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT32_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT32_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_X8R8G8B8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_X8B8G8R8 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_SHORT_RGBA depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_R3G3B2 depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT16_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT32_R depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_SHORT_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT16_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_FLOAT32_GR depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: FBO PF_SHORT_RGB depth/stencil support: D0S0 D0S1 D0S4 D0S8 D0S16 D16S0 D24S0 D32S0 Packed-D24S8 
12:25:12: [GL] : Valid FBO targets PF_UNKNOWN PF_L8 PF_L16 PF_A8 PF_A4L4 PF_BYTE_LA PF_R5G6B5 PF_B5G6R5 PF_A4R4G4B4 PF_A1R5G5B5 PF_R8G8B8 PF_B8G8R8 PF_A8R8G8B8 PF_B8G8R8A8 PF_A2R10G10B10 PF_A2B10G10R10 PF_FLOAT16_RGB PF_FLOAT16_RGBA PF_FLOAT32_RGB PF_FLOAT32_RGBA PF_X8R8G8B8 PF_X8B8G8R8 PF_SHORT_RGBA PF_R3G3B2 PF_FLOAT16_R PF_FLOAT32_R PF_SHORT_GR PF_FLOAT16_GR PF_FLOAT32_GR PF_SHORT_RGB 
12:25:12: RenderSystem capabilities
12:25:12: -------------------------
12:25:12: RenderSystem Name: OpenGL Rendering Subsystem
12:25:12: GPU Vendor: ati
12:25:12: Device Name: ATI Radeon HD 3870
12:25:12: Driver Version: 2.1.8304.0
12:25:12:  * Fixed function pipeline: yes
12:25:12:  * Hardware generation of mipmaps: yes
12:25:12:  * Texture blending: yes
12:25:12:  * Anisotropic texture filtering: yes
12:25:12:  * Dot product texture operation: yes
12:25:12:  * Cube mapping: yes
12:25:12:  * Hardware stencil buffer: yes
12:25:12:    - Stencil depth: 8
12:25:12:    - Two sided stencil support: yes
12:25:12:    - Wrap stencil values: yes
12:25:12:  * Hardware vertex / index buffers: yes
12:25:12:  * Vertex programs: yes
12:25:12:  * Fragment programs: yes
12:25:12:  * Geometry programs: no
12:25:12:  * Supported Shader Profiles: arbfp1 arbvp1 glsl ps_1_1 ps_1_2 ps_1_3 ps_1_4
12:25:12:  * Texture Compression: yes
12:25:12:    - DXT: yes
12:25:12:    - VTC: no
12:25:12:  * Scissor Rectangle: yes
12:25:12:  * Hardware Occlusion Query: yes
12:25:12:  * User clip planes: yes
12:25:12:  * VET_UBYTE4 vertex element type: yes
12:25:12:  * Infinite far plane projection: yes
12:25:12:  * Hardware render-to-texture: yes
12:25:12:  * Floating point textures: yes
12:25:12:  * Non-power-of-two textures: yes
12:25:12:  * Volume textures: yes
12:25:12:  * Multiple Render Targets: 8
12:25:12:    - With different bit depths: yes
12:25:12:  * Point Sprites: yes
12:25:12:  * Extended point parameters: yes
12:25:12:  * Max Point Size: 8192
12:25:12:  * Vertex texture fetch: yes
12:25:12:    - Max vertex textures: 16
12:25:12:    - Vertex textures shared: yes
12:25:12:  * Render to Vertex Buffer : no
12:25:12:  * GL 1.5 without VBO workaround: no
12:25:12:  * Frame Buffer objects: yes
12:25:12:  * Frame Buffer objects (ARB extension): no
12:25:12:  * Frame Buffer objects (ATI extension): no
12:25:12:  * PBuffer suppport: no
12:25:12:  * GL 1.5 without HW-occlusion workaround: no
12:25:12: Registering ResourceManager for type Texture
12:25:12: Using FSAA from GL_ARB_multisample extension.
12:25:12: ResourceBackgroundQueue - threading disabled
12:25:12: Particle Renderer Type 'billboard' registered
12:25:12: SceneManagerFactory for type 'BspSceneManager' registered.
12:25:12: Registering ResourceManager for type BspLevel
12:25:12: SceneManagerFactory for type 'OctreeSceneManager' registered.
12:25:12: SceneManagerFactory for type 'TerrainSceneManager' registered.
12:25:12: Parsing scripts for resource group Autodetect
12:25:12: Finished parsing scripts for resource group Autodetect
12:25:12: Parsing scripts for resource group Bootstrap
12:25:12: Parsing script OgreCore.material
12:25:12: Parsing script OgreProfiler.material
12:25:12: Parsing script Ogre.fontdef
12:25:12: Parsing script OgreDebugPanel.overlay
12:25:12: Texture: New_Ogre_Border_Center.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
12:25:12: Texture: New_Ogre_Border.png: Loading 1 faces(PF_A8R8G8B8,256x256x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x256x1.
12:25:12: Texture: New_Ogre_Border_Break.png: Loading 1 faces(PF_A8R8G8B8,32x32x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,32x32x1.
12:25:12: Font BlueHighwayusing texture size 512x512
12:25:12: Info: Freetype returned null for character 127 in font BlueHighway
12:25:12: Info: Freetype returned null for character 128 in font BlueHighway
12:25:12: Info: Freetype returned null for character 129 in font BlueHighway
12:25:12: Info: Freetype returned null for character 130 in font BlueHighway
12:25:12: Info: Freetype returned null for character 131 in font BlueHighway
12:25:12: Info: Freetype returned null for character 132 in font BlueHighway
12:25:12: Info: Freetype returned null for character 133 in font BlueHighway
12:25:12: Info: Freetype returned null for character 134 in font BlueHighway
12:25:12: Info: Freetype returned null for character 135 in font BlueHighway
12:25:12: Info: Freetype returned null for character 136 in font BlueHighway
12:25:12: Info: Freetype returned null for character 137 in font BlueHighway
12:25:12: Info: Freetype returned null for character 138 in font BlueHighway
12:25:12: Info: Freetype returned null for character 139 in font BlueHighway
12:25:12: Info: Freetype returned null for character 140 in font BlueHighway
12:25:12: Info: Freetype returned null for character 141 in font BlueHighway
12:25:12: Info: Freetype returned null for character 142 in font BlueHighway
12:25:12: Info: Freetype returned null for character 143 in font BlueHighway
12:25:12: Info: Freetype returned null for character 144 in font BlueHighway
12:25:12: Info: Freetype returned null for character 145 in font BlueHighway
12:25:12: Info: Freetype returned null for character 146 in font BlueHighway
12:25:12: Info: Freetype returned null for character 147 in font BlueHighway
12:25:12: Info: Freetype returned null for character 148 in font BlueHighway
12:25:12: Info: Freetype returned null for character 149 in font BlueHighway
12:25:12: Info: Freetype returned null for character 150 in font BlueHighway
12:25:12: Info: Freetype returned null for character 151 in font BlueHighway
12:25:12: Info: Freetype returned null for character 152 in font BlueHighway
12:25:12: Info: Freetype returned null for character 153 in font BlueHighway
12:25:12: Info: Freetype returned null for character 154 in font BlueHighway
12:25:12: Info: Freetype returned null for character 155 in font BlueHighway
12:25:12: Info: Freetype returned null for character 156 in font BlueHighway
12:25:12: Info: Freetype returned null for character 157 in font BlueHighway
12:25:12: Info: Freetype returned null for character 158 in font BlueHighway
12:25:12: Info: Freetype returned null for character 159 in font BlueHighway
12:25:12: Info: Freetype returned null for character 160 in font BlueHighway
12:25:12: Texture: BlueHighwayTexture: Loading 1 faces(PF_BYTE_LA,512x512x1) with  hardware generated mipmaps from Image. Internal format is PF_BYTE_LA,512x512x1.
12:25:12: Texture: ogretext.png: Loading 1 faces(PF_A8R8G8B8,256x128x1) with 5 hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,256x128x1.
12:25:12: Parsing script OgreLoadingPanel.overlay
12:25:12: Finished parsing scripts for resource group Bootstrap
12:25:12: Parsing scripts for resource group General
12:25:12: Parsing script StdQuad_vp.program
12:25:12: Parsing script Examples.program
12:25:12: GLSL compiled : Ogre/BasicVertexPrograms/AmbientOneTextureGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Ogre/HardwareSkinningTwoWeightsGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script deferred_post_debug.hlsl.program
12:25:12: Parsing script deferred_post_minilight.hlsl.program
12:25:12: Parsing script deferred_post_multipass.hlsl.program
12:25:12: Parsing script deferred_post_vs.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/vsVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script deferred_post_debug.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowNormal_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowDS_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowColour_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred_post_debug.glsl.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowNormal_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowDS_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/post/glsl/ShowColour_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred_post_minilight.glsl.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/LightMaterial_vsVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : DeferredShading/post/glsl/LightMaterial_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred_post_onepass.hlsl.program
12:25:12: Parsing script deferred_post_minilight.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/LightMaterial_vsVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : DeferredShading/post/glsl/LightMaterial_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred_post_multipass.glsl.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/Ambient_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/post/glsl/GlobalLight_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred_post_ambient.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/Ambient_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred.hlsl.program
12:25:12: Parsing script deferred_post_onepass.glsl.program
12:25:12: GLSL compiled : DeferredShading/post/glsl/vsVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : DeferredShading/post/glsl/SinglePass_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred.glsl.program
12:25:12: GLSL compiled : DeferredShading/material/glsl/psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/notex_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/nm_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/nm_notex_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script deferred.program
12:25:12: GLSL compiled : DeferredShading/material/glsl/psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/notex_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/nm_psFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : DeferredShading/material/glsl/nm_notex_psFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script Dither.material
12:25:12: Parsing script Halftone.material
12:25:12: Parsing script NightVision.material
12:25:12: Parsing script hdr.material
12:25:12: GLSL compiled : Ogre/Compositor/HDR/downscale2x2LuminenceGLSL_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/StdQuad_GLSL_vpVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Ogre/Compositor/HDR/downscale3x3GLSL_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/HDR/utils_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/HDR/downscale3x3brightpassGLSL_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/HDR/bloomGLSL_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/HDR/utils_fpFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/Compositor/HDR/finaltonemappingGLSL_fpFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script Examples-Advanced.material
12:25:12: Parsing script Ogre.material
12:25:12: Parsing script HeatVision.material
12:25:12: Parsing script ASMSwizzle.material
12:25:12: Compiler error: object unsupported by render system in ASMSwizzle.material(1)
12:25:12: Parsing script CGSwizzle.material
12:25:12: Parsing script Laplace.material
12:25:12: Parsing script Invert.material
12:25:12: Parsing script RZR-002.material
12:25:12: Parsing script instancing.material
12:25:12: GLSL compiled : InstancingGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : InstancingShadowCasterGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : CrowdGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : CrowdShadowCasterGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script DOF.material
12:25:12: Parsing script OldMovie.material
12:25:12: Parsing script DepthShadowmap.material
12:25:12: GLSL compiled : Ogre/DepthShadowmap/CasterVP_GLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Ogre/DepthShadowmap/CasterFP_GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/DepthShadowmap/ReceiverVP_GLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Ogre/DepthShadowmap/ReceiverFP_GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/DepthShadowmap/ReceiverFPPCF_GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverVP_GLSLVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFP_GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Ogre/DepthShadowmap/NormalMapReceiverFPPCF_GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script IsoSurf.material
12:25:12: Parsing script OffsetMapping.material
12:25:12: GLSL compiled : Examples/OffsetMappingIntegratedShadowsFPglslFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Examples/OffsetMappingIntegratedShadowsVPglslVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script MRTtest.material
12:25:12: GLSL compiled : Ogre/MRTtest/scenefp/GLSLFragment shader was successfully compiled to run on hardware.
WARNING: 0:2: extension 'GL_ARB_draw_buffers' is not supporte
12:25:12: GLSL compiled : Ogre/MRTtest/quadfp/GLSLFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script Ocean.material
12:25:12: GLSL compiled : GLSL/OceanVSVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : GLSL/OceanFSFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : GLSL/Ocean2VSVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : GLSL/Ocean2FSFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script Hurt.material
12:25:12: Parsing script facial.material
12:25:12: Parsing script ParticleGS.material
12:25:12: OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayPS: CG ERROR : The compile returned an error.
(323) : fatal error C9999: unexpected cast operation
 in CgProgram::loadFromSource at OgreCgProgramManagerDll.cpp (line 66)
12:25:12: High-level program Ogre/ParticleGS/DisplayPS encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Unable to compile Cg program Ogre/ParticleGS/DisplayPS: CG ERROR : The compile returned an error.
(323) : fatal error C9999: unexpected cast operation
 in CgProgram::loadFromSource at OgreCgProgramManagerDll.cpp (line 66)
12:25:12: Parsing script Posterize.material
12:25:12: Parsing script Example-Water.material
12:25:12: Parsing script Bloom2.material
12:25:12: GLSL compiled : Bloom2_ps20_glslFragment shader was successfully compiled to run on hardware.
12:25:12: Parsing script MotionBlur.material
12:25:12: Parsing script Glass.material
12:25:12: Parsing script Example-DynTex.material
12:25:12: Parsing script pssm.material
12:25:12: Parsing script smoke.material
12:25:12: Parsing script RadialBlur.material
12:25:12: Parsing script SharpenEdges.material
12:25:12: Parsing script Example.material
12:25:12: OGRE EXCEPTION(2:InvalidParametersException): Parameter called camObjPos does not exist.  in GpuProgramParameters::_findNamedConstantDefinition at OgreGpuProgram.cpp (line 1097)
12:25:12: Compiler error: invalid parameters in Example.material(762): setting of constant failed
12:25:12: GLSL compiled : Ogre/HardwareSkinningTwoWeightsShadowCasterGLSLVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script ASCII.material
12:25:12: Parsing script BlackAndWhite.material
12:25:12: Parsing script Bloom.material
12:25:12: GLSL compiled : Blur_ps_glslFragment shader was successfully compiled to run on hardware.
12:25:12: GLSL compiled : Blur0_vs_glslVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : Blur1_vs_glslVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script VarianceShadowmap.material
12:25:12: Parsing script Embossed.material
12:25:12: Parsing script GLSLSwizzle.material
12:25:12: OGRE EXCEPTION(7:InternalErrorException): Cannot compile GLSL high-level shader : Ogre/GPTest/Swizzle_GP_GLSL invalid valueCannot compile GLSL high-level shader : Ogre/GPTest/Swizzle_GP_GLSL invalid value in GLSLProgram::loadFromSource at OgreGLSLExtSupport.cpp (line 66)
12:25:12: High-level program Ogre/GPTest/Swizzle_GP_GLSL encountered an error during loading and is thus not supported.
OGRE EXCEPTION(7:InternalErrorException): Cannot compile GLSL high-level shader : Ogre/GPTest/Swizzle_GP_GLSL invalid valueCannot compile GLSL high-level shader : Ogre/GPTest/Swizzle_GP_GLSL invalid value in GLSLProgram::loadFromSource at OgreGLSLExtSupport.cpp (line 66)
12:25:12: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at OgreGpuProgram.cpp (line 1087)
12:25:12: Compiler error: invalid parameters in GLSLSwizzle.material(15): setting of constant failed
12:25:12: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at OgreGpuProgram.cpp (line 1087)
12:25:12: Compiler error: invalid parameters in GLSLSwizzle.material(16): setting of constant failed
12:25:12: GLSL compiled : Ogre/GPTest/Passthrough_VP_GLSLVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script Tiling.material
12:25:12: Parsing script OldTV.material
12:25:12: Parsing script deferred_post_onepass.material
12:25:12: Parsing script deferred_post_multipass.material
12:25:12: Parsing script deferred_post_debug.material
12:25:12: Parsing script deferred_post_minilight.material
12:25:12: Parsing script deferreddemo.material
12:25:12: GLSL compiled : DeferredShading/material/glsl/vsVertex shader was successfully compiled to run on hardware.

12:25:12: GLSL compiled : DeferredShading/material/glsl/nm_vsVertex shader was successfully compiled to run on hardware.

12:25:12: Parsing script deferred_post_ambient.material
12:25:12: Parsing script deferred.material
12:25:12: Parsing script ROOM.material
12:25:12: Parsing script RomanBath.material
12:25:12: Parsing script Example-Water.particle
12:25:12: Parsing script smoke.particle
12:25:12: Parsing script emitted_emitter.particle
12:25:12: Parsing script Example.particle
12:25:12: Parsing script Examples.compositor
12:25:12: Parsing script deferred.compositor
12:25:12: Parsing script sample.fontdef
12:25:12: Parsing script DP3.overlay
12:25:12: Parsing script Example-Water.overlay
12:25:12: Parsing script Shadows.overlay
12:25:12: Parsing script Example-CubeMapping.overlay
12:25:12: Parsing script Example-DynTex.overlay
12:25:12: Parsing script Compositor.overlay
12:25:12: Finished parsing scripts for resource group General
12:25:12: Parsing scripts for resource group Internal
12:25:12: Finished parsing scripts for resource group Internal
12:25:12: Texture: BumpyMetal.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
12:25:12: Mesh: Loading knot.mesh.
12:25:12: Texture: MtlPlat2.jpg: Loading 1 faces(PF_R8G8B8,780x511x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,780x511x1.
12:25:13: Texture: Water02.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
12:25:13: Texture: Water01.jpg: Loading 1 faces(PF_R8G8B8,512x512x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,512x512x1.
12:25:13: Texture: clouds.jpg: Loading 1 faces(PF_R8G8B8,256x256x1) with 5 hardware generated mipmaps from Image. Internal format is PF_X8R8G8B8,256x256x1.
12:25:13: *** Initializing OIS ***
12:25:15: Unregistering ResourceManager for type BspLevel
12:25:15: *-*-* OGRE Shutdown
12:25:15: Unregistering ResourceManager for type Compositor
12:25:15: Unregistering ResourceManager for type Font
12:25:15: Unregistering ResourceManager for type Skeleton
12:25:15: Unregistering ResourceManager for type Mesh
12:25:15: Unregistering ResourceManager for type HighLevelGpuProgram
12:25:15: Uninstalling plugin: Cg Program Manager
12:25:15: Plugin successfully uninstalled
12:25:15: Unloading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_CgProgramManager.so
12:25:15: Uninstalling plugin: Octree & Terrain Scene Manager
12:25:15: Plugin successfully uninstalled
12:25:15: Unloading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_OctreeSceneManager.so
12:25:15: Uninstalling plugin: BSP Scene Manager
12:25:15: Plugin successfully uninstalled
12:25:15: Unloading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_BSPSceneManager.so
12:25:15: Uninstalling plugin: ParticleFX
12:25:15: Plugin successfully uninstalled
12:25:15: Unloading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/Plugin_ParticleFX.so
12:25:15: Uninstalling plugin: GL RenderSystem
12:25:15: Unregistering ResourceManager for type GpuProgram
12:25:15: ******************************
*** Stopping GLX Subsystem ***
******************************
12:25:15: Unregistering ResourceManager for type Texture
12:25:15: Plugin successfully uninstalled
12:25:15: Unloading library /home/leo/files/src/env-ogre-branch-1.6/lib/OGRE/RenderSystem_GL.so
12:25:15: Unregistering ResourceManager for type Material
Maybe there's a bug in the way Ogre uses hardware mipmap generation? This has happened before on a certain version of Nvidia drivers.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by sinbad »

Yes, this has happened before on NVIDIA and it was confirmed as a driver bug and fixed in the next revision. It actually seems that not that many people use the hardware mipmap generation option in GL (or maybe it's just games are either not supporting GL or using pregenerated mipmaps). Doom 3 is pretty ancient tech these days and I'm kinda sick of driver writers assuming that we only use what old iD engines use.

I'll see if I can confirm this on my ATI / Linux test box next time I'm on it, report it to ATI and work around it.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by sinbad »

Haven't had time to test this yet. However, try this: in OgreGLRenderSystem.cpp, find this code:

Code: Select all

        // Check for hardware mipmapping support.
        if(GLEW_VERSION_1_4 || GLEW_SGIS_generate_mipmap)
        {
			bool disableAutoMip = false;
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
			// Apple ATI drivers have faults in hardware mipmap generation
			if (rsc->getVendor() == GPU_ATI)
				disableAutoMip = true;
#endif
			if (!disableAutoMip)
				rsc->setCapability(RSC_AUTOMIPMAP);
        }
and change it to this:

Code: Select all

        // Check for hardware mipmapping support.
        if(GLEW_VERSION_1_4 || GLEW_SGIS_generate_mipmap)
        {
			bool disableAutoMip = false;
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_LINUX
			// Apple ATI drivers have faults in hardware mipmap generation
			if (rsc->getVendor() == GPU_ATI)
				disableAutoMip = true;
#endif
			if (!disableAutoMip)
				rsc->setCapability(RSC_AUTOMIPMAP);
        }
I suspect it may fix your problems. Maybe ATI's entire latest driver stream has broken support for GLEW_SGIS_generate_mipmap.

User avatar
cdleonard
Goblin
Posts: 266
Joined: Thu May 31, 2007 9:45 am

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by cdleonard »

I didn't try your fix but I'm sure it would have worked. It's a pretty brutal fix; I don't think it should get into svn. The proper way to do this is some sort of blacklist of driver capabilities.

Anyway; I recently upgraded my drivers and the issue is gone.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by sinbad »

cdleonard wrote:I didn't try your fix but I'm sure it would have worked. It's a pretty brutal fix; I don't think it should get into svn. The proper way to do this is some sort of blacklist of driver capabilities.

Anyway; I recently upgraded my drivers and the issue is gone.
Yay!

Yes, I'd really like to blacklist drivers, but GL is a PITA in that it doesn't provide any way to retrieve the full driver version, just the GL version which doesn't always reflect all the incremental changes. AFAIK you have to directly query the GL driver libraries to get this information, which is really nasty.

User avatar
cdleonard
Goblin
Posts: 266
Joined: Thu May 31, 2007 9:45 am

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by cdleonard »

sinbad wrote:Yes, I'd really like to blacklist drivers, but GL is a PITA in that it doesn't provide any way to retrieve the full driver version, just the GL version which doesn't always reflect all the incremental changes. AFAIK you have to directly query the GL driver libraries to get this information, which is really nasty.
This particular bug can be localized to a GL version (2.1.8304.0). The fixed version reports 2.1.8494.

It would be awesome to have a capability blacklist inside a text file you can trivially update and play with. Recompiling ogre should be avoided.

But it's even better if drivers "just work". Let them test with Ogre before releasing new versions. :twisted:

reptor
Ogre Magi
Posts: 1120
Joined: Wed Nov 15, 2006 7:41 pm
Location: Finland
x 5

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by reptor »

My solution would be to try to educate the users enough so that they would undestand not to complain to me if their graphics card is having problems.

I don't see how more than that could be done cost-effectively.

In fact I don't think that would work... It is very hard to know which problem originates from the graphics card and which from the application.

The blacklist is like anti-virus software virus blacklists: it absolutely needs to be very regularly updated or it is near-useless.

How about a whitelist? :)

User avatar
cdleonard
Goblin
Posts: 266
Joined: Thu May 31, 2007 9:45 am

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by cdleonard »

I've recently discovered that hardware mipmap generation is still broken when a large amount of textures are involved. It does not result in corrupt textures but rather random crashes inside the driver; probably from some form of memory corruption. It can be reproduced using ember; but it's difficult because there are other unrelated bugs in there as well.

Anyway; my suggestion is to apply sinbad's patch to trunk and 1.6 and forget about hardware mipmap generation on ati/linux. This is such a silly feature; causing far more trouble than it's worth.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by sinbad »

Patch applied.

User avatar
Game_Ender
Ogre Magi
Posts: 1269
Joined: Wed May 25, 2005 2:31 am
Location: Rockville, MD, USA

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by Game_Ender »

sinbad wrote:Patch applied.
Just to be sure, you mean this code right?:

Code: Select all

        // Check for hardware mipmapping support.
        if(GLEW_VERSION_1_4 || GLEW_SGIS_generate_mipmap)
        {
         bool disableAutoMip = false;
#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_LINUX
         // Apple ATI drivers have faults in hardware mipmap generation
         if (rsc->getVendor() == GPU_ATI)
            disableAutoMip = true;
#endif
         if (!disableAutoMip)
            rsc->setCapability(RSC_AUTOMIPMAP);
        }
I just wanted to be sure because I have to apply it to my slightly custom version of Ogre. I am trying to fix the bug brought up in this thread.

User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19265
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by sinbad »

Yes, specifically it's rev 8656 in Subversion.
http://ogre.svn.sourceforge.net/ogre/?rev=8656&view=rev

neloman3
Gnoblar
Posts: 1
Joined: Thu Jul 16, 2009 7:57 pm

Re: Hardware mipmap generation broken on ATI Linux drivers.

Post by neloman3 »

I don't know the state of this, but I had the same problem with a Debian 32bit running in an AMD64. I've installed a Debian 64bit and I don't need to patch the Ogre code. All works perfectly.

Thanks (Sorry for my mistakes, I'm Spanish)

Post Reply