From: Samuel Pitoiset Date: Thu, 30 May 2019 09:52:56 +0000 (+0200) Subject: radv: allow to set dynamic sample locations to the depth decompress pass X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2dd8dfd9137ac561aac3c453c1c7ad6683bd17b4;p=mesa.git radv: allow to set dynamic sample locations to the depth decompress pass If VK_EXT_sample_locations is used, the driver might need to emit the sample locations specified during layout transitions. Signed-off-by: Samuel Pitoiset Reviewed-By: Bas Nieuwenhuizen --- diff --git a/src/amd/vulkan/radv_meta_decompress.c b/src/amd/vulkan/radv_meta_decompress.c index fe8e114e91b..c51beb0c32d 100644 --- a/src/amd/vulkan/radv_meta_decompress.c +++ b/src/amd/vulkan/radv_meta_decompress.c @@ -126,6 +126,11 @@ create_pipeline(struct radv_device *device, goto cleanup; } + const VkPipelineSampleLocationsStateCreateInfoEXT sample_locs_create_info = { + .sType = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, + .sampleLocationsEnable = false, + }; + const VkGraphicsPipelineCreateInfo pipeline_create_info = { .sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, .stageCount = 2, @@ -168,6 +173,7 @@ create_pipeline(struct radv_device *device, }, .pMultisampleState = &(VkPipelineMultisampleStateCreateInfo) { .sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, + .pNext = &sample_locs_create_info, .rasterizationSamples = samples, .sampleShadingEnable = false, .pSampleMask = NULL, @@ -189,10 +195,11 @@ create_pipeline(struct radv_device *device, }, .pDynamicState = &(VkPipelineDynamicStateCreateInfo) { .sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, - .dynamicStateCount = 2, + .dynamicStateCount = 3, .pDynamicStates = (VkDynamicState[]) { VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR, + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, }, }, .layout = layout,