summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/ilo/ilo_shader.h
diff options
context:
space:
mode:
authorChia-I Wu <[email protected]>2013-06-24 14:13:33 +0800
committerChia-I Wu <[email protected]>2013-06-25 13:51:58 +0800
commit9b18df6e087a4db8ed5ed38bcc6b1db34fa95586 (patch)
tree677fc49af1f7b06ebce449dc39f2e56e42252ace /src/gallium/drivers/ilo/ilo_shader.h
parentc4fa24ff0873b7b9a5c4dacbd2c130788e88ad35 (diff)
ilo: move SBE setup code to ilo_shader.c
Add ilo_shader_select_kernel_routing() to construct 3DSTATE_SBE. It is called in ilo_finalize_states(), rather than in create_fs_state(), as it depends on VS/GS and rasterizer states. With this change, ilo_shader_internal.h is no longer needed for ilo_gpe_gen6.c.
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_shader.h')
-rw-r--r--src/gallium/drivers/ilo/ilo_shader.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gallium/drivers/ilo/ilo_shader.h b/src/gallium/drivers/ilo/ilo_shader.h
index d326b9c01f4..6a2b8a397b3 100644
--- a/src/gallium/drivers/ilo/ilo_shader.h
+++ b/src/gallium/drivers/ilo/ilo_shader.h
@@ -58,8 +58,18 @@ enum ilo_kernel_param {
ILO_KERNEL_PARAM_COUNT,
};
+struct ilo_kernel_routing {
+ uint32_t const_interp_enable;
+ uint32_t point_sprite_enable;
+ unsigned source_skip, source_len;
+
+ bool swizzle_enable;
+ uint16_t swizzles[16];
+};
+
struct intel_bo;
struct ilo_context;
+struct ilo_rasterizer_state;
struct ilo_shader_cache;
struct ilo_shader_state;
struct ilo_shader_cso;
@@ -114,6 +124,11 @@ ilo_shader_select_kernel(struct ilo_shader_state *shader,
const struct ilo_context *ilo,
uint32_t dirty);
+bool
+ilo_shader_select_kernel_routing(struct ilo_shader_state *shader,
+ const struct ilo_shader_state *source,
+ const struct ilo_rasterizer_state *rasterizer);
+
uint32_t
ilo_shader_get_kernel_offset(const struct ilo_shader_state *shader);
@@ -127,4 +142,7 @@ ilo_shader_get_kernel_cso(const struct ilo_shader_state *shader);
const struct pipe_stream_output_info *
ilo_shader_get_kernel_so_info(const struct ilo_shader_state *shader);
+const struct ilo_kernel_routing *
+ilo_shader_get_kernel_routing(const struct ilo_shader_state *shader);
+
#endif /* ILO_SHADER_H */