nv50/ir/tgsi: TGSI_OPCODE_POW replicates its result
[mesa.git] / src / gallium / drivers / ilo / ilo_shader.h
index 92ad7f6656f7ecf0da3ee6e1bc6e3115712d9b4e..d12b086ec8140588690819c952fcff555d7716a9 100644 (file)
@@ -34,6 +34,8 @@ enum ilo_kernel_param {
    ILO_KERNEL_INPUT_COUNT,
    ILO_KERNEL_OUTPUT_COUNT,
    ILO_KERNEL_URB_DATA_START_REG,
+   ILO_KERNEL_SKIP_CBUF0_UPLOAD,
+   ILO_KERNEL_PCB_CBUF0_SIZE,
 
    ILO_KERNEL_VS_INPUT_INSTANCEID,
    ILO_KERNEL_VS_INPUT_VERTEXID,
@@ -58,8 +60,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 +126,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);
 
@@ -124,4 +141,10 @@ ilo_shader_get_kernel_param(const struct ilo_shader_state *shader,
 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 */