From: Alyssa Rosenzweig Date: Tue, 3 Mar 2020 00:47:11 +0000 (-0500) Subject: pan/bi: Stub out new compiler X-Git-Tag: upstream/20.1.8~2888 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eceaea43e37e30e9bf7e5059d17cec445e59fbd3;p=platform%2Fupstream%2Fmesa.git pan/bi: Stub out new compiler Just enough to pipe in the NIR shader. Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/Makefile.sources b/src/panfrost/Makefile.sources index 1a912a7..93b7418 100644 --- a/src/panfrost/Makefile.sources +++ b/src/panfrost/Makefile.sources @@ -1,6 +1,8 @@ bifrost_FILES := \ bifrost/bifrost.h \ + bifrost/bifrost_compile.c \ bifrost/bifrost_compile.h \ + bifrost/compiler.h \ bifrost/cmdline.c \ bifrost/disassemble.c \ bifrost/disassemble.h diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c new file mode 100644 index 0000000..f126123 --- /dev/null +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2020 Collabora Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Authors (Collabora): + * Alyssa Rosenzweig + */ + +#include "main/mtypes.h" +#include "compiler/glsl/glsl_to_nir.h" +#include "compiler/nir_types.h" +#include "main/imports.h" +#include "compiler/nir/nir_builder.h" + +#include "disassemble.h" +#include "bifrost_compile.h" +#include "compiler.h" + +void +bifrost_compile_shader_nir(nir_shader *nir, bifrost_program *program) +{ + bi_context *ctx = rzalloc(NULL, bi_context); + ctx->nir = nir; + + nir_print_shader(nir, stdout); + + ralloc_free(ctx); +} diff --git a/src/panfrost/bifrost/bifrost_compile.h b/src/panfrost/bifrost/bifrost_compile.h index 8c8c5e9..8b63af0 100644 --- a/src/panfrost/bifrost/bifrost_compile.h +++ b/src/panfrost/bifrost/bifrost_compile.h @@ -31,8 +31,7 @@ typedef struct { struct util_dynarray compiled; } bifrost_program; -int -bifrost_compile_shader_nir(nir_shader *nir, bifrost_program *program); +void bifrost_compile_shader_nir(nir_shader *nir, bifrost_program *program); static const nir_shader_compiler_options bifrost_nir_options = { .lower_ffma = true, diff --git a/src/panfrost/bifrost/cmdline.c b/src/panfrost/bifrost/cmdline.c index f9094d5..fdeab59 100644 --- a/src/panfrost/bifrost/cmdline.c +++ b/src/panfrost/bifrost/cmdline.c @@ -65,7 +65,7 @@ compile_shader(char **argv) NIR_PASS_V(nir[i], gl_nir_lower_buffers, prog); NIR_PASS_V(nir[i], nir_opt_constant_folding); - //bifrost_compile_shader_nir(nir[i], &compiled); + bifrost_compile_shader_nir(nir[i], &compiled); } } diff --git a/src/panfrost/bifrost/compiler.h b/src/panfrost/bifrost/compiler.h new file mode 100644 index 0000000..5c339dd --- /dev/null +++ b/src/panfrost/bifrost/compiler.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2020 Collabora Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Authors (Collabora): + * Alyssa Rosenzweig + */ + +#ifndef __BIFROST_COMPILER_H +#define __BIFROST_COMPILER_H + +typedef struct { + nir_shader *nir; +} bi_context; + +#endif diff --git a/src/panfrost/bifrost/meson.build b/src/panfrost/bifrost/meson.build index 35c9c93..db17294 100644 --- a/src/panfrost/bifrost/meson.build +++ b/src/panfrost/bifrost/meson.build @@ -21,6 +21,7 @@ libpanfrost_bifrost_files = files( 'disassemble.c', + 'bifrost_compile.c', ) libpanfrost_bifrost = static_library(