On Tue, Jan 24, 2012 at 10:33:07PM -0800, Eric Anholt wrote: > On Tue, 24 Jan 2012 23:52:57 -0500, nobled <nob...@dreamwidth.org> wrote: > > On Tue, Jan 24, 2012 at 6:59 PM, Eric Anholt <e...@anholt.net> wrote: > > > A pure swrast-allocated buffer gets an irb of NULL, so we segfaulted > > > in the clear-accum test. Just look at the swrast renderbuffer pointer > > > for handling swrast rbs. > > > --- > > > src/mesa/drivers/dri/intel/intel_fbo.c | 12 +++++++----- > > > 1 files changed, 7 insertions(+), 5 deletions(-) > > > > > > diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c > > > b/src/mesa/drivers/dri/intel/intel_fbo.c > > > index 3a35a01..27b0bfc 100644 > > > --- a/src/mesa/drivers/dri/intel/intel_fbo.c > > > +++ b/src/mesa/drivers/dri/intel/intel_fbo.c > > > @@ -128,15 +128,16 @@ intel_map_renderbuffer(struct gl_context *ctx, > > > GLint *out_stride) > > > { > > > struct intel_context *intel = intel_context(ctx); > > > + struct swrast_renderbuffer *srb = (struct swrast_renderbuffer *)rb; > > > struct intel_renderbuffer *irb = intel_renderbuffer(rb); > > > void *map; > > > int stride; > > > > > > - if (!irb && irb->Base.Buffer) { > > Isn't the problem just that this (and the other condition) is && instead of > > ||? > > No, because irb is NULL, so the following references would segfault.
The condition checks for !irb, so with the && we will deref irb only if it is NULL. I haven't checked the code and generally got squat clue about all this ... -Daniel -- Daniel Vetter Mail: dan...@ffwll.ch Mobile: +41 (0)79 365 57 48 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev