zink: set primitive restart cap
[mesa.git] / src / gallium / drivers / zink / zink_pipeline.h
index 9990c5058da715c4b892e4555e053c20c298a381..757bae6266f49600f699dc80eae999641a7bafc5 100644 (file)
@@ -33,27 +33,32 @@ struct zink_depth_stencil_alpha_state;
 struct zink_gfx_program;
 struct zink_rasterizer_state;
 struct zink_render_pass;
+struct zink_screen;
 struct zink_vertex_elements_state;
 
 struct zink_gfx_pipeline_state {
-   VkPrimitiveTopology primitive_topology;
    struct zink_render_pass *render_pass;
 
-   struct zink_vertex_elements_state *element_state;
+   struct zink_vertex_elements_hw_state *element_state;
    VkVertexInputBindingDescription bindings[PIPE_MAX_ATTRIBS]; // combination of element_state and stride
 
    uint32_t num_attachments;
    struct zink_blend_state *blend_state;
 
-   struct zink_rasterizer_state *rast_state;
+   struct zink_rasterizer_hw_state *rast_state;
 
    struct zink_depth_stencil_alpha_state *depth_stencil_alpha_state;
 
-   float line_width;
+   VkSampleMask sample_mask;
+   uint8_t rast_samples;
+
+   bool primitive_restart;
 };
 
 VkPipeline
-zink_create_gfx_pipeline(VkDevice dev, struct zink_gfx_program *prog,
-                         struct zink_gfx_pipeline_state *state);
+zink_create_gfx_pipeline(struct zink_screen *screen,
+                         struct zink_gfx_program *prog,
+                         struct zink_gfx_pipeline_state *state,
+                         VkPrimitiveTopology primitive_topology);
 
 #endif