[Mesa-dev] [PATCH 09/11] meta: Avoid null access on setup_glsl_msaa_blit_shader()
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Mon Sep 8 23:53:48 PDT 2014
On default fallback path there was null access on src_rb
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
src/mesa/drivers/common/meta_blit.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
index 3cd06a5..1603f43 100644
--- a/src/mesa/drivers/common/meta_blit.c
+++ b/src/mesa/drivers/common/meta_blit.c
@@ -70,26 +70,28 @@ setup_glsl_msaa_blit_shader(struct gl_context *ctx,
const char *sampler_array_suffix = "";
char *name;
const char *texcoord_type = "vec2";
- const int samples = MAX2(src_rb->NumSamples, 1);
+ int samples;
int shader_offset = 0;
- /* We expect only power of 2 samples in source multisample buffer. */
- assert((samples & (samples - 1)) == 0);
- while (samples >> (shader_offset + 1)) {
- shader_offset++;
- }
- /* Update the assert if we plan to support more than 16X MSAA. */
- assert(shader_offset >= 0 && shader_offset <= 4);
-
if (src_rb) {
+ samples = MAX2(src_rb->NumSamples, 1);
src_datatype = _mesa_get_format_datatype(src_rb->Format);
} else {
/* depth-or-color glCopyTexImage fallback path that passes a NULL rb and
* doesn't handle integer.
*/
+ samples = 1;
src_datatype = GL_UNSIGNED_NORMALIZED;
}
+ /* We expect only power of 2 samples in source multisample buffer. */
+ assert((samples & (samples - 1)) == 0);
+ while (samples >> (shader_offset + 1)) {
+ shader_offset++;
+ }
+ /* Update the assert if we plan to support more than 16X MSAA. */
+ assert(shader_offset >= 0 && shader_offset <= 4);
+
if (ctx->DrawBuffer->Visual.samples > 1) {
/* If you're calling meta_BlitFramebuffer with the destination
* multisampled, this is the only path that will work -- swrast and
--
1.8.5.1
More information about the mesa-dev
mailing list