Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 18 additions & 4 deletions Archive/ArchiveTool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,16 @@ public static int PrintSummary(FileInfo filename, OutputFormat format)
uncompressedDataSize += block.UncompressedSize;
}

// The data section can be larger than the sum of the blocks, because of the alignment
// padding that separates chunk-based blocks (the BlockPaddingBetweenChunks flag).
long paddingSize = 0;
if (blocks.Length > 0)
{
var lastBlock = blocks[blocks.Length - 1];
long dataSectionSize = lastBlock.FileOffset + lastBlock.CompressedSize - ArchiveDetector.GetDataOffset(header);
paddingSize = dataSectionSize - dataSize;
}

// Determine the compression algorithm by finding the first block that uses compression.
// Individual blocks may be stored uncompressed even when compression is enabled, because
// compression is skipped when it provides no size reduction. So the first compressed block
Expand Down Expand Up @@ -193,6 +203,7 @@ public static int PrintSummary(FileInfo filename, OutputFormat format)
unityVersion = header.UnityVersion,
fileSize = header.Size,
dataSize = dataSize,
blockPaddingSize = paddingSize,
uncompressedDataSize = uncompressedDataSize,
compressionRatio = Math.Round(compressionRatio, 2),
compression = compression,
Expand All @@ -208,6 +219,8 @@ public static int PrintSummary(FileInfo filename, OutputFormat format)
Console.WriteLine($"{"Unity Version",-30} {header.UnityVersion}");
Console.WriteLine($"{"File Size",-30} {header.Size:N0} bytes");
Console.WriteLine($"{"Data Size",-30} {dataSize:N0} bytes");
if (paddingSize > 0)
Console.WriteLine($"{"Block Padding Size",-30} {paddingSize:N0} bytes");
Console.WriteLine($"{"Uncompressed Data Size",-30} {uncompressedDataSize:N0} bytes");
Console.WriteLine($"{"Compression Ratio",-30} {compressionRatio:F2}x");
Console.WriteLine($"{"Compression",-30} {compression}");
Expand Down Expand Up @@ -263,10 +276,11 @@ static string FormatCompressionType(int compressionType)

static readonly (uint bit, string name)[] KnownArchiveFlags =
{
(0x40, "BlocksAndDirectoryInfoCombined"),
(0x80, "BlocksInfoAtTheEnd"),
(0x100, "OldWebPluginCompatibility"),
(0x200, "BlockInfoNeedPaddingAtStart"),
(ArchiveFlags.BlocksAndDirectoryInfoCombined, "BlocksAndDirectoryInfoCombined"),
(ArchiveFlags.BlocksInfoAtTheEnd, "BlocksInfoAtTheEnd"),
(ArchiveFlags.OldWebPluginCompatibility, "OldWebPluginCompatibility"),
(ArchiveFlags.BlockInfoNeedPaddingAtStart, "BlockInfoNeedPaddingAtStart"),
(ArchiveFlags.BlockPaddingBetweenChunks, "BlockPaddingBetweenChunks"),
};

static string[] GetArchiveFlagNames(uint flagBits)
Expand Down
3 changes: 2 additions & 1 deletion TestCommon/Data/LeadingEdgeBuilds/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ The LeadingEdge build scripts regenerate this folder directly, so to update it,

## Layout

