summaryrefslogtreecommitdiffstats
path: root/src/panfrost/midgard
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2020-04-08 13:54:17 -0400
committerTomeu Vizoso <[email protected]>2020-04-10 16:53:51 +0200
commitd10423989ebace442cdbd8016188b44c663883c3 (patch)
tree708d60212b75c653ec74e74cbbb1063f9ffa4fd1 /src/panfrost/midgard
parent776697dd349e4d5644a72fd293d8e7e436e6184c (diff)
panfrost: Move varying linking to cmdstream
This isn't ISA/compiler specific, it's just looking at the NIR. So let's move it from midgard to pan_assemble.c so it runs for Bifrost too. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4505>
Diffstat (limited to 'src/panfrost/midgard')
-rw-r--r--src/panfrost/midgard/midgard_compile.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c
index 6986de29950..d23d53bec91 100644
--- a/src/panfrost/midgard/midgard_compile.c
+++ b/src/panfrost/midgard/midgard_compile.c
@@ -2534,58 +2534,6 @@ midgard_get_first_tag_from_block(compiler_context *ctx, unsigned block_idx)
return 1;
}
-static unsigned
-pan_format_from_nir_base(nir_alu_type base)
-{
- switch (base) {
- case nir_type_int:
- return MALI_FORMAT_SINT;
- case nir_type_uint:
- case nir_type_bool:
- return MALI_FORMAT_UINT;
- case nir_type_float:
- return MALI_CHANNEL_FLOAT;
- default:
- unreachable("Invalid base");
- }
-}
-
-static unsigned
-pan_format_from_nir_size(nir_alu_type base, unsigned size)
-{
- if (base == nir_type_float) {
- switch (size) {
- case 16: return MALI_FORMAT_SINT;
- case 32: return MALI_FORMAT_UNORM;
- default:
- unreachable("Invalid float size for format");
- }
- } else {
- switch (size) {
- case 1:
- case 8: return MALI_CHANNEL_8;
- case 16: return MALI_CHANNEL_16;
- case 32: return MALI_CHANNEL_32;
- default:
- unreachable("Invalid int size for format");
- }
- }
-}
-
-static enum mali_format
-pan_format_from_glsl(const struct glsl_type *type)
-{
- enum glsl_base_type glsl_base = glsl_get_base_type(glsl_without_array(type));
- nir_alu_type t = nir_get_nir_type_for_glsl_base_type(glsl_base);
-
- unsigned base = nir_alu_type_get_base_type(t);
- unsigned size = nir_alu_type_get_type_size(t);
-
- return pan_format_from_nir_base(base) |
- pan_format_from_nir_size(base, size) |
- MALI_NR_CHANNELS(4);
-}
-
/* For each fragment writeout instruction, generate a writeout loop to
* associate with it */
@@ -2643,21 +2591,6 @@ midgard_compile_shader_nir(nir_shader *nir, panfrost_program *program, bool is_b
ctx->ssa_constants = _mesa_hash_table_u64_create(NULL);
ctx->hash_to_temp = _mesa_hash_table_u64_create(NULL);
- /* Record the varying mapping for the command stream's bookkeeping */
-
- struct exec_list *varyings =
- ctx->stage == MESA_SHADER_VERTEX ? &nir->outputs : &nir->inputs;
-
- nir_foreach_variable(var, varyings) {
- unsigned loc = var->data.driver_location;
- unsigned sz = glsl_type_size(var->type, FALSE);
-
- for (int c = 0; c < sz; ++c) {
- program->varyings[loc + c] = var->data.location + c;
- program->varying_type[loc + c] = pan_format_from_glsl(var->type);
- }
- }
-
/* Lower gl_Position pre-optimisation, but after lowering vars to ssa
* (so we don't accidentally duplicate the epilogue since mesa/st has
* messed with our I/O quite a bit already) */