Bug 104711

Summary: [skl CCS] Oxenfree (unity engine game) hangs GPU
Product: Mesa Reporter: Henri Kemppainen <fdo>
Component: Drivers/DRI/i965Assignee: Jason Ekstrand <jason>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: eero.t.tamminen, intel-gfx-bugs, jason
Version: 17.3   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: gpu crash dump
apitrace

Description Henri Kemppainen 2018-01-20 08:41:54 UTC
Created attachment 136863 [details]
gpu crash dump

Early on in the game (GOG, ver. 2.6.0) you enter a cave.  A short moment later the GPU will hang, and from thereon the hang is fully reproducible simply by restarting the game.  Changing options (resolution, details, windowed/fullscreen) does not make a difference.

Linux t460s 4.14.12-1-ARCH #1 SMP PREEMPT Fri Jan 5 18:19:34 UTC 2018 x86_64 GNU/Linux

Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz

X.Org X Server 1.19.6
Release Date: 2017-12-20

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)  (0x1916)
    Version: 17.3.1
    Accelerated: yes
    Video memory: 3072MB
    Unified memory: yes

Attachment includes gzipped crash dump from /sys/class/drm/card0/error
Comment 1 Henri Kemppainen 2018-01-20 08:48:20 UTC
Created attachment 136864 [details]
apitrace
Comment 2 Henri Kemppainen 2018-01-20 09:34:38 UTC
I upgraded the kernel (to 4.14.13) and mesa (to 17.3.2), unfortunately this makes no difference.
Comment 3 Tapani Pälli 2018-01-22 06:50:26 UTC
As this is a Unity game, please try running also with following environment variable set:

UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes

Another 'shot in the dark', does setting this make difference:

INTEL_DEBUG=norbc
Comment 4 Henri Kemppainen 2018-01-22 08:54:09 UTC
> UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes

This one makes no difference.

> Another 'shot in the dark', does setting this make difference:
> 
> INTEL_DEBUG=norbc

Yep, it does.  I can't reproduce the hang with this setting.
Comment 5 Tapani Pälli 2018-01-22 11:54:46 UTC
(In reply to Henri Kemppainen from comment #4)
> > UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes
> 
> This one makes no difference.
> 
> > Another 'shot in the dark', does setting this make difference:
> > 
> > INTEL_DEBUG=norbc
> 
> Yep, it does.  I can't reproduce the hang with this setting.

Thanks for testing this, FYI Jason.
Comment 6 Jason Ekstrand 2018-01-23 21:35:45 UTC
There are now patches on the list for this:

https://patchwork.freedesktop.org/series/36957/
Comment 7 Jason Ekstrand 2018-01-25 03:09:26 UTC
This is fixed by the following commit in master:

commit d38ec24f531fac0b53c406a09d17427309a3ffca
Author: Jason Ekstrand <jason.ekstrand@intel.com>
Date:   Mon Jan 22 23:40:48 2018 -0800

    i965/miptree: Add an aux_disabled parameter to render_aux_usage
    
    Only one of the callers of intel_miptree_render_aux_usage actually took
    brw->draw_aux_buffer_disabled into account.  This was causing us to
    ignore draw_aux_buffer_disabled for the intel_miptree_prepare_render.
    This isn't a problem because the draw_aux_buffer_disabled entry was set
    during texture preparation and we already did the resolve at that time.
    However, this also meant that the aux_usage we were passing to
    brw_cache_flush_for_render and brw_render_cache_add_bo was wrong so our
    automatic cache flushing around aux_usage changes wasn't happening.
    This was causing GPU hangs in Oxenfree.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104711
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104411
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104383
    Fixes: ea0d2e98ecb369ab84e78c84709c0930ea8c293a
    Cc: mesa-stable@lists.freedesktop.org
    Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

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.