Bug 43964

Summary: Rendering is distorded in Penumbra Overture game
Product: Mesa Reporter: Laurent carlier <lordheavym>
Component: Drivers/Gallium/r600Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: glxinfo (32 bits version)
dmesg
PostEffect_Motion_fp.cg file
Screenshot

Description Laurent carlier 2011-12-19 14:46:31 UTC
Created attachment 54582 [details]
glxinfo (32 bits version)

System: Archlinux x86_64 with mesa and lib32-mesa from git
Card: Radeon HD4850

Graphics in Penumbra Overture are distorded (blurry). Found an error in the log file:

--8<--
 Initializing Graphics Module
--------------------------------------------------------
 Init low level graphics
 Setting video mode: 800 x 600 - 32 bpp
 Init Glee...OK
 Setting up OpenGL
  Max texture image units: 16
  Max texture coord units: 8
  Two sided stencil: 1
  Vertex Buffer Object: 0
  Anisotropic filtering: 1
  Max Anisotropic degree: 16
  Multisampling: 1
  Vertex Program: 1
  Fragment Program: 1
  NV Register Combiners: 0
  NV Register Combiners Stages: 161867840
  ATI Fragment Shader: 0
 Creating graphic systems
  Creating Renderer2D
  Renderer2D created
  Creating Renderer3D
   Load Renderer3D gpu programs:
    Extrude
CG: 'ShadowExtrude_vp.cg' using profile: 'arbvp1'
CG: 'ShadowExtrude_fp.cg' using profile: 'arbfp1'
    Diffuse Vertex
CG: 'Diffuse_Color_vp.cg' using profile: 'arbvp1'
    Diffuse Fragment
CG: 'Diffuse_Color_fp.cg' using profile: 'arbfp1'
    Fog
CG: 'Fog_Solid_vp.cg' using profile: 'arbvp1'
CG: 'Fog_Solid_fp.cg' using profile: 'arbfp1'
   Creating fog textures: Solid Additive Alpha 
CG: 'refract_vp.cg' using profile: 'arbvp1'
CG: 'refract_fp.cg' using profile: 'arbfp1'
CG: 'refract_special_fp.cg' using profile: 'arbfp1'
   init sky box
  Renderer3D created
 Creating screen buffers size 800.000000 : 600.000000
 Creating programs
CG: 'PostEffect_Blur_vp.cg' using profile: 'arbvp1'
CG: 'PostEffect_Blur_Rect_fp.cg' using profile: 'arbfp1'
CG: 'PostEffect_Blur_2D_fp.cg' using profile: 'arbfp1'
CG: 'PostEffect_Bloom_vp.cg' using profile: 'arbvp1'
CG: 'PostEffect_Bloom_fp.cg' using profile: 'arbfp1'
CG: 'PostEffect_Motion_vp.cg' using profile: 'arbvp1'
CG: 'PostEffect_Motion_fp.cg' using profile: 'arbfp1'
 CG ERROR : "The compile returned an error."
 -----------------------------------
core/programs/PostEffect_Motion_fp.cg(28) : error C5013: profile does not support "for" statements and "for" could not be unrolled.
 -----------------------------------
CG: Error loading: 'core/programs/PostEffect_Motion_fp.cg'!
ERROR: Couldn't create program 'PostEffect_Motion_fp.cg'
Dynamic loops in motion blur fp not supported, loading static instead.
CG: 'PostEffect_Motion_staticloop_fp.cg' using profile: 'arbfp1'
CG: 'PostEffect_DoF_vp.cg' using profile: 'arbvp1'
CG: 'PostEffect_DoF_fp.cg' using profile: 'arbfp1'
  RendererPostEffects created
 Adding engine materials
--------------------------------------------------------
-->8--
Comment 1 Laurent carlier 2011-12-19 14:47:55 UTC
Created attachment 54583 [details]
dmesg
Comment 2 Laurent carlier 2011-12-19 15:21:34 UTC
Created attachment 54584 [details]
PostEffect_Motion_fp.cg file
Comment 3 Ian Romanick 2011-12-20 10:40:59 UTC
(In reply to comment #0)

> CG: 'PostEffect_Motion_fp.cg' using profile: 'arbfp1'
>  CG ERROR : "The compile returned an error."
>  -----------------------------------
> core/programs/PostEffect_Motion_fp.cg(28) : error C5013: profile does not
> support "for" statements and "for" could not be unrolled.
>  -----------------------------------
> CG: Error loading: 'core/programs/PostEffect_Motion_fp.cg'!
> ERROR: Couldn't create program 'PostEffect_Motion_fp.cg'

I don't think this error has anything to do with Mesa or the r600 driver.  This error message comes from the Cg compiler.  It's saying that the shader is trying to do something that the Cg compiler can't handle on this driver.  Cg is the shading language from NVIDIA, and it's compiler is completely external to the driver.  The game is trying to do something that the driver can't do.
Comment 4 Laurent carlier 2011-12-29 15:04:49 UTC
Created attachment 54960 [details]
Screenshot

Here is a Screenshot that expose the problem
Comment 5 Laurent carlier 2012-01-02 10:34:36 UTC
Fixed the problem, it happened because of mismatch with included libstdc++ and system one (indirect rendering was in use).

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.