diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 129 | 
1 files changed, 70 insertions, 59 deletions
| diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 70ce77006a..3e0c574895 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -882,6 +882,75 @@ generate_fragment(struct llvmpipe_context *lp,  } +static void +dump_fs_variant_key(const struct lp_fragment_shader_variant_key *key) +{ +   unsigned i; + +   if (key->depth.enabled) { +      debug_printf("depth.format = %s\n", util_format_name(key->zsbuf_format)); +      debug_printf("depth.func = %s\n", util_dump_func(key->depth.func, TRUE)); +      debug_printf("depth.writemask = %u\n", key->depth.writemask); +   } + +   for (i = 0; i < 2; ++i) { +      if (key->stencil[i].enabled) { +         debug_printf("stencil[%u].func = %s\n", i, util_dump_func(key->stencil[i].func, TRUE)); +         debug_printf("stencil[%u].fail_op = %s\n", i, util_dump_stencil_op(key->stencil[i].fail_op, TRUE)); +         debug_printf("stencil[%u].zpass_op = %s\n", i, util_dump_stencil_op(key->stencil[i].zpass_op, TRUE)); +         debug_printf("stencil[%u].zfail_op = %s\n", i, util_dump_stencil_op(key->stencil[i].zfail_op, TRUE)); +         debug_printf("stencil[%u].valuemask = 0x%x\n", i, key->stencil[i].valuemask); +         debug_printf("stencil[%u].writemask = 0x%x\n", i, key->stencil[i].writemask); +      } +   } + +   if (key->alpha.enabled) { +      debug_printf("alpha.func = %s\n", util_dump_func(key->alpha.func, TRUE)); +      debug_printf("alpha.ref_value = %f\n", key->alpha.ref_value); +   } + +   if (key->blend.logicop_enable) { +      debug_printf("blend.logicop_func = %u\n", key->blend.logicop_func); +   } +   else if (key->blend.rt[0].blend_enable) { +      debug_printf("blend.rgb_func = %s\n",   util_dump_blend_func  (key->blend.rt[0].rgb_func, TRUE)); +      debug_printf("rgb_src_factor = %s\n",   util_dump_blend_factor(key->blend.rt[0].rgb_src_factor, TRUE)); +      debug_printf("rgb_dst_factor = %s\n",   util_dump_blend_factor(key->blend.rt[0].rgb_dst_factor, TRUE)); +      debug_printf("alpha_func = %s\n",       util_dump_blend_func  (key->blend.rt[0].alpha_func, TRUE)); +      debug_printf("alpha_src_factor = %s\n", util_dump_blend_factor(key->blend.rt[0].alpha_src_factor, TRUE)); +      debug_printf("alpha_dst_factor = %s\n", util_dump_blend_factor(key->blend.rt[0].alpha_dst_factor, TRUE)); +   } +   debug_printf("blend.colormask = 0x%x\n", key->blend.rt[0].colormask); +   for (i = 0; i < PIPE_MAX_SAMPLERS; ++i) { +      if (key->sampler[i].format) { +         debug_printf("sampler[%u] = \n", i); +         debug_printf("  .format = %s\n", +                      util_format_name(key->sampler[i].format)); +         debug_printf("  .target = %s\n", +                      util_dump_tex_target(key->sampler[i].target, TRUE)); +         debug_printf("  .pot = %u %u %u\n", +                      key->sampler[i].pot_width, +                      key->sampler[i].pot_height, +                      key->sampler[i].pot_depth); +         debug_printf("  .wrap = %s %s %s\n", +                      util_dump_tex_wrap(key->sampler[i].wrap_s, TRUE), +                      util_dump_tex_wrap(key->sampler[i].wrap_t, TRUE), +                      util_dump_tex_wrap(key->sampler[i].wrap_r, TRUE)); +         debug_printf("  .min_img_filter = %s\n", +                      util_dump_tex_filter(key->sampler[i].min_img_filter, TRUE)); +         debug_printf("  .min_mip_filter = %s\n", +                      util_dump_tex_mipfilter(key->sampler[i].min_mip_filter, TRUE)); +         debug_printf("  .mag_img_filter = %s\n", +                      util_dump_tex_filter(key->sampler[i].mag_img_filter, TRUE)); +         if (key->sampler[i].compare_mode != PIPE_TEX_COMPARE_NONE) +            debug_printf("  .compare_func = %s\n", util_dump_func(key->sampler[i].compare_func, TRUE)); +         debug_printf("  .normalized_coords = %u\n", key->sampler[i].normalized_coords); +      } +   } +} + + +  static struct lp_fragment_shader_variant *  generate_variant(struct llvmpipe_context *lp,                   struct lp_fragment_shader *shader, @@ -890,66 +959,8 @@ generate_variant(struct llvmpipe_context *lp,     struct lp_fragment_shader_variant *variant;     if (gallivm_debug & GALLIVM_DEBUG_IR) { -      unsigned i; -        tgsi_dump(shader->base.tokens, 0); -      if(key->depth.enabled) { -         debug_printf("depth.format = %s\n", util_format_name(key->zsbuf_format)); -         debug_printf("depth.func = %s\n", util_dump_func(key->depth.func, TRUE)); -         debug_printf("depth.writemask = %u\n", key->depth.writemask); -      } -      for (i = 0; i < 2; ++i) { -         if(key->stencil[i].enabled) { -            debug_printf("stencil[%u].func = %s\n", i, util_dump_func(key->stencil[i].func, TRUE)); -            debug_printf("stencil[%u].fail_op = %s\n", i, util_dump_stencil_op(key->stencil[i].fail_op, TRUE)); -            debug_printf("stencil[%u].zpass_op = %s\n", i, util_dump_stencil_op(key->stencil[i].zpass_op, TRUE)); -            debug_printf("stencil[%u].zfail_op = %s\n", i, util_dump_stencil_op(key->stencil[i].zfail_op, TRUE)); -            debug_printf("stencil[%u].valuemask = 0x%x\n", i, key->stencil[i].valuemask); -            debug_printf("stencil[%u].writemask = 0x%x\n", i, key->stencil[i].writemask); -         } -      } -      if(key->alpha.enabled) { -         debug_printf("alpha.func = %s\n", util_dump_func(key->alpha.func, TRUE)); -         debug_printf("alpha.ref_value = %f\n", key->alpha.ref_value); -      } -      if(key->blend.logicop_enable) { -         debug_printf("blend.logicop_func = %u\n", key->blend.logicop_func); -      } -      else if(key->blend.rt[0].blend_enable) { -         debug_printf("blend.rgb_func = %s\n",   util_dump_blend_func  (key->blend.rt[0].rgb_func, TRUE)); -         debug_printf("rgb_src_factor = %s\n",   util_dump_blend_factor(key->blend.rt[0].rgb_src_factor, TRUE)); -         debug_printf("rgb_dst_factor = %s\n",   util_dump_blend_factor(key->blend.rt[0].rgb_dst_factor, TRUE)); -         debug_printf("alpha_func = %s\n",       util_dump_blend_func  (key->blend.rt[0].alpha_func, TRUE)); -         debug_printf("alpha_src_factor = %s\n", util_dump_blend_factor(key->blend.rt[0].alpha_src_factor, TRUE)); -         debug_printf("alpha_dst_factor = %s\n", util_dump_blend_factor(key->blend.rt[0].alpha_dst_factor, TRUE)); -      } -      debug_printf("blend.colormask = 0x%x\n", key->blend.rt[0].colormask); -      for(i = 0; i < PIPE_MAX_SAMPLERS; ++i) { -         if(key->sampler[i].format) { -            debug_printf("sampler[%u] = \n", i); -            debug_printf("  .format = %s\n", -                         util_format_name(key->sampler[i].format)); -            debug_printf("  .target = %s\n", -                         util_dump_tex_target(key->sampler[i].target, TRUE)); -            debug_printf("  .pot = %u %u %u\n", -                         key->sampler[i].pot_width, -                         key->sampler[i].pot_height, -                         key->sampler[i].pot_depth); -            debug_printf("  .wrap = %s %s %s\n", -                         util_dump_tex_wrap(key->sampler[i].wrap_s, TRUE), -                         util_dump_tex_wrap(key->sampler[i].wrap_t, TRUE), -                         util_dump_tex_wrap(key->sampler[i].wrap_r, TRUE)); -            debug_printf("  .min_img_filter = %s\n", -                         util_dump_tex_filter(key->sampler[i].min_img_filter, TRUE)); -            debug_printf("  .min_mip_filter = %s\n", -                         util_dump_tex_mipfilter(key->sampler[i].min_mip_filter, TRUE)); -            debug_printf("  .mag_img_filter = %s\n", -                         util_dump_tex_filter(key->sampler[i].mag_img_filter, TRUE)); -            if(key->sampler[i].compare_mode != PIPE_TEX_COMPARE_NONE) -               debug_printf("  .compare_func = %s\n", util_dump_func(key->sampler[i].compare_func, TRUE)); -            debug_printf("  .normalized_coords = %u\n", key->sampler[i].normalized_coords); -         } -      } +      dump_fs_variant_key(key);     }     variant = CALLOC_STRUCT(lp_fragment_shader_variant); | 
