From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 93216] Artifacts with DCC when render target also texture Date: Wed, 20 Jan 2016 00:33:03 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0224319983==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id EECBD6E8C7 for ; Tue, 19 Jan 2016 16:33:03 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============0224319983== Content-Type: multipart/alternative; boundary="14532499830.ADC972789.11219"; charset="UTF-8" --14532499830.ADC972789.11219 Date: Wed, 20 Jan 2016 00:33:03 +0000 MIME-Version: 1.0 Content-Type: text/plain https://bugs.freedesktop.org/show_bug.cgi?id=93216 --- Comment #5 from Bas Nieuwenhuizen --- I think we have cache coherency issues within a single draw call. One of the situations in which a feedback loop is allowed is if we read and write every texel at most once and we read the texel from the fragment shader invocation that writes that texel. My guess is that this is the case here, with two triangles. The problem is that while every pixel is written at most once, every block of pixels can be modified multiple times on the edges of a triangle. This results in garbage if a later invocation for a tile sees modified pixel data but stale DCC compression data, or stale pixel data and modified DCC compression data. This can be fixed by decompressing the framebuffer and disabling DCC decompression for the framebuffer. I would like to avoid decompressing, but I do not know how. -- You are receiving this mail because: You are the assignee for the bug. --14532499830.ADC972789.11219 Date: Wed, 20 Jan 2016 00:33:03 +0000 MIME-Version: 1.0 Content-Type: text/html

Comment # 5 on bug 93216 from
I think we have cache coherency issues within a single draw call. One of the
situations in which a feedback loop is allowed is if we read and write every
texel at most once and we read the texel from the fragment shader invocation
that writes that texel.

My guess is that this is the case here, with two triangles. The problem is that
while every pixel is written at most once, every block of pixels can be
modified multiple times on the edges of a triangle.

This results in garbage if a later invocation for a tile sees modified pixel
data but stale DCC compression data, or stale pixel data and modified DCC
compression data.


This can be fixed by decompressing the framebuffer and disabling DCC
decompression for the framebuffer. I would like to avoid decompressing, but I
do not know how.


You are receiving this mail because:
  • You are the assignee for the bug.
--14532499830.ADC972789.11219-- --===============0224319983== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK --===============0224319983==--