Previously we were putting the 2x2 (or 4x2) fake dimensions of the surface into the renderbuffer wrapper. This is different from how other parts of the driver expect multisample renderbuffers to be set up, and produced stalls and memory stomps.
Pulls multisample textures into line with classic multisample renderbuffers, fixing the arb_texture_multisample-sample-mask-execution -tex piglit. Signed-off-by: Chris Forbes <chr...@ijw.co.nz> --- src/mesa/drivers/dri/intel/intel_fbo.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c b/src/mesa/drivers/dri/intel/intel_fbo.c index 4cc2c00..be0c117 100644 --- a/src/mesa/drivers/dri/intel/intel_fbo.c +++ b/src/mesa/drivers/dri/intel/intel_fbo.c @@ -507,9 +507,18 @@ intel_renderbuffer_update_wrapper(struct intel_context *intel, rb->Format = image->TexFormat; rb->InternalFormat = image->InternalFormat; rb->_BaseFormat = image->_BaseFormat; - rb->Width = mt->level[level].width; - rb->Height = mt->level[level].height; - rb->NumSamples = mt->num_samples; + + if (mt->num_samples) { + /* silly hack */ + rb->Width = mt->singlesample_width0; + rb->Height = mt->singlesample_height0; + rb->NumSamples = mt->num_samples; + } + else { + rb->Width = mt->level[level].width; + rb->Height = mt->level[level].height; + rb->NumSamples = mt->num_samples; + } rb->Delete = intel_delete_renderbuffer; rb->AllocStorage = intel_nop_alloc_storage; -- 1.8.0.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev