From fb15777c88c21664947117077249a34098c55dd5 Mon Sep 17 00:00:00 2001 From: pineappleEA Date: Mon, 26 Dec 2022 02:13:45 +0100 Subject: [PATCH] early-access version 3254 --- README.md | 2 +- src/core/hid/emulated_controller.cpp | 7 +++++++ src/video_core/texture_cache/texture_cache.h | 8 ++++---- src/video_core/texture_cache/texture_cache_base.h | 5 +++-- src/video_core/texture_cache/util.cpp | 6 +++--- src/video_core/texture_cache/util.h | 3 ++- 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ee7b0f842..c125d1cc7 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 3253. +This is the source code for early-access 3254. ## Legal Notice diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp index 9c6a45f45..e1ae1f250 100755 --- a/src/core/hid/emulated_controller.cpp +++ b/src/core/hid/emulated_controller.cpp @@ -224,6 +224,13 @@ void EmulatedController::LoadTASParams() { tas_stick_params[Settings::NativeAnalog::LStick].Set("axis_y", 1); tas_stick_params[Settings::NativeAnalog::RStick].Set("axis_x", 2); tas_stick_params[Settings::NativeAnalog::RStick].Set("axis_y", 3); + + // set to optimal stick to avoid sanitizing the stick and tweaking the coordinates + // making sure they play back in the game as originally written down in the script file + tas_stick_params[Settings::NativeAnalog::LStick].Set("deadzone", 0.0f); + tas_stick_params[Settings::NativeAnalog::LStick].Set("range", 1.0f); + tas_stick_params[Settings::NativeAnalog::RStick].Set("deadzone", 0.0f); + tas_stick_params[Settings::NativeAnalog::RStick].Set("range", 1.0f); } void EmulatedController::LoadVirtualGamepadParams() { diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 7bc432c67..01035ba1d 100755 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -42,8 +42,8 @@ TextureCache

::TextureCache(Runtime& runtime_, VideoCore::RasterizerInterface& // These values were chosen based on typical peak swizzle data sizes seen in some titles static constexpr size_t SWIZZLE_DATA_BUFFER_INITIAL_CAPACITY = 8_MiB; static constexpr size_t UNSWIZZLE_DATA_BUFFER_INITIAL_CAPACITY = 1_MiB; - swizzle_data_buffer.reserve(SWIZZLE_DATA_BUFFER_INITIAL_CAPACITY); - unswizzle_data_buffer.reserve(UNSWIZZLE_DATA_BUFFER_INITIAL_CAPACITY); + swizzle_data_buffer.resize_destructive(SWIZZLE_DATA_BUFFER_INITIAL_CAPACITY); + unswizzle_data_buffer.resize_destructive(UNSWIZZLE_DATA_BUFFER_INITIAL_CAPACITY); // Make sure the first index is reserved for the null resources // This way the null resource becomes a compile time constant @@ -747,11 +747,11 @@ void TextureCache

::UploadImageContents(Image& image, StagingBuffer& staging) return; } const size_t guest_size_bytes = image.guest_size_bytes; - swizzle_data_buffer.resize(guest_size_bytes); + swizzle_data_buffer.resize_destructive(guest_size_bytes); gpu_memory->ReadBlockUnsafe(gpu_addr, swizzle_data_buffer.data(), guest_size_bytes); if (True(image.flags & ImageFlagBits::Converted)) { - unswizzle_data_buffer.resize(image.unswizzled_size_bytes); + unswizzle_data_buffer.resize_destructive(image.unswizzled_size_bytes); auto copies = UnswizzleImage(*gpu_memory, gpu_addr, image.info, swizzle_data_buffer, unswizzle_data_buffer); ConvertImage(unswizzle_data_buffer, image.info, mapped_span, copies); diff --git a/src/video_core/texture_cache/texture_cache_base.h b/src/video_core/texture_cache/texture_cache_base.h index 3cd866c55..c2ea36761 100755 --- a/src/video_core/texture_cache/texture_cache_base.h +++ b/src/video_core/texture_cache/texture_cache_base.h @@ -17,6 +17,7 @@ #include "common/literals.h" #include "common/lru_cache.h" #include "common/polyfill_ranges.h" +#include "common/scratch_buffer.h" #include "video_core/compatible_formats.h" #include "video_core/control/channel_state_cache.h" #include "video_core/delayed_destruction_ring.h" @@ -417,8 +418,8 @@ private: std::unordered_map image_allocs_table; - std::vector swizzle_data_buffer; - std::vector unswizzle_data_buffer; + Common::ScratchBuffer swizzle_data_buffer; + Common::ScratchBuffer unswizzle_data_buffer; u64 modification_tick = 0; u64 frame_tick = 0; diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp index 33f2f90da..056c16dbc 100755 --- a/src/video_core/texture_cache/util.cpp +++ b/src/video_core/texture_cache/util.cpp @@ -505,7 +505,7 @@ void SwizzlePitchLinearImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr void SwizzleBlockLinearImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr, const ImageInfo& info, const BufferImageCopy& copy, - std::span input, std::vector& tmp_buffer) { + std::span input, Common::ScratchBuffer& tmp_buffer) { const Extent3D size = info.size; const LevelInfo level_info = MakeLevelInfo(info); const Extent2D tile_size = DefaultBlockSize(info.format); @@ -534,7 +534,7 @@ void SwizzleBlockLinearImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr tile_size.height, info.tile_width_spacing); const size_t subresource_size = sizes[level]; - tmp_buffer.resize(subresource_size); + tmp_buffer.resize_destructive(subresource_size); const std::span dst(tmp_buffer); for (s32 layer = 0; layer < info.resources.layers; ++layer) { @@ -978,7 +978,7 @@ std::vector FullUploadSwizzles(const ImageInfo& info) { void SwizzleImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr, const ImageInfo& info, std::span copies, std::span memory, - std::vector& tmp_buffer) { + Common::ScratchBuffer& tmp_buffer) { const bool is_pitch_linear = info.type == ImageType::Linear; for (const BufferImageCopy& copy : copies) { if (is_pitch_linear) { diff --git a/src/video_core/texture_cache/util.h b/src/video_core/texture_cache/util.h index 7d395f929..a15865fa2 100755 --- a/src/video_core/texture_cache/util.h +++ b/src/video_core/texture_cache/util.h @@ -7,6 +7,7 @@ #include #include "common/common_types.h" +#include "common/scratch_buffer.h" #include "video_core/surface.h" #include "video_core/texture_cache/image_base.h" @@ -78,7 +79,7 @@ void ConvertImage(std::span input, const ImageInfo& info, std::span copies, std::span memory, - std::vector& tmp_buffer); + Common::ScratchBuffer& tmp_buffer); [[nodiscard]] bool IsBlockLinearSizeCompatible(const ImageInfo& new_info, const ImageInfo& overlap_info, u32 new_level,