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 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--
--===============0224319983==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs
IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0
cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK
--===============0224319983==--