r100: Use _mesa_get_format_base_format in radeon_update_wrapper
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 26 May 2017 04:26:09 +0000 (21:26 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 1 Jun 2017 04:14:44 +0000 (21:14 -0700)
The wrapper is for a renderbuffer around a texture.  Textures can have
formats (e.g., 3) that aren't valide for API generated renderbuffers.
_mesa_base_fbo_format will return 0, but _mesa_get_format_base_format
will return the base format of RGB.

Fixes a crashes in piglit tests fbo-alphatest-formats (all subtests
pass) and fbo-colormask-formats (some subtests pass, some fail).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/radeon/radeon_fbo.c

index 4d75d149b274631bb626ef1686a0941fb0c7079f..89ea776526935bddc8090b84ea7caeefcbedf794 100644 (file)
@@ -739,7 +739,7 @@ radeon_update_wrapper(struct gl_context *ctx, struct radeon_renderbuffer *rrb,
        rrb->pitch = texImage->Width * rrb->cpp;
        rb->Format = texImage->TexFormat;
        rb->InternalFormat = texImage->InternalFormat;
-       rb->_BaseFormat = _mesa_base_fbo_format(ctx, rb->InternalFormat);
+       rb->_BaseFormat = _mesa_get_format_base_format(rb->Format);
        rb->Width = texImage->Width;
        rb->Height = texImage->Height;
        rb->Delete = radeon_delete_renderbuffer;