It's not nice to see this implemented for r300 and not enable it. I guess this is something the other drivers needn't care about. --- src/gallium/include/pipe/p_defines.h | 1 + src/gallium/include/pipe/p_state.h | 1 + src/mesa/state_tracker/st_atom_sampler.c | 1 + src/mesa/state_tracker/st_extensions.c | 4 ++++ 4 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index bac3300..67ffd83 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -463,6 +463,7 @@ enum pipe_cap { PIPE_CAP_SHADER_STENCIL_EXPORT, PIPE_CAP_TGSI_INSTANCEID, PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR, + PIPE_CAP_SHADOW_COMPARE_FAIL_VALUE, }; /* Shader caps not specific to any single stage */ diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index cf6c5b5..6e36a18 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -268,6 +268,7 @@ struct pipe_sampler_state float lod_bias; /**< LOD/lambda bias */ float min_lod, max_lod; /**< LOD clamp range, after bias */ float border_color[4]; + float compare_fail_value; }; diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c index 474cbd5..066f43e 100644 --- a/src/mesa/state_tracker/st_atom_sampler.c +++ b/src/mesa/state_tracker/st_atom_sampler.c @@ -192,6 +192,7 @@ update_samplers(struct st_context *st) sampler->compare_mode = PIPE_TEX_COMPARE_R_TO_TEXTURE; sampler->compare_func = st_compare_func_to_pipe(texobj->CompareFunc); + sampler->compare_fail_value = texobj->CompareFailValue; } st->state.num_samplers = su + 1; diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index e34f90f..a83e5db 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -519,6 +519,10 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.ARB_instanced_arrays = GL_TRUE; } + if (screen->get_param(screen, PIPE_CAP_SHADOW_COMPARE_FAIL_VALUE)) { + ctx->Extensions.ARB_shadow_ambient = GL_TRUE; + } + if (screen->fence_finish) { ctx->Extensions.ARB_sync = GL_TRUE; } -- 1.7.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev