diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 70e3cb9536..1f2dbc08fa 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1521,25 +1521,21 @@ void TextureCache
::TickAsyncUnswizzle() {
const auto& info = image.info;
const u32 bytes_per_block = BytesPerBlock(info.format);
+
const u32 width_blocks = Common::DivCeil(info.size.width, 4u);
const u32 height_blocks = Common::DivCeil(info.size.height, 4u);
const u32 stride = Common::AlignUp(width_blocks * bytes_per_block, 64u);
const u32 aligned_height = Common::AlignUp(height_blocks, 8u << task.info.block.height);
-
+
task.bytes_per_slice = static_cast ::TickAsyncUnswizzle() {
}
const size_t batch_threshold = task.bytes_per_slice * SLICES_PER_BATCH;
- size_t ready_to_submit = task.current_offset - task.last_submitted_offset;
-
+ const size_t ready_to_submit = task.current_offset - task.last_submitted_offset;
const bool is_final_batch = task.current_offset >= task.total_size;
- const bool should_submit = ready_to_submit >= batch_threshold ||
- (is_final_batch && task.last_submitted_offset < task.total_size);
-
- if (should_submit) {
+
+ if (ready_to_submit >= batch_threshold || (is_final_batch && task.last_submitted_offset < task.total_size)) {
const u32 z_start = static_cast ::TickAsyncUnswizzle() {
}
// Check if complete
- if (task.current_offset >= task.total_size &&
- task.last_submitted_offset >= (task.total_size - (task.total_size % task.bytes_per_slice))) {
+ if (task.current_offset >= task.total_size && task.total_size - task.last_submitted_offset < task.bytes_per_slice) {
runtime.FreeDeferredStagingBuffer(task.staging_buffer);
image.flags &= ~ImageFlagBits::IsDecoding;
unswizzle_queue.pop_front();
diff --git a/src/video_core/texture_cache/texture_cache_base.h b/src/video_core/texture_cache/texture_cache_base.h
index 1e817653c2..0c3ef2bac6 100644
--- a/src/video_core/texture_cache/texture_cache_base.h
+++ b/src/video_core/texture_cache/texture_cache_base.h
@@ -136,7 +136,7 @@ class TextureCache : public VideoCommon::ChannelSetupCaches