* `AssetBundles/` - the AssetBundle build: one bundle per asset (named after the asset) plus the `AssetBundles` manifest bundle.
* `AssetBundles/` - the AssetBundle build: one bundle per asset (named after the asset) plus the `AssetBundles` manifest bundle. LZMA compressed, so each archive has a single data block.
* `AssetBundlesLz4/` - the same bundle layout built with chunk-based (LZ4) compression, giving archives with multiple data blocks separated by alignment padding (archive format version 9).
* `ContentDirectory/` - the Content Directory build: content (`.cf`) files, `.resource` files and the build manifest.
* `BuildReport-AssetBundles/LastBuild.buildreport` - the AssetBundle build report.
* `BuildReport-ContentDirectory/` - the Content Directory build report folder, including `ContentLayout.json`.
Binary file not shown.
21 changes: 21 additions & 0 deletions TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/6.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 1054287113
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: ef4548464eae98b6ab651c92a869edc9
TypeTreeHash:
serializedVersion: 2
Hash: 9a2ca7bdbd1871f7131daf57de908e0c
IncrementalBuildHash:
serializedVersion: 2
Hash: 818e83165880f042a3252a52b336d06a
HashAppended: 0
ClassTypes:
- Class: 83
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers: []
Assets:
- Assets/Audio/6.mp3
Dependencies: []
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 2935431312
HashAppended: 0
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: assetbundleroot
Dependencies:
Dependency_0: directaudioclipreference
Dependency_1: singleaudioclipdirectreference
Dependency_2: serializationdemo
Info_1:
Name: directaudioclipreference
Dependencies:
Dependency_0: 6
Dependency_1: a
Info_2:
Name: singleaudioclipdirectreference
Dependencies:
Dependency_0: a
Info_3:
Name: serializationdemo
Dependencies: {}
Info_4:
Name: 6
Dependencies: {}
Info_5:
Name: a
Dependencies: {}
Info_6:
Name: scenes
Dependencies: {}
Binary file not shown.
21 changes: 21 additions & 0 deletions TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/a.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 1988020392
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 6175fa89f0b4cfd7cc433b0b143ab713
TypeTreeHash:
serializedVersion: 2
Hash: 9a2ca7bdbd1871f7131daf57de908e0c
IncrementalBuildHash:
serializedVersion: 2
Hash: ac9603f3b25ca1814eb4841392a9ff7e
HashAppended: 0
ClassTypes:
- Class: 83
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers: []
Assets:
- Assets/Audio/a.mp3
Dependencies: []
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 4203871746
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 8ae6ceb771f9c15f2dde5117d3f67798
TypeTreeHash:
serializedVersion: 2
Hash: e4c92e7ce30487f41e62ec475c399971
IncrementalBuildHash:
serializedVersion: 2
Hash: 00f65fc945d785da9075745396600fe2
HashAppended: 0
ClassTypes:
- Class: 114
Script: {fileID: 11500000, guid: d6330d3e9b8e5a0439e4dd147cec19dd, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 8623c5efbb626994da80931050f0aba0, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: f44aeb02ae06dd84bb3ef76e1df8d525, type: 3}
- Class: 115
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers:
- AssemblyName: Assembly-CSharp
ClassName: SerializationDemo/SerializedData
- AssemblyName: UnityEngine.CoreModule
ClassName: UnityEngine.DictionarySerialization/SerializedKeyValue`2
Assets:
- Assets/ScriptableObjects/AssetBundleRoot.asset
Dependencies:
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/directaudioclipreference
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/serializationdemo
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/singleaudioclipdirectreference
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 3469506813
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 5fd4865f81b71364e957dc7644afd47c
TypeTreeHash:
serializedVersion: 2
Hash: 4c88c857f41d6968a1090f557f31c5ed
IncrementalBuildHash:
serializedVersion: 2
Hash: 015f1d03897964d24d88747ea37642b1
HashAppended: 0
ClassTypes:
- Class: 83
Script: {instanceID: 0}
- Class: 114
Script: {fileID: 11500000, guid: d6330d3e9b8e5a0439e4dd147cec19dd, type: 3}
- Class: 115
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers:
- AssemblyName: UnityEngine.CoreModule
ClassName: UnityEngine.DictionarySerialization/SerializedKeyValue`2
Assets:
- Assets/ScriptableObjects/DirectAudioClipReference.asset
Dependencies:
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/6
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/a
Binary file not shown.
42 changes: 42 additions & 0 deletions TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/scenes.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 357273879
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 531bc5793378ad5f958e829f6098afdf
TypeTreeHash:
serializedVersion: 2
Hash: 62ed4bb4a9e4f0abaa38cfea31ee7bca
IncrementalBuildHash:
serializedVersion: 2
Hash: 259ca50b232fd1006951e68b47ff4a66
HashAppended: 0
ClassTypes:
- Class: 1
Script: {instanceID: 0}
- Class: 4
Script: {instanceID: 0}
- Class: 21
Script: {instanceID: 0}
- Class: 28
Script: {instanceID: 0}
- Class: 48
Script: {instanceID: 0}
- Class: 89
Script: {instanceID: 0}
- Class: 104
Script: {instanceID: 0}
- Class: 157
Script: {instanceID: 0}
- Class: 196
Script: {instanceID: 0}
- Class: 212
Script: {instanceID: 0}
- Class: 213
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers: []
Assets:
- Assets/Scenes/Scene1.unity
- Assets/Scenes/Scene2.unity
Dependencies: []
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 3418023709
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 8787e29fd3c31264a27ae0c18c07b815
TypeTreeHash:
serializedVersion: 2
Hash: d0726b8e1199eb6125e2245ce15343f9
IncrementalBuildHash:
serializedVersion: 2
Hash: 1393a4a257b5b48e78eead885e48b68d
HashAppended: 0
ClassTypes:
- Class: 114
Script: {fileID: 11500000, guid: f44aeb02ae06dd84bb3ef76e1df8d525, type: 3}
- Class: 115
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers:
- AssemblyName: Assembly-CSharp
ClassName: SerializationDemo/SerializedData
Assets:
- Assets/ScriptableObjects/SerializationDemo.asset
Dependencies: []
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
ManifestFileVersion: 0
UnityVersion: 6000.7.0a6
CRC: 1388156890
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: f3732a953b4cba83b6943cfa13225c56
TypeTreeHash:
serializedVersion: 2
Hash: 4c88c857f41d6968a1090f557f31c5ed
IncrementalBuildHash:
serializedVersion: 2
Hash: 57215df3b8d2b5c11e9501a26ababda4
HashAppended: 0
ClassTypes:
- Class: 83
Script: {instanceID: 0}
- Class: 114
Script: {fileID: 11500000, guid: d6330d3e9b8e5a0439e4dd147cec19dd, type: 3}
- Class: 115
Script: {instanceID: 0}
SerializeReferenceClassIdentifiers:
- AssemblyName: UnityEngine.CoreModule
ClassName: UnityEngine.DictionarySerialization/SerializedKeyValue`2
Assets:
- Assets/ScriptableObjects/SingleAudioClipDirectReference.asset
Dependencies:
- C:/UnitySrc/UnityDataTools/UnityProjects/LeadingEdge/../../TestCommon/Data/LeadingEdgeBuilds/AssetBundlesLz4/a
Loading
Loading