Bug 59521 - [Serious Sam 3] Missing textures with R600g
Summary: [Serious Sam 3] Missing textures with R600g
Status: RESOLVED NOTOURBUG
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r600 (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-17 16:47 UTC by Laurent carlier
Modified: 2013-04-07 16:09 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
apitrace that produce an error (297.32 KB, application/octet-stream)
2013-02-08 18:47 UTC, Laurent carlier
Details
before commit 8af7d3ce9fe60d7ab19aa30efc15f9ed97df27ff (62.32 KB, image/jpeg)
2013-02-23 19:06 UTC, Laurent carlier
Details
After commit 8af7d3ce9fe60d7ab19aa30efc15f9ed97df27ff (173.19 KB, image/jpeg)
2013-02-23 19:07 UTC, Laurent carlier
Details

Description Laurent carlier 2013-01-17 16:47:14 UTC
OpenGL renderer string: Gallium 0.4 on AMD BARTS
OpenGL version string: 3.0 Mesa 9.1-devel (git-1cedf78)
OpenGL shading language version string: 1.30
Linux archMain 3.7.2-1-ARCH

With recent OpenGL 3.1/glsl 1.40 support, SS3 is now rendering empty textures. Here is the log output:

--8<--
INF:  Encoded user ID = 07c6d27b:425ae20b
saving roaming config store to 'sharedconfig.vdf'
roaming config store 2 saved successfully
INF:  
INF:  * Desktop settings...
INF:  Color depth: 32-bit
INF:  Desktop resolution: 1920 x 1080
INF:  Fullscreen on primary display
Mesa: User error: GL_INVALID_ENUM in glGetIntegerv(pname=0x9047)
Mesa: User error: GL_INVALID_ENUM in glGetIntegerv(pname=0x87fc)
WRN:  [OpenGL] Unable to determine VRAM size... assuming 512 MB.
Mesa: User error: GL_INVALID_ENUM in glGetIntegerv(pname=0x9048)
Mesa: User error: GL_INVALID_ENUM in glGetIntegerv(pname=0x87fc)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
INF:  
INF:  Gfx API: OpenGL
INF:  Resolution: 1920 x 1080
INF:  Vendor: ATI (0x1002)
INF:  Driver: X.Org (0x6738)
INF:  Renderer: Gallium 0.4 on AMD BARTS
INF:  Version: 3.0 Mesa 9.1-devel (git-1cedf78)
INF:  Video memory size: 512 MB
INF:  Available for textures: 512 MB
INF:  Active GPU(s): 1
WRN:  Display driver is too old, please update it ASAP!
INF:  
INF:  Sfx API: OpenAL
INF:  Device: OpenAL Soft
INF:  Mixer frequency: 44100 Hz
INF:  Mixer voices: 64
INF:  Max sound sources: 30
INF:  Max total volume: 3
INF:  Speaker config: (unknown)
INF:  Environment FX: not supported
INF:  
ERR:  OpenGL: API error! (CreateStaticVertexBuffer)
INF:  AutoDetect: Hardware values unchanged, nothing to do.
Installing breakpad exception handler for appid(steam)/version(1358286427_client)
Installing breakpad exception handler for appid(steam)/version(1358286427_client)
INF:  Started simulation on 'Content/SeriousSam3/Levels/Menu/Intro.wld' in 0.53 seconds.
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
INF:  Started simulation on 'Content/SeriousSam3/Levels/Menu/MenuLevel.wld' in 0.16 seconds.
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
ERR:  OpenGL: API error! (NewTextureCanvas, texture-buffer object)
Mesa: User error: GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
Game removed: AppID 41070 "Serious Sam 3: BFE", ProcID 19760 
saving roaming config store to 'sharedconfig.vdf'
roaming config store 2 saved successfully
Generating new string page texture 116: 24x256, total string texture memory is 2,42 MB
Shutting down. . .
unlinked 2 orphaned pipes
CAsyncIOManager: 0 threads terminating.  0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 371866 single object sleeps, 598 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 2 multi object alertable sleeps
-->8--

Steam is launched with MESA_DEBUG=1 and R600_LLVM=0, community support is disabled.

Upstream bug report:
 steamcommunity.com/app/41070/discussions/0/846942784171341620/
Comment 1 Alex Deucher 2013-01-17 16:54:13 UTC
If the game uses compressed textures, make sure you have libtxc-dxtn installed.
Comment 2 Laurent carlier 2013-01-17 17:10:01 UTC
Of course, lib32-libtxc_dxtn is installed:
$ pacman -Qs lib32-libtxc_dxtn
local/lib32-libtxc_dxtn 1.0.1-3
    Texture compression library for Mesa (32-bit)
Comment 3 Laurent carlier 2013-02-08 18:47:35 UTC
Created attachment 74448 [details]
apitrace that produce an error

That trace gives:

> apitrace retrace Sam3.1207.trim.trace 
1205: glDebugOutputCallback: High severity API error 0, GL_INVALID_OPERATION in unsupported function called (unsupported extension or deprecated function?)
0 1205 glProgramUniform1i(program = 8, location = 65536, v0 = 0)
1205: warning: glGetError(glProgramUniform1i) = GL_INVALID_OPERATION
Rendered 0 frames in 0.0703531 secs, average of 0 fps
Comment 4 Laurent carlier 2013-02-23 19:06:04 UTC
I've bisected, and it gives me:

Bisecting: 0 revisions left to test after this (roughly 0 steps)
[8af7d3ce9fe60d7ab19aa30efc15f9ed97df27ff] mesa: Add extension tracking for {ARB,OES}_get_program_binary
Comment 5 Laurent carlier 2013-02-23 19:06:52 UTC
Created attachment 75419 [details]
before commit 8af7d3ce9fe60d7ab19aa30efc15f9ed97df27ff
Comment 6 Laurent carlier 2013-02-23 19:07:24 UTC
Created attachment 75420 [details]
After commit 8af7d3ce9fe60d7ab19aa30efc15f9ed97df27ff
Comment 7 Laurent carlier 2013-02-23 21:00:50 UTC
using MESA_EXTENSION_OVERRIDE="-GL_ARB_get_program_binary" make it works properly
Comment 8 John Bridgman 2013-04-03 15:14:52 UTC
(In reply to comment #7)
> using MESA_EXTENSION_OVERRIDE="-GL_ARB_get_program_binary" make it works
> properly

Just checking, do you mean "using <over-ride> eliminates the missing textures ?
Comment 9 John Bridgman 2013-04-03 15:17:26 UTC
Sorry, hit "save" too soon. Your post on the steam forum suggested that there might be a crash related to use of precompiled shader binaries so I'm wondering if your comment here refers to fixing a crash or fixing the textures. 

Thanks...
Comment 10 Laurent carlier 2013-04-03 17:44:45 UTC
Probably the crash is related to some cache feature that SS3 uses (it was reproducable when switching between catalyst and mesa).

Overriding GL_ARB_get_program_binary make the game working properly otherwise all the textures are missing.
Comment 11 John Bridgman 2013-04-03 22:47:18 UTC
Thanks. First thought is that maybe Mesa is executing precompiled shader programs from Catalyst (you mentioned switching back and forth) but it seems unlikely that would work even enough to be "missing textures" ;)
Comment 12 Laurent carlier 2013-04-07 16:09:11 UTC
It seem it was a SS3 bug. Now i can see this in the output log:

WRN:  [OpenGL] "GL_ARB_get_program_binary" extension is present but not used because no binary formats are exposed.
WRN:  [OpenGL] Unable to determine VRAM size... assuming 512 MB.

And now it works without overriding GL_ARB_get_program_binary, so closing.


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.