@@ -159,6 +159,9 @@ pub fn build(b: *std.Build) !void {
159159 bgfx .root_module .linkFramework ("QuartzCore" , .{ .needed = true });
160160 bgfx .root_module .linkFramework ("Metal" , .{ .needed = true });
161161 bgfx .root_module .linkFramework ("MetalKit" , .{ .needed = true });
162+ bgfx .root_module .linkFramework ("VideoToolbox" , .{ .weak = true });
163+ bgfx .root_module .linkFramework ("CoreMedia" , .{ .weak = true });
164+ bgfx .root_module .linkFramework ("CoreVideo" , .{ .weak = true });
162165 }
163166
164167 bgfx .root_module .addCSourceFiles (.{
@@ -272,12 +275,9 @@ pub fn build(b: *std.Build) !void {
272275 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "include" ));
273276 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "src" ));
274277 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/directx-headers/include/directx" ));
275- shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/fcpp" ));
276278 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/glslang/glslang/Public" ));
277279 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/glslang/glslang/Include" ));
278280 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/glslang" ));
279- shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/glsl-optimizer/include" ));
280- shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/glsl-optimizer/src/glsl" ));
281281 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/spirv-cross" ));
282282 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/spirv-tools/include" ));
283283 shaderc .root_module .addIncludePath (b .path (bgfx_path ++ "3rdparty/webgpu/include" ));
@@ -291,9 +291,8 @@ pub fn build(b: *std.Build) !void {
291291 shaderc .root_module .addCSourceFiles (.{
292292 .files = &.{
293293 bgfx_path ++ "src/shader.cpp" ,
294- bgfx_path ++ "src/shader_dxbc.cpp" ,
295- bgfx_path ++ "src/shader_spirv.cpp" ,
296294 bgfx_path ++ "src/vertexlayout.cpp" ,
295+ bgfx_path ++ "tools/shaderc/pp.cpp" ,
297296 bgfx_path ++ "tools/shaderc/shaderc.cpp" ,
298297 bgfx_path ++ "tools/shaderc/shaderc_glsl.cpp" ,
299298 bgfx_path ++ "tools/shaderc/shaderc_dxil.cpp" ,
@@ -306,51 +305,6 @@ pub fn build(b: *std.Build) !void {
306305 .flags = & cxx_options ,
307306 });
308307
309- //
310- // fcpp
311- //
312- const fcpp_cxx_options = [_ ][]const u8 {
313- "-D__STDC_LIMIT_MACROS" ,
314- "-D__STDC_FORMAT_MACROS" ,
315- "-D__STDC_CONSTANT_MACROS" ,
316- "-DNINCLUDE=64" ,
317- "-DNWORK=65536" ,
318- "-DNBUFF=65536" ,
319- "-DOLD_PREPROCESSOR=0" ,
320- "-fno-sanitize=undefined" ,
321- "-Wno-error=date-time" ,
322- "-ffast-math" ,
323- };
324-
325- const fcpp_path = "libs/bgfx/3rdparty/fcpp/" ;
326- const fcpp_lib = b .addLibrary (.{
327- .linkage = .static ,
328- .name = "fcpp" ,
329- .root_module = b .createModule (.{
330- .target = target ,
331- .optimize = options .shaderc_optimize ,
332- .strip = options .shaderc_optimize != .Debug ,
333- .link_libc = true ,
334- }),
335- .use_llvm = true ,
336- .use_lld = use_lld ,
337- });
338-
339- fcpp_lib .root_module .addIncludePath (b .path (fcpp_path ));
340- fcpp_lib .root_module .addCSourceFiles (
341- .{
342- .files = &.{
343- fcpp_path ++ "cpp1.c" ,
344- fcpp_path ++ "cpp2.c" ,
345- fcpp_path ++ "cpp3.c" ,
346- fcpp_path ++ "cpp4.c" ,
347- fcpp_path ++ "cpp5.c" ,
348- fcpp_path ++ "cpp6.c" ,
349- },
350- .flags = & fcpp_cxx_options ,
351- },
352- );
353-
354308 //
355309 //spirv-opt
356310 //
@@ -473,85 +427,7 @@ pub fn build(b: *std.Build) !void {
473427 });
474428 }
475429
476- // glslang
477- const glsl_optimizer_cxx_options = [_ ][]const u8 {
478- "-MMD" ,
479- "-MP" ,
480- "-MP" ,
481- "-Wall" ,
482- "-Wextra" ,
483- // https://github.com/bkaradzic/bgfx/commit/b4dbc129f3b69b0d6a9093f2d579b883396a839f
484- // "-ffast-math",
485- "-fomit-frame-pointer" ,
486- "-m64" ,
487- "-std=c++20" ,
488- "-fno-rtti" ,
489- "-fno-exceptions" ,
490- "-D__STDC_LIMIT_MACROS" ,
491- "-D__STDC_FORMAT_MACROS" ,
492- "-D__STDC_CONSTANT_MACROS" ,
493- "-fno-sanitize=undefined" ,
494- };
495-
496- const glsl_optimizer_c_options = [_ ][]const u8 {
497- "-MMD" ,
498- "-MP" ,
499- "-MP" ,
500- "-Wall" ,
501- "-Wextra" ,
502- // https://github.com/bkaradzic/bgfx/commit/b4dbc129f3b69b0d6a9093f2d579b883396a839f
503- // "-ffast-math",
504- "-fomit-frame-pointer" ,
505- "-m64" ,
506- "-D__STDC_LIMIT_MACROS" ,
507- "-D__STDC_FORMAT_MACROS" ,
508- "-D__STDC_CONSTANT_MACROS" ,
509- "-fno-sanitize=undefined" ,
510- };
511-
512- const glsl_optimizer_lib = b .addLibrary (.{
513- .name = "glsl-optimizer" ,
514- .root_module = b .createModule (.{
515- .target = target ,
516- .optimize = options .shaderc_optimize ,
517- .strip = options .shaderc_optimize != .Debug ,
518- .link_libcpp = true ,
519- }),
520- .use_llvm = true ,
521- .use_lld = use_lld ,
522- });
523- glsl_optimizer_lib .root_module .addIncludePath (b .path (glsl_optimizer_path ++ "include" ));
524- glsl_optimizer_lib .root_module .addIncludePath (b .path (glsl_optimizer_path ++ "src" ));
525- glsl_optimizer_lib .root_module .addIncludePath (b .path (glsl_optimizer_path ++ "src/mesa" ));
526- glsl_optimizer_lib .root_module .addIncludePath (b .path (glsl_optimizer_path ++ "src/mapi" ));
527- glsl_optimizer_lib .root_module .addIncludePath (b .path (glsl_optimizer_path ++ "src/glsl" ));
528-
529- // add C++ files
530- glsl_optimizer_lib .root_module .addCSourceFiles (.{
531- .files = & glsl_optimizer_files ,
532- .flags = & glsl_optimizer_cxx_options ,
533- });
534-
535- glsl_optimizer_lib .root_module .addCSourceFiles (
536- .{
537- .files = &.{
538- glsl_optimizer_path ++ "src/glsl/glcpp/glcpp-lex.c" ,
539- glsl_optimizer_path ++ "src/glsl/glcpp/glcpp-parse.c" ,
540- glsl_optimizer_path ++ "src/glsl/glcpp/pp.c" ,
541- glsl_optimizer_path ++ "src/glsl/strtod.c" ,
542- glsl_optimizer_path ++ "src/mesa/main/imports.c" ,
543- glsl_optimizer_path ++ "src/mesa/program/prog_hash_table.c" ,
544- glsl_optimizer_path ++ "src/mesa/program/symbol_table.c" ,
545- glsl_optimizer_path ++ "src/util/hash_table.c" ,
546- glsl_optimizer_path ++ "src/util/ralloc.c" ,
547- },
548- .flags = & glsl_optimizer_c_options ,
549- },
550- );
551-
552- shaderc .root_module .linkLibrary (fcpp_lib );
553430 shaderc .root_module .linkLibrary (glslang_lib );
554- shaderc .root_module .linkLibrary (glsl_optimizer_lib );
555431 shaderc .root_module .linkLibrary (spirv_opt_lib );
556432 shaderc .root_module .linkLibrary (spirv_cross_lib );
557433 }
@@ -634,7 +510,6 @@ fn bgfxInclude(b: *std.Build, step: *std.Build.Step.Compile, target: std.Build.R
634510//
635511// Path const
636512//
637- const glsl_optimizer_path = "libs/bgfx/3rdparty/glsl-optimizer/" ;
638513const glslang_path = "libs/bgfx/3rdparty/glslang/" ;
639514const spirv_opt_path = "libs/bgfx/3rdparty/spirv-tools/" ;
640515
@@ -644,7 +519,6 @@ const spirv_opt_path = "libs/bgfx/3rdparty/spirv-tools/";
644519
645520const bimg_files = .{
646521 "libs/bimg/src/image.cpp" ,
647- "libs/bimg/src/image_gnf.cpp" ,
648522 "libs/bimg/3rdparty/astc-encoder/source/astcenc_averages_and_directions.cpp" ,
649523 "libs/bimg/3rdparty/astc-encoder/source/astcenc_block_sizes.cpp" ,
650524 "libs/bimg/3rdparty/astc-encoder/source/astcenc_color_quantize.cpp" ,
@@ -669,104 +543,6 @@ const bimg_files = .{
669543 "libs/bimg/3rdparty/astc-encoder/source/astcenc_weight_quant_xfer_tables.cpp" ,
670544};
671545
672- const glsl_optimizer_files = .{
673- glsl_optimizer_path ++ "src/glsl/ast_array_index.cpp" ,
674- glsl_optimizer_path ++ "src/glsl/ast_expr.cpp" ,
675- glsl_optimizer_path ++ "src/glsl/ast_function.cpp" ,
676- glsl_optimizer_path ++ "src/glsl/ast_to_hir.cpp" ,
677- glsl_optimizer_path ++ "src/glsl/ast_type.cpp" ,
678- glsl_optimizer_path ++ "src/glsl/builtin_functions.cpp" ,
679- glsl_optimizer_path ++ "src/glsl/builtin_types.cpp" ,
680- glsl_optimizer_path ++ "src/glsl/builtin_variables.cpp" ,
681- glsl_optimizer_path ++ "src/glsl/glsl_lexer.cpp" ,
682- glsl_optimizer_path ++ "src/glsl/glsl_optimizer.cpp" ,
683- glsl_optimizer_path ++ "src/glsl/glsl_parser.cpp" ,
684- glsl_optimizer_path ++ "src/glsl/glsl_parser_extras.cpp" ,
685- glsl_optimizer_path ++ "src/glsl/glsl_symbol_table.cpp" ,
686- glsl_optimizer_path ++ "src/glsl/glsl_types.cpp" ,
687- glsl_optimizer_path ++ "src/glsl/hir_field_selection.cpp" ,
688- glsl_optimizer_path ++ "src/glsl/ir.cpp" ,
689- glsl_optimizer_path ++ "src/glsl/ir_basic_block.cpp" ,
690- glsl_optimizer_path ++ "src/glsl/ir_builder.cpp" ,
691- glsl_optimizer_path ++ "src/glsl/ir_clone.cpp" ,
692- glsl_optimizer_path ++ "src/glsl/ir_constant_expression.cpp" ,
693- glsl_optimizer_path ++ "src/glsl/ir_equals.cpp" ,
694- glsl_optimizer_path ++ "src/glsl/ir_expression_flattening.cpp" ,
695- glsl_optimizer_path ++ "src/glsl/ir_function.cpp" ,
696- glsl_optimizer_path ++ "src/glsl/ir_function_can_inline.cpp" ,
697- glsl_optimizer_path ++ "src/glsl/ir_function_detect_recursion.cpp" ,
698- glsl_optimizer_path ++ "src/glsl/ir_hierarchical_visitor.cpp" ,
699- glsl_optimizer_path ++ "src/glsl/ir_hv_accept.cpp" ,
700- glsl_optimizer_path ++ "src/glsl/ir_import_prototypes.cpp" ,
701- glsl_optimizer_path ++ "src/glsl/ir_print_glsl_visitor.cpp" ,
702- glsl_optimizer_path ++ "src/glsl/ir_print_metal_visitor.cpp" ,
703- glsl_optimizer_path ++ "src/glsl/ir_print_visitor.cpp" ,
704- glsl_optimizer_path ++ "src/glsl/ir_rvalue_visitor.cpp" ,
705- glsl_optimizer_path ++ "src/glsl/ir_stats.cpp" ,
706- glsl_optimizer_path ++ "src/glsl/ir_unused_structs.cpp" ,
707- glsl_optimizer_path ++ "src/glsl/ir_validate.cpp" ,
708- glsl_optimizer_path ++ "src/glsl/ir_variable_refcount.cpp" ,
709- glsl_optimizer_path ++ "src/glsl/link_atomics.cpp" ,
710- glsl_optimizer_path ++ "src/glsl/link_functions.cpp" ,
711- glsl_optimizer_path ++ "src/glsl/link_interface_blocks.cpp" ,
712- glsl_optimizer_path ++ "src/glsl/link_uniform_block_active_visitor.cpp" ,
713- glsl_optimizer_path ++ "src/glsl/link_uniform_blocks.cpp" ,
714- glsl_optimizer_path ++ "src/glsl/link_uniform_initializers.cpp" ,
715- glsl_optimizer_path ++ "src/glsl/link_uniforms.cpp" ,
716- glsl_optimizer_path ++ "src/glsl/link_varyings.cpp" ,
717- glsl_optimizer_path ++ "src/glsl/linker.cpp" ,
718- glsl_optimizer_path ++ "src/glsl/loop_analysis.cpp" ,
719- glsl_optimizer_path ++ "src/glsl/loop_controls.cpp" ,
720- glsl_optimizer_path ++ "src/glsl/loop_unroll.cpp" ,
721- glsl_optimizer_path ++ "src/glsl/lower_clip_distance.cpp" ,
722- glsl_optimizer_path ++ "src/glsl/lower_discard.cpp" ,
723- glsl_optimizer_path ++ "src/glsl/lower_discard_flow.cpp" ,
724- glsl_optimizer_path ++ "src/glsl/lower_if_to_cond_assign.cpp" ,
725- glsl_optimizer_path ++ "src/glsl/lower_instructions.cpp" ,
726- glsl_optimizer_path ++ "src/glsl/lower_jumps.cpp" ,
727- glsl_optimizer_path ++ "src/glsl/lower_mat_op_to_vec.cpp" ,
728- glsl_optimizer_path ++ "src/glsl/lower_named_interface_blocks.cpp" ,
729- glsl_optimizer_path ++ "src/glsl/lower_noise.cpp" ,
730- glsl_optimizer_path ++ "src/glsl/lower_offset_array.cpp" ,
731- glsl_optimizer_path ++ "src/glsl/lower_output_reads.cpp" ,
732- glsl_optimizer_path ++ "src/glsl/lower_packed_varyings.cpp" ,
733- glsl_optimizer_path ++ "src/glsl/lower_packing_builtins.cpp" ,
734- glsl_optimizer_path ++ "src/glsl/lower_ubo_reference.cpp" ,
735- glsl_optimizer_path ++ "src/glsl/lower_variable_index_to_cond_assign.cpp" ,
736- glsl_optimizer_path ++ "src/glsl/lower_vec_index_to_cond_assign.cpp" ,
737- glsl_optimizer_path ++ "src/glsl/lower_vec_index_to_swizzle.cpp" ,
738- glsl_optimizer_path ++ "src/glsl/lower_vector.cpp" ,
739- glsl_optimizer_path ++ "src/glsl/lower_vector_insert.cpp" ,
740- glsl_optimizer_path ++ "src/glsl/lower_vertex_id.cpp" ,
741- glsl_optimizer_path ++ "src/glsl/opt_algebraic.cpp" ,
742- glsl_optimizer_path ++ "src/glsl/opt_array_splitting.cpp" ,
743- glsl_optimizer_path ++ "src/glsl/opt_constant_folding.cpp" ,
744- glsl_optimizer_path ++ "src/glsl/opt_constant_propagation.cpp" ,
745- glsl_optimizer_path ++ "src/glsl/opt_constant_variable.cpp" ,
746- glsl_optimizer_path ++ "src/glsl/opt_copy_propagation.cpp" ,
747- glsl_optimizer_path ++ "src/glsl/opt_copy_propagation_elements.cpp" ,
748- glsl_optimizer_path ++ "src/glsl/opt_cse.cpp" ,
749- glsl_optimizer_path ++ "src/glsl/opt_dead_builtin_variables.cpp" ,
750- glsl_optimizer_path ++ "src/glsl/opt_dead_builtin_varyings.cpp" ,
751- glsl_optimizer_path ++ "src/glsl/opt_dead_code.cpp" ,
752- glsl_optimizer_path ++ "src/glsl/opt_dead_code_local.cpp" ,
753- glsl_optimizer_path ++ "src/glsl/opt_dead_functions.cpp" ,
754- glsl_optimizer_path ++ "src/glsl/opt_flatten_nested_if_blocks.cpp" ,
755- glsl_optimizer_path ++ "src/glsl/opt_flip_matrices.cpp" ,
756- glsl_optimizer_path ++ "src/glsl/opt_function_inlining.cpp" ,
757- glsl_optimizer_path ++ "src/glsl/opt_if_simplification.cpp" ,
758- glsl_optimizer_path ++ "src/glsl/opt_minmax.cpp" ,
759- glsl_optimizer_path ++ "src/glsl/opt_noop_swizzle.cpp" ,
760- glsl_optimizer_path ++ "src/glsl/opt_rebalance_tree.cpp" ,
761- glsl_optimizer_path ++ "src/glsl/opt_redundant_jumps.cpp" ,
762- glsl_optimizer_path ++ "src/glsl/opt_structure_splitting.cpp" ,
763- glsl_optimizer_path ++ "src/glsl/opt_swizzle_swizzle.cpp" ,
764- glsl_optimizer_path ++ "src/glsl/opt_tree_grafting.cpp" ,
765- glsl_optimizer_path ++ "src/glsl/opt_vectorize.cpp" ,
766- glsl_optimizer_path ++ "src/glsl/s_expression.cpp" ,
767- glsl_optimizer_path ++ "src/glsl/standalone_scaffolding.cpp" ,
768- };
769-
770546const glsl_lang_files = .{
771547 glslang_path ++ "SPIRV/GlslangToSpv.cpp" ,
772548 glslang_path ++ "SPIRV/InReadableOrder.cpp" ,
@@ -814,6 +590,7 @@ const glsl_lang_files = .{
814590 glslang_path ++ "glslang/MachineIndependent/preprocessor/PpTokens.cpp" ,
815591 glslang_path ++ "glslang/MachineIndependent/propagateNoContraction.cpp" ,
816592 glslang_path ++ "glslang/MachineIndependent/reflection.cpp" ,
593+ glslang_path ++ "glslang/ResourceLimits/ResourceLimits.cpp" ,
817594};
818595
819596const spirv_opt_files = .{
@@ -966,6 +743,7 @@ const spirv_opt_files = .{
966743 spirv_opt_path ++ "source/opt/resolve_binding_conflicts_pass.cpp" ,
967744 spirv_opt_path ++ "source/opt/canonicalize_ids_pass.cpp" ,
968745 spirv_opt_path ++ "source/opt/legalize_multidim_array_pass.cpp" ,
746+ spirv_opt_path ++ "source/opt/convert_to_untyped.cpp" ,
969747
970748 spirv_opt_path ++ "source/reduce/change_operand_reduction_opportunity.cpp" ,
971749 spirv_opt_path ++ "source/reduce/change_operand_to_undef_reduction_opportunity.cpp" ,
@@ -1051,4 +829,5 @@ const spirv_opt_files = .{
1051829 spirv_opt_path ++ "source/val/validate_group.cpp" ,
1052830 spirv_opt_path ++ "source/val/validate_dot_product.cpp" ,
1053831 spirv_opt_path ++ "source/val/validate_pipe.cpp" ,
832+ spirv_opt_path ++ "source/val/validate_explicit_layout.cpp" ,
1054833};
0 commit comments