diff --git a/.pick_status.json b/.pick_status.json index 853ccb97596..1c7a192c14b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -24,7 +24,7 @@ "description": "zink: run sparse lowering after all optimization passes", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "0d652c0c8db33ff80d16f30b2d2e8f4413946338", "notes": null diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index d586cb9037a..5c3c1f1ed7d 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -4021,6 +4021,7 @@ zink_shader_compile(struct zink_screen *screen, bool can_shobj, struct zink_shad zs->can_inline = false; } else if (need_optimize) optimize_nir(nir, zs, true); + NIR_PASS_V(nir, lower_sparse); struct zink_shader_object obj = compile_module(screen, zs, nir, can_shobj, pg); ralloc_free(nir); @@ -5399,7 +5400,6 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir) NIR_PASS_V(nir, lower_basevertex); NIR_PASS_V(nir, lower_baseinstance); - NIR_PASS_V(nir, lower_sparse); NIR_PASS_V(nir, split_bitfields); NIR_PASS_V(nir, nir_lower_frexp); /* TODO: Use the spirv instructions for this. */