Commit Graph
100 Commits
Author SHA1 Message Date
James RoweandSachinVin fda121c25c Use immutable storage when available 2021-10-02 16:38:15 +05:30
James RoweandSachinVin 9f4501aceb Perf: Remove more breakpoint checking in the interpreter. Move filtering earlier in the logging chain 2021-07-24 23:36:56 +05:30
James RoweandGitHub a6ee1bf913 HLE Audio: Increase frame position by input buffer sample rate (#5049)
* HLE Audio: Increase frame position by input buffer sample rate

Currently the frame position moves ahead by the number of samples
output, but thats a fixed number based on the 3ds native sample rate.
Instead, based on a homebrew by cyuubi and looking at the lle audio,
this sample position should be moved forward by the number of samples
from the input buffer that was read, based on the buffer's sample rate.
2020-03-28 10:39:50 -05:00
James RoweandGitHub f8d717bc7a Use the correct directory for Qt Plugins (#5148) 2020-03-28 16:20:48 +01:00
James RoweandGitHub 407fd15515 Use immutable storage when available (#5053)
Going to merge this because I plan to use it.
2020-03-26 12:53:55 -05:00
James RoweandGitHub 59c159e8a0 Merge pull request #5087 from FearlessTobi/port-3374
Port yuzu-emu/yuzu#3374: "input_common/udp: Minor changes"
2020-02-22 14:54:45 -07:00
James Rowe 276d56ca9b Add CPU Clock Frequency slider
This slider affects the number of cycles that the guest cpu emulation
reports that have passed since the last time slice. This option scales
the result returned by a percentage that the user selects. In some games
underclocking the CPU can give a major speedup. Exposing this as an
option will give users something to toy with for performance, while also
potentially enhancing games that experience lag on the real console
2020-02-21 16:03:07 -07:00
James Roweandzhupengfei 55c75b5e3e Add ClearAll to rasterizer cache for fully wiping the cache on save/load 2020-02-13 17:42:11 +08:00
James Roweandzhupengfei 3e34ad6890 Hack: Workaround crash when loading state and gyro is used 2020-02-13 17:42:11 +08:00
James RoweandGitHub 03cde53cb6 Merge pull request #5077 from FearlessTobi/port-3339
Port yuzu-emu/yuzu#3339: "GUI: fix minor issues with dark themes + rename and reorder themes"
2020-02-08 12:49:15 -07:00
James RoweandGitHub 17e9522921 Merge pull request #5069 from vitor-k/min-window2
Update minimum window size based on current layout
2020-02-08 12:46:20 -07:00
James RoweandGitHub 5d502dfecc Merge pull request #5010 from FearlessTobi/port-2513-new
yuzu/main: Specify string conversions explicitly
2020-01-23 16:29:50 -07:00
James RoweandGitHub 5f20bf0e10 Merge pull request #5073 from vitor-k/log-shader-cache-option
Log disk shader cache setting
2020-01-22 21:25:17 -07:00
James RoweandGitHub f3e6c4f841 Merge pull request #5071 from jroweboy/loading-bar
QT Frontend: Add disk shader loading progress bar
2020-01-22 21:24:43 -07:00
James Rowe 426e214c25 Loading Screen: Vertically Center everything 2020-01-22 17:26:27 -07:00
James Rowe 961a7b59c9 QT Frontend: Add disk shader loading progress bar
Until we get a on screen display or async shader loading, we should at
least have some measure of progress in the meantime. This is 90% a port
from the loading screen I made for yuzu, but with a slightly different
changed detection for when to display the ETA. Now we keep track of a
rolling estimate for shader load ETA and only display a ETA if its going
to take longer than 10 seconds.
2020-01-22 17:18:00 -07:00
James RoweandGitHub be17f0851e Merge pull request #5072 from jroweboy/dont-load-hwshader-when-disabled
Dont load Disk Cache when HWShader is disabled
2020-01-22 14:18:10 -07:00
James Rowe 5fb456f17f Frontend: Prevent DiskShader option from being selected if HW Shaders are disabled 2020-01-22 09:50:31 -07:00
James Rowe bd29261e0a Frontend: Only load disk resources if hw shader is enabled 2020-01-22 09:47:53 -07:00
James RoweandGitHub c0df8271bf Merge pull request #5070 from jroweboy/ninja-osx-suxz
OSX Build: Remove ninja
2020-01-21 19:34:20 -07:00
James Rowe ea482a719d OSX Build: Remove ninja
Ninja on OSX lately is giving an error where it gets in a cmake
reconfiguration loop. It constantly reruns cmake and detects that the
build file changed, so it reruns it again and again until it times out.
Not going to deal with this right now.
2020-01-21 18:54:05 -07:00
James RoweandGitHub 5fd1ff08d7 Merge pull request #5024 from jroweboy/temp-hle-audio-fix
Prevent out of memory errors when the game passes in an improper length value
2020-01-21 15:30:20 -07:00
James RoweandGitHub a0f9c795c8 Merge pull request #5043 from vitor-k/screen-rotate
Implement Upright/Book-style layout
2020-01-20 18:38:06 -07:00
James RoweandGitHub 3c3fcd8ee6 Merge pull request #5061 from FearlessTobi/port-3316
Port yuzu-emu/yuzu#3316: "Add headbar icon on Linux"
2020-01-19 10:24:58 -07:00
James RoweandGitHub e4285097f4 Merge pull request #5021 from ccawley2011/cpu_detect
common/cpu_detect: Remove unused functionality
2020-01-17 20:30:29 -07:00
James RoweandGitHub e74a402c69 Merge pull request #4923 from jroweboy/diskcachelul
Disk Shader Caching
2020-01-17 18:15:50 -07:00
James RoweandGitHub 5fdcff9d05 Merge pull request #5018 from iwubcode/passive-3d
Interlaced stereo 3d option
2020-01-17 18:14:59 -07:00
James Rowe e95bc52b3d Only check for sanitize_mul if theres a shader in the cache 2020-01-16 08:35:52 -07:00
James Rowe 43c9695bf9 Fix title bar 2020-01-15 23:52:41 -07:00
James Rowe cf4125a6a5 Only load precompiled shaders if their sanitize_mul setting matches 2020-01-15 21:10:37 -07:00
James Rowe 6945b6539f Address review and update zstd 2020-01-15 19:58:34 -07:00
James Rowe 936094dd27 Log the number of entries in each cache 2020-01-15 19:58:34 -07:00
James Rowe 45bc5b465e Add a error log for unsupported configurations for disk cache 2020-01-15 19:58:34 -07:00
James Rowe 2d86bc6db5 Rename InvalidateTransferable to InvalidateAll to match what it does 2020-01-15 19:58:34 -07:00
James Rowe 7092ba8480 Only add shaders to precompiled cache if they are new 2020-01-15 19:58:34 -07:00
James Rowe 061a33477f Properly bind the shader sampler and uniform bindings 2020-01-15 19:58:34 -07:00
James Rowe a20c81d593 Change VFS vector to regular vector 2020-01-15 19:58:34 -07:00
James Rowe 6f2756089d citra-sdl: Add Load Disk Resources 2020-01-15 19:58:34 -07:00
James Rowe d418f0438d citra-qt: Load Disk Resources 2020-01-15 19:58:34 -07:00
James Rowe d03d201482 Add GetRenderer to core 2020-01-15 19:58:34 -07:00
James Rowe be52d3a7d0 Add missing changes from yuzu file_util 2020-01-15 19:58:34 -07:00
James Rowe 4e9ec4efd0 Add shader disk caching 2020-01-15 19:58:33 -07:00
James Rowe ce3f8bf94e Add frontend settings 2020-01-15 19:58:33 -07:00
James Rowe b5b6ce5fdc Add shader cache version generation 2020-01-15 19:58:33 -07:00
James Rowe b5bc05738c Add settings for disk shader cache 2020-01-15 19:58:33 -07:00
James Rowe 8f67d6a444 Add ZSTD compression for precompiled cache 2020-01-15 19:58:33 -07:00
James RoweandGitHub cd86c9b043 Merge pull request #5036 from leoetlino/bps
file_sys: Add support for BPS patching
2020-01-15 12:04:54 -07:00
James RoweandGitHub 45bff6ab58 Merge pull request #5033 from BreadFish64/fix_game_list
qt: do not use an invalid update smdh
2020-01-15 11:51:35 -07:00
James RoweandGitHub 3412b999ab Merge pull request #5056 from jroweboy/master
Attempt to fix macOS build
2020-01-15 11:28:42 -07:00
James RoweandGitHub f70262a7e0 Attempt to fix macOS build 2020-01-15 10:19:40 -07:00
James RoweandGitHub 01686f78fe Merge pull request #5037 from leoetlino/thin-archives
CMake: Create thin archives on Linux
2020-01-01 14:29:43 -05:00
James RoweandGitHub 9d1909d4af Merge pull request #5039 from BreadFish64/better_path_trimming
common/logging: don't use regex for path trimming
2020-01-01 14:25:44 -05:00
James RoweandGitHub 020cd56ad8 Merge pull request #5030 from jroweboy/reorder-queue-acquire
Remove wait for free buffer
2019-12-18 16:07:52 -07:00
James RoweandGitHub dd258acfaf Merge pull request #5027 from jroweboy/ffmpeg-fix
Reenable AAC FFMPEG decoding
2019-12-17 08:49:35 -07:00
James RoweandGitHub f9421eedcc Merge pull request #5028 from jroweboy/missing-vsync-telemetry
Add missing vsync telemetry field
2019-12-17 08:49:08 -07:00
James RoweandTobias 1d14b98f81 Remove accidentally pushed debugging logs (#5029) 2019-12-17 11:13:47 +01:00
James Rowe f369196c9f Remove wait for free buffer
Previously we would first attempt to use any buffer that was free,
meaning whichever buffer has already been displayed. This has poor
interactions when the operating system throttles the update rate of the
window, so if there isn't any free buffers available, just reuse the
oldest frame instead.
2019-12-16 20:02:01 -07:00
James Rowe b559d1a495 Add missing vsync telemetry field
Was removed as part of #4940 but readded again.
2019-12-16 19:30:28 -07:00
James Rowe e53a2ac411 Reenable AAC FFMPEG decoding
Simple cut/paste issue where initialized is only set to true when the
emulation attempts to init the Binary Pipe, but we used it to test if
the FFMPEG decoder was valid and disabled it if it wasn't. Just return
the value of have_ffmpeg_dl instead so when dynamic loading is added
it'll still work.
2019-12-16 19:23:43 -07:00
James RoweandGitHub 439d550850 Merge pull request #4940 from jroweboy/presentation-thread
Split Presentation thread from Render thread
2019-12-15 20:25:34 -07:00
James Rowe 408e225048 Destroy GLWindow on exit to prevent issues closing the app while in fullscreen 2019-12-15 16:20:59 -07:00
James Rowe 36c5058d66 Reintroduce a vsync option for people with really bad drivers 2019-12-15 15:42:05 -07:00
James Rowe 87facaa2e2 Prevent out of memory errors when the game passes in an improper length value
HACK

In Luigi's Mansion Dark Moon in HLE audio, the game mysteriously passes
in an extremely large value for length, which without any checks, causes
HLE audio to allocate an extremely large buffer.

This value seemingly is caused by some other HLE audio feature is missing,
and Luigi's Mansion subtracts two values to get a length, without
checking for overflow first. This appears to be caused by an incorrect
HLE audio emulation, as its fixed entirely by only changing to LLE. As
such, further investigation is required, but in the meantime, completely
eating up our users RAM is unacceptable.
2019-12-14 18:18:59 -07:00
James RoweandGitHub ddb7ead3e4 Merge pull request #5020 from jroweboy/dynamic-mf
Runtime Load MediaFoundation dlls on Windows
2019-12-14 10:13:54 -07:00
James RoweandGitHub 8b1738aeac Merge pull request #5023 from jroweboy/fix-register-length
Use the correct register length for index_array
2019-12-13 20:31:08 -07:00
James Rowe 30dfe1fcb8 Use the correct register length for index_array
The index_array can't possible be 31 bits long as that would index
out of bounds memory. According to 3dbrew, this should be 28
2019-12-13 18:08:07 -07:00
James Rowe 337ac73915 Improve aac decoder selection 2019-12-08 16:18:39 -07:00
James Rowe b395efe804 Dynamically load Media Foundation 2019-12-08 13:54:27 -07:00
James Rowe 65613cce81 Add microprofile scopes for presentation 2019-12-02 18:59:12 -07:00
James Rowe 9ae3eb4a30 Remove high dpi scaling flag as it needs more work first 2019-12-02 18:34:11 -07:00
James RoweandGitHub 866df2644b Merge pull request #4982 from vvanelslande/mic-device
service/mic: actually use the specified device
2019-11-28 21:23:36 -07:00
James Rowe de17fe31fb clang-format 2019-11-28 20:47:33 -07:00
James Rowe ea40eb0994 Use the proper parent window
Fixes an issue where the touch point is incorrect in OpenGLWindow when the render
target is initialized for the first time with single window mode disabled.
2019-11-28 20:35:50 -07:00
James Rowe 123c0212ef Fix window resizing bug 2019-11-28 11:20:42 -07:00
James RoweandGitHub ab2b82174c Merge pull request #5013 from jroweboy/ninjamac
Remove fat binary mac build because travis times out
2019-11-28 10:58:28 -07:00
James Rowe 782eae7f65 Fix drag and drop 2019-11-28 10:56:58 -07:00
James Rowe 767b49c552 testing ninja on macos travis 2019-11-27 17:18:47 -07:00
James RoweandGitHub 15ed600c91 Merge pull request #4956 from vitor-k/game-sorting
Fixes to game list sorting
2019-11-20 09:48:08 -07:00
James RoweandGitHub e6c7f84dc6 Merge pull request #4964 from citra-emu/wwylele-patch-1
unfold UNREACHABLE implementation for dumb compilers
2019-11-20 09:43:48 -07:00
James RoweandGitHub 0acacc4e1a Merge pull request #5002 from vvanelslande/username-fix
Fix moderation by room host in dedicated rooms
2019-11-19 23:51:21 -07:00
James Rowe 86f203e6e8 Add missing key events and also try to glFinish after swapping 2019-11-09 13:12:30 -07:00
James Rowe 68052de8a0 Workaround Qt bug that causes events to forward to the parent incorrectly 2019-11-09 13:12:30 -07:00
James Rowe 586b8e8b46 Change from QOpenGLWidget to QWindow
While QOpenGLWidget sounds like a good idea, it has issues which are
harder to debug due to how Qt manages the context behind the scenes. We
could probably work around any of these issues over time, but its
probably easier to do it ourselves with a QWindow directly.

Plus using QWindow + createWindowContainer is the easiest to use
configuration for Qt + Vulkan so this is probably much better in the
long run.
2019-11-09 13:12:30 -07:00
James Rowe 66f5278f52 Delete core_context before shutting down SDL 2019-11-09 13:12:30 -07:00
James Rowe 29c12058c7 Add minimum window size back to citra-qt 2019-11-09 13:12:29 -07:00
James Rowe 26d828fb4c Prevent softlock on shutdown and various cleanup 2019-11-09 13:12:29 -07:00
James Rowe 9c32c0b98b Change from render to texture to render to renderbuffer 2019-11-09 13:12:29 -07:00
James Rowe 52d7676831 recreate mailbox to use a queue instead 2019-11-09 13:12:29 -07:00
James Rowe ac90cd0378 Change Present to finish only after swap 2019-11-09 13:12:29 -07:00
James Rowe 6fff8e3921 Remove screen change detection since it breaks make changing screen. (Still need to test windows) 2019-11-09 13:12:29 -07:00
James Rowe 5d97e44279 Fix macOS pixel ratio detection 2019-11-09 13:12:29 -07:00
James Rowe 045eec282a rename GGLContext to just GLContext 2019-11-09 13:12:29 -07:00
James Rowe db94c017bf Change to a constructor that exists in qt 5.9 2019-11-09 13:12:29 -07:00
James Rowe 3b14bb44b9 QOffscreensurface 2019-11-09 13:12:29 -07:00
James Rowe 8d17aa40fd Remove vsync setting 2019-11-09 13:12:26 -07:00
James Rowe fcbe5e1acd Add a separate thread for rendering and add texture mailbox and shared context to SDL 2019-11-09 13:10:18 -07:00
James Rowe 91255b8802 Change Qt to use QOpenGLWidget and support shared context and texture mailbox 2019-11-09 13:10:18 -07:00
James Rowe 27d0fc64d0 Add texture mailbox support to opengl renderer. 2019-11-09 13:10:17 -07:00
James Rowe c2e7903825 Split graphics out of EmuWindow in preparation of shared contexts 2019-11-09 13:10:17 -07:00
James Rowe db7a627a2e Add scope acquire context to simplify MakeCurrent and DoneCurrent calls 2019-11-09 13:10:17 -07:00