Skip to content

Commit b2b36c6

Browse files
committed
Upgrade BGFX.
1 parent dbf9378 commit b2b36c6

1,145 files changed

Lines changed: 258700 additions & 211936 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ Minimal is `0.16.0`. But you know try your version and believe.
3838

3939
## Bgfx version
4040

41-
- [BX](https://github.com/bkaradzic/bx/compare/cac72f6cfa0893393ea12692ebfacb4495f8c826...master)
42-
- [BImg](https://github.com/bkaradzic/bimg/compare/9114b47f532ce59cd0c6c9f8932df2c48888d4c1...master)
43-
- [BGFX](https://github.com/bkaradzic/bgfx/compare/8532b2c45d2f4332a9ac9734b85c2ea2253cb8d5...master)
41+
- [BX](https://github.com/bkaradzic/bx/compare/98ad3bec2a7ee1a5cbabdcabc25252572dcb1d88...master)
42+
- [BImg](https://github.com/bkaradzic/bimg/compare/ddbeeae05779f84f97694553eb41605a60f86f0a...master)
43+
- [BGFX](https://github.com/bkaradzic/bgfx/compare/a5a3d30421c38c369b5946fa174f7a14b1a60bf9...master)
4444

4545
## Useful tools
4646
- [bgfx_shader_analyzer](https://github.com/r0ckHopper/bgfx_shader_analyzer) - LSP for bgfx shaders.

build.zig

Lines changed: 7 additions & 228 deletions
Original file line numberDiff line numberDiff line change
@@ -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/";
638513
const glslang_path = "libs/bgfx/3rdparty/glslang/";
639514
const spirv_opt_path = "libs/bgfx/3rdparty/spirv-tools/";
640515

@@ -644,7 +519,6 @@ const spirv_opt_path = "libs/bgfx/3rdparty/spirv-tools/";
644519

645520
const 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-
770546
const 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

819596
const 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
};

build.zig.zon

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.{
22
.name = .zbgfx,
33
.fingerprint = 0xc48ed871c4086e4a,
4-
.version = "0.12.1",
4+
.version = "0.13.0",
55
.minimum_zig_version = "0.16.0",
66
.paths = .{
77
"includes",
@@ -14,18 +14,18 @@
1414

1515
.dependencies = .{
1616
// .bx = .{
17-
// .url = "https://github.com/bkaradzic/bx/archive/cac72f6cfa0893393ea12692ebfacb4495f8c826.tar.gz",
18-
// .hash = "N-V-__8AAHS2TwD_HRKwJEGThGOlrlVkf2wDqTnRc0nCAQIy",
17+
// .url = "https://github.com/bkaradzic/bx/archive/98ad3bec2a7ee1a5cbabdcabc25252572dcb1d88.tar.gz",
18+
// .hash = "N-V-__8AAIZUWgCX9dGi9E57zYjzwzNp0hfgNihQ4bieAMyx",
1919
// .lazy = true,
2020
// },
2121
// .bimg = .{
22-
// .url = "https://github.com/bkaradzic/bimg/archive/9114b47f532ce59cd0c6c9f8932df2c48888d4c1.tar.gz",
23-
// .hash = "N-V-__8AAEd8OQDd_Q6YetkHilL1z29yXsE8oCskhrC-7zGV",
22+
// .url = "https://github.com/bkaradzic/bimg/archive/ddbeeae05779f84f97694553eb41605a60f86f0a.tar.gz",
23+
// .hash = "N-V-__8AAG9xeQCTHSLVWTVm-nVVkGXW5neAHmXImInLKxdg",
2424
// .lazy = true,
2525
// },
2626
// .bgfx = .{
27-
// .url = "https://github.com/bkaradzic/bgfx/archive/8532b2c45d2f4332a9ac9734b85c2ea2253cb8d5.tar.gz",
28-
// .hash = "N-V-__8AAEcBaA5gsEixdEnaokhS0ZH6sKcE0pjE6X2FQkOQ",
27+
// .url = "https://github.com/bkaradzic/bgfx/archive/a5a3d30421c38c369b5946fa174f7a14b1a60bf9.tar.gz",
28+
// .hash = "N-V-__8AAI7JJw_vBinp7q5ju2t0OBAQQQqYBSHaDJ0Ra0PS",
2929
// .lazy = true,
3030
// },
3131
},

0 commit comments

Comments
 (0)