ilo: plug a potential index buffer leak
[mesa.git] / src / gallium / drivers / ilo / ilo_shader.h
index fa5a556539b9b99c9ef8b2c0f94b57def9b508bc..6a2b8a397b39679eb1fdcf6a59a2b8beebb9674e 100644 (file)
@@ -58,10 +58,21 @@ 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;
 
 struct ilo_shader_cache *
 ilo_shader_cache_create(void);
@@ -113,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);
 
@@ -120,4 +136,13 @@ int
 ilo_shader_get_kernel_param(const struct ilo_shader_state *shader,
                             enum ilo_kernel_param param);
 
+const struct ilo_shader_cso *
+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 */