Bug 111636 - Unreal 4 Elemental and MatineeFightScene demos misrender
Summary: Unreal 4 Elemental and MatineeFightScene demos misrender
Status: NEW
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/Iris (show other bugs)
Version: git
Hardware: Other All
: not set not set
Assignee: Intel 3D Bugs Mailing List
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords: bisected, regression
Depends on:
Blocks:
 
Reported: 2019-09-11 00:51 UTC by Kenneth Graunke
Modified: 2019-09-16 18:22 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kenneth Graunke 2019-09-11 00:51:59 UTC
Unreal 4's Elemental demo misrenders on iris - a bunch of the geometry goes haywire.  I am not sure why yet.

https://wiki.unrealengine.com/Linux_Demos
Comment 1 Kenneth Graunke 2019-09-11 00:53:21 UTC
Danylo, would you or someone on your team be able to take a look at this bug?
Comment 2 Danylo 2019-09-11 14:10:02 UTC
Yes, we can look at it. Unfortunately we are unable to download this demo - the resulting archive is always corrupted. Could you upload it somewhere?
Comment 3 Kenneth Graunke 2019-09-11 17:07:44 UTC
Weird...looks like the download links are pointing at web.archive.org now.

Try the Matinee Fight Scene demo, it's much smaller and also reproduces the bug.  I downloaded the archive for that one and verified that it was actually working.
Comment 4 andrii simiklit 2019-09-12 13:58:30 UTC
I am investigating this issue
Comment 5 andrii simiklit 2019-09-16 14:53:17 UTC
Hi, here is current progress:

1. My colleague Denis bisected it to:

commit 5ad0c88dbe3e5805a10d8f1fef9d0cf1bbecdd46 (HEAD, refs/bisect/bad)
 Author: Kenneth Graunke <kenneth@whitecape.org>
 Date: Tue Mar 12 14:51:22 2019 -0700

 iris: Replace buffer backing storage and rebind to update addresses.
 .......

2. At the moment I found out that INTEL_DEBUG=sync fixes the issue as well as the following patch:

diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 989c112a3e3..b076c09af83 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -1175,7 +1175,7 @@ iris_invalidate_resource(struct pipe_context *ctx,
       return;
 
    // XXX: We should support this.
-   if (res->bind_history & PIPE_BIND_STREAM_OUTPUT)
+   if (res->bind_history & (PIPE_BIND_STREAM_OUTPUT | PIPE_BIND_SAMPLER_VIEW))
       return;
 
    struct iris_bo *old_bo = res->bo;

So according to the patch, I can assume that something went wrong with sampler_views but at the moment, I can't say what exactly so I continue my investigation.


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.