Lines Matching refs:config

162  * @brief Validate config profile.
362 * @param[in,out] config The input compressor configuration.
367 astcenc_config &config
371 status = validate_profile(config.profile);
377 status = validate_flags(config.profile, config.flags);
383 status = validate_block_size(config.block_x, config.block_y, config.block_z);
391 if (!(config.flags & ASTCENC_FLG_DECOMPRESS_ONLY))
397 config.rgbm_m_scale = astc::max(config.rgbm_m_scale, 1.0f);
399 config.tune_partition_count_limit = astc::clamp(config.tune_partition_count_limit, 1u, 4u);
400 config.tune_2partition_index_limit = astc::clamp(config.tune_2partition_index_limit, 1u, BLOCK_MAX_PARTITIONINGS);
401 config.tune_3partition_index_limit = astc::clamp(config.tune_3partition_index_limit, 1u, BLOCK_MAX_PARTITIONINGS);
402 config.tune_4partition_index_limit = astc::clamp(config.tune_4partition_index_limit, 1u, BLOCK_MAX_PARTITIONINGS);
403 config.tune_block_mode_limit = astc::clamp(config.tune_block_mode_limit, 1u, 100u);
404 config.tune_refinement_limit = astc::max(config.tune_refinement_limit, 1u);
405 config.tune_candidate_limit = astc::clamp(config.tune_candidate_limit, 1u, TUNE_MAX_TRIAL_CANDIDATES);
406 config.tune_2partitioning_candidate_limit = astc::clamp(config.tune_2partitioning_candidate_limit, 1u, TUNE_MAX_PARTITIONING_CANDIDATES);
407 config.tune_3partitioning_candidate_limit = astc::clamp(config.tune_3partitioning_candidate_limit, 1u, TUNE_MAX_PARTITIONING_CANDIDATES);
408 config.tune_4partitioning_candidate_limit = astc::clamp(config.tune_4partitioning_candidate_limit, 1u, TUNE_MAX_PARTITIONING_CANDIDATES);
409 config.tune_db_limit = astc::max(config.tune_db_limit, 0.0f);
410 config.tune_mse_overshoot = astc::max(config.tune_mse_overshoot, 1.0f);
411 config.tune_2partition_early_out_limit_factor = astc::max(config.tune_2partition_early_out_limit_factor, 0.0f);
412 config.tune_3partition_early_out_limit_factor = astc::max(config.tune_3partition_early_out_limit_factor, 0.0f);
413 config.tune_2plane_early_out_limit_correlation = astc::max(config.tune_2plane_early_out_limit_correlation, 0.0f);
416 float max_weight = astc::max(astc::max(config.cw_r_weight, config.cw_g_weight),
417 astc::max(config.cw_b_weight, config.cw_a_weight));
421 config.cw_r_weight = astc::max(config.cw_r_weight, max_weight);
422 config.cw_g_weight = astc::max(config.cw_g_weight, max_weight);
423 config.cw_b_weight = astc::max(config.cw_b_weight, max_weight);
424 config.cw_a_weight = astc::max(config.cw_a_weight, max_weight);
453 // Zero init all config fields; although most of will be over written
454 astcenc_config& config = *configp;
455 std::memset(&config, 0, sizeof(config));
465 config.block_x = block_x;
466 config.block_y = block_y;
467 config.block_z = block_z;
512 config.tune_partition_count_limit = (*preset_configs)[start].tune_partition_count_limit;
513 config.tune_2partition_index_limit = (*preset_configs)[start].tune_2partition_index_limit;
514 config.tune_3partition_index_limit = (*preset_configs)[start].tune_3partition_index_limit;
515 config.tune_4partition_index_limit = (*preset_configs)[start].tune_4partition_index_limit;
516 config.tune_block_mode_limit = (*preset_configs)[start].tune_block_mode_limit;
517 config.tune_refinement_limit = (*preset_configs)[start].tune_refinement_limit;
518 config.tune_candidate_limit = (*preset_configs)[start].tune_candidate_limit;
519 config.tune_2partitioning_candidate_limit = (*preset_configs)[start].tune_2partitioning_candidate_limit;
520 config.tune_3partitioning_candidate_limit = (*preset_configs)[start].tune_3partitioning_candidate_limit;
521 config.tune_4partitioning_candidate_limit = (*preset_configs)[start].tune_4partitioning_candidate_limit;
522 config.tune_db_limit = astc::max((*preset_configs)[start].tune_db_limit_a_base - 35 * ltexels,
525 config.tune_mse_overshoot = (*preset_configs)[start].tune_mse_overshoot;
527 config.tune_2partition_early_out_limit_factor = (*preset_configs)[start].tune_2partition_early_out_limit_factor;
528 config.tune_3partition_early_out_limit_factor = (*preset_configs)[start].tune_3partition_early_out_limit_factor;
529 config.tune_2plane_early_out_limit_correlation = (*preset_configs)[start].tune_2plane_early_out_limit_correlation;
530 config.tune_search_mode0_enable = (*preset_configs)[start].tune_search_mode0_enable;
551 config.tune_partition_count_limit = LERPI(tune_partition_count_limit);
552 config.tune_2partition_index_limit = LERPI(tune_2partition_index_limit);
553 config.tune_3partition_index_limit = LERPI(tune_3partition_index_limit);
554 config.tune_4partition_index_limit = LERPI(tune_4partition_index_limit);
555 config.tune_block_mode_limit = LERPI(tune_block_mode_limit);
556 config.tune_refinement_limit = LERPI(tune_refinement_limit);
557 config.tune_candidate_limit = LERPUI(tune_candidate_limit);
558 config.tune_2partitioning_candidate_limit = LERPUI(tune_2partitioning_candidate_limit);
559 config.tune_3partitioning_candidate_limit = LERPUI(tune_3partitioning_candidate_limit);
560 config.tune_4partitioning_candidate_limit = LERPUI(tune_4partitioning_candidate_limit);
561 config.tune_db_limit = astc::max(LERP(tune_db_limit_a_base) - 35 * ltexels,
564 config.tune_mse_overshoot = LERP(tune_mse_overshoot);
566 config.tune_2partition_early_out_limit_factor = LERP(tune_2partition_early_out_limit_factor);
567 config.tune_3partition_early_out_limit_factor = LERP(tune_3partition_early_out_limit_factor);
568 config.tune_2plane_early_out_limit_correlation = LERP(tune_2plane_early_out_limit_correlation);
569 config.tune_search_mode0_enable = LERP(tune_search_mode0_enable);
576 config.cw_r_weight = 1.0f;
577 config.cw_g_weight = 1.0f;
578 config.cw_b_weight = 1.0f;
579 config.cw_a_weight = 1.0f;
581 config.a_scale_radius = 0;
583 config.rgbm_m_scale = 0.0f;
585 config.profile = profile;
596 config.tune_db_limit = 999.0f;
597 config.tune_search_mode0_enable = 0.0f;
615 config.tune_partition_count_limit = astc::min(config.tune_partition_count_limit + 1u, 4u);
617 config.cw_g_weight = 0.0f;
618 config.cw_b_weight = 0.0f;
619 config.tune_2partition_early_out_limit_factor *= 1.5f;
620 config.tune_3partition_early_out_limit_factor *= 1.5f;
621 config.tune_2plane_early_out_limit_correlation = 0.99f;
625 config.tune_db_limit *= 1.03f;
629 config.rgbm_m_scale = 5.0f;
630 config.cw_a_weight = 2.0f * config.rgbm_m_scale;
646 config.cw_r_weight = 0.30f * 2.25f;
647 config.cw_g_weight = 0.59f * 2.25f;
648 config.cw_b_weight = 0.11f * 2.25f;
651 config.flags = flags;
663 const astcenc_config& config = *configp;
685 if (config.privateProfile == CUSTOMIZED_PROFILE)
694 ctx->config = config;
700 // Copy the config first and validate the copy (we may modify it)
701 status = validate_config(ctx->config);
715 bool can_omit_modes = static_cast<bool>(config.flags & ASTCENC_FLG_SELF_DECOMPRESS_ONLY);
717 if (!init_block_size_descriptor(ctx->config.privateProfile, config.block_x, config.block_y, config.block_z,
719 config.tune_partition_count_limit,
720 static_cast<float>(config.tune_block_mode_limit) / 100.0f,
729 init_block_size_descriptor(ctx->config.privateProfile, config.block_x, config.block_y, config.block_z,
731 config.tune_partition_count_limit,
732 static_cast<float>(config.tune_block_mode_limit) / 100.0f,
738 if (!(ctx->config.flags & ASTCENC_FLG_DECOMPRESS_ONLY))
741 if ((ctx->config.profile == ASTCENC_PRF_LDR) || (ctx->config.profile == ASTCENC_PRF_LDR_SRGB))
743 ctx->config.tune_db_limit = astc::pow(0.1f, ctx->config.tune_db_limit * 0.1f) * 65535.0f * 65535.0f;
747 ctx->config.tune_db_limit = 0.0f;
765 ctx->trace_log = new TraceLog(ctx->config.trace_file_path);
771 trace_add_data("block_x", config.block_x);
772 trace_add_data("block_y", config.block_y);
773 trace_add_data("block_z", config.block_z);
841 astcenc_profile decode_mode = ctx.config.profile;
862 blk.decode_unorm8 = ctxo.context.config.flags & ASTCENC_FLG_USE_DECODE_UNORM8;
865 blk.channel_weight = vfloat4(ctx.config.cw_r_weight,
866 ctx.config.cw_g_weight,
867 ctx.config.cw_b_weight,
868 ctx.config.cw_a_weight);
874 ctxo.manage_compress.init(block_count, ctx.config.progress_callback);
912 if (ctx.config.a_scale_radius != 0 && block_z == 1)
923 int x_footprint = block_x + 2 * (ctx.config.a_scale_radius - 1);
925 int y_footprint = block_y + 2 * (ctx.config.a_scale_radius - 1);
955 if (ctx.config.flags & ASTCENC_FLG_USE_ALPHA_WEIGHT)
958 blk.channel_weight = vfloat4(ctx.config.cw_r_weight * alpha_scale,
959 ctx.config.cw_g_weight * alpha_scale,
960 ctx.config.cw_b_weight * alpha_scale,
961 ctx.config.cw_a_weight);
1085 if (ctx->config.flags & ASTCENC_FLG_DECOMPRESS_ONLY)
1101 unsigned int block_x = ctx->config.block_x;
1102 unsigned int block_y = ctx->config.block_y;
1103 unsigned int block_z = ctx->config.block_z;
1122 if (ctx->config.a_scale_radius != 0)
1132 image, ctx->config.a_scale_radius, *swizzle,
1174 if (ctx->config.flags & ASTCENC_FLG_DECOMPRESS_ONLY)
1210 unsigned int block_x = ctx->config.block_x;
1211 unsigned int block_y = ctx->config.block_y;
1212 unsigned int block_z = ctx->config.block_z;
1269 decompress_symbolic_block(ctx->config.profile, *ctx->bsd,
1316 info->profile = ctx->config.profile;
1318 info->block_x = ctx->config.block_x;
1319 info->block_y = ctx->config.block_y;
1320 info->block_z = ctx->config.block_z;
1365 unpack_color_endpoints(ctx->config.profile,