From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 97879] [amdgpu] Rocket League: long hangs (several seconds) when loading assets (models/textures/shaders?) Date: Wed, 08 Feb 2017 12:39:49 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1438434614==" Return-path: Received: from culpepper.freedesktop.org (culpepper.freedesktop.org [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DA4B6E85E for ; Wed, 8 Feb 2017 12:39:49 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1438434614== Content-Type: multipart/alternative; boundary="14865575890.dafe8.4471"; charset="UTF-8" --14865575890.dafe8.4471 Date: Wed, 8 Feb 2017 12:39:49 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated https://bugs.freedesktop.org/show_bug.cgi?id=3D97879 --- Comment #68 from Marek Ol=C5=A1=C3=A1k --- The long hangs are spent in an upload/decompression thread the game uses. T= he thread doesn't use any GL calls. My theory that's now confirmed was that the game maps buffers in VRAM and d= oes read-modify-write on that memory in that thread. We know that direct VRAM access is uncached and super slow if it's not a series of sequential writes that is write-combined on the CPU, which is like a write-only cache. Games typically upload data using a sequential copy/fill, which is why we had not seen this issue before. If the game used the MAP READ flag, the driver would return a mapping in RAM with caching enabled. You'll also get that if you set the CLIENT STORAGE bi= t in glBufferStorage. For completeness, you can also get a mapping in RAM that's uncached. The CPU and GPU performance is somewhere between the VRAM and cached RAM. We use it= for streaming because the GPU has faster access to RAM uncached by the CPU. --=20 You are receiving this mail because: You are the assignee for the bug. You are on the CC list for the bug.= --14865575890.dafe8.4471 Date: Wed, 8 Feb 2017 12:39:49 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.freedesktop.org/ Auto-Submitted: auto-generated

Commen= t # 68 on bug 97879<= /a> from Marek Ol=C5=A1=C3=A1k
The long hangs are spent in an upload/decompression thread the=
 game uses. The
thread doesn't use any GL calls.

My theory that's now confirmed was that the game maps buffers in VRAM and d=
oes
read-modify-write on that memory in that thread. We know that direct VRAM
access is uncached and super slow if it's not a series of sequential writes
that is write-combined on the CPU, which is like a write-only cache. Games
typically upload data using a sequential copy/fill, which is why we had not
seen this issue before.

If the game used the MAP READ flag, the driver would return a mapping in RAM
with caching enabled. You'll also get that if you set the CLIENT STORAGE bi=
t in
glBufferStorage.

For completeness, you can also get a mapping in RAM that's uncached. The CPU
and GPU performance is somewhere between the VRAM and cached RAM. We use it=
 for
streaming because the GPU has faster access to RAM uncached by the CPU.
        


You are receiving this mail because:
  • You are the assignee for the bug.
  • You are on the CC list for the bug.
= --14865575890.dafe8.4471-- --===============1438434614== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== --===============1438434614==--