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==--