diff options
-rwxr-xr-x | README.md | 2 | ||||
-rwxr-xr-x | src/core/hle/kernel/k_thread.h | 3 | ||||
-rwxr-xr-x | src/video_core/compatible_formats.cpp | 6 | ||||
-rwxr-xr-x | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 5 |
4 files changed, 11 insertions, 5 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 3730. | 4 | This is the source code for early-access 3731. |
5 | 5 | ||
6 | ## Legal Notice | 6 | ## Legal Notice |
7 | 7 | ||
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h index daeb316c9..d42f834d6 100755 --- a/src/core/hle/kernel/k_thread.h +++ b/src/core/hle/kernel/k_thread.h | |||
@@ -343,7 +343,8 @@ public: | |||
343 | } | 343 | } |
344 | 344 | ||
345 | std::span<Handle> GetHandleBuffer() { | 345 | std::span<Handle> GetHandleBuffer() { |
346 | return m_sync_object_buffer.handles; | 346 | return {m_sync_object_buffer.handles.data() + Svc::ArgumentHandleCountMax, |
347 | Svc::ArgumentHandleCountMax}; | ||
347 | } | 348 | } |
348 | 349 | ||
349 | u16 GetUserDisableCount() const; | 350 | u16 GetUserDisableCount() const; |
diff --git a/src/video_core/compatible_formats.cpp b/src/video_core/compatible_formats.cpp index a9a484e99..0f270aeeb 100755 --- a/src/video_core/compatible_formats.cpp +++ b/src/video_core/compatible_formats.cpp | |||
@@ -272,6 +272,9 @@ constexpr Table MakeNonNativeBgrCopyTable() { | |||
272 | 272 | ||
273 | bool IsViewCompatible(PixelFormat format_a, PixelFormat format_b, bool broken_views, | 273 | bool IsViewCompatible(PixelFormat format_a, PixelFormat format_b, bool broken_views, |
274 | bool native_bgr) { | 274 | bool native_bgr) { |
275 | if (format_a == format_b) { | ||
276 | return true; | ||
277 | } | ||
275 | if (broken_views) { | 278 | if (broken_views) { |
276 | // If format views are broken, only accept formats that are identical. | 279 | // If format views are broken, only accept formats that are identical. |
277 | return format_a == format_b; | 280 | return format_a == format_b; |
@@ -282,6 +285,9 @@ bool IsViewCompatible(PixelFormat format_a, PixelFormat format_b, bool broken_vi | |||
282 | } | 285 | } |
283 | 286 | ||
284 | bool IsCopyCompatible(PixelFormat format_a, PixelFormat format_b, bool native_bgr) { | 287 | bool IsCopyCompatible(PixelFormat format_a, PixelFormat format_b, bool native_bgr) { |
288 | if (format_a == format_b) { | ||
289 | return true; | ||
290 | } | ||
285 | static constexpr Table BGR_TABLE = MakeNativeBgrCopyTable(); | 291 | static constexpr Table BGR_TABLE = MakeNativeBgrCopyTable(); |
286 | static constexpr Table NO_BGR_TABLE = MakeNonNativeBgrCopyTable(); | 292 | static constexpr Table NO_BGR_TABLE = MakeNonNativeBgrCopyTable(); |
287 | return IsSupported(native_bgr ? BGR_TABLE : NO_BGR_TABLE, format_a, format_b); | 293 | return IsSupported(native_bgr ? BGR_TABLE : NO_BGR_TABLE, format_a, format_b); |
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 2476a6ef0..8511367f9 100755 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
@@ -826,9 +826,8 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, Scheduler& sched | |||
826 | } | 826 | } |
827 | for (size_t index_a = 0; index_a < VideoCore::Surface::MaxPixelFormat; index_a++) { | 827 | for (size_t index_a = 0; index_a < VideoCore::Surface::MaxPixelFormat; index_a++) { |
828 | const auto image_format = static_cast<PixelFormat>(index_a); | 828 | const auto image_format = static_cast<PixelFormat>(index_a); |
829 | const auto type_a = VideoCore::Surface::GetFormatType(image_format); | 829 | if (IsPixelFormatASTC(image_format) && !device.IsOptimalAstcSupported()) { |
830 | if (type_a != SurfaceType::ColorTexture) { | 830 | view_formats[index_a].push_back(VK_FORMAT_A8B8G8R8_UNORM_PACK32); |
831 | continue; | ||
832 | } | 831 | } |
833 | for (size_t index_b = 0; index_b < VideoCore::Surface::MaxPixelFormat; index_b++) { | 832 | for (size_t index_b = 0; index_b < VideoCore::Surface::MaxPixelFormat; index_b++) { |
834 | const auto view_format = static_cast<PixelFormat>(index_b); | 833 | const auto view_format = static_cast<PixelFormat>(index_b); |