[Nouveau] [Bug 92306] GL Excess demo renders incorrectly on nv43

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Oct 12 19:14:57 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=92306

--- Comment #14 from Ilia Mirkin <imirkin at alum.mit.edu> ---
(In reply to Andrew Randrianasulu from comment #13)
> (In reply to Ilia Mirkin from comment #12)
> > (In reply to Andrew Randrianasulu from comment #11)
> > > "Mismatched color and zeta formats, ignoring zeta."
> > 
> > Yeah, as I suspected... unfortunately there's not a ton you can do besides
> > fixing the issue. The problem is that you can't render to a 32-bit color
> > format (e.g. RGBA8) while using a 16-bit zeta (Z16), and conversely you
> > can't render to a 16-bit color format (e.g. RGB565) while using a 32-bit
> > zeta (Z24S8).
> > 
> > My current solution to this problem is to just not set the zeta buffer and
> > move on with life. This leads to incorrect rendering, but at least no hangs.
> > 
> > The proper solution is to have 2 depth textures that you copy to and fro and
> > set the "right" one for the given color format. Ideally while minimizing the
> > number of copies.
> 
> Hm, but in my case it apparently worked fine... so, may be check is
> overrestrictive?
> 
> I also tried to apply this path on top of mesa version indicated above
> ((git-93161be)
> 
> ----patch---
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_state.c
> b/src/gallium/drivers/nouveau/nv30/nv30_state.c
> index fd604c2..cceedfd 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_state.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_state.c
> @@ -382,7 +382,7 @@ nv30_set_framebuffer_state(struct pipe_context *pipe,
>             (util_format_get_blocksize(fb->zsbuf->format) > 2) !=
>             (util_format_get_blocksize(fb->cbufs[0]->format) > 2)) {
>            nv30->framebuffer.zsbuf = NULL;
> -          debug_printf("Mismatched color and zeta formats, ignoring
> zeta.\n");
> +          debug_printf("Mismatched color %d and zeta %d formats, ignoring
> zeta.\n", fb->cbufs[0]->format, fb->zsbuf->format);
>         }
>      }
>  }
> --------end-----
> 
> and got this in terminal:
> "Mismatched color 1 and zeta 16 formats, ignoring zeta."
> 
> This is a bit strange, this demo from ~2002 era, and apparently was  working
> fine on older nvidia hardware. And on nouveau, until this  commit.  I will
> retest just for making sure it doesn't flood my dmesg with errors ....

You should be seeing errors about invalid values in dmesg for 0208 or some
similar method. I'm guessing that the zeta buffer is used in such a way that
things happen to work out, but the card doesn't really support it.

src/gallium/include/pipe/p_format.h:   PIPE_FORMAT_B8G8R8A8_UNORM          = 1,
src/gallium/include/pipe/p_format.h:   PIPE_FORMAT_Z16_UNORM               =
16,

Not a valid combo, AFAIK.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20151013/72b1be0f/attachment-0001.html>


More information about the Nouveau mailing list