intel: rework CL pre-compile

Stolen from asahi_clc :)

We drop the nasty LLVM17+ workaround code (Thanks Alyssa!)

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Dylan Baker <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33014>
This commit is contained in:
Lionel Landwerlin
2025-01-14 17:20:59 +02:00
committed by Marge Bot
parent 5adac011b8
commit 6768eb31e5
7 changed files with 233 additions and 601 deletions
@@ -325,11 +325,9 @@ iris_destroy_program_cache(struct iris_context *ice)
static void
link_libintel_shaders(nir_shader *nir,
const struct intel_device_info *devinfo,
const uint32_t *spv_code, uint32_t spv_size)
{
nir_shader *libintel = brw_nir_from_spirv(nir, devinfo->ver,
spv_code, spv_size, true);
nir_shader *libintel = brw_nir_from_spirv(nir, spv_code, spv_size);
nir_link_shader_functions(nir, libintel);
NIR_PASS_V(nir, nir_inline_functions);
@@ -342,6 +340,7 @@ link_libintel_shaders(nir_shader *nir,
nir_var_shader_temp | nir_var_function_temp | nir_var_mem_shared |
nir_var_mem_global,
nir_address_format_62bit_generic);
NIR_PASS_V(nir, nir_lower_scratch_to_var);
}
void
@@ -378,7 +377,7 @@ iris_ensure_indirect_generation_shader(struct iris_batch *batch)
nir_shader *nir = b.shader;
link_libintel_shaders(nir, screen->devinfo, spv_code, spv_size);
link_libintel_shaders(nir, spv_code, spv_size);
NIR_PASS_V(nir, nir_lower_vars_to_ssa);
NIR_PASS_V(nir, nir_opt_cse);