i915g: fix shadow compare.

"Works" as well as i915c now.
This commit is contained in:
Stéphane Marchesin
2011-06-27 22:40:03 -07:00
parent 24137afb31
commit 6f62a25448
2 changed files with 26 additions and 1 deletions
+1 -1
View File
@@ -247,7 +247,7 @@ i915_create_sampler_state(struct pipe_context *pipe,
if (sampler->compare_mode == PIPE_TEX_COMPARE_R_TO_TEXTURE)
{
cso->state[0] |= (SS2_SHADOW_ENABLE |
i915_translate_compare_func(sampler->compare_func));
i915_translate_shadow_compare_func(sampler->compare_func));
minFilt = FILTER_4X4_FLAT;
magFilt = FILTER_4X4_FLAT;
@@ -59,6 +59,31 @@ i915_translate_compare_func(unsigned func)
}
}
static INLINE unsigned
i915_translate_shadow_compare_func(unsigned func)
{
switch (func) {
case PIPE_FUNC_NEVER:
return COMPAREFUNC_ALWAYS;
case PIPE_FUNC_LESS:
return COMPAREFUNC_LEQUAL;
case PIPE_FUNC_LEQUAL:
return COMPAREFUNC_LESS;
case PIPE_FUNC_GREATER:
return COMPAREFUNC_GEQUAL;
case PIPE_FUNC_GEQUAL:
return COMPAREFUNC_GREATER;
case PIPE_FUNC_NOTEQUAL:
return COMPAREFUNC_EQUAL;
case PIPE_FUNC_EQUAL:
return COMPAREFUNC_NOTEQUAL;
case PIPE_FUNC_ALWAYS:
return COMPAREFUNC_NEVER;
default:
return COMPAREFUNC_NEVER;
}
}
static INLINE unsigned
i915_translate_stencil_op(unsigned op)
{