diff --git a/gpu/build_dawn.zig b/gpu/build_dawn.zig index aff65d8d..fc1ae08f 100644 --- a/gpu/build_dawn.zig +++ b/gpu/build_dawn.zig @@ -235,7 +235,6 @@ fn buildLibDawnNative(b: *Builder, step: *std.build.LibExeObjStep, options: Opti "src/dawn_native/BuddyAllocator.cpp", "src/dawn_native/BuddyMemoryAllocator.cpp", "src/dawn_native/Buffer.cpp", - "src/dawn_native/BufferLocation.cpp", "src/dawn_native/CachedObject.cpp", "src/dawn_native/CallbackTaskManager.cpp", "src/dawn_native/CommandAllocator.cpp", @@ -256,8 +255,8 @@ fn buildLibDawnNative(b: *Builder, step: *std.build.LibExeObjStep, options: Opti "src/dawn_native/ErrorData.cpp", "src/dawn_native/ErrorInjector.cpp", "src/dawn_native/ErrorScope.cpp", - "src/dawn_native/Extensions.cpp", "src/dawn_native/ExternalTexture.cpp", + "src/dawn_native/Features.cpp", "src/dawn_native/Format.cpp", "src/dawn_native/IndirectDrawMetadata.cpp", "src/dawn_native/IndirectDrawValidationEncoder.cpp", @@ -272,7 +271,7 @@ fn buildLibDawnNative(b: *Builder, step: *std.build.LibExeObjStep, options: Opti "src/dawn_native/Pipeline.cpp", "src/dawn_native/PipelineLayout.cpp", "src/dawn_native/PooledResourceMemoryAllocator.cpp", - "src/dawn_native/ProgrammablePassEncoder.cpp", + "src/dawn_native/ProgrammableEncoder.cpp", "src/dawn_native/QueryHelper.cpp", "src/dawn_native/QuerySet.cpp", "src/dawn_native/Queue.cpp", @@ -294,6 +293,7 @@ fn buildLibDawnNative(b: *Builder, step: *std.build.LibExeObjStep, options: Opti "src/dawn_native/TintUtils.cpp", "src/dawn_native/Toggles.cpp", "src/dawn_native/VertexFormat.cpp", + "src/dawn_native/utils/WGPUHelpers.cpp", }) |path| { var abs_path = std.fs.path.join(b.allocator, &.{ thisDir(), "libs/dawn", path }) catch unreachable; lib.addCSourceFile(abs_path, flags.items); @@ -536,6 +536,7 @@ fn buildLibDawnNative(b: *Builder, step: *std.build.LibExeObjStep, options: Opti // } // if (enable_vulkan_loader) { // data_deps += [ "${dawn_vulkan_loader_dir}:libvulkan" ] + // defines += [ "DAWN_ENABLE_VULKAN_LOADER" ] // } } // TODO(build-system): swiftshader @@ -623,6 +624,7 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "-DTINT_BUILD_WGSL_WRITER=1", "-DTINT_BUILD_MSL_WRITER=1", "-DTINT_BUILD_HLSL_WRITER=1", + "-DTINT_BUILD_GLSL_WRITER=1", // Required for TINT_BUILD_SPV_READER=1 and TINT_BUILD_SPV_WRITER=1, if specified include("libs/dawn/third_party/vulkan-deps"), @@ -640,7 +642,6 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/ast/access.cc", "third_party/tint/src/ast/alias.cc", "third_party/tint/src/ast/array.cc", - "third_party/tint/src/ast/array_accessor_expression.cc", "third_party/tint/src/ast/assignment_statement.cc", "third_party/tint/src/ast/ast_type.cc", "third_party/tint/src/ast/atomic.cc", @@ -649,14 +650,13 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/ast/bitcast_expression.cc", "third_party/tint/src/ast/block_statement.cc", "third_party/tint/src/ast/bool.cc", - "third_party/tint/src/ast/bool_literal.cc", + "third_party/tint/src/ast/bool_literal_expression.cc", "third_party/tint/src/ast/break_statement.cc", "third_party/tint/src/ast/builtin.cc", "third_party/tint/src/ast/builtin_decoration.cc", "third_party/tint/src/ast/call_expression.cc", "third_party/tint/src/ast/call_statement.cc", "third_party/tint/src/ast/case_statement.cc", - "third_party/tint/src/ast/constructor_expression.cc", "third_party/tint/src/ast/continue_statement.cc", "third_party/tint/src/ast/decoration.cc", "third_party/tint/src/ast/depth_multisampled_texture.cc", @@ -668,18 +668,19 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/ast/external_texture.cc", "third_party/tint/src/ast/f32.cc", "third_party/tint/src/ast/fallthrough_statement.cc", - "third_party/tint/src/ast/float_literal.cc", + "third_party/tint/src/ast/float_literal_expression.cc", "third_party/tint/src/ast/for_loop_statement.cc", "third_party/tint/src/ast/function.cc", "third_party/tint/src/ast/group_decoration.cc", "third_party/tint/src/ast/i32.cc", "third_party/tint/src/ast/identifier_expression.cc", "third_party/tint/src/ast/if_statement.cc", - "third_party/tint/src/ast/int_literal.cc", + "third_party/tint/src/ast/index_accessor_expression.cc", + "third_party/tint/src/ast/int_literal_expression.cc", "third_party/tint/src/ast/internal_decoration.cc", "third_party/tint/src/ast/interpolate_decoration.cc", "third_party/tint/src/ast/invariant_decoration.cc", - "third_party/tint/src/ast/literal.cc", + "third_party/tint/src/ast/literal_expression.cc", "third_party/tint/src/ast/location_decoration.cc", "third_party/tint/src/ast/loop_statement.cc", "third_party/tint/src/ast/matrix.cc", @@ -688,13 +689,13 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/ast/multisampled_texture.cc", "third_party/tint/src/ast/node.cc", "third_party/tint/src/ast/override_decoration.cc", + "third_party/tint/src/ast/phony_expression.cc", "third_party/tint/src/ast/pipeline_stage.cc", "third_party/tint/src/ast/pointer.cc", "third_party/tint/src/ast/return_statement.cc", "third_party/tint/src/ast/sampled_texture.cc", "third_party/tint/src/ast/sampler.cc", - "third_party/tint/src/ast/scalar_constructor_expression.cc", - "third_party/tint/src/ast/sint_literal.cc", + "third_party/tint/src/ast/sint_literal_expression.cc", "third_party/tint/src/ast/stage_decoration.cc", "third_party/tint/src/ast/statement.cc", "third_party/tint/src/ast/storage_class.cc", @@ -708,11 +709,10 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/ast/struct_member_size_decoration.cc", "third_party/tint/src/ast/switch_statement.cc", "third_party/tint/src/ast/texture.cc", - "third_party/tint/src/ast/type_constructor_expression.cc", "third_party/tint/src/ast/type_decl.cc", "third_party/tint/src/ast/type_name.cc", "third_party/tint/src/ast/u32.cc", - "third_party/tint/src/ast/uint_literal.cc", + "third_party/tint/src/ast/uint_literal_expression.cc", "third_party/tint/src/ast/unary_op.cc", "third_party/tint/src/ast/unary_op_expression.cc", "third_party/tint/src/ast/variable.cc", @@ -736,8 +736,10 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/program_builder.cc", "third_party/tint/src/program_id.cc", "third_party/tint/src/reader/reader.cc", + "third_party/tint/src/resolver/dependency_graph.cc", "third_party/tint/src/resolver/resolver.cc", "third_party/tint/src/resolver/resolver_constants.cc", + "third_party/tint/src/resolver/resolver_validation.cc", "third_party/tint/src/source.cc", "third_party/tint/src/symbol.cc", "third_party/tint/src/symbol_table.cc", @@ -753,22 +755,26 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/transform/fold_constants.cc", "third_party/tint/src/transform/fold_trivial_single_use_lets.cc", "third_party/tint/src/transform/for_loop_to_loop.cc", - "third_party/tint/src/transform/inline_pointer_lets.cc", "third_party/tint/src/transform/loop_to_for_loop.cc", "third_party/tint/src/transform/manager.cc", "third_party/tint/src/transform/module_scope_var_to_entry_point_param.cc", + "third_party/tint/src/transform/multiplanar_external_texture.cc", "third_party/tint/src/transform/num_workgroups_from_uniform.cc", "third_party/tint/src/transform/pad_array_elements.cc", "third_party/tint/src/transform/promote_initializers_to_const_var.cc", + "third_party/tint/src/transform/remove_phonies.cc", "third_party/tint/src/transform/renamer.cc", "third_party/tint/src/transform/robustness.cc", - "third_party/tint/src/transform/simplify.cc", + "third_party/tint/src/transform/simplify_pointers.cc", "third_party/tint/src/transform/single_entry_point.cc", "third_party/tint/src/transform/transform.cc", + "third_party/tint/src/transform/unshadow.cc", + "third_party/tint/src/transform/vectorize_scalar_matrix_constructors.cc", "third_party/tint/src/transform/vertex_pulling.cc", "third_party/tint/src/transform/wrap_arrays_in_structs.cc", "third_party/tint/src/transform/zero_init_workgroup_memory.cc", "third_party/tint/src/writer/append_vector.cc", + "third_party/tint/src/writer/array_length_from_uniform_options.cc", "third_party/tint/src/writer/float_to_string.cc", "third_party/tint/src/writer/text.cc", "third_party/tint/src/writer/text_generator.cc", @@ -789,6 +795,7 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb for ([_][]const u8{ "third_party/tint/src/sem/array.cc", "third_party/tint/src/sem/atomic_type.cc", + "third_party/tint/src/sem/behavior.cc", "third_party/tint/src/sem/block_statement.cc", "third_party/tint/src/sem/bool_type.cc", "third_party/tint/src/sem/call.cc", @@ -822,6 +829,8 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb "third_party/tint/src/sem/switch_statement.cc", "third_party/tint/src/sem/texture_type.cc", "third_party/tint/src/sem/type.cc", + "third_party/tint/src/sem/type_constructor.cc", + "third_party/tint/src/sem/type_conversion.cc", "third_party/tint/src/sem/type_manager.cc", "third_party/tint/src/sem/u32_type.cc", "third_party/tint/src/sem/variable.cc", @@ -902,6 +911,17 @@ fn buildLibTint(b: *Builder, step: *std.build.LibExeObjStep) *std.build.LibExeOb var abs_path = std.fs.path.join(b.allocator, &.{ thisDir(), "libs/dawn", path }) catch unreachable; lib.addCSourceFile(abs_path, flags); } + + // TODO(build-system): make optional + // libtint_glsl_writer_src + for ([_][]const u8{ + "third_party/tint/src/transform/glsl.cc", + "third_party/tint/src/writer/glsl/generator.cc", + "third_party/tint/src/writer/glsl/generator_impl.cc", + }) |path| { + var abs_path = std.fs.path.join(b.allocator, &.{ thisDir(), "libs/dawn", path }) catch unreachable; + lib.addCSourceFile(abs_path, flags); + } return lib; } diff --git a/gpu/libs/dawn b/gpu/libs/dawn index da58a7b2..dcdd5a23 160000 --- a/gpu/libs/dawn +++ b/gpu/libs/dawn @@ -1 +1 @@ -Subproject commit da58a7b2db6fd2dc2fbaf1857fa2dbb4c7946a9d +Subproject commit dcdd5a230cedeb795d17021d688c84b01ac691fa diff --git a/gpu/src/dawn/dawn_native_mach.cpp b/gpu/src/dawn/dawn_native_mach.cpp index e8d456f9..5705cb9f 100644 --- a/gpu/src/dawn/dawn_native_mach.cpp +++ b/gpu/src/dawn/dawn_native_mach.cpp @@ -76,8 +76,8 @@ MACH_EXPORT WGPUDevice machDawnNativeAdapter_createDevice(MachDawnNativeAdapter } std::vector cppRequiredExtensions; - for (int i = 0; i < deviceDescriptor->requiredExtensionsLength; i++) - cppRequiredExtensions.push_back(deviceDescriptor->requiredExtensions[i]); + for (int i = 0; i < deviceDescriptor->requiredFeaturesLength; i++) + cppRequiredExtensions.push_back(deviceDescriptor->requiredFeatures[i]); std::vector cppForceEnabledToggles; for (int i = 0; i < deviceDescriptor->forceEnabledTogglesLength; i++) @@ -88,7 +88,7 @@ MACH_EXPORT WGPUDevice machDawnNativeAdapter_createDevice(MachDawnNativeAdapter cppForceDisabledToggles.push_back(deviceDescriptor->forceDisabledToggles[i]); auto cppDeviceDescriptor = dawn_native::DeviceDescriptor{ - .requiredExtensions = cppRequiredExtensions, + .requiredFeatures = cppRequiredExtensions, .forceEnabledToggles = cppForceEnabledToggles, .forceDisabledToggles = cppForceDisabledToggles, .requiredLimits = deviceDescriptor->requiredLimits, @@ -96,18 +96,6 @@ MACH_EXPORT WGPUDevice machDawnNativeAdapter_createDevice(MachDawnNativeAdapter return self->CreateDevice(&cppDeviceDescriptor); } -// TODO(dawn-native-mach): -// // An optional parameter of Adapter::CreateDevice() to send additional information when creating -// // a Device. For example, we can use it to enable a workaround, optimization or feature. -// struct DAWN_NATIVE_EXPORT DeviceDescriptor { -// std::vector requiredExtensions; -// std::vector forceEnabledToggles; -// std::vector forceDisabledToggles; - -// const WGPURequiredLimits* requiredLimits = nullptr; -// }; - - // TODO(dawn-native-mach): // // Create a device on this adapter, note that the interface will change to include at least // // a device descriptor and a pointer to backend specific options. diff --git a/gpu/src/dawn/dawn_native_mach.h b/gpu/src/dawn/dawn_native_mach.h index f089f013..5f455b10 100644 --- a/gpu/src/dawn/dawn_native_mach.h +++ b/gpu/src/dawn/dawn_native_mach.h @@ -52,8 +52,8 @@ MACH_EXPORT MachDawnNativeAdapterProperties machDawnNativeAdapter_getProperties( // An optional parameter of Adapter::CreateDevice() to send additional information when creating // a Device. For example, we can use it to enable a workaround, optimization or feature. typedef struct MachDawnNativeDeviceDescriptor { - char** requiredExtensions; - uintptr_t requiredExtensionsLength; + char** requiredFeatures; + uintptr_t requiredFeaturesLength; char** forceEnabledToggles; uintptr_t forceEnabledTogglesLength;