Commit graph

690 commits

Author SHA1 Message Date
Connor McLaughlin a9038133c8 HostDisplay: Common texture base class for all APIs 2022-10-04 00:00:56 +10:00
Connor McLaughlin 12d400b76a OpenGLHostDisplay: Replace GL ID handle with texture class 2022-10-03 21:08:42 +10:00
Connor McLaughlin 4dc3014fcd Vulkan: Hook up VK_KHR_driver_properties 2022-10-03 13:11:38 +10:00
Connor McLaughlin 410b384c76 Vulkan/Context: Request API v1.1 2022-10-01 13:31:03 +10:00
Connor McLaughlin 8aa1c8827c GPU/D3D11: Purge D3D11::StagingTexture 2022-09-26 22:15:51 +10:00
Connor McLaughlin 84917ec6aa Common/Image: Add resize methods 2022-09-26 22:15:51 +10:00
Connor McLaughlin e3a327f7a2 Vulkan/Texture: Fix updating array textures 2022-09-26 22:15:50 +10:00
Connor McLaughlin f7aa7c659c D3D11/Texture: Add layers/texture arrays 2022-09-26 22:15:50 +10:00
Connor McLaughlin e7fb42347f GL/Texture: Add multi-layer/level support 2022-09-26 22:15:50 +10:00
Connor McLaughlin 8d32547ec9 Vulkan/Texture: Allow uploading non-zero layers/levels 2022-09-26 22:15:50 +10:00
Connor McLaughlin aff9f1c25f D3D12: Add helper for offsetting descriptors 2022-09-26 22:15:50 +10:00
Connor McLaughlin 9d27f7095f Vulkan: Use Vulkan Memory Allocator 2022-09-26 22:15:50 +10:00
Connor McLaughlin aee8163317 Achievements: Drain outstanding requests when switching games
Stops data being lost when loading state due to data not being
downloaded yet.
2022-09-18 13:24:55 +10:00
Connor McLaughlin d9722516c3 GameList: Handle non-extension-suffixed urls based on content type 2022-09-18 13:24:55 +10:00
Connor McLaughlin a062cc4706 VulkanHostDisplay: Fix uploading of strided textures 2022-09-18 12:10:36 +10:00
Connor McLaughlin ef3ad91ad0 FullscreenUI: Various improvements 2022-09-17 15:56:05 +10:00
Connor McLaughlin 0b3461338c HostDisplay: Use streaming for sw renderer display 2022-09-13 17:50:42 +10:00
Connor McLaughlin bf76780f11 GameList: Add cover downloader 2022-09-13 17:50:42 +10:00
Connor McLaughlin bec0d6e7df HostDisplay: Add GPU usage statistics 2022-09-03 14:17:51 +10:00
Connor McLaughlin f9bd2db2dc Common/Image: Fix saving 2022-08-26 23:30:45 +10:00
Connor McLaughlin 7bbacd2392 Misc: Remove unused code 2022-08-22 19:55:38 +10:00
Connor McLaughlin 0572d0cd4b Common: Add ByteStream implementations for zstd 2022-08-18 23:10:15 +10:00
Connor McLaughlin 0154a594c9 ByteStream: Devirtualize where unnecessary 2022-08-18 23:10:15 +10:00
Connor McLaughlin e9126aeeb8 Common: Add SHA1Digest 2022-08-16 00:05:46 +10:00
Connor McLaughlin 4688277987 SwapChain: Reduce buffer count from 3 to 2 2022-08-10 17:08:59 +10:00
Connor McLaughlin 916900be5d Misc: More warning fixes 2022-08-10 14:33:31 +10:00
Connor McLaughlin b698ff1fff Common: Add build_timestamp.h 2022-08-10 13:05:52 +10:00
Connor McLaughlin ae0d60fcd8 Timer: Spin for last 1ms on non-windows too 2022-08-10 13:02:23 +10:00
Connor McLaughlin b581cc4777 Vulkan/SwapChain: Fix crash on fullscreen with MoltenVK 2022-08-07 01:31:24 +10:00
Connor McLaughlin 25d2148ae4 Misc: Necessary emucore changes for Android 2022-08-05 17:05:21 +10:00
Connor McLaughlin ca1512f47a Vulkan/Loader: Prioritize system libvulkan dylib, fallback to MoltenVK 2022-08-01 23:07:40 +10:00
Connor McLaughlin 571a773b29 FileSystem: Fix build failure 2022-07-31 17:42:58 +10:00
Connor McLaughlin 97d5d659d3 FileSystem: Fix zeros getting stripped in path 2022-07-31 17:37:21 +10:00
Connor McLaughlin 0006c54c46 Build: Add Mac dependencies and fix packaging 2022-07-31 16:00:37 +10:00
Connor McLaughlin a899ca88f2 Build: Make OpenGL/Vulkan renderers optional
And disabled on Windows/arm64.
2022-07-31 01:14:28 +10:00
Connor McLaughlin cb127b6412 Common: Remove Event 2022-07-30 21:55:12 +10:00
Connor McLaughlin 89659db7ee Path: Unicode handling and tests for SanitizeFileName 2022-07-30 21:46:14 +10:00
Connor McLaughlin 12875cbcac D3D12/StagingTexture: Fix map persisting through resize 2022-07-30 12:58:20 +10:00
Connor McLaughlin b074c0d1ee System: Make inter-frame sleep slightly more precise 2022-07-30 00:45:26 +10:00
Connor McLaughlin f6ff7e48c1 Build: Fix compiling for arm64/linux 2022-07-28 22:38:08 +10:00
Connor McLaughlin f54e32ff01 dep: Add soundtouch 2022-07-28 22:10:47 +10:00
Connor McLaughlin 13b2cf6b1c WindowInfo: Linux build fix 2022-07-26 20:10:19 +10:00
Connor McLaughlin 8af4f4f01a Common: ScopeGuard -> ScopedGuard 2022-07-26 18:37:16 +10:00
Connor McLaughlin 13e3f2a179 ContextWGL: Backport pbuffer changes 2022-07-26 18:32:55 +10:00
Connor McLaughlin c233a8042f GLContext: Dynamically load wayland-egl 2022-07-25 18:06:17 +10:00
Connor McLaughlin 25c52f97d4 CMake: Include Vulkan headers 2022-07-25 01:06:24 +10:00
Connor McLaughlin 9b22f0564f Misc: Remove backported license text
For anyone trying to start drama, I have copyright over this code and
never signed a CLA, therefore can relicense it how I see fit (in this
case is no license, i.e. no rights, although the entire DuckStation as
is currently distributed is GPLv3).
2022-07-23 13:55:09 +10:00
Connor McLaughlin b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin af91fcf195 Backport more common classes 2022-07-21 17:29:58 +10:00
Connor McLaughlin f6b3652ae6 Add MemorySettingsInterface 2022-07-21 17:29:58 +10:00
Connor McLaughlin 6a6ab6529a Backport SettingsInterface 2022-07-21 17:29:58 +10:00
Connor McLaughlin b7fbde31a7 Move utility classes from common to own static lib 2022-07-21 17:29:58 +10:00
Connor McLaughlin d2ca454576 Sync filesystem.h/path.h 2022-07-21 17:29:57 +10:00
Connor McLaughlin f89529015c dep: Move Vulkan loader to common 2022-07-21 17:29:57 +10:00
Connor McLaughlin fd3507c16d Core: Replace Timestamp usage with fmt 2022-07-21 17:29:57 +10:00
Connor McLaughlin b5bf3593c4 ByteStream: Move routines from FileSystem to ByteStream 2022-07-21 17:29:57 +10:00
Connor McLaughlin d81e156a29 dep: Add build config for fmt 2022-07-21 17:29:57 +10:00
Connor McLaughlin b3c3d5d954 Sync string_util.cpp 2022-07-21 17:29:57 +10:00
Connor McLaughlin 5d097da160 CDImageCHD: Implement precaching 2022-04-03 21:09:36 +10:00
Connor McLaughlin 9ab64ecdb3 CDImage: Add Precache() method 2022-04-03 21:09:36 +10:00
Connor McLaughlin bceca040d9 dep/libchdr: Remove libFLAC dependency 2022-04-03 21:09:36 +10:00
Ronnie Sahlberg f7a3358b1f pbp: pstitleimg sections are allowed also for single disc games
Multidisc games are stored inside the EBOOT.PBP file as
A)
pstitleimg
psisoimg
psisoimg
...

