[TGL] Elder Scrolls Online misrenders
The Elder Scrolls Online misrenders frequently on Tigerlake (but renders fine on Icelake). This is a DXVK title.
Water rendering shows flickering green blocky artifacts, and shadow artifacts appear to have similar misrendering (though it usually isn't green):
This misrendering shows up most of the times when I start the game. However, sometimes it apparently works fine. Toggling the "Subsampling Quality" video setting from High to Low seems to reliably reproduce the issue. (That setting causes the game to render at a lower resolution, and upscale, which appears to mean recreating all the resources.)
Theory
It appears to be related to Stencil CCS: INTEL_DEBUG=norbc
seems to prevent the misrendering, but so does this hack:
diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c
index 21c5d5c3eef..1830747aa29 100644
--- a/src/intel/vulkan/anv_image.c
+++ b/src/intel/vulkan/anv_image.c
@@ -439,8 +439,7 @@ add_aux_surface_if_supported(struct anv_device *device,
add_surface(image, &image->planes[plane].aux_surface, plane);
} else if (aspect == VK_IMAGE_ASPECT_STENCIL_BIT) {
- if (INTEL_DEBUG & DEBUG_NO_RBC)
- return VK_SUCCESS;
+ return VK_SUCCESS;
if (!isl_surf_supports_ccs(&device->isl_dev,
&image->planes[plane].surface.isl))
That only disables STC_CCS
and leaves regular color surface compression enabled, yet it avoids the misrendering. That would also explain why Icelake works, as it doesn't have this feature.