amd: lower subdword UBO loads in NIR

This fixes broken subdword UBO loads with LLVM.

It's only needed for LLVM, but it's done for both LLVM and ACO because
the pass can be fully validated only with ACO and the Vulkan CTS right now.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19399>
This commit is contained in:
Marek Olšák
2022-10-29 17:29:37 -04:00
committed by Marge Bot
parent 1a424fee4a
commit 82919e2dcb
3 changed files with 17 additions and 22 deletions

View File

@@ -3182,6 +3182,12 @@ radv_postprocess_nir(struct radv_pipeline *pipeline,
}
}
NIR_PASS(_, stage->nir, ac_nir_lower_subdword_loads,
(ac_nir_lower_subdword_options) {
.modes_1_comp = nir_var_mem_ubo,
.modes_N_comps = nir_var_mem_ubo
});
progress = false;
NIR_PASS(progress, stage->nir, nir_vk_lower_ycbcr_tex, ycbcr_conversion_lookup, pipeline_layout);
/* Gather info in the case that nir_vk_lower_ycbcr_tex might have emitted resinfo instructions. */