aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-12-04 16:55:32 +0000
committerJosé Fonseca <[email protected]>2012-12-07 15:03:07 +0000
commit6e27e2e90e2aa42a306edadaa4d76fc4ecf6f7b2 (patch)
tree1df2453871fe91cd02be0969247fa0ac8e69d527
parent3b7ce726258de20be2d65f7b9f51b160dd99638a (diff)
draw: Dump LLVM shader key.
Just like we do in llvmpipe for the fragment shader compilation key. Reviewed-by: Brian Paul <[email protected]>
-rw-r--r--src/gallium/auxiliary/draw/draw_llvm.c31
-rw-r--r--src/gallium/auxiliary/draw/draw_llvm.h3
2 files changed, 33 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
index 039db8fce49..a3a3bbfea48 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.c
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
@@ -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)
@@ -1364,6 +1365,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,
uint32_t width, uint32_t height, uint32_t depth,
diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h
index bd11886149d..892973c3725 100644
--- a/src/gallium/auxiliary/draw/draw_llvm.h
+++ b/src/gallium/auxiliary/draw/draw_llvm.h
@@ -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);