Bug 111636 - Unreal 4 Elemental and MatineeFightScene demos misrender
Summary: Unreal 4 Elemental and MatineeFightScene demos misrender
Status: RESOLVED MOVED
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-25 18:47 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Patch for piglit (1.61 KB, patch)
2019-09-18 14:19 UTC, andrii simiklit
Details | Splinter Review

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.
Comment 6 andrii simiklit 2019-09-18 14:19:46 UTC
Created attachment 145428 [details] [review]
Patch for piglit

Here are intermediate results:
I moved a bit forward in my investigation. I found out that this issue could be reproduced by a bit enhanced 'arb_texture_buffer_object-subdata-sync' piglit test (patch was attached). The enhanced test passes on radeon and i965 but fails on iris.
Comment 7 andrii simiklit 2019-09-20 15:03:00 UTC
(In reply to andrii simiklit from comment #6)
> Created attachment 145428 [details] [review] [review]
> Patch for piglit
> 
> Here are intermediate results:
> I moved a bit forward in my investigation. I found out that this issue could
> be reproduced by a bit enhanced 'arb_texture_buffer_object-subdata-sync'
> piglit test (patch was attached). The enhanced test passes on radeon and
> i965 but fails on iris.
Oh, it doesn't reproduce. Some of my local debug changes led to it. Just ignore it.
Comment 8 Kenneth Graunke 2019-09-24 16:57:25 UTC
I found a bug in iris_rebind_buffer with VBOs - we weren't taking offsets into account:

https://gitlab.freedesktop.org/kwg/mesa/commits/iris-rebind-vb

But that doesn't seem to fix this issue.  Also, just a heads up, these demos will fail to run on master - I filed https://gitlab.freedesktop.org/mesa/mesa/issues/1205 about that.  In the meantime, you'll need to roll back a few commits...
Comment 9 Kenneth Graunke 2019-09-24 19:37:46 UTC
(In reply to Kenneth Graunke from comment #8)
> Also, just a heads up, these demos will fail to run on master - I filed
> https://gitlab.freedesktop.org/mesa/mesa/issues/1205 about that.  In the
> meantime, you'll need to roll back a few commits...

Nevermind, I was running a bad git snapshot of X.  You can ignore that comment.
Comment 10 GitLab Migration User 2019-09-25 18:47:53 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1365.


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.