Module: Mesa Branch: staging/20.0 Commit: 0942c4158247f16152375d180a8c2bc4f8d8d9d2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0942c4158247f16152375d180a8c2bc4f8d8d9d2
Author: Marek Olšák <[email protected]> Date: Mon Feb 24 18:16:48 2020 -0500 tgsi_to_nir: set num_images and num_samplers with holes correctly This fixes the copy_uv shader from st/omx, because it uses image 0 and 2 and image 1 isn't declared. Cc: 20.0 <[email protected]> Reviewed-by: Rob Clark <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3936> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3936> (cherry picked from commit c798aae7390f20e74b8ebb09113e806b410ac7a7) --- .pick_status.json | 2 +- src/gallium/auxiliary/nir/tgsi_to_nir.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index f1f8086b0b8..cfb97d06089 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1219,7 +1219,7 @@ "description": "tgsi_to_nir: set num_images and num_samplers with holes correctly", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c index bd59949da5c..398ac813f15 100644 --- a/src/gallium/auxiliary/nir/tgsi_to_nir.c +++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c @@ -72,6 +72,10 @@ struct ttn_compile { nir_variable *images[PIPE_MAX_SHADER_IMAGES]; nir_variable *ssbo[PIPE_MAX_SHADER_BUFFERS]; + unsigned num_samplers; + unsigned num_images; + unsigned num_msaa_images; + nir_variable *input_var_face; nir_variable *input_var_position; nir_variable *input_var_point; @@ -1325,7 +1329,9 @@ get_sampler_var(struct ttn_compile *c, int binding, "sampler"); var->data.binding = binding; var->data.explicit_binding = true; + c->samplers[binding] = var; + c->num_samplers = MAX2(c->num_samplers, binding + 1); /* Record textures used */ unsigned mask = 1 << binding; @@ -1357,7 +1363,11 @@ get_image_var(struct ttn_compile *c, int binding, var->data.explicit_binding = true; var->data.access = access; var->data.image.format = format; + c->images[binding] = var; + c->num_images = MAX2(c->num_images, binding + 1); + if (dim == GLSL_SAMPLER_DIM_MS) + c->num_msaa_images = c->num_images; } return var; @@ -2656,6 +2666,10 @@ ttn_finalize_nir(struct ttn_compile *c, struct pipe_screen *screen) nir_shader_gather_info(nir, c->build.impl); } + nir->info.num_images = c->num_images; + nir->info.num_textures = c->num_samplers; + nir->info.last_msaa_image = c->num_msaa_images - 1; + nir_validate_shader(nir, "TTN: after all optimizations"); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
