[Mesa-dev] [PATCH 3/3] radv: use only one descriptor in the fmask expand pass

Samuel Pitoiset samuel.pitoiset at gmail.com
Mon May 20 08:28:03 UTC 2019


This removes one useless SMEM load operations which pointed to
the same descriptor anyway.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/amd/vulkan/radv_meta_fmask_expand.c | 27 +++----------------------
 1 file changed, 3 insertions(+), 24 deletions(-)

diff --git a/src/amd/vulkan/radv_meta_fmask_expand.c b/src/amd/vulkan/radv_meta_fmask_expand.c
index 44068edc89e..a9567eaf0fd 100644
--- a/src/amd/vulkan/radv_meta_fmask_expand.c
+++ b/src/amd/vulkan/radv_meta_fmask_expand.c
@@ -50,7 +50,7 @@ build_fmask_expand_compute_shader(struct radv_device *device, int samples)
 	nir_variable *output_img = nir_variable_create(b.shader, nir_var_uniform,
 						       img_type, "out_img");
 	output_img->data.descriptor_set = 0;
-	output_img->data.binding = 1;
+	output_img->data.binding = 0;
 	output_img->data.image.access = ACCESS_NON_READABLE;
 
 	nir_ssa_def *invoc_id = nir_load_local_invocation_id(&b);
@@ -144,27 +144,13 @@ radv_expand_fmask_image_inplace(struct radv_cmd_buffer *cmd_buffer,
 					      VK_PIPELINE_BIND_POINT_COMPUTE,
 					      cmd_buffer->device->meta_state.fmask_expand.p_layout,
 					      0, /* set */
-					      2, /* descriptorWriteCount */
+					      1, /* descriptorWriteCount */
 					      (VkWriteDescriptorSet[]) {
 					      {
 						      .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
 						      .dstBinding = 0,
 						      .dstArrayElement = 0,
 						      .descriptorCount = 1,
-						      .descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
-						      .pImageInfo = (VkDescriptorImageInfo[]) {
-							      {
-								      .sampler = VK_NULL_HANDLE,
-								      .imageView = radv_image_view_to_handle(&iview),
-								      .imageLayout = VK_IMAGE_LAYOUT_GENERAL
-							      },
-						      }
-					      },
-					      {
-						      .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
-						      .dstBinding = 1,
-						      .dstArrayElement = 0,
-						      .descriptorCount = 1,
 						      .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
 						      .pImageInfo = (VkDescriptorImageInfo[]) {
 							      {
@@ -250,17 +236,10 @@ radv_device_init_meta_fmask_expand_state(struct radv_device *device)
 	VkDescriptorSetLayoutCreateInfo ds_create_info = {
 		.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
 		.flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR,
-		.bindingCount = 2,
+		.bindingCount = 1,
 		.pBindings = (VkDescriptorSetLayoutBinding[]) {
 			{
 				.binding = 0,
-				.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE,
-				.descriptorCount = 1,
-				.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,
-				.pImmutableSamplers = NULL
-			},
-			{
-				.binding = 1,
 				.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE,
 				.descriptorCount = 1,
 				.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT,
-- 
2.21.0



More information about the mesa-dev mailing list