radv: don't emit unneeded vertex state.
[mesa.git] / src / amd / vulkan / radv_meta.h
index c7e5de7580f94373534600fc0eb29491ac7dedee..9f3198e87976c6bca7d894a640c44664381cff23 100644 (file)
@@ -38,6 +38,7 @@ enum radv_meta_save_flags {
        RADV_META_SAVE_CONSTANTS         = (1 << 1),
        RADV_META_SAVE_DESCRIPTORS       = (1 << 2),
        RADV_META_SAVE_GRAPHICS_PIPELINE = (1 << 3),
+       RADV_META_SAVE_COMPUTE_PIPELINE  = (1 << 4),
 };
 
 struct radv_meta_saved_state {
@@ -57,14 +58,6 @@ struct radv_meta_saved_state {
        VkRect2D render_area;
 };
 
-struct radv_meta_saved_compute_state {
-       struct radv_descriptor_set *old_descriptor_set0;
-       struct radv_pipeline *old_pipeline;
-
-       unsigned push_constant_size;
-       char push_constants[128];
-};
-
 VkResult radv_device_init_meta_clear_state(struct radv_device *device);
 void radv_device_finish_meta_clear_state(struct radv_device *device);
 
@@ -95,16 +88,12 @@ void radv_device_finish_meta_resolve_compute_state(struct radv_device *device);
 VkResult radv_device_init_meta_resolve_fragment_state(struct radv_device *device);
 void radv_device_finish_meta_resolve_fragment_state(struct radv_device *device);
 
+void radv_meta_save(struct radv_meta_saved_state *saved_state,
+                   struct radv_cmd_buffer *cmd_buffer, uint32_t flags);
+
 void radv_meta_restore(const struct radv_meta_saved_state *state,
                       struct radv_cmd_buffer *cmd_buffer);
 
-void radv_meta_save_compute(struct radv_meta_saved_compute_state *state,
-                           const struct radv_cmd_buffer *cmd_buffer,
-                           unsigned push_constant_size);
-
-void radv_meta_restore_compute(const struct radv_meta_saved_compute_state *state,
-                              struct radv_cmd_buffer *cmd_buffer);
-
 VkImageViewType radv_meta_get_view_type(const struct radv_image *image);
 
 uint32_t radv_meta_get_iview_layer(const struct radv_image *dest_image,
@@ -120,6 +109,7 @@ struct radv_meta_blit2d_surf {
        unsigned level;
        unsigned layer;
        VkImageAspectFlags aspect_mask;
+       VkImageLayout current_layout;
 };
 
 struct radv_meta_blit2d_buffer {
@@ -181,10 +171,9 @@ void radv_resummarize_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
 void radv_fast_clear_flush_image_inplace(struct radv_cmd_buffer *cmd_buffer,
                                         struct radv_image *image,
                                         const VkImageSubresourceRange *subresourceRange);
-
-void radv_meta_save_graphics_reset_vport_scissor_novertex(struct radv_meta_saved_state *saved_state,
-                                                         struct radv_cmd_buffer *cmd_buffer,
-                                                         uint32_t flags);
+void radv_decompress_dcc(struct radv_cmd_buffer *cmd_buffer,
+                       struct radv_image *image,
+                        const VkImageSubresourceRange *subresourceRange);
 
 void radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer,
                                     struct radv_image *src_image,