[Mesa-dev] [PATCH] st/mesa: only resolve is number of samples is > 1
Jose Fonseca
jfonseca at vmware.com
Wed Nov 30 12:43:03 PST 2011
----- Original Message -----
> On 11/30/2011 09:10 PM, Dave Airlie wrote:
> > From: Dave Airlie <airlied at redhat.com>
> >
> > This fixes the firefox crash but I've no idea if its correct.
>
> I don't think it is.
> Visual.samples is the value passed to RenderbufferStorageMultisample,
> and 1 here means "a desired minimum number of samples" so the actual
> sample count may (even if very unlikely) be > 1.
>
> If you don't implement resource_resolve, mesa/st shouldn't expose
> framebuffer_multisample for you, or you shouldn't expose > 0 samples
> (that's an issue with the gallium interface, which doesn't define
> whether 0 means "no storage" or "single sampled").
src/gallium/docs/source/screen.rst is crystal clear on this matter: 0 or 1 means single-sampled.
And isn't "multi-sampling" with "single-sampled" storage a paradox?
But now you mention, it's probably better to make 0 samples illegal, as it only creates unnecessary complexity (and I'm not sure it's handled correctly everywhere).
Jose
> >
> > Signed-off-by: Dave Airlie <airlied at redhat.com>
> > ---
> > src/mesa/state_tracker/st_cb_blit.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/mesa/state_tracker/st_cb_blit.c
> > b/src/mesa/state_tracker/st_cb_blit.c
> > index 750f541..8f0c2e8 100644
> > --- a/src/mesa/state_tracker/st_cb_blit.c
> > +++ b/src/mesa/state_tracker/st_cb_blit.c
> > @@ -178,7 +178,7 @@ st_BlitFramebuffer(struct gl_context *ctx,
> > st->pipe->render_condition(st->pipe, NULL, 0);
> > }
> >
> > - if (readFB->Visual.sampleBuffers >
> > drawFB->Visual.sampleBuffers) {
> > + if (readFB->Visual.sampleBuffers > drawFB->Visual.sampleBuffers
> > && readFB->Visual.samples > 1) {
> > struct pipe_resolve_info info;
> >
> > if (dstX0 < dstX1) {
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list