Summary: | HyperZ related rendering issue in ARK: Survival Evolved | ||
---|---|---|---|
Product: | Mesa | Reporter: | Elliot Thomas <e.singularitycat> |
Component: | Drivers/Gallium/radeonsi | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED MOVED | QA Contact: | Default DRI bug account <dri-devel> |
Severity: | normal | ||
Priority: | medium | CC: | e.singularitycat, freedesktop |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
The back buffer of apitrace frame 1017, showing red lines along what looks like primitive edges.
glxinfo.log |
Description
Elliot Thomas
2017-09-23 23:25:05 UTC
Created attachment 134450 [details]
glxinfo.log
Oh, should have probably mentioned X versions and such.
* Xorg 1.19.3
* xf86-video-amdgpu 1.4.0
Added glxinfo output.
I confirm this issue and that R600_DEBUG=nohyperz does fix it. Thanks to Elliot Thomas for finding a temporary solution. Workaround: diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 67972a2..dc71742 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -903,6 +903,14 @@ static void si_clear(struct pipe_context *ctx, unsigned buffers, sctx->db_stencil_clear = true; si_mark_atom_dirty(sctx, &sctx->db_render_state); } + + /* TODO: Find out what's wrong here. Fast depth clear with + * a dirty DB cache causes corruption in ARK: Survival Evolved. + * https://bugs.freedesktop.org/show_bug.cgi?id=102955 + * + * This hack massively decreases back-to-back ClearDepth performance. + */ + sctx->b.flags |= SI_CONTEXT_FLUSH_AND_INV_DB; } si_blitter_begin(ctx, SI_CLEAR); I can confirm Marek's workaround works. For what it's worth, I couldn't really measure a difference in performance between the explicit DB flush/invalidation patch and using R600_DEBUG=nohyperz. Should be "fixed" with c4d1a199f8379b3982a53fb18fe2b50fafd682df. The DB metadata flush workaround is broken as of mesa git 69ccb9dae7616038dd54d3833da9e7c68e28067d, "radeonsi: use new VS blit shaders (VS inputs in SGPRs)". The R600_DEBUG=nohyperz workaround still works. Should be fixed with dd79aa4ad30df205076be25f6bbf42768abea20a. Broken again in at latest 19.1.2. -- 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/1283. |
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.