Bug 103197 - DOTA2 Vulkan render change with "anv: enable multiple planes per image/imageView"
Summary: DOTA2 Vulkan render change with "anv: enable multiple planes per image/imageV...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Lionel Landwerlin
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-10 13:21 UTC by Eero Tamminen
Modified: 2018-01-09 14:55 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Screenshot from commit (130.62 KB, image/png)
2017-10-10 13:21 UTC, Eero Tamminen
Details
Screenshot before commit (129.71 KB, image/png)
2017-10-10 13:22 UTC, Eero Tamminen
Details

Description Eero Tamminen 2017-10-10 13:21:32 UTC
Created attachment 134777 [details]
Screenshot from commit

ezBench Vulkan trace render validation caught a change in DOTA2 rendering from:
-------------------------------------------------------------------
commit a62a97933578a813beb0d27cc8e404850f7fd302
Author:     Lionel Landwerlin <lionel.g.landwerlin@intel.com>
AuthorDate: Wed Jul 19 12:14:19 2017 +0100
Commit:     Lionel Landwerlin <lionel.g.landwerlin@intel.com>
CommitDate: Fri Oct 6 16:32:20 2017 +0100

    anv: enable multiple planes per image/imageView
    
    This change introduce the concept of planes for image & views. It
    matches the planes available in new formats.
    
    We also refactor depth & stencil support through the usage of planes
    for the sake of uniformity. In the backend (genX_cmd_buffer.c) we have
    to take some care though with regard to auxilliary surfaces.
    Multiplanar color buffers can have multiple auxilliary surfaces but
    depth & stencil share the same HiZ one (only store in the depth
    plane).
    
    v2: by Jason
        Remove unused aspect parameters from anv_blorp.c
        Assert when attempting to resolve YUV images
        Drop redundant logic for plane offset in make_surface()
        Rework anv_foreach_plane_aspect_bit()
    
    Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
    Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-------------------------------------------------------------------

Change is in the "Talent tree" rendering in the game bottom bar.

I wasn't able to see the faulty rendering with latest DOTA2, nor a trace from the latest DOTA2 (taken using latest vktrace).  It's only visible with a trace from slightly (1-2 month) older DOTA2 (taken with vktrace form that time).

If you think bug is somewhere else than Mesa, just mark this as NOTOURBUG (or INVALID).
Comment 1 Eero Tamminen 2017-10-10 13:22:05 UTC
Created attachment 134778 [details]
Screenshot before commit
Comment 2 Martin Peres 2017-11-20 16:25:02 UTC
Fixed by a07f7b26198ce0f5c8799481a673754968ac5daf anv/cmd_buffer: Take bo_offset into account in fast clear state addresses.
Comment 3 Mark Janes 2017-11-20 20:04:42 UTC
Because this regression affected a popular commercial software title, and because it was NOT detected by automated tests, I think it should remain open until a test exists which prevents future regressions.

Lionel, can you write a crucible test to exercise your code path and demonstrates this regression?
Comment 4 Lionel Landwerlin 2017-11-21 05:58:51 UTC
I've written a test that uses the fast clear but with a07f7b26198ce0f5c8799481a673754968ac5daf reverted, I can't get this test to fail...

The bug must be a bit more complicated than what I understood.
Comment 5 Lionel Landwerlin 2017-11-21 06:41:43 UTC
Anyway the old trace can be provided?
Comment 6 Lionel Landwerlin 2017-11-21 23:41:52 UTC
https://patchwork.freedesktop.org/patch/189648/
Comment 7 Lionel Landwerlin 2018-01-08 22:12:10 UTC
Anybody fancy reviewing the crucible patch in the previous comment?
Or should I just land it?
Comment 8 Mark Janes 2018-01-09 14:35:58 UTC
Please land the test with or without review.
Comment 9 Lionel Landwerlin 2018-01-09 14:55:09 UTC
Done.


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.