[3/3] radv: use only one descriptor in the fmask expand pass

Submitted by Samuel Pitoiset on May 20, 2019, 8:28 a.m.

Details

Message ID 20190520082803.23271-3-samuel.pitoiset@gmail.com
State Accepted
Commit 8a31eaa4e2402df01805db7484f215aa3fa361da
Headers show
Series "Series without cover letter" ( rev: 1 ) in Mesa

Not browsing as part of any series.

Commit Message

Samuel Pitoiset May 20, 2019, 8:28 a.m.
This removes one useless SMEM load operations which pointed to
the same descriptor anyway.

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

Patch hide | download patch | download mbox

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,