diff --git a/README.md b/README.md index 9379bb3e5..48fbed940 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 3631. +This is the source code for early-access 3633. ## Legal Notice diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ImportExportSavesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ImportExportSavesFragment.kt index 7a990d0cc..5f107b37d 100755 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ImportExportSavesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/ImportExportSavesFragment.kt @@ -11,6 +11,7 @@ import android.provider.DocumentsContract import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity import androidx.documentfile.provider.DocumentFile import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -49,6 +50,7 @@ class ImportExportSavesFragment : DialogFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val activity = requireActivity() as AppCompatActivity val activityResultRegistry = requireActivity().activityResultRegistry startForResultExportSave = activityResultRegistry.register( @@ -61,7 +63,7 @@ class ImportExportSavesFragment : DialogFragment() { "documentPickerKey", ActivityResultContracts.OpenDocument() ) { - it?.let { uri -> importSave(uri) } + it?.let { uri -> importSave(uri, activity) } } } @@ -183,7 +185,7 @@ class ImportExportSavesFragment : DialogFragment() { * Imports the save files contained in the zip file, and replaces any existing ones with the new save file. * @param zipUri The Uri of the zip file containing the save file(s) to import. */ - private fun importSave(zipUri: Uri) { + private fun importSave(zipUri: Uri, activity: AppCompatActivity) { val inputZip = context.contentResolver.openInputStream(zipUri) // A zip needs to have at least one subfolder named after a TitleId in order to be considered valid. var validZip = false @@ -214,7 +216,7 @@ class ImportExportSavesFragment : DialogFragment() { MessageDialogFragment.newInstance( R.string.save_file_invalid_zip_structure, R.string.save_file_invalid_zip_structure_description - ).show(childFragmentManager, MessageDialogFragment.TAG) + ).show(activity.supportFragmentManager, MessageDialogFragment.TAG) return@withContext } Toast.makeText( diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 4d06bf9c0..d0bf48068 100755 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -79,6 +79,7 @@ void TextureCache
::RunGarbageCollector() { if (num_iterations == 0) { return true; } + --num_iterations; auto& image = slot_images[image_id]; if (True(image.flags & ImageFlagBits::IsDecoding)) { // This image is still being decoded, deleting it will invalidate the slot @@ -88,7 +89,6 @@ void TextureCache
::RunGarbageCollector() { if (!aggressive_mode && True(image.flags & ImageFlagBits::CostlyLoad)) { return false; } - --num_iterations; const bool must_download = image.IsSafeDownload() && False(image.flags & ImageFlagBits::BadOverlap); if (!high_priority_mode && must_download) {