From 9a73afb34ddca3bdba4bc24f5ec0613e440d12ee Mon Sep 17 00:00:00 2001 From: Zachary Anderson Date: Sun, 5 Jun 2022 08:51:13 -0700 Subject: [PATCH] Use impellerc for engine FragmentProgram unit tests (flutter/engine#33824) --- .../src/flutter/impeller/compiler/compiler.cc | 8 +- engine/src/flutter/lib/spirv/test/BUILD.gn | 8 -- .../lib/spirv/test/general_shaders/BUILD.gn | 24 +++--- ...n_sampler.glsl => blue_green_sampler.frag} | 0 ...iforms.glsl => children_and_uniforms.frag} | 0 .../{functions.glsl => functions.frag} | 0 .../{simple.glsl => simple.frag} | 0 .../{uniforms.glsl => uniforms.frag} | 0 .../flutter/lib/spirv/test/glsl_to_spirv.cc | 66 --------------- .../{10_fract.glsl => 10_fract.frag} | 0 .../{11_radians.glsl => 11_radians.frag} | 0 .../{12_degrees.glsl => 12_degrees.frag} | 0 .../{13_sin.glsl => 13_sin.frag} | 0 .../{14_cos.glsl => 14_cos.frag} | 0 .../{15_tan.glsl => 15_tan.frag} | 0 .../{16_asin.glsl => 16_asin.frag} | 0 .../{17_acos.glsl => 17_acos.frag} | 0 .../{18_atan.glsl => 18_atan.frag} | 0 .../{25_atan2.glsl => 25_atan2.frag} | 0 .../{26_pow.glsl => 26_pow.frag} | 0 .../{27_exp.glsl => 27_exp.frag} | 0 .../{28_log.glsl => 28_log.frag} | 0 .../{29_exp2.glsl => 29_exp2.frag} | 0 .../{30_log2.glsl => 30_log2.frag} | 0 .../{31_sqrt.glsl => 31_sqrt.frag} | 0 ...2_inversesqrt.glsl => 32_inversesqrt.frag} | 0 .../{37_fmin.glsl => 37_fmin.frag} | 0 .../{40_fmax.glsl => 40_fmax.frag} | 0 .../{43_fclamp.glsl => 43_fclamp.frag} | 0 .../{46_fmix.glsl => 46_fmix.frag} | 0 .../{48_step.glsl => 48_step.frag} | 0 ...{49_smoothstep.glsl => 49_smoothstep.frag} | 0 .../{4_abs.glsl => 4_abs.frag} | 0 .../{66_length.glsl => 66_length.frag} | 0 .../{67_distance.glsl => 67_distance.frag} | 0 .../{68_cross.glsl => 68_cross.frag} | 0 .../{69_normalize.glsl => 69_normalize.frag} | 0 .../{6_sign.glsl => 6_sign.frag} | 0 ...0_faceforward.glsl => 70_faceforward.frag} | 0 .../{71_reflect.glsl => 71_reflect.frag} | 0 .../{8_floor.glsl => 8_floor.frag} | 0 .../{9_ceil.glsl => 9_ceil.frag} | 0 .../test/supported_glsl_op_shaders/BUILD.gn | 80 +++++++++---------- ...{127_OpFNegate.glsl => 127_OpFNegate.frag} | 0 .../{129_OpFAdd.glsl => 129_OpFAdd.frag} | 0 .../{131_OpFSub.glsl => 131_OpFSub.frag} | 0 ...alar.glsl => 142_OpVectorTimesScalar.frag} | 0 ...alar.glsl => 143_OpMatrixTimesScalar.frag} | 0 ...trix.glsl => 144_OpVectorTimesMatrix.frag} | 0 ...ctor.glsl => 145_OpMatrixTimesVector.frag} | 0 ...trix.glsl => 146_OpMatrixTimesMatrix.frag} | 0 .../{148_OpDot.glsl => 148_OpDot.frag} | 0 ...icalEqual.glsl => 164_OpLogicalEqual.frag} | 0 ...tEqual.glsl => 165_OpLogicalNotEqual.frag} | 0 ..._OpLogicalOr.glsl => 166_OpLogicalOr.frag} | 0 ...pLogicalAnd.glsl => 167_OpLogicalAnd.frag} | 0 ...pLogicalNot.glsl => 168_OpLogicalNot.frag} | 0 ..._OpFOrdEqual.glsl => 180_OpFOrdEqual.frag} | 0 ...otEqual.glsl => 183_OpFUnordNotEqual.frag} | 0 ...dLessThan.glsl => 184_OpFOrdLessThan.frag} | 0 ...erThan.glsl => 186_OpFOrdGreaterThan.frag} | 0 ...qual.glsl => 188_OpFOrdLessThanEqual.frag} | 0 ...l.glsl => 190_OpFOrdGreaterThanEqual.frag} | 0 ...{19_OpTypeVoid.glsl => 19_OpTypeVoid.frag} | 0 ...{20_OpTypeBool.glsl => 20_OpTypeBool.frag} | 0 .../{21_OpTypeInt.glsl => 21_OpTypeInt.frag} | 0 ...2_OpTypeFloat.glsl => 22_OpTypeFloat.frag} | 0 ...OpTypeVector.glsl => 23_OpTypeVector.frag} | 0 ..._OpLoopMerge.glsl => 246_OpLoopMerge.frag} | 0 ...OpTypeMatrix.glsl => 24_OpTypeMatrix.frag} | 0 ...onal.glsl => 250_OpBranchConditional.frag} | 0 ...peFunction.glsl => 33_OpTypeFunction.frag} | 0 .../spirv/test/supported_op_shaders/BUILD.gn | 72 ++++++++--------- .../testing/dart/fragment_shader_test.dart | 18 ++--- 74 files changed, 98 insertions(+), 178 deletions(-) rename engine/src/flutter/lib/spirv/test/general_shaders/{blue_green_sampler.glsl => blue_green_sampler.frag} (100%) rename engine/src/flutter/lib/spirv/test/general_shaders/{children_and_uniforms.glsl => children_and_uniforms.frag} (100%) rename engine/src/flutter/lib/spirv/test/general_shaders/{functions.glsl => functions.frag} (100%) rename engine/src/flutter/lib/spirv/test/general_shaders/{simple.glsl => simple.frag} (100%) rename engine/src/flutter/lib/spirv/test/general_shaders/{uniforms.glsl => uniforms.frag} (100%) delete mode 100644 engine/src/flutter/lib/spirv/test/glsl_to_spirv.cc rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{10_fract.glsl => 10_fract.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{11_radians.glsl => 11_radians.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{12_degrees.glsl => 12_degrees.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{13_sin.glsl => 13_sin.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{14_cos.glsl => 14_cos.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{15_tan.glsl => 15_tan.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{16_asin.glsl => 16_asin.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{17_acos.glsl => 17_acos.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{18_atan.glsl => 18_atan.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{25_atan2.glsl => 25_atan2.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{26_pow.glsl => 26_pow.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{27_exp.glsl => 27_exp.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{28_log.glsl => 28_log.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{29_exp2.glsl => 29_exp2.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{30_log2.glsl => 30_log2.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{31_sqrt.glsl => 31_sqrt.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{32_inversesqrt.glsl => 32_inversesqrt.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{37_fmin.glsl => 37_fmin.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{40_fmax.glsl => 40_fmax.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{43_fclamp.glsl => 43_fclamp.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{46_fmix.glsl => 46_fmix.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{48_step.glsl => 48_step.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{49_smoothstep.glsl => 49_smoothstep.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{4_abs.glsl => 4_abs.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{66_length.glsl => 66_length.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{67_distance.glsl => 67_distance.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{68_cross.glsl => 68_cross.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{69_normalize.glsl => 69_normalize.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{6_sign.glsl => 6_sign.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{70_faceforward.glsl => 70_faceforward.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{71_reflect.glsl => 71_reflect.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{8_floor.glsl => 8_floor.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/{9_ceil.glsl => 9_ceil.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{127_OpFNegate.glsl => 127_OpFNegate.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{129_OpFAdd.glsl => 129_OpFAdd.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{131_OpFSub.glsl => 131_OpFSub.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{142_OpVectorTimesScalar.glsl => 142_OpVectorTimesScalar.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{143_OpMatrixTimesScalar.glsl => 143_OpMatrixTimesScalar.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{144_OpVectorTimesMatrix.glsl => 144_OpVectorTimesMatrix.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{145_OpMatrixTimesVector.glsl => 145_OpMatrixTimesVector.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{146_OpMatrixTimesMatrix.glsl => 146_OpMatrixTimesMatrix.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{148_OpDot.glsl => 148_OpDot.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{164_OpLogicalEqual.glsl => 164_OpLogicalEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{165_OpLogicalNotEqual.glsl => 165_OpLogicalNotEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{166_OpLogicalOr.glsl => 166_OpLogicalOr.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{167_OpLogicalAnd.glsl => 167_OpLogicalAnd.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{168_OpLogicalNot.glsl => 168_OpLogicalNot.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{180_OpFOrdEqual.glsl => 180_OpFOrdEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{183_OpFUnordNotEqual.glsl => 183_OpFUnordNotEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{184_OpFOrdLessThan.glsl => 184_OpFOrdLessThan.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{186_OpFOrdGreaterThan.glsl => 186_OpFOrdGreaterThan.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{188_OpFOrdLessThanEqual.glsl => 188_OpFOrdLessThanEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{190_OpFOrdGreaterThanEqual.glsl => 190_OpFOrdGreaterThanEqual.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{19_OpTypeVoid.glsl => 19_OpTypeVoid.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{20_OpTypeBool.glsl => 20_OpTypeBool.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{21_OpTypeInt.glsl => 21_OpTypeInt.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{22_OpTypeFloat.glsl => 22_OpTypeFloat.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{23_OpTypeVector.glsl => 23_OpTypeVector.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{246_OpLoopMerge.glsl => 246_OpLoopMerge.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{24_OpTypeMatrix.glsl => 24_OpTypeMatrix.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{250_OpBranchConditional.glsl => 250_OpBranchConditional.frag} (100%) rename engine/src/flutter/lib/spirv/test/supported_op_shaders/{33_OpTypeFunction.glsl => 33_OpTypeFunction.frag} (100%) diff --git a/engine/src/flutter/impeller/compiler/compiler.cc b/engine/src/flutter/impeller/compiler/compiler.cc index 1d2b14e9e65..ed4d9c1eef7 100644 --- a/engine/src/flutter/impeller/compiler/compiler.cc +++ b/engine/src/flutter/impeller/compiler/compiler.cc @@ -138,8 +138,14 @@ Compiler::Compiler(const fml::Mapping& source_mapping, shaderc_spirv_version::shaderc_spirv_version_1_3); break; case TargetPlatform::kFlutterSPIRV: + // With any optimization level above 'zero' enabled, shaderc will emit + // ops that are not supported by the Engine's SPIR-V -> SkSL transpiler. + // In particular, with 'shaderc_optimization_level_size' enabled, it will + // generate OpPhi (opcode 245) for test 246_OpLoopMerge.frag instead of + // the OpLoopMerge op expected by that test. + // See: https://github.com/flutter/flutter/issues/105396. spirv_options.SetOptimizationLevel( - shaderc_optimization_level::shaderc_optimization_level_size); + shaderc_optimization_level::shaderc_optimization_level_zero); spirv_options.SetTargetEnvironment( shaderc_target_env::shaderc_target_env_opengl, shaderc_env_version::shaderc_env_version_opengl_4_5); diff --git a/engine/src/flutter/lib/spirv/test/BUILD.gn b/engine/src/flutter/lib/spirv/test/BUILD.gn index bcf82bfc5a3..421e1fd6aba 100644 --- a/engine/src/flutter/lib/spirv/test/BUILD.gn +++ b/engine/src/flutter/lib/spirv/test/BUILD.gn @@ -15,12 +15,4 @@ if (enable_unittests) { "//third_party/swiftshader_flutter:spvtools_val", ] } - - executable("glsl_to_spirv") { - sources = [ "glsl_to_spirv.cc" ] - - configs += [ "//third_party/shaderc_flutter:shaderc_util_config" ] - - deps = [ "//third_party/shaderc_flutter" ] - } } diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/BUILD.gn b/engine/src/flutter/lib/spirv/test/general_shaders/BUILD.gn index 01ceb01398d..917f1d60d9c 100644 --- a/engine/src/flutter/lib/spirv/test/general_shaders/BUILD.gn +++ b/engine/src/flutter/lib/spirv/test/general_shaders/BUILD.gn @@ -3,25 +3,21 @@ # found in the LICENSE file. import("//build/compiled_action.gni") +import("//flutter/impeller/tools/impeller.gni") import("//flutter/testing/testing.gni") if (enable_unittests) { - compiled_action_foreach("spirv_compile_general_shaders") { - tool = "//flutter/lib/spirv/test:glsl_to_spirv" - - sources = [ - "blue_green_sampler.glsl", - "children_and_uniforms.glsl", - "functions.glsl", - "simple.glsl", - "uniforms.glsl", + impellerc("spirv_compile_general_shaders") { + shaders = [ + "blue_green_sampler.frag", + "children_and_uniforms.frag", + "functions.frag", + "simple.frag", + "uniforms.frag", ] - outputs = [ "$target_gen_dir/{{source_name_part}}.spv" ] + sl_file_extension = ".spirv" - args = [ - "{{source}}", - rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.spv", - ] + shader_target_flag = "--flutter-spirv" } } diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/blue_green_sampler.glsl b/engine/src/flutter/lib/spirv/test/general_shaders/blue_green_sampler.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/general_shaders/blue_green_sampler.glsl rename to engine/src/flutter/lib/spirv/test/general_shaders/blue_green_sampler.frag diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/children_and_uniforms.glsl b/engine/src/flutter/lib/spirv/test/general_shaders/children_and_uniforms.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/general_shaders/children_and_uniforms.glsl rename to engine/src/flutter/lib/spirv/test/general_shaders/children_and_uniforms.frag diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/functions.glsl b/engine/src/flutter/lib/spirv/test/general_shaders/functions.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/general_shaders/functions.glsl rename to engine/src/flutter/lib/spirv/test/general_shaders/functions.frag diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/simple.glsl b/engine/src/flutter/lib/spirv/test/general_shaders/simple.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/general_shaders/simple.glsl rename to engine/src/flutter/lib/spirv/test/general_shaders/simple.frag diff --git a/engine/src/flutter/lib/spirv/test/general_shaders/uniforms.glsl b/engine/src/flutter/lib/spirv/test/general_shaders/uniforms.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/general_shaders/uniforms.glsl rename to engine/src/flutter/lib/spirv/test/general_shaders/uniforms.frag diff --git a/engine/src/flutter/lib/spirv/test/glsl_to_spirv.cc b/engine/src/flutter/lib/spirv/test/glsl_to_spirv.cc deleted file mode 100644 index 25a05cf2e6f..00000000000 --- a/engine/src/flutter/lib/spirv/test/glsl_to_spirv.cc +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include -#include -#include -#include -#include - -#include "third_party/shaderc/libshaderc/include/shaderc/shaderc.hpp" - -namespace fs = std::filesystem; - -int main(int argc, const char* argv[]) { - if (argc != 3) { - std::cerr << "Invalid argument count." << std::endl; - return -1; - } - - fs::path path(argv[1]); - if (!fs::is_regular_file(path)) { - std::cerr << "File is not a regular file." << std::endl; - return -1; - } - - std::fstream input; - input.open(argv[1]); - input.seekg(0, std::ios::end); - std::streampos size = input.tellg(); - input.seekg(0, std::ios::beg); - std::vector buf(static_cast(size) + 1); - input.read(buf.data(), size); - buf[size] = 0; // make sure the string is null terminated. - input.close(); - - shaderc::Compiler compiler; - shaderc::CompileOptions options; - options.SetOptimizationLevel(shaderc_optimization_level_zero); - options.SetTargetEnvironment(shaderc_target_env_opengl, 0); - shaderc::SpvCompilationResult result = compiler.CompileGlslToSpv( - buf.data(), shaderc_glsl_default_fragment_shader, argv[1], options); - - if (result.GetCompilationStatus() != shaderc_compilation_status_success) { - std::cerr << "Failed to transpile: " + result.GetErrorMessage() << argv[1] - << std::endl; - return -1; - } - - std::vector spirv = - std::vector(result.cbegin(), result.cend()); - - std::fstream output; - output.open(argv[2], std::fstream::out | std::fstream::trunc); - - if (!output.is_open()) { - output.close(); - std::cerr << "failed to open output file" << std::endl; - return -1; - } - - output.write(reinterpret_cast(spirv.data()), - sizeof(uint32_t) * spirv.size()); - output.close(); - return 0; -} diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/10_fract.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/10_fract.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/10_fract.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/10_fract.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/11_radians.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/11_radians.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/11_radians.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/11_radians.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/12_degrees.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/12_degrees.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/12_degrees.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/12_degrees.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/13_sin.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/13_sin.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/13_sin.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/13_sin.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/14_cos.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/14_cos.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/14_cos.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/14_cos.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/15_tan.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/15_tan.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/15_tan.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/15_tan.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/16_asin.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/16_asin.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/16_asin.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/16_asin.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/17_acos.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/17_acos.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/17_acos.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/17_acos.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/18_atan.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/18_atan.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/18_atan.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/18_atan.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/25_atan2.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/25_atan2.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/25_atan2.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/25_atan2.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/26_pow.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/26_pow.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/26_pow.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/26_pow.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/27_exp.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/27_exp.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/27_exp.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/27_exp.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/28_log.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/28_log.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/28_log.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/28_log.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/29_exp2.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/29_exp2.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/29_exp2.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/29_exp2.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/30_log2.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/30_log2.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/30_log2.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/30_log2.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/31_sqrt.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/31_sqrt.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/31_sqrt.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/31_sqrt.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/32_inversesqrt.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/32_inversesqrt.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/32_inversesqrt.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/32_inversesqrt.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/37_fmin.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/37_fmin.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/37_fmin.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/37_fmin.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/40_fmax.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/40_fmax.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/40_fmax.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/40_fmax.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/43_fclamp.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/43_fclamp.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/43_fclamp.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/43_fclamp.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/46_fmix.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/46_fmix.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/46_fmix.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/46_fmix.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/48_step.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/48_step.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/48_step.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/48_step.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/49_smoothstep.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/49_smoothstep.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/49_smoothstep.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/49_smoothstep.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/4_abs.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/4_abs.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/4_abs.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/4_abs.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/66_length.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/66_length.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/66_length.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/66_length.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/67_distance.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/67_distance.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/67_distance.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/67_distance.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/68_cross.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/68_cross.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/68_cross.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/68_cross.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/69_normalize.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/69_normalize.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/69_normalize.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/69_normalize.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/6_sign.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/6_sign.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/6_sign.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/6_sign.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/70_faceforward.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/70_faceforward.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/70_faceforward.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/70_faceforward.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/71_reflect.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/71_reflect.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/71_reflect.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/71_reflect.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/8_floor.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/8_floor.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/8_floor.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/8_floor.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/9_ceil.glsl b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/9_ceil.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/9_ceil.glsl rename to engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/9_ceil.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/BUILD.gn b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/BUILD.gn index 88c806a28a1..0c14ad83fdf 100644 --- a/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/BUILD.gn +++ b/engine/src/flutter/lib/spirv/test/supported_glsl_op_shaders/BUILD.gn @@ -3,53 +3,49 @@ # found in the LICENSE file. import("//build/compiled_action.gni") +import("//flutter/impeller/tools/impeller.gni") import("//flutter/testing/testing.gni") if (enable_unittests) { - compiled_action_foreach("spirv_compile_supported_glsl_shaders") { - tool = "//flutter/lib/spirv/test:glsl_to_spirv" - - sources = [ - "10_fract.glsl", - "11_radians.glsl", - "12_degrees.glsl", - "13_sin.glsl", - "14_cos.glsl", - "15_tan.glsl", - "16_asin.glsl", - "17_acos.glsl", - "18_atan.glsl", - "25_atan2.glsl", - "26_pow.glsl", - "27_exp.glsl", - "28_log.glsl", - "29_exp2.glsl", - "30_log2.glsl", - "31_sqrt.glsl", - "32_inversesqrt.glsl", - "37_fmin.glsl", - "40_fmax.glsl", - "43_fclamp.glsl", - "46_fmix.glsl", - "48_step.glsl", - "49_smoothstep.glsl", - "4_abs.glsl", - "66_length.glsl", - "67_distance.glsl", - "68_cross.glsl", - "69_normalize.glsl", - "6_sign.glsl", - "70_faceforward.glsl", - "71_reflect.glsl", - "8_floor.glsl", - "9_ceil.glsl", + impellerc("spirv_compile_supported_glsl_shaders") { + shaders = [ + "10_fract.frag", + "11_radians.frag", + "12_degrees.frag", + "13_sin.frag", + "14_cos.frag", + "15_tan.frag", + "16_asin.frag", + "17_acos.frag", + "18_atan.frag", + "25_atan2.frag", + "26_pow.frag", + "27_exp.frag", + "28_log.frag", + "29_exp2.frag", + "30_log2.frag", + "31_sqrt.frag", + "32_inversesqrt.frag", + "37_fmin.frag", + "40_fmax.frag", + "43_fclamp.frag", + "46_fmix.frag", + "48_step.frag", + "49_smoothstep.frag", + "4_abs.frag", + "66_length.frag", + "67_distance.frag", + "68_cross.frag", + "69_normalize.frag", + "6_sign.frag", + "70_faceforward.frag", + "71_reflect.frag", + "8_floor.frag", + "9_ceil.frag", ] - outputs = [ "$target_gen_dir/{{source_name_part}}.spv" ] + sl_file_extension = ".spirv" - args = [ - "{{source}}", - rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.spv", - ] + shader_target_flag = "--flutter-spirv" } } diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/127_OpFNegate.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/127_OpFNegate.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/127_OpFNegate.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/127_OpFNegate.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/129_OpFAdd.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/129_OpFAdd.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/129_OpFAdd.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/129_OpFAdd.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/131_OpFSub.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/131_OpFSub.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/131_OpFSub.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/131_OpFSub.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/142_OpVectorTimesScalar.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/142_OpVectorTimesScalar.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/142_OpVectorTimesScalar.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/142_OpVectorTimesScalar.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/143_OpMatrixTimesScalar.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/143_OpMatrixTimesScalar.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/143_OpMatrixTimesScalar.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/143_OpMatrixTimesScalar.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/144_OpVectorTimesMatrix.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/144_OpVectorTimesMatrix.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/144_OpVectorTimesMatrix.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/144_OpVectorTimesMatrix.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/145_OpMatrixTimesVector.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/145_OpMatrixTimesVector.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/145_OpMatrixTimesVector.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/145_OpMatrixTimesVector.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/146_OpMatrixTimesMatrix.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/146_OpMatrixTimesMatrix.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/146_OpMatrixTimesMatrix.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/146_OpMatrixTimesMatrix.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/148_OpDot.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/148_OpDot.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/148_OpDot.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/148_OpDot.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/164_OpLogicalEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/164_OpLogicalEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/164_OpLogicalEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/164_OpLogicalEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/165_OpLogicalNotEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/165_OpLogicalNotEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/165_OpLogicalNotEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/165_OpLogicalNotEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/166_OpLogicalOr.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/166_OpLogicalOr.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/166_OpLogicalOr.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/166_OpLogicalOr.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/167_OpLogicalAnd.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/167_OpLogicalAnd.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/167_OpLogicalAnd.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/167_OpLogicalAnd.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/168_OpLogicalNot.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/168_OpLogicalNot.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/168_OpLogicalNot.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/168_OpLogicalNot.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/180_OpFOrdEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/180_OpFOrdEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/180_OpFOrdEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/180_OpFOrdEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/183_OpFUnordNotEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/183_OpFUnordNotEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/183_OpFUnordNotEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/183_OpFUnordNotEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/184_OpFOrdLessThan.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/184_OpFOrdLessThan.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/184_OpFOrdLessThan.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/184_OpFOrdLessThan.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/186_OpFOrdGreaterThan.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/186_OpFOrdGreaterThan.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/186_OpFOrdGreaterThan.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/186_OpFOrdGreaterThan.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/188_OpFOrdLessThanEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/188_OpFOrdLessThanEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/188_OpFOrdLessThanEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/188_OpFOrdLessThanEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/190_OpFOrdGreaterThanEqual.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/190_OpFOrdGreaterThanEqual.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/190_OpFOrdGreaterThanEqual.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/190_OpFOrdGreaterThanEqual.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/19_OpTypeVoid.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/19_OpTypeVoid.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/19_OpTypeVoid.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/19_OpTypeVoid.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/20_OpTypeBool.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/20_OpTypeBool.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/20_OpTypeBool.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/20_OpTypeBool.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/21_OpTypeInt.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/21_OpTypeInt.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/21_OpTypeInt.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/21_OpTypeInt.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/22_OpTypeFloat.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/22_OpTypeFloat.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/22_OpTypeFloat.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/22_OpTypeFloat.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/23_OpTypeVector.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/23_OpTypeVector.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/23_OpTypeVector.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/23_OpTypeVector.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/246_OpLoopMerge.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/246_OpLoopMerge.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/246_OpLoopMerge.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/246_OpLoopMerge.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/24_OpTypeMatrix.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/24_OpTypeMatrix.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/24_OpTypeMatrix.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/24_OpTypeMatrix.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/250_OpBranchConditional.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/250_OpBranchConditional.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/250_OpBranchConditional.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/250_OpBranchConditional.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/33_OpTypeFunction.glsl b/engine/src/flutter/lib/spirv/test/supported_op_shaders/33_OpTypeFunction.frag similarity index 100% rename from engine/src/flutter/lib/spirv/test/supported_op_shaders/33_OpTypeFunction.glsl rename to engine/src/flutter/lib/spirv/test/supported_op_shaders/33_OpTypeFunction.frag diff --git a/engine/src/flutter/lib/spirv/test/supported_op_shaders/BUILD.gn b/engine/src/flutter/lib/spirv/test/supported_op_shaders/BUILD.gn index bb85ce01bf9..731e7e86e91 100644 --- a/engine/src/flutter/lib/spirv/test/supported_op_shaders/BUILD.gn +++ b/engine/src/flutter/lib/spirv/test/supported_op_shaders/BUILD.gn @@ -3,49 +3,45 @@ # found in the LICENSE file. import("//build/compiled_action.gni") +import("//flutter/impeller/tools/impeller.gni") import("//flutter/testing/testing.gni") if (enable_unittests) { - compiled_action_foreach("spirv_compile_supported_op_shaders") { - tool = "//flutter/lib/spirv/test:glsl_to_spirv" - - sources = [ - "127_OpFNegate.glsl", - "129_OpFAdd.glsl", - "131_OpFSub.glsl", - "142_OpVectorTimesScalar.glsl", - "143_OpMatrixTimesScalar.glsl", - "144_OpVectorTimesMatrix.glsl", - "145_OpMatrixTimesVector.glsl", - "146_OpMatrixTimesMatrix.glsl", - "148_OpDot.glsl", - "164_OpLogicalEqual.glsl", - "165_OpLogicalNotEqual.glsl", - "166_OpLogicalOr.glsl", - "167_OpLogicalAnd.glsl", - "168_OpLogicalNot.glsl", - "180_OpFOrdEqual.glsl", - "183_OpFUnordNotEqual.glsl", - "184_OpFOrdLessThan.glsl", - "186_OpFOrdGreaterThan.glsl", - "188_OpFOrdLessThanEqual.glsl", - "190_OpFOrdGreaterThanEqual.glsl", - "19_OpTypeVoid.glsl", - "20_OpTypeBool.glsl", - "21_OpTypeInt.glsl", - "22_OpTypeFloat.glsl", - "23_OpTypeVector.glsl", - "246_OpLoopMerge.glsl", - "24_OpTypeMatrix.glsl", - "250_OpBranchConditional.glsl", - "33_OpTypeFunction.glsl", + impellerc("spirv_compile_supported_op_shaders") { + shaders = [ + "127_OpFNegate.frag", + "129_OpFAdd.frag", + "131_OpFSub.frag", + "142_OpVectorTimesScalar.frag", + "143_OpMatrixTimesScalar.frag", + "144_OpVectorTimesMatrix.frag", + "145_OpMatrixTimesVector.frag", + "146_OpMatrixTimesMatrix.frag", + "148_OpDot.frag", + "164_OpLogicalEqual.frag", + "165_OpLogicalNotEqual.frag", + "166_OpLogicalOr.frag", + "167_OpLogicalAnd.frag", + "168_OpLogicalNot.frag", + "180_OpFOrdEqual.frag", + "183_OpFUnordNotEqual.frag", + "184_OpFOrdLessThan.frag", + "186_OpFOrdGreaterThan.frag", + "188_OpFOrdLessThanEqual.frag", + "190_OpFOrdGreaterThanEqual.frag", + "19_OpTypeVoid.frag", + "20_OpTypeBool.frag", + "21_OpTypeInt.frag", + "22_OpTypeFloat.frag", + "23_OpTypeVector.frag", + "246_OpLoopMerge.frag", + "24_OpTypeMatrix.frag", + "250_OpBranchConditional.frag", + "33_OpTypeFunction.frag", ] - outputs = [ "$target_gen_dir/{{source_name_part}}.spv" ] + sl_file_extension = ".spirv" - args = [ - "{{source}}", - rebase_path(target_gen_dir, root_build_dir) + "/{{source_name_part}}.spv", - ] + shader_target_flag = "--flutter-spirv" } } diff --git a/engine/src/flutter/testing/dart/fragment_shader_test.dart b/engine/src/flutter/testing/dart/fragment_shader_test.dart index 1126378f373..4d352a9e266 100644 --- a/engine/src/flutter/testing/dart/fragment_shader_test.dart +++ b/engine/src/flutter/testing/dart/fragment_shader_test.dart @@ -24,7 +24,7 @@ void main() { }); test('simple shader renders correctly', () async { - final Uint8List shaderBytes = await spvFile('general_shaders', 'functions.spv').readAsBytes(); + final Uint8List shaderBytes = await spvFile('general_shaders', 'functions.frag.spirv').readAsBytes(); final FragmentProgram program = await FragmentProgram.compile( spirv: shaderBytes.buffer, ); @@ -35,7 +35,7 @@ void main() { }); test('shader with functions renders green', () async { - final ByteBuffer spirv = spvFile('general_shaders', 'functions.spv').readAsBytesSync().buffer; + final ByteBuffer spirv = spvFile('general_shaders', 'functions.frag.spirv').readAsBytesSync().buffer; final FragmentProgram program = await FragmentProgram.compile( spirv: spirv, ); @@ -46,7 +46,7 @@ void main() { }); test('blue-green image renders green', () async { - final ByteBuffer spirv = spvFile('general_shaders', 'blue_green_sampler.spv').readAsBytesSync().buffer; + final ByteBuffer spirv = spvFile('general_shaders', 'blue_green_sampler.frag.spirv').readAsBytesSync().buffer; final FragmentProgram program = await FragmentProgram.compile( debugPrint: true, spirv: spirv, @@ -61,7 +61,7 @@ void main() { }); test('shader with uniforms renders correctly', () async { - final Uint8List shaderBytes = await spvFile('general_shaders', 'uniforms.spv').readAsBytes(); + final Uint8List shaderBytes = await spvFile('general_shaders', 'uniforms.frag.spirv').readAsBytes(); final FragmentProgram program = await FragmentProgram.compile(spirv: shaderBytes.buffer); final Shader shader = program.shader( @@ -100,7 +100,7 @@ void main() { _expectShadersHaveOp(supportedOpShaders, false /* glsl ops */); test('equality depends on floatUniforms', () async { - final ByteBuffer spirv = spvFile('general_shaders', 'simple.spv') + final ByteBuffer spirv = spvFile('general_shaders', 'simple.frag.spirv') .readAsBytesSync().buffer; final FragmentProgram program = await FragmentProgram.compile(spirv: spirv); final Float32List ones = Float32List.fromList([1]); @@ -122,9 +122,9 @@ void main() { }); test('equality depends on spirv', () async { - final ByteBuffer spirvA = spvFile('general_shaders', 'simple.spv') + final ByteBuffer spirvA = spvFile('general_shaders', 'simple.frag.spirv') .readAsBytesSync().buffer; - final ByteBuffer spirvB = spvFile('general_shaders', 'uniforms.spv') + final ByteBuffer spirvB = spvFile('general_shaders', 'uniforms.frag.spirv') .readAsBytesSync().buffer; final FragmentProgram programA = await FragmentProgram.compile(spirv: spirvA); final FragmentProgram programB = await FragmentProgram.compile(spirv: spirvB); @@ -136,7 +136,7 @@ void main() { }); test('Compilation does not create a Timer object', () async { - final ByteBuffer spirvA = spvFile('general_shaders', 'simple.spv') + final ByteBuffer spirvA = spvFile('general_shaders', 'simple.frag.spirv') .readAsBytesSync().buffer; bool createdTimer = false; final ZoneSpecification specification = ZoneSpecification(createTimer: (Zone self, ZoneDelegate parent, Zone zone, Duration duration, void Function() f) { @@ -254,7 +254,7 @@ Map _loadSpv(String leafFolderName) { directory .listSync() - .where((FileSystemEntity entry) => path.extension(entry.path) == '.spv') + .where((FileSystemEntity entry) => path.extension(entry.path) == '.spirv') .forEach((FileSystemEntity entry) { final String key = path.basenameWithoutExtension(entry.path); out[key] = (entry as File).readAsBytesSync().buffer;