Преглед на файлове

radv: select the pipeline outside of the loop when decompressing htile

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
tags/17.3-branchpoint
Samuel Pitoiset преди 8 години
родител
ревизия
b269ed3d94
променени са 1 файла, в които са добавени 12 реда и са изтрити 12 реда
  1. 12
    12
      src/amd/vulkan/radv_meta_decompress.c

+ 12
- 12
src/amd/vulkan/radv_meta_decompress.c Целия файл

@@ -311,6 +311,7 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
uint32_t samples = image->info.samples;
uint32_t samples_log2 = ffs(samples) - 1;
struct radv_meta_state *meta_state = &cmd_buffer->device->meta_state;
VkPipeline pipeline_h;

if (!image->surface.htile_size)
return;
@@ -318,6 +319,17 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,

radv_meta_save_graphics_reset_vport_scissor_novertex(&saved_state, cmd_buffer);

switch (op) {
case DEPTH_DECOMPRESS:
pipeline_h = meta_state->depth_decomp[samples_log2].decompress_pipeline;
break;
case DEPTH_RESUMMARIZE:
pipeline_h = meta_state->depth_decomp[samples_log2].resummarize_pipeline;
break;
default:
unreachable("unknown operation");
}

for (uint32_t layer = 0; layer < radv_get_layerCount(image, subresourceRange); layer++) {
struct radv_image_view iview;

@@ -372,18 +384,6 @@ static void radv_process_depth_image_inplace(struct radv_cmd_buffer *cmd_buffer,
},
VK_SUBPASS_CONTENTS_INLINE);

VkPipeline pipeline_h;
switch (op) {
case DEPTH_DECOMPRESS:
pipeline_h = meta_state->depth_decomp[samples_log2].decompress_pipeline;
break;
case DEPTH_RESUMMARIZE:
pipeline_h = meta_state->depth_decomp[samples_log2].resummarize_pipeline;
break;
default:
unreachable("unknown operation");
}

emit_depth_decomp(cmd_buffer, &(VkExtent2D){width, height}, pipeline_h);
radv_CmdEndRenderPass(cmd_buffer_h);


Loading…
Отказ
Запис