On 02/24/2016 04:35 PM, Miklós Máté wrote:
This fixes post-processing in SW:KotOR.

Can you elaborate on exactly what's happening and why this change fixes things?



v2: fix const-ness

Signed-off-by: Miklós Máté <mtm...@gmail.com>
---
  src/mesa/state_tracker/st_atom_sampler.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/state_tracker/st_atom_sampler.c 
b/src/mesa/state_tracker/st_atom_sampler.c
index 82dcf5e..52187d0 100644
--- a/src/mesa/state_tracker/st_atom_sampler.c
+++ b/src/mesa/state_tracker/st_atom_sampler.c
@@ -133,7 +133,7 @@ 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;
@@ -144,6 +144,10 @@ convert_sampler(struct st_context *st,
     texBaseFormat = _mesa_texture_base_format(texobj);

     msamp = _mesa_get_samplerobj(ctx, texUnit);
+   if (!msamp) {
+      /* handle the fallback texture */
+      msamp = &texobj->Sampler;
+   }

     memset(sampler, 0, sizeof(*sampler));
     sampler->wrap_s = gl_wrap_xlate(msamp->WrapS);


I'm guessing that _mesa_get_samplerobj() returns NULL only if there's no currently active texture for the given unit. If so, maybe the msamp assignment should get moved into the earlier "if (!texobj)" test.

-Brian

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to