[Mesa-dev] [Bug 91169] The Chronicles of Riddick: Assault on Dark Athena fails to start with nouveau

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Jun 30 20:39:50 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=91169

            Bug ID: 91169
           Summary: The Chronicles of Riddick: Assault on Dark Athena
                    fails to start with nouveau
           Product: Mesa
           Version: git
          Hardware: Other
                OS: All
            Status: NEW
          Keywords: patch
          Severity: normal
          Priority: medium
         Component: Mesa core
          Assignee: mesa-dev at lists.freedesktop.org
          Reporter: gyebro69 at gmail.com
        QA Contact: mesa-dev at lists.freedesktop.org
                CC: imirkin at alum.mit.edu

Created attachment 116838
  --> https://bugs.freedesktop.org/attachment.cgi?id=116838&action=edit
trace file (unpatched mesa, game fails to start)

The game uses OpenGL and runs fine in Wine with Nvidia binary drivers 340.76.
With nouveau the game crashes on start and pops up an error message something
about: 
'CCException. 
Location: class CRenderContextGL::GLSL_LoadSrc
Message: OpenGL: no error'
I get the same error message with the software renderer too.

The following proposed patched written by Ilia Mirkin fixes the problem for me,
the game starts, shows the intro videos and menus correctly:

diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp
index efab299..9c3037b 100644
--- a/src/glsl/builtin_functions.cpp
+++ b/src/glsl/builtin_functions.cpp
@@ -2045,7 +2045,7 @@ builtin_builder::create_builtins()

    add_function("texture2D",
                 _texture(ir_tex, always_available, glsl_type::vec4_type, 
glsl_type::sampler2D_type, glsl_type::vec2_type),
-                _texture(ir_txb, fs_only,          glsl_type::vec4_type, 
glsl_type::sampler2D_type, glsl_type::vec2_type),
+                _texture(ir_txb, always_available,         
glsl_type::vec4_type,  glsl_type::sampler2D_type, glsl_type::vec2_type),
                 _texture(ir_tex, texture_external, glsl_type::vec4_type, 
glsl_type::samplerExternalOES_type, glsl_type::vec2_type),
                 NULL);

@@ -2096,7 +2096,7 @@ builtin_builder::create_builtins()

    add_function("textureCube",
                 _texture(ir_tex, always_available, glsl_type::vec4_type, 
glsl_type::samplerCube_type, glsl_type::vec3_type),
-                _texture(ir_txb, fs_only,          glsl_type::vec4_type, 
glsl_type::samplerCube_type, glsl_type::vec3_type),
+                _texture(ir_txb, always_available,         
glsl_type::vec4_type,  glsl_type::samplerCube_type, glsl_type::vec3_type),
                 NULL);

    add_function("textureCubeLod",
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 046d5d7..6b1a104 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -655,6 +655,8 @@ void _mesa_glsl_extension::set_flags(_mesa_glsl_parse_state
*state,
  */
 static const _mesa_glsl_extension *find_extension(const char *name)
 {
+   if (strcmp(name, "GL_ATI_shader_texture_lod") == 0)
+      name = "GL_ARB_shader_texture_lod";
    for (unsigned i = 0; i < ARRAY_SIZE(_mesa_glsl_supported_extensions); ++i)
{
       if (strcmp(name, _mesa_glsl_supported_extensions[i].name) == 0) {
          return &_mesa_glsl_supported_extensions[i];


Trace file with patch applied:
https://drive.google.com/open?id=0B-tTbLKBl-tOQUNwWEgtekN6LVE

Fedora 22 32-bit
Mesa 10.6-branchpoint-773-g1de93f9
Kernel 4.0.6-300.fc22.i686+PAE
Xorg 1.17.2
libdrm-2.4.61-3.fc22.i686

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150701/22827b2a/attachment.html>


More information about the mesa-dev mailing list