Merge commit mesa-public/master into vulkan
[mesa.git] / src / vulkan / anv_pipeline.c
index d66987f1a8c7e6edf52c50825807354dac180677..3c5072ba924e22fd8fc720687631d8b6d182500c 100644 (file)
@@ -30,7 +30,7 @@
 #include "anv_private.h"
 #include "brw_nir.h"
 #include "anv_nir.h"
-#include "glsl/nir/spirv/nir_spirv.h"
+#include "nir/spirv/nir_spirv.h"
 
 /* Needed for SWIZZLE macros */
 #include "program/prog_instruction.h"
@@ -171,7 +171,9 @@ anv_shader_compile_to_nir(struct anv_device *device,
 
    nir_shader_gather_info(nir, entry_point->impl);
 
-   uint32_t indirect_mask = (1 << nir_var_shader_in);
+   uint32_t indirect_mask = 0;
+   if (compiler->glsl_compiler_options[stage].EmitNoIndirectInput)
+      indirect_mask |= (1 << nir_var_shader_in);
    if (compiler->glsl_compiler_options[stage].EmitNoIndirectTemp)
       indirect_mask |= 1 << nir_var_local;
 
@@ -1075,9 +1077,6 @@ anv_pipeline_init(struct anv_pipeline *pipeline,
 
    if (pCreateInfo->pTessellationState)
       anv_finishme("VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO");
-   if (pCreateInfo->pMultisampleState &&
-       pCreateInfo->pMultisampleState->rasterizationSamples > 1)
-      anv_finishme("VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO");
 
    pipeline->use_repclear = extra && extra->use_repclear;
    pipeline->writes_point_size = false;
@@ -1091,6 +1090,7 @@ anv_pipeline_init(struct anv_pipeline *pipeline,
    pipeline->vs_simd8 = NO_KERNEL;
    pipeline->vs_vec4 = NO_KERNEL;
    pipeline->gs_kernel = NO_KERNEL;
+   pipeline->ps_ksp0 = NO_KERNEL;
 
    pipeline->active_stages = 0;
    pipeline->total_scratch = 0;
@@ -1179,6 +1179,10 @@ anv_pipeline_init(struct anv_pipeline *pipeline,
    if (extra && extra->use_rectlist)
       pipeline->topology = _3DPRIM_RECTLIST;
 
+   while (anv_block_pool_size(&device->scratch_block_pool) <
+          pipeline->total_scratch)
+      anv_block_pool_alloc(&device->scratch_block_pool);
+
    return VK_SUCCESS;
 }