24 {
25 ir.fixup_reserved_names();
26
27 if (get_execution_model() != ExecutionModelFragment) {
29 return "";
30 }
31
34 options.vulkan_semantics =
false;
35 options.enable_420pack_extension =
false;
36 options.flatten_multidimensional_arrays =
true;
37
38 backend.allow_precision_qualifiers =
false;
39 backend.basic_int16_type =
"short";
41 backend.basic_uint16_type =
"ushort";
42 backend.basic_uint_type =
"uint";
43 backend.double_literal_suffix =
false;
44 backend.float_literal_suffix =
false;
45 backend.long_long_literal_suffix =
false;
46 backend.needs_row_major_load_workaround =
true;
47 backend.nonuniform_qualifier =
"";
48 backend.support_precise_qualifier =
false;
49 backend.uint32_t_literal_suffix =
false;
50 backend.use_array_constructor =
true;
51 backend.workgroup_size_is_hidden =
true;
52
53 fixup_user_functions();
54
55 fixup_anonymous_struct_names();
56 fixup_type_alias();
57 reorder_type_alias();
58 build_function_control_flow_graphs_and_analyze();
59 fixup_image_load_store_access();
60 update_active_builtins();
61 analyze_image_and_sampler_usage();
62 analyze_interlocked_resource_usage();
63
64 uint32_t pass_count = 0;
65 do {
67
68
70
72 emit_resources();
73
74 emit_function(get<SPIRFunction>(ir.default_entry_point), Bitset());
75
76 pass_count++;
77 } while (is_forcing_recompilation());
78
79 statement("half4 main(float2 iFragCoord)");
80 begin_scope();
81 statement(" flutter_FragCoord = float4(iFragCoord, 0, 0);");
82 statement(" FLT_main();");
83 statement(" return " + output_name_ + ";");
84 end_scope();
85
87}
void emit_header() override
static const uint8_t buffer[]