struct zink_gfx_pipeline_state {
uint32_t rast_state : ZINK_RAST_HW_STATE_SIZE; //zink_rasterizer_hw_state
- uint32_t rast_samples:15; //9 extra bits
+ uint32_t _pad1 : 6;
+ uint32_t force_persample_interp:1; //duplicated for gpl hashing
+ /* order matches zink_gfx_output_key: uint16_t offset */
+ uint32_t rast_samples:8; //2 extra bits
uint32_t void_alpha_attachments:PIPE_MAX_COLOR_BUFS;
VkSampleMask sample_mask;
-
unsigned rp_state;
uint32_t blend_id;
struct zink_pipeline_dynamic_state2 dyn_state2;
+#if VK_USE_64_BIT_PTR_DEFINES
+ uint32_t _pad;
+#endif
+ uint32_t gkey; //for pipeline library lookups
VkShaderModule modules[PIPE_SHADER_TYPES - 1];
bool modules_changed;
- struct zink_vertex_elements_hw_state *element_state;
uint32_t vertex_hash;
uint32_t final_hash;
+#if VK_USE_64_BIT_PTR_DEFINES
+ uint32_t _pad2;
+#endif
+ /* order matches zink_gfx_input_key */
+ union {
+ struct {
+ unsigned idx:8;
+ bool uses_dynamic_stride;
+ };
+ uint32_t input;
+ };
uint32_t vertex_buffers_enabled_mask;
uint32_t vertex_strides[PIPE_MAX_ATTRIBS];
+ struct zink_vertex_elements_hw_state *element_state;
bool sample_locations_enabled;
- bool uses_dynamic_stride;
bool have_EXT_extended_dynamic_state;
bool have_EXT_extended_dynamic_state2;
bool extendedDynamicState2PatchControlPoints;
VkFormat rendering_formats[PIPE_MAX_COLOR_BUFS];
VkPipelineRenderingCreateInfo rendering_info;
VkPipeline pipeline;
- unsigned idx : 8;
enum pipe_prim_type gfx_prim_mode; //pending mode
};