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>
This commit is contained in:
parent
507df35939
commit
b269ed3d94
|
@ -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 = image->info.samples;
|
||||||
uint32_t samples_log2 = ffs(samples) - 1;
|
uint32_t samples_log2 = ffs(samples) - 1;
|
||||||
struct radv_meta_state *meta_state = &cmd_buffer->device->meta_state;
|
struct radv_meta_state *meta_state = &cmd_buffer->device->meta_state;
|
||||||
|
VkPipeline pipeline_h;
|
||||||
|
|
||||||
if (!image->surface.htile_size)
|
if (!image->surface.htile_size)
|
||||||
return;
|
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);
|
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++) {
|
for (uint32_t layer = 0; layer < radv_get_layerCount(image, subresourceRange); layer++) {
|
||||||
struct radv_image_view iview;
|
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);
|
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);
|
emit_depth_decomp(cmd_buffer, &(VkExtent2D){width, height}, pipeline_h);
|
||||||
radv_CmdEndRenderPass(cmd_buffer_h);
|
radv_CmdEndRenderPass(cmd_buffer_h);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue