vk/meta: Add required renderpass to pipeline
authorChad Versace <chad.versace@intel.com>
Mon, 19 Oct 2015 15:44:38 +0000 (08:44 -0700)
committerChad Versace <chad.versace@intel.com>
Tue, 20 Oct 2015 17:48:26 +0000 (10:48 -0700)
The Vulkan spec (20 Oct 2015, git-aa308cb) requires that
VkGraphicsPipelineCreateInfo::renderPass be a valid handle. To satisfy
that, define a static dummy render pass used for all meta operations.

src/vulkan/anv_meta.c
src/vulkan/anv_private.h

index c280ea0ef42488ecec8b83c425659716d86b348f..09d035b0b07a6a8ecd7ae820ea0eca7e9178f886 100644 (file)
@@ -30,6 +30,8 @@
 #include "anv_private.h"
 #include "anv_nir_builder.h"
 
+struct anv_render_pass anv_meta_dummy_renderpass = {0};
+
 static nir_shader *
 build_nir_vertex_shader(bool attr_flat)
 {
@@ -293,6 +295,8 @@ anv_device_init_meta_clear_state(struct anv_device *device)
             },
          },
          .flags = 0,
+         .renderPass = anv_render_pass_to_handle(&anv_meta_dummy_renderpass),
+         .subpass = 0,
       },
       &(struct anv_graphics_pipeline_create_info) {
          .use_repclear = true,
@@ -698,6 +702,8 @@ anv_device_init_meta_blit_state(struct anv_device *device)
       },
       .flags = 0,
       .layout = device->meta_state.blit.pipeline_layout,
+      .renderPass = anv_render_pass_to_handle(&anv_meta_dummy_renderpass),
+      .subpass = 0,
    };
 
    const struct anv_graphics_pipeline_create_info anv_pipeline_info = {
index 5f9a3ce5c12ebcf947e8b96fcb75c4215d0bac57..68598a9dd49422dd37ae33b33761b1d3b9404e0e 100644 (file)
@@ -1395,6 +1395,8 @@ struct anv_render_pass {
    struct anv_subpass                           subpasses[0];
 };
 
+extern struct anv_render_pass anv_meta_dummy_renderpass;
+
 struct anv_query_pool_slot {
    uint64_t begin;
    uint64_t end;