draw: Dump LLVM shader key.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 4 Dec 2012 16:55:32 +0000 (16:55 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 7 Dec 2012 15:03:07 +0000 (15:03 +0000)
Just like we do in llvmpipe for the fragment shader compilation key.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/auxiliary/draw/draw_llvm.h

index 039db8fce49994b070c9e3399b6905e0664002f7..a3a3bbfea489322dd1bb99d878d9679e448c46b3 100644 (file)
@@ -443,8 +443,9 @@ generate_vs(struct draw_llvm_variant *variant,
    LLVMValueRef consts_ptr = draw_jit_context_vs_constants(variant->gallivm, context_ptr);
    struct lp_build_sampler_soa *sampler = 0;
 
-   if (gallivm_debug & GALLIVM_DEBUG_IR) {
+   if (gallivm_debug & (GALLIVM_DEBUG_TGSI | GALLIVM_DEBUG_IR)) {
       tgsi_dump(tokens, 0);
+      draw_llvm_dump_variant_key(&variant->key);
    }
 
    if (llvm->draw->num_sampler_views && llvm->draw->num_samplers)
@@ -1363,6 +1364,34 @@ draw_llvm_make_variant_key(struct draw_llvm *llvm, char *store)
 }
 
 
+void
+draw_llvm_dump_variant_key(struct draw_llvm_variant_key *key)
+{
+   unsigned i;
+   struct lp_sampler_static_state *sampler = draw_llvm_variant_key_samplers(key);
+
+   debug_printf("clamp_vertex_color = %u\n", key->clamp_vertex_color);
+   debug_printf("clip_xy = %u\n", key->clip_xy);
+   debug_printf("clip_z = %u\n", key->clip_z);
+   debug_printf("clip_user = %u\n", key->clip_user);
+   debug_printf("bypass_viewport = %u\n", key->bypass_viewport);
+   debug_printf("clip_halfz = %u\n", key->clip_halfz);
+   debug_printf("need_edgeflags = %u\n", key->need_edgeflags);
+   debug_printf("ucp_enable = %u\n", key->ucp_enable);
+
+   for (i = 0 ; i < key->nr_vertex_elements; i++) {
+      debug_printf("vertex_element[%i].src_offset = %u\n", i, key->vertex_element[i].src_offset);
+      debug_printf("vertex_element[%i].instance_divisor = %u\n", i, key->vertex_element[i].instance_divisor);
+      debug_printf("vertex_element[%i].vertex_buffer_index = %u\n", i, key->vertex_element[i].vertex_buffer_index);
+      debug_printf("vertex_element[%i].src_format = %s\n", i, util_format_name(key->vertex_element[i].src_format));
+   }
+
+   for (i = 0 ; i < key->nr_samplers; i++) {
+      debug_printf("sampler[%i].src_format = %s\n", i, util_format_name(sampler[i].format));
+   }
+}
+
+
 void
 draw_llvm_set_mapped_texture(struct draw_context *draw,
                              unsigned sampler_idx,
index bd11886149d9ed8c351037a51574150f1a1d5f3b..892973c3725dae2dbe5df027223f07e9f54e65bc 100644 (file)
@@ -284,6 +284,9 @@ draw_llvm_destroy_variant(struct draw_llvm_variant *variant);
 struct draw_llvm_variant_key *
 draw_llvm_make_variant_key(struct draw_llvm *llvm, char *store);
 
+void
+draw_llvm_dump_variant_key(struct draw_llvm_variant_key *key);
+
 struct lp_build_sampler_soa *
 draw_llvm_sampler_soa_create(const struct lp_sampler_static_state *static_state,
                              LLVMValueRef context_ptr);