Mesa (master): zink: stop allocating xfb slot map
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Mar 9 03:01:22 UTC 2021
Module: Mesa
Branch: master
Commit: 7cef91dd43671f8eada82778c94dbed7386cf0e3
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7cef91dd43671f8eada82778c94dbed7386cf0e3
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Wed Feb 24 14:57:03 2021 -0500
zink: stop allocating xfb slot map
this can just be inlined since it's a small static size
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9271>
---
src/gallium/drivers/zink/zink_compiler.c | 6 ++----
src/gallium/drivers/zink/zink_compiler.h | 3 ++-
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index db42e2c73af..620bc434618 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -422,6 +422,7 @@ update_so_info(struct zink_shader *sh,
/* Map Gallium's condensed "slots" back to real VARYING_SLOT_* enums */
sh->streamout.so_info_slots[i] = reverse_map[output->register_index];
}
+ sh->streamout.have_xfb = true;
}
VkShaderModule
@@ -434,7 +435,7 @@ zink_shader_compile(struct zink_screen *screen, struct zink_shader *zs, struct z
/* TODO: use a separate mem ctx here for ralloc */
if (zs->nir->info.stage < MESA_SHADER_FRAGMENT) {
if (zink_vs_key(key)->last_vertex_stage) {
- if (zs->streamout.so_info_slots)
+ if (zs->streamout.have_xfb)
streamout = &zs->streamout;
if (!zink_vs_key(key)->clip_halfz) {
@@ -664,8 +665,6 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
ret->nir = nir;
if (so_info) {
memcpy(&ret->streamout.so_info, so_info, sizeof(struct pipe_stream_output_info));
- ret->streamout.so_info_slots = malloc(so_info->num_outputs * sizeof(unsigned int));
- assert(ret->streamout.so_info_slots);
update_so_info(ret, nir->info.outputs_written, have_psiz);
}
@@ -693,7 +692,6 @@ zink_shader_free(struct zink_context *ctx, struct zink_shader *shader)
}
}
_mesa_set_destroy(shader->programs, NULL);
- free(shader->streamout.so_info_slots);
ralloc_free(shader->nir);
FREE(shader);
}
diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h
index 80b2b88fdf3..e61d8ae45b7 100644
--- a/src/gallium/drivers/zink/zink_compiler.h
+++ b/src/gallium/drivers/zink/zink_compiler.h
@@ -50,7 +50,8 @@ struct set;
struct tgsi_token;
struct zink_so_info {
struct pipe_stream_output_info so_info;
- unsigned *so_info_slots;
+ unsigned so_info_slots[PIPE_MAX_SO_OUTPUTS];
+ bool have_xfb;
};
More information about the mesa-commit
mailing list