[Bug 110502] Steam client has graphical glitches
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Thu Jun 13 13:18:48 UTC 2019
https://bugs.freedesktop.org/show_bug.cgi?id=110502
--- Comment #4 from asimiklit <andrey.simiklit at gmail.com> ---
(In reply to leozinho29_eu from comment #2)
> This option makes Steam crash here. The gdb output is:
>
> Installing breakpad exception handler for appid(steam)/version(1555457005)
> warning: Error reading shared library list entry at 0x4b40
> warning: Error reading shared library list entry at 0x6ae0
> warning: Corrupted shared library list: 0x569f0ac0 != 0x636f6c2f
> steam: ../src/gallium/drivers/iris/iris_resource.c:813:
> iris_resource_from_handle: Assertiva “res->bo->tiling_mode ==
> isl_tiling_to_i915_tiling(res->surf.tiling)” falhou.
>
> Program received signal SIGABRT, Aborted.
> 0xf7fd5939 in __kernel_vsyscall ()
> (gdb) bt
> #0 0xf7fd5939 in __kernel_vsyscall ()
> #1 0xf7a1f832 in raise () from /lib/i386-linux-gnu/libc.so.6
> #2 0xf7a20cc1 in abort () from /lib/i386-linux-gnu/libc.so.6
> #3 0xf7a177bb in ?? () from /lib/i386-linux-gnu/libc.so.6
> #4 0xf7a17819 in __assert_fail () from /lib/i386-linux-gnu/libc.so.6
> #5 0xf6e0c9d1 in iris_resource_from_handle (pscreen=0x569b1da8,
> templ=0xffffa92c, whandle=0xffffa910, usage=1)
> at ../src/gallium/drivers/iris/iris_resource.c:777
> #6 0xf67d5a6e in dri2_allocate_textures (ctx=0x569fdc80,
> drawable=0x56b71930, statts=0x56b71ecc,
> statts_count=2) at ../src/gallium/state_trackers/dri/dri2.c:606
> #7 0xf67d68ce in dri_st_framebuffer_validate (stctx=0x56b644e0,
> stfbi=0x56b71930, statts=0x56b71ecc, count=2,
> out=0xffffaa50) at ../src/gallium/state_trackers/dri/dri_drawable.c:85
> #8 0xf695ea62 in st_framebuffer_validate (stfb=0x56b71b40,
> st=st at entry=0x56b644e0)
> at ../src/mesa/state_tracker/st_manager.c:222
> #9 0xf695eda3 in st_api_make_current (stapi=0xf7403100 <st_gl_api>,
> stctxi=0x56b644e0, stdrawi=0x56b71930,
> streadi=0x56b71930) at ../src/mesa/state_tracker/st_manager.c:1082
> #10 0xf67d62b3 in dri_make_current (cPriv=0x569fdc60,
> driDrawPriv=0x56b71900, driReadPriv=0x56b71900)
> at ../src/gallium/state_trackers/dri/dri_context.c:301
> #11 0xf67cff8f in driBindContext (pcp=0x569fdc60, pdp=0x56b71900,
> prp=0x56b71900)
> at ../src/mesa/drivers/dri/common/dri_util.c:579
> #12 0xf7615a4a in ?? () from /usr/lib/i386-linux-gnu/libGLX_mesa.so.0
> #13 0xf75eb8f4 in ?? () from /usr/lib/i386-linux-gnu/libGLX_mesa.so.0
> #14 0xf75ebb16 in ?? () from /usr/lib/i386-linux-gnu/libGLX_mesa.so.0
> #15 0xf76ab05f in ?? () from /usr/lib/i386-linux-gnu/libGLX.so.0
> #16 0xf76abab5 in ?? () from /usr/lib/i386-linux-gnu/libGLX.so.0
> #17 0xf76ad0ad in ?? () from /usr/lib/i386-linux-gnu/libGLX.so.0
> #18 0x565a9411 in CBaseLinuxUpdateUI::GatherGLInfo() ()
> #19 0x565a997f in CBaseLinuxUpdateUI::BaseCreateWindow() ()
> #20 0x565aa4fe in CXWindowsUpdateUI::BCreateWindow() ()
> #21 0x5658e5a4 in ?? ()
> #22 0x565793ac in ?? ()
> #23 0xf7a0ae81 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
> #24 0x5657ce09 in _start ()
I have been investigating the mentioned Steam crash.
I managed to reproduce this crash just under CFL+manjaro+LIBGL_DRI3_DISABLE=1
I found out that the crash happens due to fail of a "isl_surf_init" function
in "iris_resource_from_handle". The "isl_surf_init" function fails due
to incorrect parameters which are passed to it:
info->width = 400
info->height = 129
info->row_pitch_B = 1536
info->format = 233 (ISL_FORMAT_B8G8R8X8_UNORM)
info->tiling_flags = X-tiling mode
The "isl_surf_init" fails on function "isl_calc_row_pitch" because
"min_row_pitch_B" calculated as 2048 byte. So according to row_pitch_B=1536 we
calculate incorrectly a X-Tiling blocks quantity needed to cover 400pixels.
There is not enough 1536/512=3blocks because one block according to PRM cover
just 128pixels (for 32bpp). So 3blocks could cover just 384pixels. (hope
B8G8R8X8 has 32bpp for Intel case because
I didn't find anything about 24bit case with X-Tiling in PRMs)
But at same time on KBL+ubuntu19.10+LIBGL_DRI3_DISABLE=1 this crash doesn't
appear at all. This fact was interesting for me and I checked the params
different so under KBL+ubuntu19.10:
info->width = 400
info->height = 129
info->row_pitch_B = 2048
info->format = 233 (ISL_FORMAT_B8G8R8X8_UNORM)
info->tiling_flags = X-tiling mode
So for some reason XServer under KBL+ubuntu19.10 calculates it correctly.
"info->row_pitch_B" came from:
DRI2GetBuffersWithFormat glx/dri2.c:465
line: "buffers[i].pitch = repBuffer.pitch;"
So now I am trying to find the location of the code which processing
X_DRI2GetBuffersWithFormat request and calculates this 'pitch'. But
unfortunately looks like XServer delegates the 'pitch' calculations to some
other place. Please let me know If somebody know the location where this
'pitch' is calculated.
Note: I used the same Mesa revision on both machines 17c2c9cd677
--
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: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20190613/57cf82f6/attachment.html>
More information about the intel-3d-bugs
mailing list