Single disk games can be stored in two different formats, with or
without a pstitleimg section, i.e. as

B)
pstitleimg
psisoimg

or

C)
psisoimg

Fix a conditional in duckstation that incorrectly flags B) as an error.
These types of EBOOT.PBP files can be created by the pop-fe utility.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2022-03-29 21:36:39 +10:00
Connor McLaughlin 07d331deca
Merge pull request #2814 from CookiePLMonster/y2038
Fix a Y2038 bug in UnixTimeToFileTime
2022-03-27 17:47:35 +10:00
Connor McLaughlin a55537ec1b D3D12/Builders: Fix incorrect depth write mask 2022-03-27 17:38:48 +10:00
Connor McLaughlin a55b5022c7 System: Include cheevos state in save states 2022-03-27 16:59:02 +10:00
Connor McLaughlin d5128a5ea9 HTTPDownloader: Move to common 2022-03-27 16:59:02 +10:00
Connor McLaughlin cb51ab7197 Misc: Purge unused definitions 2022-03-27 16:59:02 +10:00
Silent e43f2ddddb
Fix a Y2038 bug in UnixTimeToFileTime 2022-03-26 16:49:02 +01:00
Connor McLaughlin bee50481f5 CDImageMDS: Possible fix for multi-track images 2021-12-25 14:28:33 +10:00
Connor McLaughlin 592a591b5f FileSystem: Get rid of trailing nulls in GetWorkingDirectory() 2021-12-25 14:28:33 +10:00
Connor McLaughlin 7c769b1941 CDImageDevice: Don't add out-of-file pregaps to audio tracks 2021-11-26 11:31:59 +10:00
Connor McLaughlin 827048eeda CDImageDevice: Fix printing of track summary 2021-11-26 11:31:59 +10:00
Connor McLaughlin c54c5f1b95 Common/CueParser: Remove redundant check for CATALOG 2021-11-10 13:38:06 +10:00
Connor McLaughlin fca4a2ec28 Common/FileSystem: Fix a couple of warnings from #2716 2021-11-10 13:18:30 +10:00
Connor McLaughlin e6741dad9b Common/Timestamp: Use tuple for comparison operators 2021-11-10 13:00:32 +10:00
Connor McLaughlin 13453ee6d8
Merge pull request #2715 from stenzek/pvd-hash
System: Use exe hash plus pvd hash for image hash code
2021-11-10 12:34:55 +10:00
Connor McLaughlin a8a0a50af7 ISOReader: Make fields public/accessible 2021-11-09 12:54:07 +10:00
Evgeniy Dushistov 39a9997fd0
Fix usage of free for stack variable
Based on warning from pvs static analyzer (https://habr.com/ru/company/pvs-studio/blog/586700/)
2021-11-07 20:43:41 +03:00
Connor McLaughlin 425dee2f0b CDImage: Fix tracks not getting brought across in CopyTOC() 2021-11-05 15:19:21 +10:00
Silent b7f73a42be
CDImageCueSheet: Fix cuesheets with absolute paths 2021-10-30 11:17:41 +02:00
Connor McLaughlin 58f05498e5 Common/ProgressCallback: Elide some redundant updates 2021-10-29 13:16:42 +10:00
Connor McLaughlin ccf5006bc8
Merge pull request #2668 from CookiePLMonster/dump-verification
Implement image verification
2021-10-25 17:30:20 +10:00
Connor McLaughlin f0c5b049bb DRMDisplay: Should include common types not core types 2021-10-25 17:27:41 +10:00
Connor McLaughlin 2194004662 CDImageDevice: Fix gcc warning 2021-10-25 17:15:56 +10:00
Silent 85ea9a629a
Add image verification
"Verify Dump" is now removed, now both hash calculation
and image verification are done in one step.
After a successful hash calculation, the button is replaced with
a "Search on Redump.org" button that opens a web browser
on Redump's search page.
2021-10-23 22:19:39 +02:00
Silent e38ee512f3
Fix progress bar not starting from 0 when verifying the data track 2021-10-23 21:46:57 +02:00
Connor McLaughlin c0a29f7bfd Fix a few warnings over the place 2021-09-26 09:56:17 +10:00
Connor McLaughlin bbcf1c67d1 Common/Vulkan: Fix compiling on 32-bit 2021-08-24 11:57:16 +10:00
Connor McLaughlin 7eceee6a20 CDImage: Use display name for playlist titles 2021-08-21 16:58:10 +10:00
Connor McLaughlin e45f15ef41 FileSystem: Implement StatFile/FileExists/DirectoryExists for scoped storage 2021-08-18 00:18:03 +10:00
Connor McLaughlin f0cb8cdc5c GL/Texture: Don't set max level on GLES2 2021-08-12 21:31:40 +10:00
Connor McLaughlin 8bea6e1530 GPU/Vulkan: Fix warnings introduced by #2438 2021-08-07 12:01:02 +10:00
Wunkolo 98089180c0 GPU/Vulkan: Add debug utility functions
Adds a way to set the name of vulkan
objects, and automatically determining their `VkObjectType` enum value
at compile-time. As well as a utility-object for creating debug-scopes
for `VkQueue` and `VkCommandBuffer` objects. `DebugScope` objects will
automatically emit `Begin` and `End` commands within the ctor and dtor
and allow for C++ scopes to name and color sections of a vulkan command.
These DebugScopes are also able to be nested within each other and will
automatically pick a color depending on the current recursive depth.

These functions are all null-stubbed in non-debug compilations.
2021-08-01 10:56:56 -07:00
Connor McLaughlin 642f8041e9 Common/Log: Fix compilation on Android 2021-07-30 17:01:07 +10:00
Connor McLaughlin b948bb0750 CDImageDevice: Fix invalid TOC for multi-track discs 2021-07-29 14:00:47 +10:00
Connor McLaughlin 77eb8e4b72 Common/Log: Rewrite for better unicode handling 2021-07-29 13:45:38 +10:00
Connor McLaughlin 26a8f8d9e7 Common/Log: Restore old console behavior 2021-07-29 13:45:11 +10:00
Connor McLaughlin 4d262e8072 CDImage: Add CD-ROM device implementation 2021-07-26 01:30:53 +10:00
Connor McLaughlin 3b7c6c7bbd Common/Log: Fix Unix escape sequences on preexisting consoles 2021-07-23 18:07:03 +10:00
Connor McLaughlin 78dabd1067 Build: Add missing d3dcompiler/d3d11 dependency in common 2021-07-23 18:06:25 +10:00
Connor McLaughlin 3847c94a42 FileSystem: Don't treat dotfiles as hidden on Windows 2021-07-21 20:26:00 +10:00
Connor McLaughlin dfd6766411 MemoryArea: Use pid instead of thread id for mapping on Windows 2021-07-19 15:11:07 +10:00
Connor McLaughlin fc164ce021 D3D12/Texture: Fix non-(0,0) texture streaming 2021-07-13 14:17:04 +10:00
Connor McLaughlin 3be6270b2d ByteStream: Fix atomic updates on external storage with UWP 2021-07-11 19:05:30 +10:00
Connor McLaughlin e8c16056b6 Common/FileSystem: Handle S/R modes for UWP 2021-07-11 19:05:08 +10:00
Connor McLaughlin 0f911e9dbf Common/PageFaultHandler: Support for unwind exceptions
Needed for UWP.
2021-07-11 15:20:38 +10:00
Connor McLaughlin 6251894d3c Common/JitCodeBuffer: Add ability to reserve non-code space 2021-07-11 15:20:38 +10:00
Connor McLaughlin 03ab18909a Common: Add UWP support for helper classes 2021-07-11 15:20:38 +10:00
Connor McLaughlin 281f7c5789 Build: Add UWP configurations 2021-07-11 14:13:59 +10:00
Connor McLaughlin c7ce9562fa D3D12/Texture: Force 16MB uploads down temp texture path 2021-07-11 13:33:26 +10:00
Connor McLaughlin 9dab3f9b9b D3D12/StreamBuffer: Fix edge case of allocating buffer size 2021-07-11 13:32:17 +10:00
Connor McLaughlin 14e7f8fd13 GPU: Add D3D12 renderer 2021-07-10 21:45:10 +10:00
Connor McLaughlin 5da9edceb9 Build: Unify MSBuild options in props files 2021-07-10 21:45:10 +10:00
Connor McLaughlin a50d18242d Common/ByteStream: Add explicit include for alloca 2021-07-10 21:45:10 +10:00
Connor McLaughlin 6e9ebfa5b5 GPU/D3D11: Fix possible buffer overwrite when reading back 2021-07-04 21:40:44 +10:00
Connor McLaughlin 53cabbb134 FileSystem: Add RenamePath() 2021-07-03 16:50:51 +10:00
Connor McLaughlin dbe5f3c30c FIFOQueue: Fix contiguous space with full buffer 2021-07-03 14:29:25 +10:00
Connor McLaughlin 47b390e356 AudioStream: Prevent buffering more frames than size 2021-07-03 14:29:08 +10:00
Connor McLaughlin 409c2b36ff Qt: Add game list exclude path UI 2021-07-02 12:49:32 +10:00
Connor McLaughlin 911e9a37f1 WIN32 macro -> _WIN32 2021-06-30 14:38:07 +10:00
Connor McLaughlin 48422a9932
Merge pull request #2336 from Wunkolo/vk-debug-utils
GPU/Vulkan: Update VK_EXT_debug_report to VK_EXT_debug_utils
2021-06-30 14:20:37 +10:00
Wunkolo b7f583d10f GPU/Vulkan: Update VK_EXT_debug_report to VK_EXT_debug_utils
`VK_EXT_debug_report` has been officially depreciated by khronos in favor of the `VK_EXT_debug_utils` extension
2021-06-28 13:57:49 -07:00
Connor McLaughlin 06b009f361 Warning fixes 2021-06-27 13:51:22 +10:00
Connor McLaughlin defce709da GPU/HW: Don't allow adaptive downsampling at non-pow2 scales 2021-06-25 00:19:14 +10:00
Connor McLaughlin 859c78fdc0 DRMDisplay: Restore previous framebuffer on shutdown 2021-06-21 22:04:59 +10:00
Connor McLaughlin d53daf2f26 CDImageEcm: Better error handling for corrupted dumps 2021-06-11 20:47:46 +10:00
Connor McLaughlin da9c4c1175 CueParser: Fix crash on invalid mode string 2021-06-09 19:44:06 +10:00
Connor McLaughlin 20afc1c4a1 Android: Handle some possible surface loss cases 2021-06-07 18:40:32 +10:00
Connor McLaughlin e118b5486e CDImagePPF: Fix incorrect filename saved to state 2021-06-05 18:12:59 +10:00
Connor McLaughlin aac85299ea AudioStream: Make fields protected instead of private 2021-06-04 13:37:23 +10:00
Connor McLaughlin 350049826f Fix a bunch of compiler warnings 2021-06-04 13:14:30 +10:00
Connor McLaughlin 262c43ac00 Build: Don't compile WGL/stackwalker for libretro 2021-06-03 21:32:23 +10:00
Connor McLaughlin 3cb01bf23d CDImage: Fix compilation on Linux 2021-06-01 22:04:25 +10:00
Connor McLaughlin 77984035d2 CDImage: Add CDImagePPF to overlap a PPF on another image 2021-06-01 21:54:50 +10:00
Connor McLaughlin 5edc645d1f MemoryArena: Use module-unique shared memory name for libretro 2021-05-31 20:51:27 +10:00
Connor McLaughlin 56c08254c9 CDImage: Fix incorrect index returned for track-relative 00:02:00
Fixes some voice lines being very briefly cut off in Tomb Raider.
2021-05-27 03:48:02 +10:00
Connor McLaughlin e8e8b910a5 CDImage: Fix pregap not going to 00:00:00 2021-05-27 03:48:02 +10:00
Silent 803b68b279
Common/DimensionalArray: Re-revert the workaround
VS16.10 fixes the regression and bumps up _MSC_VER,
so make only VS2017 and VS16.9 use the workaround
2021-05-25 19:00:40 +02:00
Connor McLaughlin 16efffa403 CueParser: Ignore pregap when index 0 is specified
Also corrects the previous track length when index 0 is specified.
2021-05-23 20:42:50 +10:00
Connor McLaughlin 8f639070c9 CueParser: Ignore zero pregap when index 0 is set 2021-05-23 20:33:55 +10:00
Connor McLaughlin 5556d8221b CueParser: Fix reading cuesheets with timecodes >60mins 2021-05-23 20:06:10 +10:00
Connor McLaughlin 69cfcd22a2 CDImageCue: Replace libcue with in-house cue parser 2021-05-21 14:52:55 +10:00
Connor McLaughlin 301bbb4924 CDImagePBP: Handle compression level 0 files 2021-05-20 12:19:26 +10:00
Connor McLaughlin 68fd77c326 CDImagePBP: Fix reading from track 1 pregap 2021-05-20 12:19:26 +10:00
Connor McLaughlin 69fb8de644 CDImageM3u: Fix crash when error pointer is null 2021-05-20 12:19:26 +10:00
Connor McLaughlin 1392a64a93 Re-add libretro core 2021-05-20 12:18:54 +10:00
Connor McLaughlin 48bc152a63 Vulkan/SwapChain: Ensure returned height is at least 1x1 2021-04-30 02:53:03 +10:00
Connor McLaughlin 46d19eeb1f Android: Allow opening/getting files relative to downloads directory 2021-04-24 16:19:13 +10:00
Connor McLaughlin 9652e3cb6b CDImage: Generate correct relative subq position in pregap 2021-04-22 02:58:13 +10:00
Connor McLaughlin d6d8d21eff Common/FileSystem: Make file functions content URI-aware 2021-04-17 21:52:26 +10:00