Compare commits

..

1 Commits

Author SHA1 Message Date
PavelBARABANOV 8532fbc95d Update some barriers 2026-01-02 07:36:14 +03:00
14 changed files with 148 additions and 938 deletions
+4 -4
View File
@@ -76,12 +76,12 @@ The APK and AAB will be output into "artifacts".
Examples: Examples:
* Build legacy release with update checker: * Build legacy release with update checker for ChromeOS:
* `.ci/android/build.sh -r -t legacy` * `.ci/android/build.sh -c -r -t legacy`
* Build standard release with debug info without update checker for phones: * Build standard release with debug info without update checker for phones:
* `.ci/android/build.sh -b RelWithDebInfo` * `.ci/android/build.sh -b RelWithDebInfo`
* Build optimized release with update checker for ChromeOS: * Build optimized release with update checker:
* `.ci/android/build.sh -c -r -t optimized` * `.ci/android/build.sh -r -t optimized`
### Additional Resources ### Additional Resources
-4
View File
@@ -35,10 +35,6 @@ VirtualDir BISFactory::GetUserNANDContentDirectory() const {
return GetOrCreateDirectoryRelative(nand_root, "/user/Contents"); return GetOrCreateDirectoryRelative(nand_root, "/user/Contents");
} }
VirtualDir BISFactory::GetSystem0NANDContentDirectory() const {
return GetOrCreateDirectoryRelative(nand_root, "/system0/Contents");
}
RegisteredCache* BISFactory::GetSystemNANDContents() const { RegisteredCache* BISFactory::GetSystemNANDContents() const {
return sysnand_cache.get(); return sysnand_cache.get();
} }
+3 -9
View File
@@ -11,25 +11,20 @@
namespace FileSys { namespace FileSys {
enum class BisPartitionId : u32 { enum class BisPartitionId : u32 {
BootPartition1Root = 0,
BootPartition2Root = 10,
UserDataRoot = 20, UserDataRoot = 20,
CalibrationBinary = 27,
CalibrationFile = 28,
BootConfigAndPackage2Part1 = 21, BootConfigAndPackage2Part1 = 21,
BootConfigAndPackage2Part2 = 22, BootConfigAndPackage2Part2 = 22,
BootConfigAndPackage2Part3 = 23, BootConfigAndPackage2Part3 = 23,
BootConfigAndPackage2Part4 = 24, BootConfigAndPackage2Part4 = 24,
BootConfigAndPackage2Part5 = 25, BootConfigAndPackage2Part5 = 25,
BootConfigAndPackage2Part6 = 26, BootConfigAndPackage2Part6 = 26,
CalibrationBinary = 27,
CalibrationFile = 28,
SafeMode = 29, SafeMode = 29,
User = 30,
System = 31, System = 31,
SystemProperEncryption = 32, SystemProperEncryption = 32,
SystemProperPartition = 33, SystemProperPartition = 33,
SignedSystemPartitionOnSafeMode = 34, User = 30,
DeviceTreeBlob = 35,
System0 = 36,
}; };
class RegisteredCache; class RegisteredCache;
@@ -45,7 +40,6 @@ public:
VirtualDir GetSystemNANDContentDirectory() const; VirtualDir GetSystemNANDContentDirectory() const;
VirtualDir GetUserNANDContentDirectory() const; VirtualDir GetUserNANDContentDirectory() const;
VirtualDir GetSystem0NANDContentDirectory() const;
RegisteredCache* GetSystemNANDContents() const; RegisteredCache* GetSystemNANDContents() const;
RegisteredCache* GetUserNANDContents() const; RegisteredCache* GetUserNANDContents() const;
+7 -763
View File
@@ -9,310 +9,20 @@ namespace FileSys {
constexpr Result ResultPathNotFound{ErrorModule::FS, 1}; constexpr Result ResultPathNotFound{ErrorModule::FS, 1};
constexpr Result ResultPathAlreadyExists{ErrorModule::FS, 2}; constexpr Result ResultPathAlreadyExists{ErrorModule::FS, 2};
constexpr Result ResultTargetLocked{ErrorModule::FS, 7};
constexpr Result ResultDirectoryNotEmpty{ErrorModule::FS, 8};
constexpr Result ResultDirectoryStatusChanged{ErrorModule::FS, 13};
constexpr Result ResultUsableSpaceNotEnoughForSaveData{ErrorModule::FS, 31};
constexpr Result ResultUsableSpaceNotEnoughForSaveDataEvenAssistanceSuccess{ErrorModule::FS, 32};
constexpr Result ResultUsableSpaceNotEnoughForCacheStorage{ErrorModule::FS, 33};
constexpr Result ResultUsableSpaceNotEnoughMmcCalibration{ErrorModule::FS, 35};
constexpr Result ResultUsableSpaceNotEnoughMmcSafe{ErrorModule::FS, 36};
constexpr Result ResultUsableSpaceNotEnoughMmcUser{ErrorModule::FS, 37};
constexpr Result ResultUsableSpaceNotEnoughMmcSystem{ErrorModule::FS, 38};
constexpr Result ResultUsableSpaceNotEnoughSdCard{ErrorModule::FS, 39};
constexpr Result ResultUnsupportedSdkVersion{ErrorModule::FS, 50}; constexpr Result ResultUnsupportedSdkVersion{ErrorModule::FS, 50};
constexpr Result ResultMountNameAlreadyExists{ErrorModule::FS, 60};
constexpr Result ResultIndividualFileDataCacheAlreadyEnabled{ErrorModule::FS, 70};
constexpr Result ResultPartitionNotFound{ErrorModule::FS, 1001}; constexpr Result ResultPartitionNotFound{ErrorModule::FS, 1001};
constexpr Result ResultTargetNotFound{ErrorModule::FS, 1002}; constexpr Result ResultTargetNotFound{ErrorModule::FS, 1002};
constexpr Result ResultHasNotGottenPatrolCount{ErrorModule::FS, 1003};
constexpr Result ResultNcaExternalKeyUnregistered{ErrorModule::FS, 1004};
constexpr Result ResultPortSdCardNoDevice{ErrorModule::FS, 2001}; constexpr Result ResultPortSdCardNoDevice{ErrorModule::FS, 2001};
constexpr Result ResultPortSdCardNotActivated{ErrorModule::FS, 2002};
constexpr Result ResultPortSdCardDeviceRemoved{ErrorModule::FS, 2003};
constexpr Result ResultPortSdCardNotAwakened{ErrorModule::FS, 2004};
constexpr Result ResultGameCardUnknown{ErrorModule::FS, 2501};
constexpr Result ResultGameCardUnexpectedDeadCode{ErrorModule::FS, 2502};
constexpr Result ResultGameCardPreconditionViolation{ErrorModule::FS, 2503};
constexpr Result ResultGameCardNotImplemented{ErrorModule::FS, 2504};
constexpr Result ResultGameCardQueueFullFailure{ErrorModule::FS, 2510};
constexpr Result ResultGameCardLockerOutOfRange{ErrorModule::FS, 2511};
constexpr Result ResultGameCardFailedIoMappingForGpio{ErrorModule::FS, 2516};
constexpr Result ResultGameCardCardNotInserted{ErrorModule::FS, 2520};
constexpr Result ResultGameCardCardIdMismatch{ErrorModule::FS, 2521};
constexpr Result ResultGameCardCardNotActivated{ErrorModule::FS, 2522};
constexpr Result ResultGameCardNotAwakened{ErrorModule::FS, 2523};
constexpr Result ResultGameCardCardAccessTimeout{ErrorModule::FS, 2531};
constexpr Result ResultGameCardCardFatal{ErrorModule::FS, 2532};
constexpr Result ResultGameCardCardNeedRetry{ErrorModule::FS, 2533};
constexpr Result ResultGameCardCardRetryFailure{ErrorModule::FS, 2534};
constexpr Result ResultGameCardRetryLimitOut{ErrorModule::FS, 2536};
constexpr Result ResultGameCardNeedRefreshAndCardNeedRetry{ErrorModule::FS, 2538};
constexpr Result ResultGameCardInvalidSecureAccess{ErrorModule::FS, 2540};
constexpr Result ResultGameCardInvalidNormalAccess{ErrorModule::FS, 2541};
constexpr Result ResultGameCardInvalidAccessAcrossMode{ErrorModule::FS, 2542};
constexpr Result ResultGameCardInitialDataMismatch{ErrorModule::FS, 2544};
constexpr Result ResultGameCardInitialNotFilledWithZero{ErrorModule::FS, 2545};
constexpr Result ResultGameCardKekIndexMismatch{ErrorModule::FS, 2546};
constexpr Result ResultGameCardInvalidGetCardDeviceCertificate{ErrorModule::FS, 2548};
constexpr Result ResultGameCardUnregisteredCardSecureMethod{ErrorModule::FS, 2549};
constexpr Result ResultGameCardCardNeedRetryAfterAsicReinitialize{ErrorModule::FS, 2550};
constexpr Result ResultGameCardCardHeaderReadFailure{ErrorModule::FS, 2551};
constexpr Result ResultGameCardCardReinitializeFailure{ErrorModule::FS, 2552};
constexpr Result ResultGameCardInvalidChallengeCardExistenceMode{ErrorModule::FS, 2553};
constexpr Result ResultGameCardInvalidCardHeader{ErrorModule::FS, 2554};
constexpr Result ResultGameCardInvalidT1CardCertificate{ErrorModule::FS, 2555};
constexpr Result ResultGameCardInvalidCa10Certificate{ErrorModule::FS, 2557};
constexpr Result ResultGameCardInvalidCa10CardHeader{ErrorModule::FS, 2558};
constexpr Result ResultGameCardFinishOperationFailed{ErrorModule::FS, 2566};
constexpr Result ResultGameCardAlreadyTransitionedState{ErrorModule::FS, 2598};
constexpr Result ResultGameCardShouldTransitFromAsicInitialToSecure{ErrorModule::FS, 2599};
constexpr Result ResultGameCardShouldTransitFromInitialToNormal{ErrorModule::FS, 2600};
constexpr Result ResultGameCardShouldTransitFromNormalModeToSecure{ErrorModule::FS, 2601};
constexpr Result ResultGameCardShouldTransitFromNormalModeToDebug{ErrorModule::FS, 2602};
constexpr Result ResultGameCardAlreadyInitializedAsic{ErrorModule::FS, 2630};
constexpr Result ResultGameCardAsicBootFailure{ErrorModule::FS, 2632};
constexpr Result ResultGameCardSendFirmwareFailure{ErrorModule::FS, 2634};
constexpr Result ResultGameCardReceiveCertificateFailure{ErrorModule::FS, 2637};
constexpr Result ResultGameCardParseCertificateFailure{ErrorModule::FS, 2638};
constexpr Result ResultGameCardInvalidCertificate{ErrorModule::FS, 2639};
constexpr Result ResultGameCardSendSocCertificateFailure{ErrorModule::FS, 2640};
constexpr Result ResultGameCardReceiveRandomValueFailure{ErrorModule::FS, 2645};
constexpr Result ResultGameCardSendRandomValueFailure{ErrorModule::FS, 2646};
constexpr Result ResultGameCardDecryptRandomValueFailure{ErrorModule::FS, 2647};
constexpr Result ResultGameCardReceiveDeviceChallengeFailure{ErrorModule::FS, 2651};
constexpr Result ResultGameCardRespondDeviceChallengeFailure{ErrorModule::FS, 2652};
constexpr Result ResultGameCardSendHostChallengeFailure{ErrorModule::FS, 2653};
constexpr Result ResultGameCardReceiveChallengeResponseFailure{ErrorModule::FS, 2654};
constexpr Result ResultGameCardChallengeAndResponseFailure{ErrorModule::FS, 2655};
constexpr Result ResultGameCardChangeModeToSecureFailure{ErrorModule::FS, 2658};
constexpr Result ResultGameCardExchangeRandomValuesFailure{ErrorModule::FS, 2659};
constexpr Result ResultGameCardAsicChallengeCardExistenceFailure{ErrorModule::FS, 2660};
constexpr Result ResultGameCardInitializeAsicTimeOut{ErrorModule::FS, 2663};
constexpr Result ResultGameCardSplDecryptAesKeyFailure{ErrorModule::FS, 2666};
constexpr Result ResultGameCardSplDecryptAndStoreGcKeyFailure{ErrorModule::FS, 2667};
constexpr Result ResultGameCardSplGenerateRandomBytesFailure{ErrorModule::FS, 2668};
constexpr Result ResultGameCardSplDecryptGcMessageFailure{ErrorModule::FS, 2669};
constexpr Result ResultGameCardReadRegisterFailure{ErrorModule::FS, 2671};
constexpr Result ResultGameCardWriteRegisterFailure{ErrorModule::FS, 2672};
constexpr Result ResultGameCardEnableCardBusFailure{ErrorModule::FS, 2673};
constexpr Result ResultGameCardGetCardHeaderFailure{ErrorModule::FS, 2674};
constexpr Result ResultGameCardAsicStatusError{ErrorModule::FS, 2675};
constexpr Result ResultGameCardChangeGcModeToSecureFailure{ErrorModule::FS, 2676};
constexpr Result ResultGameCardChangeGcModeToDebugFailure{ErrorModule::FS, 2677};
constexpr Result ResultGameCardReadRmaInfoFailure{ErrorModule::FS, 2678};
constexpr Result ResultGameCardKeySourceNotFound{ErrorModule::FS, 2681};
constexpr Result ResultGameCardStateCardNormalModeRequired{ErrorModule::FS, 2691};
constexpr Result ResultGameCardStateCardSecureModeRequired{ErrorModule::FS, 2692};
constexpr Result ResultGameCardStateCardDebugModeRequired{ErrorModule::FS, 2693};
constexpr Result ResultGameCardStateAsicInitialRequired{ErrorModule::FS, 2694};
constexpr Result ResultGameCardStateAsicSecureRequired{ErrorModule::FS, 2695};
constexpr Result ResultGameCardGeneralIoReleaseAsicResetFailure{ErrorModule::FS, 2701};
constexpr Result ResultGameCardGeneralIoHoldAsicResetFailure{ErrorModule::FS, 2702};
constexpr Result ResultGameCardSetVoltageFailure{ErrorModule::FS, 2703};
constexpr Result ResultGameCardDataIoActivateFailure{ErrorModule::FS, 2711};
constexpr Result ResultGameCardCommandReadId1Failure{ErrorModule::FS, 2731};
constexpr Result ResultGameCardCommandReadId2Failure{ErrorModule::FS, 2732};
constexpr Result ResultGameCardCommandReadId3Failure{ErrorModule::FS, 2733};
constexpr Result ResultGameCardSendCardReadUidFailure{ErrorModule::FS, 2734};
constexpr Result ResultGameCardCommandReadPageFailure{ErrorModule::FS, 2735};
constexpr Result ResultGameCardCommandReadPageUnalignedFailure{ErrorModule::FS, 2736};
constexpr Result ResultGameCardCommandWritePageFailure{ErrorModule::FS, 2737};
constexpr Result ResultGameCardCommandRefreshFailure{ErrorModule::FS, 2738};
constexpr Result ResultGameCardCommandUpdateKeyFailure{ErrorModule::FS, 2739};
constexpr Result ResultGameCardSendCardSelfRefreshFailure{ErrorModule::FS, 2740};
constexpr Result ResultGameCardSendCardReadRefreshStatusFailure{ErrorModule::FS, 2741};
constexpr Result ResultGameCardCommandReadCrcFailure{ErrorModule::FS, 2742};
constexpr Result ResultGameCardCommandEraseFailure{ErrorModule::FS, 2743};
constexpr Result ResultGameCardCommandReadDevParamFailure{ErrorModule::FS, 2744};
constexpr Result ResultGameCardCommandWriteDevParamFailure{ErrorModule::FS, 2745};
constexpr Result ResultGameCardSendCardReadErrorCountFailure{ErrorModule::FS, 2746};
constexpr Result ResultGameCardDebugParameterMismatch{ErrorModule::FS, 2901};
constexpr Result ResultGameCardDebugEraseFailure{ErrorModule::FS, 2902};
constexpr Result ResultGameCardDebugWriteCrcMismatch{ErrorModule::FS, 2903};
constexpr Result ResultGameCardDebugCardReceivedIdMismatch{ErrorModule::FS, 2904};
constexpr Result ResultGameCardDebugCardId1Mismatch{ErrorModule::FS, 2905};
constexpr Result ResultGameCardDebugCardId2Mismatch{ErrorModule::FS, 2906};
constexpr Result ResultGameCardFsGetHandleFailure{ErrorModule::FS, 2951};
constexpr Result ResultGameCardFsCheckHandleInReadFailure{ErrorModule::FS, 2952};
constexpr Result ResultGameCardFsCheckHandleInWriteFailure{ErrorModule::FS, 2953};
constexpr Result ResultGameCardFsCheckHandleInGetStatusFailure{ErrorModule::FS, 2954};
constexpr Result ResultGameCardFsCheckHandleInGetDeviceCertFailure{ErrorModule::FS, 2955};
constexpr Result ResultGameCardFsCheckHandleInGetCardImageHashFailure{ErrorModule::FS, 2956};
constexpr Result ResultGameCardFsCheckHandleInChallengeCardExistence{ErrorModule::FS, 2957};
constexpr Result ResultGameCardFsCheckHandleInAcquireReadLock{ErrorModule::FS, 2958};
constexpr Result ResultGameCardFsCheckModeInAcquireSecureLock{ErrorModule::FS, 2959};
constexpr Result ResultGameCardFsCheckHandleInCreateReadOnlyFailure{ErrorModule::FS, 2960};
constexpr Result ResultGameCardFsCheckHandleInCreateSecureReadOnlyFailure{ErrorModule::FS, 2961};
constexpr Result ResultGameCardFsInvalidCompatibilityType{ErrorModule::FS, 2962};
constexpr Result ResultGameCardNotSupportedOnDeviceModel{ErrorModule::FS, 2963};
constexpr Result ResultNotImplemented{ErrorModule::FS, 3001}; constexpr Result ResultNotImplemented{ErrorModule::FS, 3001};
constexpr Result ResultUnsupportedVersion{ErrorModule::FS, 3002}; constexpr Result ResultUnsupportedVersion{ErrorModule::FS, 3002};
constexpr Result ResultAlreadyExists{ErrorModule::FS, 3003};
constexpr Result ResultOutOfRange{ErrorModule::FS, 3005}; constexpr Result ResultOutOfRange{ErrorModule::FS, 3005};
constexpr Result ResultStorageDeviceInvalidOperation{ErrorModule::FS, 3099};
constexpr Result ResultSystemPartitionNotReady{ErrorModule::FS, 3100};
constexpr Result ResultStorageDeviceNotReady{ErrorModule::FS, 3101};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemA{ErrorModule::FS, 3201};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemC{ErrorModule::FS, 3203};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemD{ErrorModule::FS, 3204};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemE{ErrorModule::FS, 3205};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemF{ErrorModule::FS, 3206};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemH{ErrorModule::FS, 3208};
constexpr Result ResultAllocationMemoryFailedInFileSystemAccessorA{ErrorModule::FS, 3211};
constexpr Result ResultAllocationMemoryFailedInFileSystemAccessorB{ErrorModule::FS, 3212};
constexpr Result ResultAllocationMemoryFailedInApplicationA{ErrorModule::FS, 3213};
constexpr Result ResultAllocationMemoryFailedInBcatSaveDataA{ErrorModule::FS, 3214};
constexpr Result ResultAllocationMemoryFailedInBisA{ErrorModule::FS, 3215};
constexpr Result ResultAllocationMemoryFailedInBisB{ErrorModule::FS, 3216};
constexpr Result ResultAllocationMemoryFailedInBisC{ErrorModule::FS, 3217};
constexpr Result ResultAllocationMemoryFailedInCodeA{ErrorModule::FS, 3218};
constexpr Result ResultAllocationMemoryFailedInContentA{ErrorModule::FS, 3219};
constexpr Result ResultAllocationMemoryFailedInContentStorageA{ErrorModule::FS, 3220};
constexpr Result ResultAllocationMemoryFailedInContentStorageB{ErrorModule::FS, 3221};
constexpr Result ResultAllocationMemoryFailedInDataA{ErrorModule::FS, 3222};
constexpr Result ResultAllocationMemoryFailedInDataB{ErrorModule::FS, 3223};
constexpr Result ResultAllocationMemoryFailedInDeviceSaveDataA{ErrorModule::FS, 3224};
constexpr Result ResultAllocationMemoryFailedInGameCardA{ErrorModule::FS, 3225};
constexpr Result ResultAllocationMemoryFailedInGameCardB{ErrorModule::FS, 3226};
constexpr Result ResultAllocationMemoryFailedInGameCardC{ErrorModule::FS, 3227};
constexpr Result ResultAllocationMemoryFailedInGameCardD{ErrorModule::FS, 3228};
constexpr Result ResultAllocationMemoryFailedInHostA{ErrorModule::FS, 3229};
constexpr Result ResultAllocationMemoryFailedInHostB{ErrorModule::FS, 3230};
constexpr Result ResultAllocationMemoryFailedInHostC{ErrorModule::FS, 3231};
constexpr Result ResultAllocationMemoryFailedInImageDirectoryA{ErrorModule::FS, 3232};
constexpr Result ResultAllocationMemoryFailedInLogoA{ErrorModule::FS, 3233};
constexpr Result ResultAllocationMemoryFailedInRomA{ErrorModule::FS, 3234};
constexpr Result ResultAllocationMemoryFailedInRomB{ErrorModule::FS, 3235};
constexpr Result ResultAllocationMemoryFailedInRomC{ErrorModule::FS, 3236};
constexpr Result ResultAllocationMemoryFailedInRomD{ErrorModule::FS, 3237};
constexpr Result ResultAllocationMemoryFailedInRomE{ErrorModule::FS, 3238};
constexpr Result ResultAllocationMemoryFailedInRomF{ErrorModule::FS, 3239};
constexpr Result ResultAllocationMemoryFailedInSaveDataManagementA{ErrorModule::FS, 3242};
constexpr Result ResultAllocationMemoryFailedInSaveDataThumbnailA{ErrorModule::FS, 3243};
constexpr Result ResultAllocationMemoryFailedInSdCardA{ErrorModule::FS, 3244};
constexpr Result ResultAllocationMemoryFailedInSdCardB{ErrorModule::FS, 3245};
constexpr Result ResultAllocationMemoryFailedInSystemSaveDataA{ErrorModule::FS, 3246};
constexpr Result ResultAllocationMemoryFailedInRomFsFileSystemA{ErrorModule::FS, 3247};
constexpr Result ResultAllocationMemoryFailedInRomFsFileSystemB{ErrorModule::FS, 3248};
constexpr Result ResultAllocationMemoryFailedInRomFsFileSystemC{ErrorModule::FS, 3249};
constexpr Result ResultAllocationMemoryFailedInGuidPartitionTableA{ErrorModule::FS, 3251};
constexpr Result ResultAllocationMemoryFailedInDeviceDetectionEventManagerA{ErrorModule::FS, 3252};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemServiceImplA{ErrorModule::FS, 3253};
constexpr Result ResultAllocationMemoryFailedInFileSystemProxyCoreImplB{ErrorModule::FS, 3254};
constexpr Result ResultAllocationMemoryFailedInSdCardProxyFileSystemCreatorA{ErrorModule::FS, 3255};
constexpr Result ResultAllocationMemoryFailedInNcaFileSystemServiceImplA{ErrorModule::FS, 3256};
constexpr Result ResultAllocationMemoryFailedInNcaFileSystemServiceImplB{ErrorModule::FS, 3257};
constexpr Result ResultAllocationMemoryFailedInProgramRegistryManagerA{ErrorModule::FS, 3258};
constexpr Result ResultAllocationMemoryFailedInSdmmcStorageServiceA{ErrorModule::FS, 3259};
constexpr Result ResultAllocationMemoryFailedInBuiltInStorageCreatorA{ErrorModule::FS, 3260};
constexpr Result ResultAllocationMemoryFailedInBuiltInStorageCreatorB{ErrorModule::FS, 3261};
constexpr Result ResultAllocationMemoryFailedInBuiltInStorageCreatorC{ErrorModule::FS, 3262};
constexpr Result ResultAllocationMemoryFailedFatFileSystemWithBufferA{ErrorModule::FS, 3264};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemCreatorA{ErrorModule::FS, 3265};
constexpr Result ResultAllocationMemoryFailedInFatFileSystemCreatorB{ErrorModule::FS, 3266};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorA{ErrorModule::FS, 3267};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorB{ErrorModule::FS, 3268};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorC{ErrorModule::FS, 3269};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorD{ErrorModule::FS, 3270};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorE{ErrorModule::FS, 3271};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorF{ErrorModule::FS, 3272};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerA{ErrorModule::FS, 3273};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerB{ErrorModule::FS, 3274};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerC{ErrorModule::FS, 3275};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerD{ErrorModule::FS, 3276};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerE{ErrorModule::FS, 3277};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerF{ErrorModule::FS, 3278};
constexpr Result ResultAllocationMemoryFailedInLocalFileSystemCreatorA{ErrorModule::FS, 3279};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemCreatorA{ErrorModule::FS, 3280};
constexpr Result ResultAllocationMemoryFailedInRomFileSystemCreatorA{ErrorModule::FS, 3281};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCreatorA{ErrorModule::FS, 3282};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCreatorB{ErrorModule::FS, 3283};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCreatorC{ErrorModule::FS, 3284};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCreatorD{ErrorModule::FS, 3285};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCreatorE{ErrorModule::FS, 3286};
constexpr Result ResultAllocationMemoryFailedInStorageOnNcaCreatorA{ErrorModule::FS, 3288};
constexpr Result ResultAllocationMemoryFailedInStorageOnNcaCreatorB{ErrorModule::FS, 3289};
constexpr Result ResultAllocationMemoryFailedInSubDirectoryFileSystemCreatorA{ErrorModule::FS, 3290};
constexpr Result ResultAllocationMemoryFailedInTargetManagerFileSystemCreatorA{ErrorModule::FS, 3291};
constexpr Result ResultAllocationMemoryFailedInSaveDataIndexerA{ErrorModule::FS, 3292};
constexpr Result ResultAllocationMemoryFailedInSaveDataIndexerB{ErrorModule::FS, 3293};
constexpr Result ResultAllocationMemoryFailedInFileSystemBuddyHeapA{ErrorModule::FS, 3294}; constexpr Result ResultAllocationMemoryFailedInFileSystemBuddyHeapA{ErrorModule::FS, 3294};
constexpr Result ResultAllocationMemoryFailedInFileSystemBufferManagerA{ErrorModule::FS, 3295};
constexpr Result ResultAllocationMemoryFailedInBlockCacheBufferedStorageA{ErrorModule::FS, 3296};
constexpr Result ResultAllocationMemoryFailedInBlockCacheBufferedStorageB{ErrorModule::FS, 3297};
constexpr Result ResultAllocationMemoryFailedInDuplexStorageA{ErrorModule::FS, 3298};
constexpr Result ResultAllocationMemoryFailedInIntegrityVerificationStorageA{ErrorModule::FS, 3304};
constexpr Result ResultAllocationMemoryFailedInIntegrityVerificationStorageB{ErrorModule::FS, 3305};
constexpr Result ResultAllocationMemoryFailedInJournalStorageA{ErrorModule::FS, 3306};
constexpr Result ResultAllocationMemoryFailedInJournalStorageB{ErrorModule::FS, 3307};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCoreA{ErrorModule::FS, 3310};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemCoreB{ErrorModule::FS, 3311};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileA{ErrorModule::FS, 3312};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileB{ErrorModule::FS, 3313};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileC{ErrorModule::FS, 3314};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileD{ErrorModule::FS, 3315};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileSystemA{ErrorModule::FS, 3316};
constexpr Result ResultAllocationMemoryFailedInConcatenationFileSystemA{ErrorModule::FS, 3319};
constexpr Result ResultAllocationMemoryFailedInConcatenationFileSystemB{ErrorModule::FS, 3320};
constexpr Result ResultAllocationMemoryFailedInDirectorySaveDataFileSystemA{ErrorModule::FS, 3321};
constexpr Result ResultAllocationMemoryFailedInLocalFileSystemA{ErrorModule::FS, 3322};
constexpr Result ResultAllocationMemoryFailedInLocalFileSystemB{ErrorModule::FS, 3323};
constexpr Result ResultAllocationMemoryFailedInNcaFileSystemDriverI{ErrorModule::FS, 3341}; constexpr Result ResultAllocationMemoryFailedInNcaFileSystemDriverI{ErrorModule::FS, 3341};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemA{ErrorModule::FS, 3347};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemB{ErrorModule::FS, 3348};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemC{ErrorModule::FS, 3349};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemMetaA{ErrorModule::FS, 3350};
constexpr Result ResultAllocationMemoryFailedInPartitionFileSystemMetaB{ErrorModule::FS, 3351};
constexpr Result ResultAllocationMemoryFailedInRomFsFileSystemD{ErrorModule::FS, 3352};
constexpr Result ResultAllocationMemoryFailedInSubdirectoryFileSystemA{ErrorModule::FS, 3355};
constexpr Result ResultAllocationMemoryFailedInTmFileSystemA{ErrorModule::FS, 3356};
constexpr Result ResultAllocationMemoryFailedInTmFileSystemB{ErrorModule::FS, 3357};
constexpr Result ResultAllocationMemoryFailedInProxyFileSystemA{ErrorModule::FS, 3359};
constexpr Result ResultAllocationMemoryFailedInProxyFileSystemB{ErrorModule::FS, 3360};
constexpr Result ResultAllocationMemoryFailedInSaveDataExtraDataAccessorCacheManagerA{ErrorModule::FS, 3362};
constexpr Result ResultAllocationMemoryFailedInNcaReaderA{ErrorModule::FS, 3363}; constexpr Result ResultAllocationMemoryFailedInNcaReaderA{ErrorModule::FS, 3363};
constexpr Result ResultAllocationMemoryFailedInRegisterA{ErrorModule::FS, 3365};
constexpr Result ResultAllocationMemoryFailedInRegisterB{ErrorModule::FS, 3366};
constexpr Result ResultAllocationMemoryFailedInPathNormalizer{ErrorModule::FS, 3367};
constexpr Result ResultAllocationMemoryFailedInDbmRomKeyValueStorage{ErrorModule::FS, 3375};
constexpr Result ResultAllocationMemoryFailedInDbmHierarchicalRomFileTable{ErrorModule::FS, 3376};
constexpr Result ResultAllocationMemoryFailedInRomFsFileSystemE{ErrorModule::FS, 3377};
constexpr Result ResultAllocationMemoryFailedInISaveFileSystemA{ErrorModule::FS, 3378};
constexpr Result ResultAllocationMemoryFailedInISaveFileSystemB{ErrorModule::FS, 3379};
constexpr Result ResultAllocationMemoryFailedInRomOnFileA{ErrorModule::FS, 3380};
constexpr Result ResultAllocationMemoryFailedInRomOnFileB{ErrorModule::FS, 3381};
constexpr Result ResultAllocationMemoryFailedInRomOnFileC{ErrorModule::FS, 3382};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileE{ErrorModule::FS, 3383};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileF{ErrorModule::FS, 3384};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileG{ErrorModule::FS, 3385};
constexpr Result ResultAllocationMemoryFailedInReadOnlyFileSystemA{ErrorModule::FS, 3386};
constexpr Result ResultAllocationMemoryFailedInEncryptedFileSystemCreatorA{ErrorModule::FS, 3394};
constexpr Result ResultAllocationMemoryFailedInAesCtrCounterExtendedStorageA{ErrorModule::FS, 3399}; constexpr Result ResultAllocationMemoryFailedInAesCtrCounterExtendedStorageA{ErrorModule::FS, 3399};
constexpr Result ResultAllocationMemoryFailedInAesCtrCounterExtendedStorageB{ErrorModule::FS, 3400};
constexpr Result ResultAllocationMemoryFailedInSdmmcStorageServiceB{ErrorModule::FS, 3406};
constexpr Result ResultAllocationMemoryFailedInFileSystemInterfaceAdapterA{ErrorModule::FS, 3407};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorG{ErrorModule::FS, 3408};
constexpr Result ResultAllocationMemoryFailedInGameCardFileSystemCreatorH{ErrorModule::FS, 3409};
constexpr Result ResultAllocationMemoryFailedInAesXtsFileSystemB{ErrorModule::FS, 3410};
constexpr Result ResultAllocationMemoryFailedInBufferedStorageA{ErrorModule::FS, 3411};
constexpr Result ResultAllocationMemoryFailedInIntegrityRomFsStorageA{ErrorModule::FS, 3412}; constexpr Result ResultAllocationMemoryFailedInIntegrityRomFsStorageA{ErrorModule::FS, 3412};
constexpr Result ResultAllocationMemoryFailedInSaveDataFileSystemServiceImplB{ErrorModule::FS, 3416};
constexpr Result ResultAllocationMemoryFailedNew{ErrorModule::FS, 3420};
constexpr Result ResultAllocationMemoryFailedInFileSystemProxyImplA{ErrorModule::FS, 3421};
constexpr Result ResultAllocationMemoryFailedMakeUnique{ErrorModule::FS, 3422}; constexpr Result ResultAllocationMemoryFailedMakeUnique{ErrorModule::FS, 3422};
constexpr Result ResultAllocationMemoryFailedAllocateShared{ErrorModule::FS, 3423}; constexpr Result ResultAllocationMemoryFailedAllocateShared{ErrorModule::FS, 3423};
constexpr Result ResultAllocationPooledBufferNotEnoughSize{ErrorModule::FS, 3424};
constexpr Result ResultAllocationMemoryFailedInWriteThroughCacheStorageA{ErrorModule::FS, 3428};
constexpr Result ResultAllocationMemoryFailedInSaveDataTransferManagerA{ErrorModule::FS, 3429};
constexpr Result ResultAllocationMemoryFailedInSaveDataTransferManagerB{ErrorModule::FS, 3430};
constexpr Result ResultAllocationMemoryFailedInHtcFileSystemA{ErrorModule::FS, 3431};
constexpr Result ResultAllocationMemoryFailedInHtcFileSystemB{ErrorModule::FS, 3432};
constexpr Result ResultAllocationMemoryFailedInGameCardManagerG{ErrorModule::FS, 3433};
constexpr Result ResultPortMmcNoDevice{ErrorModule::FS, 3501};
constexpr Result ResultPortMmcNotActivated{ErrorModule::FS, 3502};
constexpr Result ResultPortMmcDeviceRemoved{ErrorModule::FS, 3503};
constexpr Result ResultPortMmcNotAwakened{ErrorModule::FS, 3504};
constexpr Result ResultInvalidAesCtrCounterExtendedEntryOffset{ErrorModule::FS, 4012}; constexpr Result ResultInvalidAesCtrCounterExtendedEntryOffset{ErrorModule::FS, 4012};
constexpr Result ResultIndirectStorageCorrupted{ErrorModule::FS, 4021}; constexpr Result ResultIndirectStorageCorrupted{ErrorModule::FS, 4021};
constexpr Result ResultInvalidIndirectEntryOffset{ErrorModule::FS, 4022}; constexpr Result ResultInvalidIndirectEntryOffset{ErrorModule::FS, 4022};
@@ -326,35 +36,6 @@ constexpr Result ResultInvalidBucketTreeEntryOffset{ErrorModule::FS, 4036};
constexpr Result ResultInvalidBucketTreeEntrySetOffset{ErrorModule::FS, 4037}; constexpr Result ResultInvalidBucketTreeEntrySetOffset{ErrorModule::FS, 4037};
constexpr Result ResultInvalidBucketTreeNodeIndex{ErrorModule::FS, 4038}; constexpr Result ResultInvalidBucketTreeNodeIndex{ErrorModule::FS, 4038};
constexpr Result ResultInvalidBucketTreeVirtualOffset{ErrorModule::FS, 4039}; constexpr Result ResultInvalidBucketTreeVirtualOffset{ErrorModule::FS, 4039};
constexpr Result ResultRomNcaCorrupted{ErrorModule::FS, 4041};
constexpr Result ResultRomNcaFileSystemCorrupted{ErrorModule::FS, 4051};
constexpr Result ResultInvalidRomNcaFileSystemType{ErrorModule::FS, 4052};
constexpr Result ResultInvalidRomAcidFileSize{ErrorModule::FS, 4053};
constexpr Result ResultInvalidRomAcidSize{ErrorModule::FS, 4054};
constexpr Result ResultInvalidRomAcid{ErrorModule::FS, 4055};
constexpr Result ResultRomAcidVerificationFailed{ErrorModule::FS, 4056};
constexpr Result ResultInvalidRomNcaSignature{ErrorModule::FS, 4057};
constexpr Result ResultRomNcaHeaderSignature1VerificationFailed{ErrorModule::FS, 4058};
constexpr Result ResultRomNcaHeaderSignature2VerificationFailed{ErrorModule::FS, 4059};
constexpr Result ResultRomNcaFsHeaderHashVerificationFailed{ErrorModule::FS, 4060};
constexpr Result ResultInvalidRomNcaKeyIndex{ErrorModule::FS, 4061};
constexpr Result ResultInvalidRomNcaFsHeaderHashType{ErrorModule::FS, 4062};
constexpr Result ResultInvalidRomNcaFsHeaderEncryptionType{ErrorModule::FS, 4063};
constexpr Result ResultInvalidRomNcaPatchInfoIndirectSize{ErrorModule::FS, 4064};
constexpr Result ResultInvalidRomNcaPatchInfoAesCtrExSize{ErrorModule::FS, 4065};
constexpr Result ResultInvalidRomNcaPatchInfoAesCtrExOffset{ErrorModule::FS, 4066};
constexpr Result ResultInvalidRomNcaId{ErrorModule::FS, 4067};
constexpr Result ResultInvalidRomNcaHeader{ErrorModule::FS, 4068};
constexpr Result ResultInvalidRomNcaFsHeader{ErrorModule::FS, 4069};
constexpr Result ResultInvalidRomNcaPatchInfoIndirectOffset{ErrorModule::FS, 4070};
constexpr Result ResultRomNcaHierarchicalSha256StorageCorrupted{ErrorModule::FS, 4071};
constexpr Result ResultInvalidRomHierarchicalSha256BlockSize{ErrorModule::FS, 4072};
constexpr Result ResultInvalidRomHierarchicalSha256LayerCount{ErrorModule::FS, 4073};
constexpr Result ResultRomHierarchicalSha256BaseStorageTooLarge{ErrorModule::FS, 4074};
constexpr Result ResultRomHierarchicalSha256HashVerificationFailed{ErrorModule::FS, 4075};
constexpr Result ResultInvalidRomHierarchicalIntegrityVerificationLayerCount{ErrorModule::FS, 4081};
constexpr Result ResultRomNcaIndirectStorageOutOfRange{ErrorModule::FS, 4082};
constexpr Result ResultRomNcaInvalidCompressionInfo{ErrorModule::FS, 4083};
constexpr Result ResultRomNcaInvalidPatchMetaDataHashType{ErrorModule::FS, 4084}; constexpr Result ResultRomNcaInvalidPatchMetaDataHashType{ErrorModule::FS, 4084};
constexpr Result ResultRomNcaInvalidIntegrityLayerInfoOffset{ErrorModule::FS, 4085}; constexpr Result ResultRomNcaInvalidIntegrityLayerInfoOffset{ErrorModule::FS, 4085};
constexpr Result ResultRomNcaInvalidPatchMetaDataHashDataSize{ErrorModule::FS, 4086}; constexpr Result ResultRomNcaInvalidPatchMetaDataHashDataSize{ErrorModule::FS, 4086};
@@ -364,122 +45,10 @@ constexpr Result ResultRomNcaInvalidSparseMetaDataHashType{ErrorModule::FS, 4089
constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataSize{ErrorModule::FS, 4090}; constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataSize{ErrorModule::FS, 4090};
constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataOffset{ErrorModule::FS, 4091}; constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataOffset{ErrorModule::FS, 4091};
constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataHash{ErrorModule::FS, 4091}; constexpr Result ResultRomNcaInvalidSparseMetaDataHashDataHash{ErrorModule::FS, 4091};
constexpr Result ResultRomIntegrityVerificationStorageCorrupted{ErrorModule::FS, 4141};
constexpr Result ResultIncorrectRomIntegrityVerificationMagicCode{ErrorModule::FS, 4142};
constexpr Result ResultInvalidRomZeroSignature{ErrorModule::FS, 4143};
constexpr Result ResultRomNonRealDataVerificationFailed{ErrorModule::FS, 4144};
constexpr Result ResultRomRealDataVerificationFailed{ErrorModule::FS, 4151};
constexpr Result ResultClearedRomRealDataVerificationFailed{ErrorModule::FS, 4152};
constexpr Result ResultUnclearedRomRealDataVerificationFailed{ErrorModule::FS, 4153};
constexpr Result ResultRomPartitionFileSystemCorrupted{ErrorModule::FS, 4181};
constexpr Result ResultInvalidRomSha256PartitionHashTarget{ErrorModule::FS, 4182};
constexpr Result ResultRomSha256PartitionHashVerificationFailed{ErrorModule::FS, 4183};
constexpr Result ResultRomPartitionSignatureVerificationFailed{ErrorModule::FS, 4184};
constexpr Result ResultRomSha256PartitionSignatureVerificationFailed{ErrorModule::FS, 4185};
constexpr Result ResultInvalidRomPartitionEntryOffset{ErrorModule::FS, 4186};
constexpr Result ResultInvalidRomSha256PartitionMetaDataSize{ErrorModule::FS, 4187};
constexpr Result ResultRomBuiltInStorageCorrupted{ErrorModule::FS, 4201};
constexpr Result ResultRomGptHeaderSignatureVerificationFailed{ErrorModule::FS, 4202};
constexpr Result ResultRomHostFileSystemCorrupted{ErrorModule::FS, 4241};
constexpr Result ResultRomHostEntryCorrupted{ErrorModule::FS, 4242};
constexpr Result ResultRomHostFileDataCorrupted{ErrorModule::FS, 4243};
constexpr Result ResultRomHostFileCorrupted{ErrorModule::FS, 4244};
constexpr Result ResultInvalidRomHostHandle{ErrorModule::FS, 4245};
constexpr Result ResultRomDatabaseCorrupted{ErrorModule::FS, 4261};
constexpr Result ResultInvalidRomAllocationTableBlock{ErrorModule::FS, 4262};
constexpr Result ResultInvalidRomKeyValueListElementIndex{ErrorModule::FS, 4263};
constexpr Result ResultRomStorageCorrupted{ErrorModule::FS, 4280};
constexpr Result ResultInvalidRomStorageSize{ErrorModule::FS, 4281};
constexpr Result ResultSaveDataCorrupted{ErrorModule::FS, 4301};
constexpr Result ResultUnsupportedSaveDataVersion{ErrorModule::FS, 4302};
constexpr Result ResultInvalidSaveDataEntryType{ErrorModule::FS, 4303};
constexpr Result ResultReconstructibleSaveDataCorrupted{ErrorModule::FS, 4304};
constexpr Result ResultSaveDataFileSystemCorrupted{ErrorModule::FS, 4311};
constexpr Result ResultInvalidJournalIntegritySaveDataHashSize{ErrorModule::FS, 4312};
constexpr Result ResultInvalidJournalIntegritySaveDataCommitState{ErrorModule::FS, 4313};
constexpr Result ResultInvalidJournalIntegritySaveDataControlAreaSize{ErrorModule::FS, 4314};
constexpr Result ResultJournalIntegritySaveDataControlAreaVerificationFailed{ErrorModule::FS, 4315};
constexpr Result ResultJournalIntegritySaveDataMasterSignatureVerificationFailed{ErrorModule::FS, 4316};
constexpr Result ResultIncorrectJournalIntegritySaveDataMagicCode{ErrorModule::FS, 4317};
constexpr Result ResultSaveDataDuplexStorageCorrupted{ErrorModule::FS, 4321};
constexpr Result ResultIncorrectDuplexMagicCode{ErrorModule::FS, 4322};
constexpr Result ResultDuplexStorageAccessOutOfRange{ErrorModule::FS, 4323};
constexpr Result ResultSaveDataMapCorrupted{ErrorModule::FS, 4331};
constexpr Result ResultInvalidMapEntryCount{ErrorModule::FS, 4332};
constexpr Result ResultInvalidMapOffset{ErrorModule::FS, 4333};
constexpr Result ResultInvalidMapSize{ErrorModule::FS, 4334};
constexpr Result ResultInvalidMapAlignment{ErrorModule::FS, 4335};
constexpr Result ResultInvalidMapStorageType{ErrorModule::FS, 4336};
constexpr Result ResultMapAddressAlreadyRegistered{ErrorModule::FS, 4337};
constexpr Result ResultMapStorageNotFound{ErrorModule::FS, 4338};
constexpr Result ResultInvalidMapStorageSize{ErrorModule::FS, 4339};
constexpr Result ResultSaveDataLogCorrupted{ErrorModule::FS, 4341};
constexpr Result ResultInvalidLogBlockSize{ErrorModule::FS, 4342};
constexpr Result ResultInvalidLogOffset{ErrorModule::FS, 4343};
constexpr Result ResultUnexpectedEndOfLog{ErrorModule::FS, 4344};
constexpr Result ResultLogNotFound{ErrorModule::FS, 4345};
constexpr Result ResultThumbnailHashVerificationFailed{ErrorModule::FS, 4352};
constexpr Result ResultInvalidSaveDataInternalStorageIntegritySeedSize{ErrorModule::FS, 4357};
constexpr Result ResultInvalidSaveDataInternalStorageAllocationTableFreeBitmapSizeA{ErrorModule::FS, 4358};
constexpr Result ResultInvalidSaveDataInternalStorageAllocationTableFreeBitmapSizeB{ErrorModule::FS, 4359};
constexpr Result ResultSaveDataIntegrityVerificationStorageCorrupted{ErrorModule::FS, 4361};
constexpr Result ResultIncorrectSaveDataIntegrityVerificationMagicCode{ErrorModule::FS, 4362};
constexpr Result ResultInvalidSaveDataZeroHash{ErrorModule::FS, 4363};
constexpr Result ResultSaveDataNonRealDataVerificationFailed{ErrorModule::FS, 4364};
constexpr Result ResultSaveDataRealDataVerificationFailed{ErrorModule::FS, 4371};
constexpr Result ResultClearedSaveDataRealDataVerificationFailed{ErrorModule::FS, 4372};
constexpr Result ResultUnclearedSaveDataRealDataVerificationFailed{ErrorModule::FS, 4373};
constexpr Result ResultSaveDataBuiltInStorageCorrupted{ErrorModule::FS, 4401};
constexpr Result ResultSaveDataGptHeaderSignatureVerificationFailed{ErrorModule::FS, 4402};
constexpr Result ResultSaveDataCoreFileSystemCorrupted{ErrorModule::FS, 4411};
constexpr Result ResultIncorrectSaveDataFileSystemMagicCode{ErrorModule::FS, 4412};
constexpr Result ResultInvalidSaveDataFileReadOffset{ErrorModule::FS, 4413};
constexpr Result ResultInvalidSaveDataCoreDataStorageSize{ErrorModule::FS, 4414};
constexpr Result ResultIncompleteBlockInZeroBitmapHashStorageFileSaveData{ErrorModule::FS, 4427};
constexpr Result ResultJournalStorageCorrupted{ErrorModule::FS, 4431};
constexpr Result ResultJournalStorageAccessOutOfRange{ErrorModule::FS, 4432};
constexpr Result ResultInvalidJournalStorageDataStorageSize{ErrorModule::FS, 4433};
constexpr Result ResultSaveDataHostFileSystemCorrupted{ErrorModule::FS, 4441};
constexpr Result ResultSaveDataHostEntryCorrupted{ErrorModule::FS, 4442};
constexpr Result ResultSaveDataHostFileDataCorrupted{ErrorModule::FS, 4443};
constexpr Result ResultSaveDataHostFileCorrupted{ErrorModule::FS, 4444};
constexpr Result ResultInvalidSaveDataHostHandle{ErrorModule::FS, 4445};
constexpr Result ResultMappingTableCorrupted{ErrorModule::FS, 4451};
constexpr Result ResultInvalidMappingTableEntryCount{ErrorModule::FS, 4452};
constexpr Result ResultInvalidMappingTablePhysicalIndex{ErrorModule::FS, 4453};
constexpr Result ResultInvalidMappingTableVirtualIndex{ErrorModule::FS, 4454};
constexpr Result ResultSaveDataDatabaseCorrupted{ErrorModule::FS, 4461};
constexpr Result ResultInvalidSaveDataAllocationTableBlock{ErrorModule::FS, 4462};
constexpr Result ResultInvalidSaveDataKeyValueListElementIndex{ErrorModule::FS, 4463};
constexpr Result ResultInvalidSaveDataAllocationTableChainEntry{ErrorModule::FS, 4464};
constexpr Result ResultInvalidSaveDataAllocationTableOffset{ErrorModule::FS, 4465};
constexpr Result ResultInvalidSaveDataAllocationTableBlockCount{ErrorModule::FS, 4466};
constexpr Result ResultInvalidSaveDataKeyValueListEntryIndex{ErrorModule::FS, 4467};
constexpr Result ResultInvalidSaveDataBitmapIndex{ErrorModule::FS, 4468};
constexpr Result ResultSaveDataExtensionContextCorrupted{ErrorModule::FS, 4481};
constexpr Result ResultIncorrectSaveDataExtensionContextMagicCode{ErrorModule::FS, 4482};
constexpr Result ResultInvalidSaveDataExtensionContextState{ErrorModule::FS, 4483};
constexpr Result ResultDifferentSaveDataExtensionContextParameter{ErrorModule::FS, 4484};
constexpr Result ResultInvalidSaveDataExtensionContextParameter{ErrorModule::FS, 4485};
constexpr Result ResultIntegritySaveDataCorrupted{ErrorModule::FS, 4491};
constexpr Result ResultInvalidIntegritySaveDataHashSize{ErrorModule::FS, 4492};
constexpr Result ResultInvalidIntegritySaveDataControlAreaSize{ErrorModule::FS, 4494};
constexpr Result ResultIntegritySaveDataControlAreaVerificationFailed{ErrorModule::FS, 4495};
constexpr Result ResultIntegritySaveDataMasterSignatureVerificationFailed{ErrorModule::FS, 4496};
constexpr Result ResultIncorrectIntegritySaveDataMagicCode{ErrorModule::FS, 4497};
constexpr Result ResultNcaCorrupted{ErrorModule::FS, 4501};
constexpr Result ResultNcaBaseStorageOutOfRangeA{ErrorModule::FS, 4508};
constexpr Result ResultNcaBaseStorageOutOfRangeB{ErrorModule::FS, 4509}; constexpr Result ResultNcaBaseStorageOutOfRangeB{ErrorModule::FS, 4509};
constexpr Result ResultNcaBaseStorageOutOfRangeC{ErrorModule::FS, 4510}; constexpr Result ResultNcaBaseStorageOutOfRangeC{ErrorModule::FS, 4510};
constexpr Result ResultNcaFileSystemCorrupted{ErrorModule::FS, 4511}; constexpr Result ResultNcaBaseStorageOutOfRangeD{ErrorModule::FS, 4511};
constexpr Result ResultInvalidNcaFileSystemType{ErrorModule::FS, 4512};
constexpr Result ResultInvalidAcidFileSize{ErrorModule::FS, 4513};
constexpr Result ResultInvalidAcidSize{ErrorModule::FS, 4514};
constexpr Result ResultInvalidAcid{ErrorModule::FS, 4515};
constexpr Result ResultAcidVerificationFailed{ErrorModule::FS, 4516};
constexpr Result ResultInvalidNcaSignature{ErrorModule::FS, 4517}; constexpr Result ResultInvalidNcaSignature{ErrorModule::FS, 4517};
constexpr Result ResultNcaHeaderSignature1VerificationFailed{ErrorModule::FS, 4518};
constexpr Result ResultNcaHeaderSignature2VerificationFailed{ErrorModule::FS, 4519};
constexpr Result ResultNcaFsHeaderHashVerificationFailed{ErrorModule::FS, 4520}; constexpr Result ResultNcaFsHeaderHashVerificationFailed{ErrorModule::FS, 4520};
constexpr Result ResultInvalidNcaKeyIndex{ErrorModule::FS, 4521}; constexpr Result ResultInvalidNcaKeyIndex{ErrorModule::FS, 4521};
constexpr Result ResultInvalidNcaFsHeaderHashType{ErrorModule::FS, 4522}; constexpr Result ResultInvalidNcaFsHeaderHashType{ErrorModule::FS, 4522};
@@ -487,144 +56,24 @@ constexpr Result ResultInvalidNcaFsHeaderEncryptionType{ErrorModule::FS, 4523};
constexpr Result ResultInvalidNcaPatchInfoIndirectSize{ErrorModule::FS, 4524}; constexpr Result ResultInvalidNcaPatchInfoIndirectSize{ErrorModule::FS, 4524};
constexpr Result ResultInvalidNcaPatchInfoAesCtrExSize{ErrorModule::FS, 4525}; constexpr Result ResultInvalidNcaPatchInfoAesCtrExSize{ErrorModule::FS, 4525};
constexpr Result ResultInvalidNcaPatchInfoAesCtrExOffset{ErrorModule::FS, 4526}; constexpr Result ResultInvalidNcaPatchInfoAesCtrExOffset{ErrorModule::FS, 4526};
constexpr Result ResultInvalidNcaId{ErrorModule::FS, 4527};
constexpr Result ResultInvalidNcaHeader{ErrorModule::FS, 4528}; constexpr Result ResultInvalidNcaHeader{ErrorModule::FS, 4528};
constexpr Result ResultInvalidNcaFsHeader{ErrorModule::FS, 4529}; constexpr Result ResultInvalidNcaFsHeader{ErrorModule::FS, 4529};
constexpr Result ResultInvalidNcaPatchInfoIndirectOffset{ErrorModule::FS, 4530}; constexpr Result ResultNcaBaseStorageOutOfRangeE{ErrorModule::FS, 4530};
constexpr Result ResultNcaHierarchicalSha256StorageCorrupted{ErrorModule::FS, 4531};
constexpr Result ResultInvalidHierarchicalSha256BlockSize{ErrorModule::FS, 4532}; constexpr Result ResultInvalidHierarchicalSha256BlockSize{ErrorModule::FS, 4532};
constexpr Result ResultInvalidHierarchicalSha256LayerCount{ErrorModule::FS, 4533}; constexpr Result ResultInvalidHierarchicalSha256LayerCount{ErrorModule::FS, 4533};
constexpr Result ResultHierarchicalSha256BaseStorageTooLarge{ErrorModule::FS, 4534}; constexpr Result ResultHierarchicalSha256BaseStorageTooLarge{ErrorModule::FS, 4534};
constexpr Result ResultHierarchicalSha256HashVerificationFailed{ErrorModule::FS, 4535}; constexpr Result ResultHierarchicalSha256HashVerificationFailed{ErrorModule::FS, 4535};
constexpr Result ResultInvalidHierarchicalIntegrityVerificationLayerCount{ErrorModule::FS, 4541}; constexpr Result ResultInvalidNcaHierarchicalIntegrityVerificationLayerCount{ErrorModule::FS, 4541};
constexpr Result ResultNcaIndirectStorageOutOfRange{ErrorModule::FS, 4542}; constexpr Result ResultInvalidNcaIndirectStorageOutOfRange{ErrorModule::FS, 4542};
constexpr Result ResultInvalidNcaHeader1SignatureKeyGeneration{ErrorModule::FS, 4543}; constexpr Result ResultInvalidNcaHeader1SignatureKeyGeneration{ErrorModule::FS, 4543};
constexpr Result ResultInvalidNspdVerificationData{ErrorModule::FS, 4545}; constexpr Result ResultInvalidCompressedStorageSize{ErrorModule::FS, 4547};
constexpr Result ResultMissingNspdVerificationData{ErrorModule::FS, 4546};
constexpr Result ResultNcaInvalidCompressionInfo{ErrorModule::FS, 4547};
constexpr Result ResultInvalidNcaMetaDataHashDataSize{ErrorModule::FS, 4548}; constexpr Result ResultInvalidNcaMetaDataHashDataSize{ErrorModule::FS, 4548};
constexpr Result ResultInvalidNcaMetaDataHashDataHash{ErrorModule::FS, 4549}; constexpr Result ResultInvalidNcaMetaDataHashDataHash{ErrorModule::FS, 4549};
constexpr Result ResultIntegrityVerificationStorageCorrupted{ErrorModule::FS, 4601};
constexpr Result ResultIncorrectIntegrityVerificationMagicCode{ErrorModule::FS, 4602};
constexpr Result ResultInvalidZeroHash{ErrorModule::FS, 4603};
constexpr Result ResultNonRealDataVerificationFailed{ErrorModule::FS, 4604};
constexpr Result ResultRealDataVerificationFailed{ErrorModule::FS, 4611};
constexpr Result ResultClearedRealDataVerificationFailed{ErrorModule::FS, 4612};
constexpr Result ResultUnclearedRealDataVerificationFailed{ErrorModule::FS, 4613};
constexpr Result ResultPartitionFileSystemCorrupted{ErrorModule::FS, 4641};
constexpr Result ResultInvalidSha256PartitionHashTarget{ErrorModule::FS, 4642};
constexpr Result ResultSha256PartitionHashVerificationFailed{ErrorModule::FS, 4643};
constexpr Result ResultPartitionSignatureVerificationFailed{ErrorModule::FS, 4644};
constexpr Result ResultSha256PartitionSignatureVerificationFailed{ErrorModule::FS, 4645};
constexpr Result ResultInvalidPartitionEntryOffset{ErrorModule::FS, 4646};
constexpr Result ResultInvalidSha256PartitionMetaDataSize{ErrorModule::FS, 4647};
constexpr Result ResultBuiltInStorageCorrupted{ErrorModule::FS, 4661};
constexpr Result ResultGptHeaderSignatureVerificationFailed{ErrorModule::FS, 4662};
constexpr Result ResultGptHeaderInvalidPartitionSize{ErrorModule::FS, 4664};
constexpr Result ResultFatFileSystemCorrupted{ErrorModule::FS, 4681};
constexpr Result ResultInvalidFatFormat{ErrorModule::FS, 4683};
constexpr Result ResultInvalidFatFileNumber{ErrorModule::FS, 4684};
constexpr Result ResultExFatUnavailable{ErrorModule::FS, 4685};
constexpr Result ResultInvalidFatFormatBisUser{ErrorModule::FS, 4686};
constexpr Result ResultInvalidFatFormatBisSystem{ErrorModule::FS, 4687};
constexpr Result ResultInvalidFatFormatBisSafe{ErrorModule::FS, 4688};
constexpr Result ResultInvalidFatFormatBisCalibration{ErrorModule::FS, 4689};
constexpr Result ResultInvalidFatFormatSd{ErrorModule::FS, 4690};
constexpr Result ResultHostFileSystemCorrupted{ErrorModule::FS, 4701};
constexpr Result ResultHostEntryCorrupted{ErrorModule::FS, 4702};
constexpr Result ResultHostFileDataCorrupted{ErrorModule::FS, 4703};
constexpr Result ResultHostFileCorrupted{ErrorModule::FS, 4704};
constexpr Result ResultInvalidHostHandle{ErrorModule::FS, 4705};
constexpr Result ResultDatabaseCorrupted{ErrorModule::FS, 4721};
constexpr Result ResultInvalidAllocationTableBlock{ErrorModule::FS, 4722};
constexpr Result ResultInvalidKeyValueListElementIndex{ErrorModule::FS, 4723};
constexpr Result ResultInvalidAllocationTableChainEntry{ErrorModule::FS, 4724};
constexpr Result ResultInvalidAllocationTableOffset{ErrorModule::FS, 4725};
constexpr Result ResultInvalidAllocationTableBlockCount{ErrorModule::FS, 4726};
constexpr Result ResultInvalidKeyValueListEntryIndex{ErrorModule::FS, 4727};
constexpr Result ResultInvalidBitmapIndex{ErrorModule::FS, 4728};
constexpr Result ResultAesXtsFileSystemCorrupted{ErrorModule::FS, 4741};
constexpr Result ResultAesXtsFileSystemFileHeaderSizeCorruptedOnFileOpen{ErrorModule::FS, 4742};
constexpr Result ResultAesXtsFileSystemFileHeaderCorruptedOnFileOpen{ErrorModule::FS, 4743};
constexpr Result ResultAesXtsFileSystemFileNoHeaderOnFileOpen{ErrorModule::FS, 4744};
constexpr Result ResultAesXtsFileSystemFileSizeCorruptedOnFileOpen{ErrorModule::FS, 4745};
constexpr Result ResultAesXtsFileSystemFileSizeCorruptedOnFileSetSize{ErrorModule::FS, 4746};
constexpr Result ResultAesXtsFileSystemFileHeaderCorruptedOnRename{ErrorModule::FS, 4747};
constexpr Result ResultAesXtsFileSystemFileHeaderCorruptedOnFileSetSize{ErrorModule::FS, 4748};
constexpr Result ResultSaveDataTransferDataCorrupted{ErrorModule::FS, 4761};
constexpr Result ResultSaveDataTransferTokenMacVerificationFailed{ErrorModule::FS, 4762};
constexpr Result ResultSaveDataTransferTokenSignatureVerificationFailed{ErrorModule::FS, 4763};
constexpr Result ResultSaveDataTransferTokenChallengeVerificationFailed{ErrorModule::FS, 4764};
constexpr Result ResultSaveDataTransferImportMacVerificationFailed{ErrorModule::FS, 4765};
constexpr Result ResultSaveDataTransferInitialDataMacVerificationFailed{ErrorModule::FS, 4766};
constexpr Result ResultSaveDataTransferInitialDataVersionVerificationFailed{ErrorModule::FS, 4767};
constexpr Result ResultSignedSystemPartitionDataCorrupted{ErrorModule::FS, 4771};
constexpr Result ResultSignedSystemPartitionInvalidSize{ErrorModule::FS, 4772};
constexpr Result ResultSignedSystemPartitionSignatureVerificationFailed{ErrorModule::FS, 4773};
constexpr Result ResultSignedSystemPartitionHashVerificationFailed{ErrorModule::FS, 4774};
constexpr Result ResultSignedSystemPartitionPackage2HashVerificationFailed{ErrorModule::FS, 4775};
constexpr Result ResultSignedSystemPartitionInvalidAppendHashCount{ErrorModule::FS, 4776};
constexpr Result ResultGameCardLogoDataCorrupted{ErrorModule::FS, 4781};
constexpr Result ResultSimulatedDeviceDataCorrupted{ErrorModule::FS, 4785};
constexpr Result ResultMultiCommitContextCorrupted{ErrorModule::FS, 4790};
constexpr Result ResultInvalidMultiCommitContextVersion{ErrorModule::FS, 4791};
constexpr Result ResultInvalidMultiCommitContextState{ErrorModule::FS, 4792};
constexpr Result ResultConcatenationFsInvalidInternalFileCount{ErrorModule::FS, 4802};
constexpr Result ResultZeroBitmapFileCorrupted{ErrorModule::FS, 4811};
constexpr Result ResultIncompleteBlockInZeroBitmapHashStorageFile{ErrorModule::FS, 4812};
constexpr Result ResultUnexpected{ErrorModule::FS, 5000};
constexpr Result ResultFatFsUnexpected{ErrorModule::FS, 5001};
constexpr Result ResultFatFsUnclassified{ErrorModule::FS, 5002};
constexpr Result ResultFatFsStorageStateMissmatch{ErrorModule::FS, 5003};
constexpr Result ResultFatFsTooManyFilesOpenedS{ErrorModule::FS, 5024};
constexpr Result ResultFatFsTooManyFilesOpenedU{ErrorModule::FS, 5025};
constexpr Result ResultFatFsNotAFile{ErrorModule::FS, 5026};
constexpr Result ResultFatFsLockError{ErrorModule::FS, 5028};
constexpr Result ResultFatFsInternalError{ErrorModule::FS, 5029};
constexpr Result ResultFatFsModuleSafeError{ErrorModule::FS, 5055};
constexpr Result ResultFatFsUnexpectedSystemError{ErrorModule::FS, 5110};
constexpr Result ResultFatFsFormatUnexpected{ErrorModule::FS, 5120};
constexpr Result ResultFatFsFormatUnsupportedSize{ErrorModule::FS, 5121};
constexpr Result ResultFatFsFormatInvalidBpb{ErrorModule::FS, 5122};
constexpr Result ResultFatFsFormatInvalidParameter{ErrorModule::FS, 5123};
constexpr Result ResultFatFsFormatIllegalSectorsA{ErrorModule::FS, 5124};
constexpr Result ResultFatFsFormatIllegalSectorsB{ErrorModule::FS, 5125};
constexpr Result ResultFatFsFormatIllegalSectorsC{ErrorModule::FS, 5126};
constexpr Result ResultFatFsFormatIllegalSectorsD{ErrorModule::FS, 5127};
constexpr Result ResultFatFsWriteVerifyError{ErrorModule::FS, 5131};
constexpr Result ResultUnexpectedInMountTableA{ErrorModule::FS, 5301};
constexpr Result ResultUnexpectedInJournalIntegritySaveDataFileSystemA{ErrorModule::FS, 5302};
constexpr Result ResultUnexpectedInJournalIntegritySaveDataFileSystemB{ErrorModule::FS, 5303};
constexpr Result ResultUnexpectedInJournalIntegritySaveDataFileSystemC{ErrorModule::FS, 5304};
constexpr Result ResultUnexpectedInLocalFileSystemA{ErrorModule::FS, 5305};
constexpr Result ResultUnexpectedInLocalFileSystemB{ErrorModule::FS, 5306};
constexpr Result ResultUnexpectedInLocalFileSystemC{ErrorModule::FS, 5307};
constexpr Result ResultUnexpectedInLocalFileSystemD{ErrorModule::FS, 5308};
constexpr Result ResultUnexpectedInLocalFileSystemE{ErrorModule::FS, 5309};
constexpr Result ResultUnexpectedInLocalFileSystemF{ErrorModule::FS, 5310};
constexpr Result ResultUnexpectedInPathToolA{ErrorModule::FS, 5311};
constexpr Result ResultUnexpectedInPathOnExecutionDirectoryA{ErrorModule::FS, 5312};
constexpr Result ResultUnexpectedInPathOnExecutionDirectoryB{ErrorModule::FS, 5313};
constexpr Result ResultUnexpectedInPathOnExecutionDirectoryC{ErrorModule::FS, 5314};
constexpr Result ResultUnexpectedInAesCtrStorageA{ErrorModule::FS, 5315};
constexpr Result ResultUnexpectedInAesXtsStorageA{ErrorModule::FS, 5316};
constexpr Result ResultUnexpectedInSaveDataInternalStorageFileSystemA{ErrorModule::FS, 5317};
constexpr Result ResultUnexpectedInSaveDataInternalStorageFileSystemB{ErrorModule::FS, 5318};
constexpr Result ResultUnexpectedInMountUtilityA{ErrorModule::FS, 5319};
constexpr Result ResultUnexpectedInNcaFileSystemServiceImplA{ErrorModule::FS, 5320};
constexpr Result ResultUnexpectedInRamDiskFileSystemA{ErrorModule::FS, 5321};
constexpr Result ResultUnexpectedInBisWiperA{ErrorModule::FS, 5322};
constexpr Result ResultUnexpectedInBisWiperB{ErrorModule::FS, 5323};
constexpr Result ResultUnexpectedInCompressedStorageA{ErrorModule::FS, 5324}; constexpr Result ResultUnexpectedInCompressedStorageA{ErrorModule::FS, 5324};
constexpr Result ResultUnexpectedInCompressedStorageB{ErrorModule::FS, 5325}; constexpr Result ResultUnexpectedInCompressedStorageB{ErrorModule::FS, 5325};
constexpr Result ResultUnexpectedInCompressedStorageC{ErrorModule::FS, 5326}; constexpr Result ResultUnexpectedInCompressedStorageC{ErrorModule::FS, 5326};
constexpr Result ResultUnexpectedInCompressedStorageD{ErrorModule::FS, 5327}; constexpr Result ResultUnexpectedInCompressedStorageD{ErrorModule::FS, 5327};
constexpr Result ResultUnexpectedInPathA{ErrorModule::FS, 5328}; constexpr Result ResultUnexpectedInPathA{ErrorModule::FS, 5328};
constexpr Result ResultUnexpectedInSaveDataFileSystemCoreImplA{ErrorModule::FS, 5333};
constexpr Result ResultUnexpectedInIntegritySaveDataFileSystemA{ErrorModule::FS, 5334};
constexpr Result ResultUnexpectedInJournalIntegritySaveDataFileSystemD{ErrorModule::FS, 5335};
constexpr Result ResultUnexpectedInAlignmentMatchableFileSystemA{ErrorModule::FS, 5336};
constexpr Result ResultPreconditionViolation{ErrorModule::FS, 6000};
constexpr Result ResultInvalidArgument{ErrorModule::FS, 6001}; constexpr Result ResultInvalidArgument{ErrorModule::FS, 6001};
constexpr Result ResultInvalidPath{ErrorModule::FS, 6002}; constexpr Result ResultInvalidPath{ErrorModule::FS, 6002};
constexpr Result ResultTooLongPath{ErrorModule::FS, 6003}; constexpr Result ResultTooLongPath{ErrorModule::FS, 6003};
@@ -632,222 +81,17 @@ constexpr Result ResultInvalidCharacter{ErrorModule::FS, 6004};
constexpr Result ResultInvalidPathFormat{ErrorModule::FS, 6005}; constexpr Result ResultInvalidPathFormat{ErrorModule::FS, 6005};
constexpr Result ResultDirectoryUnobtainable{ErrorModule::FS, 6006}; constexpr Result ResultDirectoryUnobtainable{ErrorModule::FS, 6006};
constexpr Result ResultNotNormalized{ErrorModule::FS, 6007}; constexpr Result ResultNotNormalized{ErrorModule::FS, 6007};
constexpr Result ResultInvalidPathForOperation{ErrorModule::FS, 6030};
constexpr Result ResultDirectoryUndeletable{ErrorModule::FS, 6031};
constexpr Result ResultDirectoryUnrenamable{ErrorModule::FS, 6032};
constexpr Result ResultIncompatiblePath{ErrorModule::FS, 6033};
constexpr Result ResultRenameToOtherFileSystem{ErrorModule::FS, 6034};
constexpr Result ResultInvalidOffset{ErrorModule::FS, 6061}; constexpr Result ResultInvalidOffset{ErrorModule::FS, 6061};
constexpr Result ResultInvalidSize{ErrorModule::FS, 6062}; constexpr Result ResultInvalidSize{ErrorModule::FS, 6062};
constexpr Result ResultNullptrArgument{ErrorModule::FS, 6063}; constexpr Result ResultNullptrArgument{ErrorModule::FS, 6063};
constexpr Result ResultInvalidAlignment{ErrorModule::FS, 6064};
constexpr Result ResultInvalidMountName{ErrorModule::FS, 6065};
constexpr Result ResultExtensionSizeTooLarge{ErrorModule::FS, 6066};
constexpr Result ResultExtensionSizeInvalid{ErrorModule::FS, 6067};
constexpr Result ResultInvalidHandle{ErrorModule::FS, 6068};
constexpr Result ResultCacheStorageSizeTooLarge{ErrorModule::FS, 6069};
constexpr Result ResultCacheStorageIndexTooLarge{ErrorModule::FS, 6070};
constexpr Result ResultInvalidCommitNameCount{ErrorModule::FS, 6071};
constexpr Result ResultInvalidOpenMode{ErrorModule::FS, 6072}; constexpr Result ResultInvalidOpenMode{ErrorModule::FS, 6072};
constexpr Result ResultInvalidFileSize{ErrorModule::FS, 6073};
constexpr Result ResultInvalidModeForDirectoryOpen{ErrorModule::FS, 6074};
constexpr Result ResultInvalidCommitOption{ErrorModule::FS, 6075};
constexpr Result ResultInvalidEnumValue{ErrorModule::FS, 6080};
constexpr Result ResultInvalidSaveDataState{ErrorModule::FS, 6081};
constexpr Result ResultInvalidSaveDataSpaceId{ErrorModule::FS, 6082};
constexpr Result ResultGameCardLogoDataTooLarge{ErrorModule::FS, 6101};
constexpr Result ResultFileDataCacheMemorySizeTooSmall{ErrorModule::FS, 6102};
constexpr Result ResultInvalidOperationForOpenMode{ErrorModule::FS, 6200};
constexpr Result ResultFileExtensionWithoutOpenModeAllowAppend{ErrorModule::FS, 6201}; constexpr Result ResultFileExtensionWithoutOpenModeAllowAppend{ErrorModule::FS, 6201};
constexpr Result ResultReadUnpermitted{ErrorModule::FS, 6202}; constexpr Result ResultReadNotPermitted{ErrorModule::FS, 6202};
constexpr Result ResultWriteUnpermitted{ErrorModule::FS, 6203}; constexpr Result ResultWriteNotPermitted{ErrorModule::FS, 6203};
constexpr Result ResultUnsupportedOperation{ErrorModule::FS, 6300};
constexpr Result ResultUnsupportedCommitTarget{ErrorModule::FS, 6301};
constexpr Result ResultUnsupportedSetSizeForNotResizableSubStorage{ErrorModule::FS, 6302};
constexpr Result ResultUnsupportedSetSizeForResizableSubStorage{ErrorModule::FS, 6303};
constexpr Result ResultUnsupportedSetSizeForMemoryStorage{ErrorModule::FS, 6304};
constexpr Result ResultUnsupportedOperateRangeForMemoryStorage{ErrorModule::FS, 6305};
constexpr Result ResultUnsupportedOperateRangeForFileStorage{ErrorModule::FS, 6306};
constexpr Result ResultUnsupportedOperateRangeForFileHandleStorage{ErrorModule::FS, 6307};
constexpr Result ResultUnsupportedOperateRangeForSwitchStorage{ErrorModule::FS, 6308};
constexpr Result ResultUnsupportedOperateRangeForStorageServiceObjectAdapter{ErrorModule::FS, 6309};
constexpr Result ResultUnsupportedWriteForAesCtrCounterExtendedStorage{ErrorModule::FS, 6310};
constexpr Result ResultUnsupportedSetSizeForAesCtrCounterExtendedStorage{ErrorModule::FS, 6311};
constexpr Result ResultUnsupportedOperateRangeForAesCtrCounterExtendedStorage{ErrorModule::FS, 6312};
constexpr Result ResultUnsupportedWriteForAesCtrStorageExternal{ErrorModule::FS, 6313};
constexpr Result ResultUnsupportedSetSizeForAesCtrStorageExternal{ErrorModule::FS, 6314};
constexpr Result ResultUnsupportedSetSizeForAesCtrStorage{ErrorModule::FS, 6315};
constexpr Result ResultUnsupportedSetSizeForHierarchicalIntegrityVerificationStorage{ErrorModule::FS, 6316};
constexpr Result ResultUnsupportedOperateRangeForHierarchicalIntegrityVerificationStorage{ErrorModule::FS, 6317};
constexpr Result ResultUnsupportedSetSizeForIntegrityVerificationStorage{ErrorModule::FS, 6318};
constexpr Result ResultUnsupportedOperateRangeForWritableIntegrityVerificationStorage{ErrorModule::FS, 6319};
constexpr Result ResultUnsupportedOperateRangeForIntegrityVerificationStorage{ErrorModule::FS, 6320};
constexpr Result ResultUnsupportedSetSizeForBlockCacheBufferedStorage{ErrorModule::FS, 6321};
constexpr Result ResultUnsupportedOperateRangeForWritableBlockCacheBufferedStorage{ErrorModule::FS, 6322};
constexpr Result ResultUnsupportedOperateRangeForBlockCacheBufferedStorage{ErrorModule::FS, 6323};
constexpr Result ResultUnsupportedWriteForIndirectStorage{ErrorModule::FS, 6324};
constexpr Result ResultUnsupportedSetSizeForIndirectStorage{ErrorModule::FS, 6325}; constexpr Result ResultUnsupportedSetSizeForIndirectStorage{ErrorModule::FS, 6325};
constexpr Result ResultUnsupportedOperateRangeForIndirectStorage{ErrorModule::FS, 6326};
constexpr Result ResultUnsupportedWriteForZeroStorage{ErrorModule::FS, 6327};
constexpr Result ResultUnsupportedSetSizeForZeroStorage{ErrorModule::FS, 6328};
constexpr Result ResultUnsupportedSetSizeForHierarchicalSha256Storage{ErrorModule::FS, 6329};
constexpr Result ResultUnsupportedWriteForReadOnlyBlockCacheStorage{ErrorModule::FS, 6330};
constexpr Result ResultUnsupportedSetSizeForReadOnlyBlockCacheStorage{ErrorModule::FS, 6331};
constexpr Result ResultUnsupportedSetSizeForIntegrityRomFsStorage{ErrorModule::FS, 6332};
constexpr Result ResultUnsupportedSetSizeForDuplexStorage{ErrorModule::FS, 6333};
constexpr Result ResultUnsupportedOperateRangeForDuplexStorage{ErrorModule::FS, 6334};
constexpr Result ResultUnsupportedSetSizeForHierarchicalDuplexStorage{ErrorModule::FS, 6335};
constexpr Result ResultUnsupportedGetSizeForRemapStorage{ErrorModule::FS, 6336};
constexpr Result ResultUnsupportedSetSizeForRemapStorage{ErrorModule::FS, 6337};
constexpr Result ResultUnsupportedOperateRangeForRemapStorage{ErrorModule::FS, 6338};
constexpr Result ResultUnsupportedSetSizeForIntegritySaveDataStorage{ErrorModule::FS, 6339};
constexpr Result ResultUnsupportedOperateRangeForIntegritySaveDataStorage{ErrorModule::FS, 6340};
constexpr Result ResultUnsupportedSetSizeForJournalIntegritySaveDataStorage{ErrorModule::FS, 6341};
constexpr Result ResultUnsupportedOperateRangeForJournalIntegritySaveDataStorage{ErrorModule::FS, 6342};
constexpr Result ResultUnsupportedGetSizeForJournalStorage{ErrorModule::FS, 6343};
constexpr Result ResultUnsupportedSetSizeForJournalStorage{ErrorModule::FS, 6344};
constexpr Result ResultUnsupportedOperateRangeForJournalStorage{ErrorModule::FS, 6345};
constexpr Result ResultUnsupportedSetSizeForUnionStorage{ErrorModule::FS, 6346};
constexpr Result ResultUnsupportedSetSizeForAllocationTableStorage{ErrorModule::FS, 6347};
constexpr Result ResultUnsupportedReadForWriteOnlyGameCardStorage{ErrorModule::FS, 6348};
constexpr Result ResultUnsupportedSetSizeForWriteOnlyGameCardStorage{ErrorModule::FS, 6349};
constexpr Result ResultUnsupportedWriteForReadOnlyGameCardStorage{ErrorModule::FS, 6350};
constexpr Result ResultUnsupportedSetSizeForReadOnlyGameCardStorage{ErrorModule::FS, 6351};
constexpr Result ResultUnsupportedOperateRangeForReadOnlyGameCardStorage{ErrorModule::FS, 6352};
constexpr Result ResultUnsupportedSetSizeForSdmmcStorage{ErrorModule::FS, 6353};
constexpr Result ResultUnsupportedOperateRangeForSdmmcStorage{ErrorModule::FS, 6354};
constexpr Result ResultUnsupportedOperateRangeForFatFile{ErrorModule::FS, 6355};
constexpr Result ResultUnsupportedOperateRangeForStorageFile{ErrorModule::FS, 6356};
constexpr Result ResultUnsupportedSetSizeForInternalStorageConcatenationFile{ErrorModule::FS, 6357};
constexpr Result ResultUnsupportedOperateRangeForInternalStorageConcatenationFile{ErrorModule::FS, 6358};
constexpr Result ResultUnsupportedQueryEntryForConcatenationFileSystem{ErrorModule::FS, 6359};
constexpr Result ResultUnsupportedOperateRangeForConcatenationFile{ErrorModule::FS, 6360};
constexpr Result ResultUnsupportedSetSizeForZeroBitmapFile{ErrorModule::FS, 6361};
constexpr Result ResultUnsupportedOperateRangeForFileServiceObjectAdapter{ErrorModule::FS, 6362};
constexpr Result ResultUnsupportedOperateRangeForAesXtsFile{ErrorModule::FS, 6363};
constexpr Result ResultUnsupportedWriteForRomFsFileSystem{ErrorModule::FS, 6364};
constexpr Result ResultUnsupportedCommitProvisionallyForRomFsFileSystem{ErrorModule::FS, 6365};
constexpr Result ResultUnsupportedGetTotalSpaceSizeForRomFsFileSystem{ErrorModule::FS, 6366};
constexpr Result ResultUnsupportedWriteForRomFsFile{ErrorModule::FS, 6367};
constexpr Result ResultUnsupportedOperateRangeForRomFsFile{ErrorModule::FS, 6368};
constexpr Result ResultUnsupportedWriteForReadOnlyFileSystem{ErrorModule::FS, 6369};
constexpr Result ResultUnsupportedCommitProvisionallyForReadOnlyFileSystem{ErrorModule::FS, 6370};
constexpr Result ResultUnsupportedGetTotalSpaceSizeForReadOnlyFileSystem{ErrorModule::FS, 6371};
constexpr Result ResultUnsupportedWriteForReadOnlyFile{ErrorModule::FS, 6372};
constexpr Result ResultUnsupportedOperateRangeForReadOnlyFile{ErrorModule::FS, 6373};
constexpr Result ResultUnsupportedWriteForPartitionFileSystem{ErrorModule::FS, 6374};
constexpr Result ResultUnsupportedCommitProvisionallyForPartitionFileSystem{ErrorModule::FS, 6375};
constexpr Result ResultUnsupportedWriteForPartitionFile{ErrorModule::FS, 6376};
constexpr Result ResultUnsupportedOperateRangeForPartitionFile{ErrorModule::FS, 6377};
constexpr Result ResultUnsupportedOperateRangeForTmFileSystemFile{ErrorModule::FS, 6378};
constexpr Result ResultUnsupportedWriteForSaveDataInternalStorageFileSystem{ErrorModule::FS, 6379};
constexpr Result ResultUnsupportedCommitProvisionallyForApplicationTemporaryFileSystem{ErrorModule::FS, 6382};
constexpr Result ResultUnsupportedCommitProvisionallyForSaveDataFileSystem{ErrorModule::FS, 6383};
constexpr Result ResultUnsupportedCommitProvisionallyForDirectorySaveDataFileSystem{ErrorModule::FS, 6384};
constexpr Result ResultUnsupportedWriteForZeroBitmapHashStorageFile{ErrorModule::FS, 6385};
constexpr Result ResultUnsupportedSetSizeForZeroBitmapHashStorageFile{ErrorModule::FS, 6386};
constexpr Result ResultUnsupportedWriteForCompressedStorage{ErrorModule::FS, 6387}; constexpr Result ResultUnsupportedWriteForCompressedStorage{ErrorModule::FS, 6387};
constexpr Result ResultUnsupportedOperateRangeForCompressedStorage{ErrorModule::FS, 6388}; constexpr Result ResultUnsupportedOperateRangeForCompressedStorage{ErrorModule::FS, 6388};
constexpr Result ResultUnsupportedRollbackOnlyModifiedForApplicationTemporaryFileSystem{ErrorModule::FS, 6395};
constexpr Result ResultUnsupportedRollbackOnlyModifiedForDirectorySaveDataFileSystem{ErrorModule::FS, 6396};
constexpr Result ResultUnsupportedOperateRangeForRegionSwitchStorage{ErrorModule::FS, 6397};
constexpr Result ResultUnsupportedOperateRangeForSaveDataFile{ErrorModule::FS, 6398};
constexpr Result ResultUnsupportedOperateRangeForApplicationTemporaryFile{ErrorModule::FS, 6399};
constexpr Result ResultPermissionDenied{ErrorModule::FS, 6400}; constexpr Result ResultPermissionDenied{ErrorModule::FS, 6400};
constexpr Result ResultHostFileSystemOperationDisabled{ErrorModule::FS, 6403};
constexpr Result ResultPortAcceptableCountLimited{ErrorModule::FS, 6450};
constexpr Result ResultNcaExternalKeyInconsistent{ErrorModule::FS, 6452};
constexpr Result ResultNeedFlush{ErrorModule::FS, 6454};
constexpr Result ResultFileNotClosed{ErrorModule::FS, 6455};
constexpr Result ResultDirectoryNotClosed{ErrorModule::FS, 6456};
constexpr Result ResultWriteModeFileNotClosed{ErrorModule::FS, 6457};
constexpr Result ResultAllocatorAlreadyRegistered{ErrorModule::FS, 6458};
constexpr Result ResultDefaultAllocatorAlreadyUsed{ErrorModule::FS, 6459};
constexpr Result ResultGameCardLogoDataSizeInvalid{ErrorModule::FS, 6460};
constexpr Result ResultAllocatorAlignmentViolation{ErrorModule::FS, 6461};
constexpr Result ResultGlobalFileDataCacheAlreadyEnabled{ErrorModule::FS, 6462};
constexpr Result ResultMultiCommitFileSystemDuplicated{ErrorModule::FS, 6463};
constexpr Result ResultSaveDataMultiCommitRepeated{ErrorModule::FS, 6464};
constexpr Result ResultUserNotExist{ErrorModule::FS, 6465};
constexpr Result ResultDefaultGlobalFileDataCacheEnabled{ErrorModule::FS, 6466};
constexpr Result ResultSaveDataRootPathUnavailable{ErrorModule::FS, 6467};
constexpr Result ResultRomMountDivisionSizeUnitCountLimit{ErrorModule::FS, 6470};
constexpr Result ResultRomMountCountLimit{ErrorModule::FS, 6471};
constexpr Result ResultAocMountDivisionSizeUnitCountLimit{ErrorModule::FS, 6472};
constexpr Result ResultNotFound{ErrorModule::FS, 6600};
constexpr Result ResultFileNotFound{ErrorModule::FS, 6602};
constexpr Result ResultDirectoryNotFound{ErrorModule::FS, 6603};
constexpr Result ResultDatabaseKeyNotFound{ErrorModule::FS, 6604};
constexpr Result ResultProgramInfoNotFound{ErrorModule::FS, 6605};
constexpr Result ResultProgramIndexNotFound{ErrorModule::FS, 6606};
constexpr Result ResultOutOfResource{ErrorModule::FS, 6700};
constexpr Result ResultBufferAllocationFailed{ErrorModule::FS, 6705}; constexpr Result ResultBufferAllocationFailed{ErrorModule::FS, 6705};
constexpr Result ResultMappingTableFull{ErrorModule::FS, 6706};
constexpr Result ResultAllocationTableFull{ErrorModule::FS, 6707};
constexpr Result ResultOpenCountLimit{ErrorModule::FS, 6709};
constexpr Result ResultMultiCommitFileSystemLimit{ErrorModule::FS, 6710};
constexpr Result ResultMappingFailed{ErrorModule::FS, 6800};
constexpr Result ResultMapFull{ErrorModule::FS, 6811};
constexpr Result ResultBadState{ErrorModule::FS, 6900};
constexpr Result ResultNotInitialized{ErrorModule::FS, 6902};
constexpr Result ResultBisProxyInvalidated{ErrorModule::FS, 6903};
constexpr Result ResultNcaDigestInconsistent{ErrorModule::FS, 6904};
constexpr Result ResultNotMounted{ErrorModule::FS, 6905};
constexpr Result ResultSaveDataExtending{ErrorModule::FS, 6906};
constexpr Result ResultSaveDataToExpandIsProvisionallyCommitted{ErrorModule::FS, 6907};
constexpr Result ResultSaveDataTransferV2KeySeedPackageMacVerificationFailed{ErrorModule::FS, 7002};
constexpr Result ResultSaveDataTransferV2KeySeedPackageSignatureVerificationFailed{ErrorModule::FS, 7003};
constexpr Result ResultSaveDataTransferV2KeySeedPackageChallengeVerificationFailed{ErrorModule::FS, 7004};
constexpr Result ResultSaveDataTransferV2ImportDataVerificationFailed{ErrorModule::FS, 7005};
constexpr Result ResultSaveDataTransferV2InitialDataGcmMacVerificationFailed{ErrorModule::FS, 7006};
constexpr Result ResultSaveDataTransferV2InitialDataMacVerificationFailed{ErrorModule::FS, 7009};
constexpr Result ResultSaveDataTransferV2ImportDataDecompressionFailed{ErrorModule::FS, 7010};
constexpr Result ResultSaveDataTransferV2PortContextMacVerificationFailed{ErrorModule::FS, 7011};
constexpr Result ResultSaveDataPorterInvalidated{ErrorModule::FS, 7031};
constexpr Result ResultSaveDataDivisionExporterChunkExportIncomplete{ErrorModule::FS, 7032};
constexpr Result ResultSaveDataDivisionImporterChunkImportIncomplete{ErrorModule::FS, 7033};
constexpr Result ResultSaveDataPorterInitialDataVersionVerificationFailed{ErrorModule::FS, 7034};
constexpr Result ResultSaveDataChunkDecryptorGcmStreamVersionVerificationFailed{ErrorModule::FS, 7035};
constexpr Result ResultSaveDataPorterSaveDataModified{ErrorModule::FS, 7036};
constexpr Result ResultSaveDataPorterVersionUnsupported{ErrorModule::FS, 7037};
constexpr Result ResultSaveDataTransferV2SecondarySaveCorrupted{ErrorModule::FS, 7038};
constexpr Result ResultSaveDataTransferForSaveDataRepairKeyPackageMacVerificationFailed{ErrorModule::FS, 7062};
constexpr Result ResultSaveDataTransferForSaveDataRepairKeyPackageSignatureVerificationFailed{ErrorModule::FS, 7063};
constexpr Result ResultSaveDataTransferForSaveDataRepairKeyPackageChallengeVerificationFailed{ErrorModule::FS, 7064};
constexpr Result ResultSaveDataTransferForSaveDataRepairUnsupportedKeyGeneration{ErrorModule::FS, 7065};
constexpr Result ResultSaveDataTransferForSaveDataRepairInitialDataMacVerificationFailed{ErrorModule::FS, 7066};
constexpr Result ResultSaveDataTransferForSaveDataRepairIncorrectInitialData{ErrorModule::FS, 7069};
constexpr Result ResultSaveDataTransferForSaveDataRepairInconsistentInitialData{ErrorModule::FS, 7070};
constexpr Result ResultSaveDataTransferForSaveDataRepairInitialDataIncorrectUserId{ErrorModule::FS, 7071};
constexpr Result ResultRamDiskCorrupted{ErrorModule::FS, 7100};
constexpr Result ResultRamDiskVerifiedStorageVerificationFailed{ErrorModule::FS, 7101};
constexpr Result ResultRamDiskSaveDataCoreFileSystemCorrupted{ErrorModule::FS, 7111};
constexpr Result ResultIncorrectRamDiskSaveDataFileSystemMagicCode{ErrorModule::FS, 7112};
constexpr Result ResultInvalidRamDiskSaveDataFileReadOffset{ErrorModule::FS, 7113};
constexpr Result ResultInvalidRamDiskSaveDataCoreDataStorageSize{ErrorModule::FS, 7114};
constexpr Result ResultRamDiskDatabaseCorrupted{ErrorModule::FS, 7121};
constexpr Result ResultInvalidRamDiskAllocationTableBlock{ErrorModule::FS, 7122};
constexpr Result ResultInvalidRamDiskKeyValueListElementIndex{ErrorModule::FS, 7123};
constexpr Result ResultInvalidRamDiskAllocationTableChainEntry{ErrorModule::FS, 7124};
constexpr Result ResultInvalidRamDiskAllocationTableOffset{ErrorModule::FS, 7125};
constexpr Result ResultInvalidRamDiskAllocationTableBlockCount{ErrorModule::FS, 7126};
constexpr Result ResultInvalidRamDiskKeyValueListEntryIndex{ErrorModule::FS, 7127};
constexpr Result ResultSaveDataTransferForRepairInitialDataMacVerificationFailed{ErrorModule::FS, 7142};
constexpr Result ResultUnknown{ErrorModule::FS, 7900};
constexpr Result ResultDbmNotFound{ErrorModule::FS, 7901};
constexpr Result ResultDbmKeyNotFound{ErrorModule::FS, 7902};
constexpr Result ResultDbmFileNotFound{ErrorModule::FS, 7903};
constexpr Result ResultDbmDirectoryNotFound{ErrorModule::FS, 7904};
constexpr Result ResultDbmAlreadyExists{ErrorModule::FS, 7906};
constexpr Result ResultDbmKeyFull{ErrorModule::FS, 7907};
constexpr Result ResultDbmDirectoryEntryFull{ErrorModule::FS, 7908};
constexpr Result ResultDbmFileEntryFull{ErrorModule::FS, 7909};
constexpr Result ResultDbmFindFinished{ErrorModule::FS, 7910};
constexpr Result ResultDbmFindKeyFinished{ErrorModule::FS, 7911};
constexpr Result ResultDbmIterationFinished{ErrorModule::FS, 7912};
constexpr Result ResultDbmInvalidOperation{ErrorModule::FS, 7914};
constexpr Result ResultDbmInvalidPathFormat{ErrorModule::FS, 7915};
constexpr Result ResultDbmDirectoryNameTooLong{ErrorModule::FS, 7916};
constexpr Result ResultDbmFileNameTooLong{ErrorModule::FS, 7917};
} // namespace FileSys } // namespace FileSys
+3 -3
View File
@@ -89,7 +89,7 @@ protected:
Result DryRead(size_t* out, s64 offset, size_t size, const ReadOption& option, Result DryRead(size_t* out, s64 offset, size_t size, const ReadOption& option,
OpenMode open_mode) { OpenMode open_mode) {
// Check that we can read // Check that we can read
R_UNLESS(static_cast<u32>(open_mode & OpenMode::Read) != 0, ResultReadUnpermitted); R_UNLESS(static_cast<u32>(open_mode & OpenMode::Read) != 0, ResultReadNotPermitted);
// Get the file size, and validate our offset // Get the file size, and validate our offset
s64 file_size = 0; s64 file_size = 0;
@@ -102,14 +102,14 @@ protected:
Result DrySetSize(s64 size, OpenMode open_mode) { Result DrySetSize(s64 size, OpenMode open_mode) {
// Check that we can write // Check that we can write
R_UNLESS(static_cast<u32>(open_mode & OpenMode::Write) != 0, ResultWriteUnpermitted); R_UNLESS(static_cast<u32>(open_mode & OpenMode::Write) != 0, ResultWriteNotPermitted);
R_SUCCEED(); R_SUCCEED();
} }
Result DryWrite(bool* out_append, s64 offset, size_t size, const WriteOption& option, Result DryWrite(bool* out_append, s64 offset, size_t size, const WriteOption& option,
OpenMode open_mode) { OpenMode open_mode) {
// Check that we can write // Check that we can write
R_UNLESS(static_cast<u32>(open_mode & OpenMode::Write) != 0, ResultWriteUnpermitted); R_UNLESS(static_cast<u32>(open_mode & OpenMode::Write) != 0, ResultWriteNotPermitted);
// Get the file size // Get the file size
s64 file_size = 0; s64 file_size = 0;
@@ -964,7 +964,7 @@ Result NcaFileSystemDriver::CreateIndirectStorageMetaStorage(VirtualFile* out,
// Check that we're within range. // Check that we're within range.
R_UNLESS(patch_info.indirect_offset + patch_info.indirect_size <= base_size, R_UNLESS(patch_info.indirect_offset + patch_info.indirect_size <= base_size,
ResultInvalidNcaPatchInfoIndirectOffset); ResultNcaBaseStorageOutOfRangeE);
// Create the meta storage. // Create the meta storage.
auto meta_storage = std::make_shared<OffsetVfsFile>(base_storage, patch_info.indirect_size, auto meta_storage = std::make_shared<OffsetVfsFile>(base_storage, patch_info.indirect_size,
@@ -1001,7 +1001,7 @@ Result NcaFileSystemDriver::CreateIndirectStorage(
const auto node_size = IndirectStorage::QueryNodeStorageSize(header.entry_count); const auto node_size = IndirectStorage::QueryNodeStorageSize(header.entry_count);
const auto entry_size = IndirectStorage::QueryEntryStorageSize(header.entry_count); const auto entry_size = IndirectStorage::QueryEntryStorageSize(header.entry_count);
R_UNLESS(node_size + entry_size <= patch_info.indirect_size, R_UNLESS(node_size + entry_size <= patch_info.indirect_size,
ResultNcaIndirectStorageOutOfRange); ResultInvalidNcaIndirectStorageOutOfRange);
// Get the indirect data size. // Get the indirect data size.
const s64 indirect_data_size = patch_info.indirect_offset; const s64 indirect_data_size = patch_info.indirect_offset;
@@ -1065,7 +1065,7 @@ Result NcaFileSystemDriver::CreatePatchMetaStorage(
// Check that extents remain within range. // Check that extents remain within range.
R_UNLESS(patch_info.indirect_offset + patch_info.indirect_size <= base_size, R_UNLESS(patch_info.indirect_offset + patch_info.indirect_size <= base_size,
ResultInvalidNcaPatchInfoIndirectOffset); ResultNcaBaseStorageOutOfRangeE);
R_UNLESS(patch_info.aes_ctr_ex_offset + patch_info.aes_ctr_ex_size <= base_size, R_UNLESS(patch_info.aes_ctr_ex_offset + patch_info.aes_ctr_ex_size <= base_size,
ResultNcaBaseStorageOutOfRangeB); ResultNcaBaseStorageOutOfRangeB);
@@ -1303,9 +1303,9 @@ Result NcaFileSystemDriver::CreateIntegrityVerificationStorageImpl(
sizeof(level_hash_info)); sizeof(level_hash_info));
R_UNLESS(IntegrityMinLayerCount <= level_hash_info.max_layers, R_UNLESS(IntegrityMinLayerCount <= level_hash_info.max_layers,
ResultInvalidHierarchicalIntegrityVerificationLayerCount); ResultInvalidNcaHierarchicalIntegrityVerificationLayerCount);
R_UNLESS(level_hash_info.max_layers <= IntegrityMaxLayerCount, R_UNLESS(level_hash_info.max_layers <= IntegrityMaxLayerCount,
ResultInvalidHierarchicalIntegrityVerificationLayerCount); ResultInvalidNcaHierarchicalIntegrityVerificationLayerCount);
// Get the base storage size. // Get the base storage size.
s64 base_storage_size = base_storage->GetSize(); s64 base_storage_size = base_storage->GetSize();
@@ -1315,7 +1315,7 @@ Result NcaFileSystemDriver::CreateIntegrityVerificationStorageImpl(
for (s32 i = 0; i < static_cast<s32>(level_hash_info.max_layers - 2); ++i) { for (s32 i = 0; i < static_cast<s32>(level_hash_info.max_layers - 2); ++i) {
const auto& layer_info = level_hash_info.info[i]; const auto& layer_info = level_hash_info.info[i];
R_UNLESS(layer_info_offset + layer_info.offset + layer_info.size <= base_storage_size, R_UNLESS(layer_info_offset + layer_info.offset + layer_info.size <= base_storage_size,
ResultNcaFileSystemCorrupted); ResultNcaBaseStorageOutOfRangeD);
storage_info[i + 1] = std::make_shared<OffsetVfsFile>(base_storage, storage_info[i + 1] = std::make_shared<OffsetVfsFile>(base_storage,
layer_info.size, layer_info.size,
@@ -1326,7 +1326,7 @@ Result NcaFileSystemDriver::CreateIntegrityVerificationStorageImpl(
const auto& layer_info = level_hash_info.info[level_hash_info.max_layers - 2]; const auto& layer_info = level_hash_info.info[level_hash_info.max_layers - 2];
const s64 last_layer_info_offset = layer_info_offset > 0 ? 0LL : layer_info.offset.Get(); const s64 last_layer_info_offset = layer_info_offset > 0 ? 0LL : layer_info.offset.Get();
R_UNLESS(last_layer_info_offset + layer_info.size <= base_storage_size, R_UNLESS(last_layer_info_offset + layer_info.size <= base_storage_size,
ResultNcaFileSystemCorrupted); ResultNcaBaseStorageOutOfRangeD);
if (layer_info_offset > 0) { if (layer_info_offset > 0) {
R_UNLESS(last_layer_info_offset + layer_info.size <= layer_info_offset, R_UNLESS(last_layer_info_offset + layer_info.size <= layer_info_offset,
ResultRomNcaInvalidIntegrityLayerInfoOffset); ResultRomNcaInvalidIntegrityLayerInfoOffset);
@@ -1422,7 +1422,7 @@ Result NcaFileSystemDriver::CreateCompressedStorage(VirtualFile* out,
const auto table_size = compression_info.bucket.size; const auto table_size = compression_info.bucket.size;
const auto node_size = CompressedStorage::QueryNodeStorageSize(header.entry_count); const auto node_size = CompressedStorage::QueryNodeStorageSize(header.entry_count);
const auto entry_size = CompressedStorage::QueryEntryStorageSize(header.entry_count); const auto entry_size = CompressedStorage::QueryEntryStorageSize(header.entry_count);
R_UNLESS(node_size + entry_size <= table_size, ResultNcaInvalidCompressionInfo); R_UNLESS(node_size + entry_size <= table_size, ResultInvalidCompressedStorageSize);
// If we should, set the output meta storage. // If we should, set the output meta storage.
if (out_meta != nullptr) { if (out_meta != nullptr) {
@@ -601,15 +601,6 @@ FileSys::VirtualDir FileSystemController::GetSDMCContentDirectory() const {
return sdmc_factory->GetSDMCContentDirectory(); return sdmc_factory->GetSDMCContentDirectory();
} }
FileSys::VirtualDir FileSystemController::GetSystem0NANDContentDirectory() const {
LOG_TRACE(Service_FS, "Opening system0 NAND content directory");
if (bis_factory == nullptr)
return nullptr;
return bis_factory->GetSystem0NANDContentDirectory();
}
FileSys::VirtualDir FileSystemController::GetNANDImageDirectory() const { FileSys::VirtualDir FileSystemController::GetNANDImageDirectory() const {
LOG_TRACE(Service_FS, "Opening NAND image directory"); LOG_TRACE(Service_FS, "Opening NAND image directory");
@@ -636,8 +627,6 @@ FileSys::VirtualDir FileSystemController::GetContentDirectory(ContentStorageId i
return GetUserNANDContentDirectory(); return GetUserNANDContentDirectory();
case ContentStorageId::SdCard: case ContentStorageId::SdCard:
return GetSDMCContentDirectory(); return GetSDMCContentDirectory();
case ContentStorageId::System0:
return GetSystem0NANDContentDirectory();
} }
return nullptr; return nullptr;
@@ -51,7 +51,6 @@ enum class ContentStorageId : u32 {
System, System,
User, User,
SdCard, SdCard,
System0,
}; };
enum class ImageDirectoryId : u32 { enum class ImageDirectoryId : u32 {
@@ -105,7 +104,6 @@ public:
FileSys::VirtualDir GetSystemNANDContentDirectory() const; FileSys::VirtualDir GetSystemNANDContentDirectory() const;
FileSys::VirtualDir GetUserNANDContentDirectory() const; FileSys::VirtualDir GetUserNANDContentDirectory() const;
FileSys::VirtualDir GetSDMCContentDirectory() const; FileSys::VirtualDir GetSDMCContentDirectory() const;
FileSys::VirtualDir GetSystem0NANDContentDirectory() const;
FileSys::VirtualDir GetNANDImageDirectory() const; FileSys::VirtualDir GetNANDImageDirectory() const;
FileSys::VirtualDir GetSDMCImageDirectory() const; FileSys::VirtualDir GetSDMCImageDirectory() const;
-2
View File
@@ -9,8 +9,6 @@ set(dynarmic_VERSION_PATCH 0)
set(dynarmic_VERSION ${dynarmic_VERSION_MAJOR}.${dynarmic_VERSION_MINOR}.${dynarmic_VERSION_PATCH}) set(dynarmic_VERSION ${dynarmic_VERSION_MAJOR}.${dynarmic_VERSION_MINOR}.${dynarmic_VERSION_PATCH})
project(dynarmic LANGUAGES C CXX ASM VERSION ${dynarmic_VERSION})
# Determine if we're built as a subproject (using add_subdirectory) # Determine if we're built as a subproject (using add_subdirectory)
# or if this is the master project. # or if this is the master project.
set(MASTER_PROJECT OFF) set(MASTER_PROJECT OFF)
@@ -444,8 +444,8 @@ void BufferCacheRuntime::CopyBuffer(VkBuffer dst_buffer, VkBuffer src_buffer,
static constexpr VkMemoryBarrier READ_BARRIER{ static constexpr VkMemoryBarrier READ_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
}; };
static constexpr VkMemoryBarrier WRITE_BARRIER{ static constexpr VkMemoryBarrier WRITE_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
@@ -483,8 +483,8 @@ void BufferCacheRuntime::PreCopyBarrier() {
static constexpr VkMemoryBarrier READ_BARRIER{ static constexpr VkMemoryBarrier READ_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
}; };
scheduler.RequestOutsideRenderPassOperationContext(); scheduler.RequestOutsideRenderPassOperationContext();
scheduler.Record([](vk::CommandBuffer cmdbuf) { scheduler.Record([](vk::CommandBuffer cmdbuf) {
@@ -514,8 +514,8 @@ void BufferCacheRuntime::ClearBuffer(VkBuffer dest_buffer, u32 offset, size_t si
static constexpr VkMemoryBarrier READ_BARRIER{ static constexpr VkMemoryBarrier READ_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
}; };
static constexpr VkMemoryBarrier WRITE_BARRIER{ static constexpr VkMemoryBarrier WRITE_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
@@ -551,32 +551,33 @@ void ASTCDecoderPass::Assemble(Image& image, const StagingBufferRef& map,
const VkImageAspectFlags aspect_mask = image.AspectMask(); const VkImageAspectFlags aspect_mask = image.AspectMask();
const VkImage vk_image = image.Handle(); const VkImage vk_image = image.Handle();
const bool is_initialized = image.ExchangeInitialization(); const bool is_initialized = image.ExchangeInitialization();
scheduler.Record([vk_pipeline, vk_image, aspect_mask, scheduler.Record(
is_initialized](vk::CommandBuffer cmdbuf) { [vk_pipeline, vk_image, aspect_mask, is_initialized](vk::CommandBuffer cmdbuf) {
const VkImageMemoryBarrier image_barrier{ const VkImageMemoryBarrier image_barrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = static_cast<VkAccessFlags>(is_initialized ? VK_ACCESS_SHADER_WRITE_BIT .srcAccessMask = static_cast<VkAccessFlags>(
: VK_ACCESS_NONE), is_initialized ? VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT, : VK_ACCESS_NONE),
.oldLayout = is_initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED, .dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .oldLayout = is_initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.image = vk_image, .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.subresourceRange{ .image = vk_image,
.aspectMask = aspect_mask, .subresourceRange{
.baseMipLevel = 0, .aspectMask = aspect_mask,
.levelCount = VK_REMAINING_MIP_LEVELS, .baseMipLevel = 0,
.baseArrayLayer = 0, .levelCount = VK_REMAINING_MIP_LEVELS,
.layerCount = VK_REMAINING_ARRAY_LAYERS, .baseArrayLayer = 0,
}, .layerCount = VK_REMAINING_ARRAY_LAYERS,
}; },
cmdbuf.PipelineBarrier(is_initialized ? VK_PIPELINE_STAGE_ALL_COMMANDS_BIT };
: VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, cmdbuf.PipelineBarrier(is_initialized ? VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, image_barrier); : VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_COMPUTE, vk_pipeline); VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, image_barrier);
}); cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_COMPUTE, vk_pipeline);
});
for (const VideoCommon::SwizzleParameters& swizzle : swizzles) { for (const VideoCommon::SwizzleParameters& swizzle : swizzles) {
const size_t input_offset = swizzle.buffer_offset + map.offset; const size_t input_offset = swizzle.buffer_offset + map.offset;
const u32 num_dispatches_x = Common::DivCeil(swizzle.num_tiles.width, 8U); const u32 num_dispatches_x = Common::DivCeil(swizzle.num_tiles.width, 8U);
@@ -217,27 +217,8 @@ void MasterSemaphore::WaitThread(std::stop_token token) {
std::tie(host_tick, fence) = std::move(wait_queue.front()); std::tie(host_tick, fence) = std::move(wait_queue.front());
wait_queue.pop(); wait_queue.pop();
} }
#ifdef ANDROID
VkResult status;
do {
status = fence.GetStatus();
if (status == VK_NOT_READY) {
std::this_thread::sleep_for(std::chrono::microseconds(100));
}
} while (status == VK_NOT_READY);
if (status == VK_SUCCESS) {
fence.Reset();
} else {
vk::Check(status);
continue;
}
#else
fence.Wait(); fence.Wait();
fence.Reset(); fence.Reset();
#endif
{ {
std::scoped_lock lock{free_mutex}; std::scoped_lock lock{free_mutex};
free_queue.push_front(std::move(fence)); free_queue.push_front(std::move(fence));
@@ -312,11 +312,7 @@ void Scheduler::EndRenderPass()
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = src_access, .srcAccessMask = src_access,
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT .dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
| VK_ACCESS_COLOR_ATTACHMENT_READ_BIT
| VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT
| VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
| VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_GENERAL, .oldLayout = VK_IMAGE_LAYOUT_GENERAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -534,12 +534,20 @@ struct RangedBarrierRange {
void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage image, void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage image,
VkImageAspectFlags aspect_mask, bool is_initialized, VkImageAspectFlags aspect_mask, bool is_initialized,
std::span<const VkBufferImageCopy> copies) { std::span<const VkBufferImageCopy> copies) {
static constexpr VkAccessFlags WRITE_ACCESS_FLAGS = static constexpr std::array buffer_barriers{
VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VkMemoryBarrier{
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
static constexpr VkAccessFlags READ_ACCESS_FLAGS = VK_ACCESS_SHADER_READ_BIT | .pNext = nullptr,
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | .srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
},
VkMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
},
};
// Compute exact mip/layer range being written to // Compute exact mip/layer range being written to
RangedBarrierRange range; RangedBarrierRange range;
@@ -551,7 +559,7 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im
const VkImageMemoryBarrier read_barrier{ const VkImageMemoryBarrier read_barrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = WRITE_ACCESS_FLAGS, .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = is_initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED, .oldLayout = is_initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED,
.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -565,7 +573,7 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = WRITE_ACCESS_FLAGS | READ_ACCESS_FLAGS, .dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -577,7 +585,7 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT |
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT |
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0,
read_barrier); buffer_barriers[0], {}, read_barrier);
cmdbuf.CopyBufferToImage(src_buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, copies); cmdbuf.CopyBufferToImage(src_buffer, image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, copies);
// TODO: Move this to another API // TODO: Move this to another API
cmdbuf.PipelineBarrier( cmdbuf.PipelineBarrier(
@@ -585,7 +593,7 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT |
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT |
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
0, nullptr, nullptr, write_barrier); 0, buffer_barriers[1], {}, write_barrier);
} }
[[nodiscard]] VkImageBlit MakeImageBlit(const Region2D& dst_region, const Region2D& src_region, [[nodiscard]] VkImageBlit MakeImageBlit(const Region2D& dst_region, const Region2D& src_region,
@@ -730,7 +738,7 @@ void BlitScale(Scheduler& scheduler, VkImage src_image, VkImage dst_image, const
.y = static_cast<s32>(is_2d && up_scaling ? resolution.ScaleUp(extent.height) .y = static_cast<s32>(is_2d && up_scaling ? resolution.ScaleUp(extent.height)
: extent.height), : extent.height),
}; };
boost::container::small_vector<VkImageBlit, 4> regions; boost::container::small_vector<VkImageBlit, 9> regions{};
regions.reserve(resources.levels); regions.reserve(resources.levels);
for (s32 level = 0; level < resources.levels; level++) { for (s32 level = 0; level < resources.levels; level++) {
regions.push_back({ regions.push_back({
@@ -795,9 +803,7 @@ void BlitScale(Scheduler& scheduler, VkImage src_image, VkImage dst_image, const
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED, // Discard contents .oldLayout = VK_IMAGE_LAYOUT_UNDEFINED, // Discard contents
.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -811,8 +817,8 @@ void BlitScale(Scheduler& scheduler, VkImage src_image, VkImage dst_image, const
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = 0, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT, .dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -824,7 +830,7 @@ void BlitScale(Scheduler& scheduler, VkImage src_image, VkImage dst_image, const
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT, .dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -981,17 +987,21 @@ void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
for (const VkBufferImageCopy& copy : vk_out_copies) { for (const VkBufferImageCopy& copy : vk_out_copies) {
dst_range.AddLayers(copy.imageSubresource); dst_range.AddLayers(copy.imageSubresource);
} }
static constexpr VkMemoryBarrier READ_BARRIER{ static constexpr std::array<VkMemoryBarrier, 1> READ_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, VkMemoryBarrier{
.pNext = nullptr, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .pNext = nullptr,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
},
}; };
static constexpr VkMemoryBarrier WRITE_BARRIER{ static constexpr std::array<VkMemoryBarrier, 1> WRITE_BARRIER{
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER, VkMemoryBarrier{
.pNext = nullptr, .sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .pNext = nullptr,
.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
},
}; };
const std::array pre_barriers{ const std::array pre_barriers{
VkImageMemoryBarrier{ VkImageMemoryBarrier{
@@ -1013,8 +1023,8 @@ void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = 0, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = 0, .dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -1027,9 +1037,7 @@ void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_GENERAL, .oldLayout = VK_IMAGE_LAYOUT_GENERAL,
.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -1044,12 +1052,7 @@ void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT | .dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -1059,15 +1062,15 @@ void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
}, },
}; };
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
0, {}, {}, pre_barriers); 0, READ_BARRIER, {}, pre_barriers);
cmdbuf.CopyImageToBuffer(src_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, copy_buffer, cmdbuf.CopyImageToBuffer(src_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, copy_buffer,
vk_in_copies); vk_in_copies);
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
0, WRITE_BARRIER, nullptr, middle_in_barrier); 0, {}, {}, middle_in_barrier);
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
0, READ_BARRIER, {}, middle_out_barrier); 0, WRITE_BARRIER, {}, middle_out_barrier);
cmdbuf.CopyBufferToImage(copy_buffer, dst_image, VK_IMAGE_LAYOUT_GENERAL, vk_out_copies); cmdbuf.CopyBufferToImage(copy_buffer, dst_image, VK_IMAGE_LAYOUT_GENERAL, vk_out_copies);
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
0, {}, {}, post_barriers); 0, {}, {}, post_barriers);
@@ -1126,7 +1129,7 @@ void TextureCacheRuntime::BlitImage(Framebuffer* dst_framebuffer, ImageView& dst
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | .srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
@@ -1146,9 +1149,7 @@ void TextureCacheRuntime::BlitImage(Framebuffer* dst_framebuffer, ImageView& dst
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT | .srcAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_GENERAL, .oldLayout = VK_IMAGE_LAYOUT_GENERAL,
.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -1164,29 +1165,46 @@ void TextureCacheRuntime::BlitImage(Framebuffer* dst_framebuffer, ImageView& dst
}, },
}, },
}; };
VkImageMemoryBarrier write_barrier{ const std::array write_barriers{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, VkImageMemoryBarrier{
.pNext = nullptr, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .pNext = nullptr,
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT | .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | .dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .image = src_image,
.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .subresourceRange{
.image = dst_image, .aspectMask = aspect_mask,
.subresourceRange{ .baseMipLevel = 0,
.aspectMask = aspect_mask, .levelCount = VK_REMAINING_MIP_LEVELS,
.baseMipLevel = 0, .baseArrayLayer = 0,
.levelCount = VK_REMAINING_MIP_LEVELS, .layerCount = VK_REMAINING_ARRAY_LAYERS,
.baseArrayLayer = 0, },
.layerCount = VK_REMAINING_ARRAY_LAYERS, },
VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
.image = dst_image,
.subresourceRange{
.aspectMask = aspect_mask,
.baseMipLevel = 0,
.levelCount = VK_REMAINING_MIP_LEVELS,
.baseArrayLayer = 0,
.layerCount = VK_REMAINING_ARRAY_LAYERS,
},
}, },
}; };
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT,
0, nullptr, nullptr, read_barriers); 0, {}, {}, read_barriers);
if (is_resolve) { if (is_resolve) {
cmdbuf.ResolveImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image, cmdbuf.ResolveImage(src_image, VK_IMAGE_LAYOUT_GENERAL, dst_image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
@@ -1199,7 +1217,7 @@ void TextureCacheRuntime::BlitImage(Framebuffer* dst_framebuffer, ImageView& dst
MakeImageBlit(dst_region, src_region, dst_layers, src_layers), vk_filter); MakeImageBlit(dst_region, src_region, dst_layers, src_layers), vk_filter);
} }
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
0, write_barrier); 0, {}, {}, write_barriers);
}); });
} }
@@ -1453,8 +1471,8 @@ void TextureCacheRuntime::CopyImage(Image& dst, Image& src,
VkImageMemoryBarrier{ VkImageMemoryBarrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = 0, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = 0, .dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -1466,12 +1484,7 @@ void TextureCacheRuntime::CopyImage(Image& dst, Image& src,
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT | .dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT |
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT |
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT |
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT |
VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
@@ -1761,7 +1774,7 @@ void Image::DownloadMemory(std::span<VkBuffer> buffers_span, std::span<size_t> o
const VkImageMemoryBarrier image_write_barrier{ const VkImageMemoryBarrier image_write_barrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = 0, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, .oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
.newLayout = VK_IMAGE_LAYOUT_GENERAL, .newLayout = VK_IMAGE_LAYOUT_GENERAL,
@@ -1796,7 +1809,7 @@ void Image::DownloadMemory(std::span<VkBuffer> buffers_span, std::span<size_t> o
const VkImageMemoryBarrier read_barrier{ const VkImageMemoryBarrier read_barrier{
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
.pNext = nullptr, .pNext = nullptr,
.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT, .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT, .dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT,
.oldLayout = VK_IMAGE_LAYOUT_GENERAL, .oldLayout = VK_IMAGE_LAYOUT_GENERAL,
.newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,