st/mesa: fix handling the fallback texture
authorMiklós Máté <mtmkls@gmail.com>
Thu, 24 Mar 2016 00:13:00 +0000 (01:13 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Sun, 27 Mar 2016 17:58:33 +0000 (19:58 +0200)
This fixes crash when post-processing is enabled in SW:KotOR.

v2: fix const-ness
v3: move assignment into the if() block

Signed-off-by: Miklós Máté <mtmkls@gmail.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_atom_sampler.c

index 82dcf5ee0cadd08101ca4178f9041715ca3513d4..a1cfa1c34c5929cfd6e565eecce26e6c763846d2 100644 (file)
@@ -133,18 +133,19 @@ convert_sampler(struct st_context *st,
 {
    const struct gl_texture_object *texobj;
    struct gl_context *ctx = st->ctx;
-   struct gl_sampler_object *msamp;
+   const struct gl_sampler_object *msamp;
    GLenum texBaseFormat;
 
    texobj = ctx->Texture.Unit[texUnit]._Current;
    if (!texobj) {
       texobj = _mesa_get_fallback_texture(ctx, TEXTURE_2D_INDEX);
+      msamp = &texobj->Sampler;
+   } else {
+      msamp = _mesa_get_samplerobj(ctx, texUnit);
    }
 
    texBaseFormat = _mesa_texture_base_format(texobj);
 
-   msamp = _mesa_get_samplerobj(ctx, texUnit);
-
    memset(sampler, 0, sizeof(*sampler));
    sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);
    sampler->wrap_t = gl_wrap_xlate(msamp->WrapT);