anv/skl: Fix crash in 16x multisampling
authorChad Versace <chad.versace@intel.com>
Thu, 28 Jan 2016 01:26:18 +0000 (17:26 -0800)
committerChad Versace <chad.versace@intel.com>
Thu, 28 Jan 2016 02:38:15 +0000 (18:38 -0800)
We built meta clear and resolve pipelines for only up to 8x samples.
There were no 16x pipelines.

src/vulkan/anv_private.h

index e328d3dcd714c2c49b328f83af5a6b054bf25134..6e44e88e10c932c13b93748e13af4044d993f9ff 100644 (file)
@@ -75,6 +75,7 @@ extern "C" {
 #define MAX_PUSH_CONSTANTS_SIZE 128
 #define MAX_DYNAMIC_BUFFERS 16
 #define MAX_IMAGES 8
+#define MAX_SAMPLES_LOG2 4 /* SKL supports 16 samples */
 
 #define ICD_LOADER_MAGIC   0x01CDC0DE
 
@@ -581,7 +582,7 @@ struct anv_meta_state {
       struct anv_pipeline *depth_only_pipeline;
       struct anv_pipeline *stencil_only_pipeline;
       struct anv_pipeline *depthstencil_pipeline;
-   } clear[4];
+   } clear[1 + MAX_SAMPLES_LOG2];
 
    struct {
       VkRenderPass render_pass;
@@ -603,7 +604,7 @@ struct anv_meta_state {
       /**
        * Use pipeline `i` for images with `2^i` samples.
        */
-      VkPipeline                                pipelines[4];
+      VkPipeline                                pipelines[1 + MAX_SAMPLES_LOG2];
 
       VkRenderPass                              pass;
       VkPipelineLayout                          pipeline_layout;