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