gpu: reduce compilation units to improve iteration time by ~121ms

See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2021-12-10 05:10:15 -07:00 committed by Stephen Gutekanst
parent 3ec74222e6
commit 51aae5e474
2 changed files with 27 additions and 38 deletions

View file

@ -1390,50 +1390,14 @@ fn buildLibDawnWire(b: *Builder, step: *std.build.LibExeObjStep, options: Option
var flags = std.ArrayList([]const u8).init(b.allocator);
options.appendFlags(&flags, false) catch unreachable;
flags.appendSlice(&.{
include("libs/dawn"),
include("libs/dawn/src"),
include("libs/dawn/src/include"),
include("libs/dawn/out/Debug/gen/src/include"),
include("libs/dawn/out/Debug/gen/src"),
}) catch unreachable;
// dawn_wire_gen
for ([_][]const u8{
"out/Debug/gen/src/dawn_wire/WireCmd_autogen.cpp",
"out/Debug/gen/src/dawn_wire/client/ApiProcs_autogen.cpp",
"out/Debug/gen/src/dawn_wire/client/ClientHandlers_autogen.cpp",
"out/Debug/gen/src/dawn_wire/server/ServerDoers_autogen.cpp",
"out/Debug/gen/src/dawn_wire/server/ServerHandlers_autogen.cpp",
}) |path| {
var abs_path = std.fs.path.join(b.allocator, &.{ thisDir(), "libs/dawn", path }) catch unreachable;
lib.addCSourceFile(abs_path, flags.items);
}
// dawn_wire_gen
for ([_][]const u8{
"src/dawn_wire/ChunkedCommandHandler.cpp",
"src/dawn_wire/ChunkedCommandSerializer.cpp",
"src/dawn_wire/Wire.cpp",
"src/dawn_wire/WireClient.cpp",
"src/dawn_wire/WireDeserializeAllocator.cpp",
"src/dawn_wire/WireServer.cpp",
"src/dawn_wire/client/Buffer.cpp",
"src/dawn_wire/client/Client.cpp",
"src/dawn_wire/client/ClientDoers.cpp",
"src/dawn_wire/client/ClientInlineMemoryTransferService.cpp",
"src/dawn_wire/client/Device.cpp",
"src/dawn_wire/client/Queue.cpp",
"src/dawn_wire/client/ShaderModule.cpp",
"src/dawn_wire/server/Server.cpp",
"src/dawn_wire/server/ServerBuffer.cpp",
"src/dawn_wire/server/ServerDevice.cpp",
"src/dawn_wire/server/ServerInlineMemoryTransferService.cpp",
"src/dawn_wire/server/ServerQueue.cpp",
"src/dawn_wire/server/ServerShaderModule.cpp",
}) |path| {
var abs_path = std.fs.path.join(b.allocator, &.{ thisDir(), "libs/dawn", path }) catch unreachable;
lib.addCSourceFile(abs_path, flags.items);
}
lib.addCSourceFile(thisDir() ++ "/src/dawn/sources/dawn_wire_gen.cpp", flags.items);
return lib;
}

View file

@ -0,0 +1,25 @@
#include "out/Debug/gen/src/dawn_wire/WireCmd_autogen.cpp"
#include "out/Debug/gen/src/dawn_wire/client/ApiProcs_autogen.cpp"
#include "out/Debug/gen/src/dawn_wire/client/ClientHandlers_autogen.cpp"
#include "out/Debug/gen/src/dawn_wire/server/ServerDoers_autogen.cpp"
#include "out/Debug/gen/src/dawn_wire/server/ServerHandlers_autogen.cpp"
#include "src/dawn_wire/ChunkedCommandHandler.cpp"
#include "src/dawn_wire/ChunkedCommandSerializer.cpp"
#include "src/dawn_wire/Wire.cpp"
#include "src/dawn_wire/WireClient.cpp"
#include "src/dawn_wire/WireDeserializeAllocator.cpp"
#include "src/dawn_wire/WireServer.cpp"
#include "src/dawn_wire/client/Buffer.cpp"
#include "src/dawn_wire/client/Client.cpp"
#include "src/dawn_wire/client/ClientDoers.cpp"
#include "src/dawn_wire/client/ClientInlineMemoryTransferService.cpp"
#include "src/dawn_wire/client/Device.cpp"
#include "src/dawn_wire/client/Queue.cpp"
#include "src/dawn_wire/client/ShaderModule.cpp"
#include "src/dawn_wire/server/Server.cpp"
#include "src/dawn_wire/server/ServerBuffer.cpp"
#include "src/dawn_wire/server/ServerDevice.cpp"
#include "src/dawn_wire/server/ServerInlineMemoryTransferService.cpp"
#include "src/dawn_wire/server/ServerQueue.cpp"
#include "src/dawn_wire/server/ServerShaderModule.cpp"