diff options
author | pineappleEA <pineaea@gmail.com> | 2024-02-10 20:39:06 +0100 |
---|---|---|
committer | pineappleEA <pineaea@gmail.com> | 2024-02-10 20:39:06 +0100 |
commit | cc9eed1bd259ddfe52d574c07e9a081e4901cc30 (patch) | |
tree | 001d82147aa5ce1b6b6ba720e63d4c20b5f9861d | |
parent | 93218fea58ed47cddf948997504c9c4e39e20207 (diff) |
early-access version 4129EA-4129
-rwxr-xr-x | README.md | 2 | ||||
-rwxr-xr-x | src/core/hle/service/am/library_applet_creator.cpp | 8 | ||||
-rwxr-xr-x | src/video_core/host_shaders/vulkan_present.vert | 10 | ||||
-rwxr-xr-x | src/video_core/texture_cache/image_info.cpp | 1 | ||||
-rwxr-xr-x | src/video_core/texture_cache/image_info.h | 1 | ||||
-rwxr-xr-x | src/video_core/texture_cache/texture_cache.h | 15 |
6 files changed, 20 insertions, 17 deletions
@@ -1,7 +1,7 @@ | |||
1 | yuzu emulator early access | 1 | yuzu emulator early access |
2 | ============= | 2 | ============= |
3 | 3 | ||
4 | This is the source code for early-access 4128. | 4 | This is the source code for early-access 4129. |
5 | 5 | ||
6 | ## Legal Notice | 6 | ## Legal Notice |
7 | 7 | ||
diff --git a/src/core/hle/service/am/library_applet_creator.cpp b/src/core/hle/service/am/library_applet_creator.cpp index 3e2a1d9c1..00d5a0705 100755 --- a/src/core/hle/service/am/library_applet_creator.cpp +++ b/src/core/hle/service/am/library_applet_creator.cpp | |||
@@ -104,12 +104,14 @@ std::shared_ptr<ILibraryAppletAccessor> CreateGuestApplet(Core::System& system, | |||
104 | 104 | ||
105 | // TODO: enable other versions of applets | 105 | // TODO: enable other versions of applets |
106 | enum : u8 { | 106 | enum : u8 { |
107 | Firmware1600 = 15, | 107 | Firmware1400 = 14, |
108 | Firmware1700 = 16, | 108 | Firmware1500 = 15, |
109 | Firmware1600 = 16, | ||
110 | Firmware1700 = 17, | ||
109 | }; | 111 | }; |
110 | 112 | ||
111 | auto process = std::make_unique<Process>(system); | 113 | auto process = std::make_unique<Process>(system); |
112 | if (!process->Initialize(program_id, Firmware1600, Firmware1700)) { | 114 | if (!process->Initialize(program_id, Firmware1400, Firmware1700)) { |
113 | // Couldn't initialize the guest process | 115 | // Couldn't initialize the guest process |
114 | return {}; | 116 | return {}; |
115 | } | 117 | } |
diff --git a/src/video_core/host_shaders/vulkan_present.vert b/src/video_core/host_shaders/vulkan_present.vert index 034e5f475..91c4dfbe4 100755 --- a/src/video_core/host_shaders/vulkan_present.vert +++ b/src/video_core/host_shaders/vulkan_present.vert | |||
@@ -19,15 +19,13 @@ layout (push_constant) uniform PushConstants { | |||
19 | // Any member of a push constant block that is declared as an | 19 | // Any member of a push constant block that is declared as an |
20 | // array must only be accessed with dynamically uniform indices. | 20 | // array must only be accessed with dynamically uniform indices. |
21 | ScreenRectVertex GetVertex(int index) { | 21 | ScreenRectVertex GetVertex(int index) { |
22 | switch (index) { | 22 | if (index < 1) { |
23 | case 0: | ||
24 | default: | ||
25 | return vertices[0]; | 23 | return vertices[0]; |
26 | case 1: | 24 | } else if (index < 2) { |
27 | return vertices[1]; | 25 | return vertices[1]; |
28 | case 2: | 26 | } else if (index < 3) { |
29 | return vertices[2]; | 27 | return vertices[2]; |
30 | case 3: | 28 | } else { |
31 | return vertices[3]; | 29 | return vertices[3]; |
32 | } | 30 | } |
33 | } | 31 | } |
diff --git a/src/video_core/texture_cache/image_info.cpp b/src/video_core/texture_cache/image_info.cpp index 22eb7bd00..4cfaf7ce6 100755 --- a/src/video_core/texture_cache/image_info.cpp +++ b/src/video_core/texture_cache/image_info.cpp | |||
@@ -42,6 +42,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { | |||
42 | }; | 42 | }; |
43 | } | 43 | } |
44 | rescaleable = false; | 44 | rescaleable = false; |
45 | is_sparse = config.is_sparse != 0; | ||
45 | tile_width_spacing = config.tile_width_spacing; | 46 | tile_width_spacing = config.tile_width_spacing; |
46 | if (config.texture_type != TextureType::Texture2D && | 47 | if (config.texture_type != TextureType::Texture2D && |
47 | config.texture_type != TextureType::Texture2DNoMipmap) { | 48 | config.texture_type != TextureType::Texture2DNoMipmap) { |
diff --git a/src/video_core/texture_cache/image_info.h b/src/video_core/texture_cache/image_info.h index 0a50795b3..286457acc 100755 --- a/src/video_core/texture_cache/image_info.h +++ b/src/video_core/texture_cache/image_info.h | |||
@@ -41,6 +41,7 @@ struct ImageInfo { | |||
41 | bool downscaleable = false; | 41 | bool downscaleable = false; |
42 | bool forced_flushed = false; | 42 | bool forced_flushed = false; |
43 | bool dma_downloaded = false; | 43 | bool dma_downloaded = false; |
44 | bool is_sparse = false; | ||
44 | }; | 45 | }; |
45 | 46 | ||
46 | } // namespace VideoCommon | 47 | } // namespace VideoCommon |
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 85046e708..47ea0bd96 100755 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
@@ -600,17 +600,17 @@ void TextureCache<P>::UnmapGPUMemory(size_t as_id, GPUVAddr gpu_addr, size_t siz | |||
600 | [&](ImageId id, Image&) { deleted_images.push_back(id); }); | 600 | [&](ImageId id, Image&) { deleted_images.push_back(id); }); |
601 | for (const ImageId id : deleted_images) { | 601 | for (const ImageId id : deleted_images) { |
602 | Image& image = slot_images[id]; | 602 | Image& image = slot_images[id]; |
603 | if (True(image.flags & ImageFlagBits::CpuModified)) { | 603 | if (False(image.flags & ImageFlagBits::CpuModified)) { |
604 | continue; | 604 | image.flags |= ImageFlagBits::CpuModified; |
605 | if (True(image.flags & ImageFlagBits::Tracked)) { | ||
606 | UntrackImage(image, id); | ||
607 | } | ||
605 | } | 608 | } |
606 | image.flags |= ImageFlagBits::CpuModified; | 609 | |
607 | if (True(image.flags & ImageFlagBits::Remapped)) { | 610 | if (True(image.flags & ImageFlagBits::Remapped)) { |
608 | continue; | 611 | continue; |
609 | } | 612 | } |
610 | image.flags |= ImageFlagBits::Remapped; | 613 | image.flags |= ImageFlagBits::Remapped; |
611 | if (True(image.flags & ImageFlagBits::Tracked)) { | ||
612 | UntrackImage(image, id); | ||
613 | } | ||
614 | } | 614 | } |
615 | } | 615 | } |
616 | 616 | ||
@@ -1469,7 +1469,8 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, DA | |||
1469 | const ImageId new_image_id = slot_images.insert(runtime, new_info, gpu_addr, cpu_addr); | 1469 | const ImageId new_image_id = slot_images.insert(runtime, new_info, gpu_addr, cpu_addr); |
1470 | Image& new_image = slot_images[new_image_id]; | 1470 | Image& new_image = slot_images[new_image_id]; |
1471 | 1471 | ||
1472 | if (!gpu_memory->IsContinuousRange(new_image.gpu_addr, new_image.guest_size_bytes)) { | 1472 | if (!gpu_memory->IsContinuousRange(new_image.gpu_addr, new_image.guest_size_bytes) && |
1473 | new_info.is_sparse) { | ||
1473 | new_image.flags |= ImageFlagBits::Sparse; | 1474 | new_image.flags |= ImageFlagBits::Sparse; |
1474 | } | 1475 | } |
1475 | 1476 | ||