freedreno/a3xx: add support to emulate GL_CLAMP
[mesa.git] / src / gallium / drivers / freedreno / ir3 / ir3_compiler_old.c
index 1e1ca7ad813ecbdb7095a6af80b8529656248ff4..4267feb351fe76679e872abb279cfe92d9b8444a 100644 (file)
@@ -125,7 +125,7 @@ compile_init(struct ir3_compile_context *ctx, struct ir3_shader_variant *so,
 {
        unsigned ret, base = 0;
        struct tgsi_shader_info *info = &ctx->info;
-       const struct fd_lowering_config lconfig = {
+       struct fd_lowering_config lconfig = {
                        .color_two_side = so->key.color_two_side,
                        .lower_DST  = true,
                        .lower_XPD  = true,
@@ -143,6 +143,20 @@ compile_init(struct ir3_compile_context *ctx, struct ir3_shader_variant *so,
                        .lower_DP2A = true,
        };
 
+       switch (so->type) {
+       case SHADER_FRAGMENT:
+       case SHADER_COMPUTE:
+               lconfig.saturate_s = so->key.fsaturate_s;
+               lconfig.saturate_t = so->key.fsaturate_t;
+               lconfig.saturate_r = so->key.fsaturate_r;
+               break;
+       case SHADER_VERTEX:
+               lconfig.saturate_s = so->key.vsaturate_s;
+               lconfig.saturate_t = so->key.vsaturate_t;
+               lconfig.saturate_r = so->key.vsaturate_r;
+               break;
+       }
+
        ctx->tokens = fd_transform_lowering(&lconfig, tokens, &ctx->info);
        ctx->free_tokens = !!ctx->tokens;
        if (!ctx->tokens) {