X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fvulkan%2Fanv_pipeline.c;h=3c5072ba924e22fd8fc720687631d8b6d182500c;hb=741744f691d6ef63e9f9a4c03136f969f2ffb0bf;hp=d66987f1a8c7e6edf52c50825807354dac180677;hpb=97b09a92686d75ba2faca2fb20276c75f630f691;p=mesa.git diff --git a/src/vulkan/anv_pipeline.c b/src/vulkan/anv_pipeline.c index d66987f1a8c..3c5072ba924 100644 --- a/src/vulkan/anv_pipeline.c +++ b/src/vulkan/anv_pipeline.c @@ -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; }