Morph and GitHub
3ba95402fd
Merge pull request #10146 from liamwhite/catch3
...
catch2: update to 3.3.1
2023-05-03 10:53:12 -04:00
Morph and GitHub
8dd3baa562
Merge pull request #10144 from liamwhite/dont-turbo
...
vulkan: disable turbo when debugging tool is attached
2023-05-03 10:53:03 -04:00
Morph and GitHub
daf7936095
Merge pull request #10143 from liamwhite/fruit-company-moment
...
video_core: fix build on Apple Clang
2023-05-03 10:52:56 -04:00
Morph and GitHub
627022bef9
Merge pull request #10124 from liamwhite/pebkac
...
settings: rename extended memory layout to unsafe, move from general to system
2023-05-03 10:52:45 -04:00
Morph and GitHub
47938541c2
Merge pull request #10084 from FernandoS27/yuzu-goes-broom-broom
...
Y.F.C Buffer Cache Revamp
2023-05-01 11:08:02 -04:00
Morph
cb092af3f0
vk_pipeline_cache: Skip compute pipelines on Intel proprietary drivers
...
Intel's SPIR-V shader compiler is broken. For now, skip compiling any compute pipelines until they fix this issue.
This is not a perfect workaround, as there are a small subset of non-compute pipelines that still cause it to crash, but this should cover the majority of crashes.
It is unfortunate that even with a test case reported 6 months ago the issue has not been fixed in favor of fixing "the most popular games and apps".
Intel, you can do better than this.
2023-04-28 17:59:36 -04:00
Morph
cdc846677c
telemetry: Add waitpkg instruction
2023-03-27 17:45:22 -04:00
Morph and liamwhite
981bc8aa1c
x64: Simplify RDTSC on non-MSVC compilers
...
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com >
2023-03-27 17:45:22 -04:00
Morph
e1bce50d8b
core_timing: Make use of MicroSleep for x64 CPUs
...
For CPUs that support tpause, this should result in significant CPU power savings over thread yield in this spin wait.
2023-03-27 17:45:22 -04:00
Morph and liamwhite
27c33ab73f
x64: Add MicroSleep
...
MicroSleep allows the processor to pause for a "short" amount of time (in the microsecond range). This is useful for spin-waiting that does not require nanosecond precision.
This uses the new TPAUSE instruction introduced on Intel's newest processors as part of the waitpkg instructions. For CPUs that do not support waitpkg instructions, this is equivalent to yield().
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com >
2023-03-27 17:45:22 -04:00
Morph
d2cfe25b07
x64: cpu_detect: Add detection of waitpkg instructions
...
waitpkg introduces 3 instructions, UMONITOR, UMWAIT and TPAUSE.
2023-03-27 17:45:22 -04:00
Morph and GitHub
568d523746
Merge pull request #9992 from liamwhite/climits
...
container_hash: use climits
2023-03-26 14:46:21 -04:00
Morph and GitHub
4b508655a4
Merge pull request #9989 from Morph1984/boost-1.79-exact
...
CMakeLists: Use boost 1.79.0 instead
2023-03-26 03:46:43 -04:00
Morph
49f6deecb8
video_core/macro: Make use of Common::HashValue
2023-03-25 23:52:26 -04:00
Morph
f09d192aac
tests: Implement tests for verifying HashValue
...
Values were randomly generated and the verification was done against boost 1.79.
2023-03-25 23:52:26 -04:00
Morph
9971cd1d55
common: Port boost's hash_value implementation
...
Ports a small subset of boost's hash_value implementation (<= 1.80.0).
2023-03-25 23:52:25 -04:00
Morph
c4f5615c6b
CMakeLists: Require a minimum of boost 1.79.0
2023-03-25 23:03:28 -04:00
Morph and GitHub
6892a0942f
Merge pull request #9988 from rschlaikjer/rs-gpu-page-table-copy-elision
...
Pass GPU page table by reference inside TextureCache::ForEachImageInRegionGPU
2023-03-25 01:59:08 -04:00
Morph and GitHub
7a8a7545f2
Merge pull request #9975 from liamwhite/more-waiting
...
vulkan: fix more excessive waiting in scheduler
2023-03-24 00:19:43 -04:00
Morph
abe2ad7aac
zstd: Use ZSTD_getFrameContentSize instead of ZSTD_getDecompressedSize
2023-03-23 22:16:20 -04:00
Morph
877e8991c7
CMakeLists: Update boost to 1.81.0
2023-03-23 20:53:39 -04:00
Morph
032e5b983c
vcpkg: Update vcpkg to 2023.02.24
2023-03-23 20:53:39 -04:00
Morph and GitHub
6adaa0d5e2
Merge pull request #9962 from Kelebek1/disable_srgb
...
[video_core] Disable SRGB border color conversion in samplers
2023-03-23 03:07:00 -04:00
Morph
197d756560
bounded_threadsafe_queue: Refactor Pop
...
Introduces PopModes to bring waiting logic into Pop, similar to Push.
2023-03-21 22:33:58 -04:00
Morph
8c56481249
bounded_threadsafe_queue: Add producer cv to avoid busy waiting
2023-03-21 22:33:57 -04:00
Morph
407dc917f1
bounded_threadsafe_queue: Deduplicate and add PushModes
...
Adds the PushModes Try and Wait to allow producers to specify how they want to push their data to the queue if the queue is full.
If the queue is full:
- Try will fail to push to the queue, returning false. Try only returns true if it successfully pushes to the queue. This may result in items not being pushed into the queue.
- Wait will wait until a slot is available to push to the queue, resulting in potential for deadlock if a consumer is not running.
2023-03-21 19:20:21 -04:00
Morph
15d573194c
bounded_threadsafe_queue: Add TryPush
2023-03-21 19:17:38 -04:00
Morph
f28ca5361f
logging: Make use of bounded queue
2023-03-21 19:17:38 -04:00
Morph
306840a580
bounded_threadsafe_queue: Use simplified impl of bounded queue
...
Provides a simplified SPSC, MPSC, and MPMC bounded queue implementation using mutexes.
2023-03-21 19:17:32 -04:00
Morph
4c678cfbc8
configure_audio: Fix output mode setting not saving
2023-03-13 17:41:30 -04:00
Morph
67560296c6
perf_stats: Check multicore first
...
SpeedLimiting is SC only. Since MC is performance oriented we should check for it first to skip checking use_speed_limit.
2023-03-07 23:11:01 -05:00
Morph and GitHub
d72d753b1a
Merge pull request #9921 from liamwhite/override
...
general: fix type inconsistencies
2023-03-07 22:42:40 -05:00
Morph and GitHub
a3ffea6a64
Merge pull request #9918 from liamwhite/fwrapv
...
kernel: avoid signed overflow UB on MSVC
2023-03-07 22:42:32 -05:00
Morph and GitHub
b014fdacdb
Merge pull request #9920 from liamwhite/constexpr-bit-cast
...
common: make BitCast constexpr
2023-03-07 22:42:19 -05:00
Morph
1073346c7f
hid: Use nanosecond timestamps instead of ticks
2023-03-07 21:17:47 -05:00
Morph
3053a62375
core: Promote CPU/GPU threads to time critical
...
And also demote Audren and CoreTiming to High thread priority.
2023-03-07 21:17:46 -05:00
Morph
d718eab351
native_clock: Wait for 10 seconds instead of 30
...
It was experimentally determined to be sufficient.
2023-03-07 21:17:46 -05:00
Morph
c27a626b5b
native_clock: Use RealTimeClock instead of SteadyClock
...
We want to synchronize RDTSC to real time.
2023-03-07 21:17:46 -05:00
Morph
6f9918552c
steady_clock: Introduce a real time clock
2023-03-07 21:17:46 -05:00
Morph
dcd13a7566
native_clock: Re-adjust the RDTSC frequency
...
The RDTSC frequency reported by CPUID is not accurate to its true frequency.
We will spawn a separate thread to calculate the true RDTSC frequency after a measurement period of 30 seconds has elapsed.
2023-03-07 21:17:46 -05:00
Morph
376a414f5b
native_clock: Round RDTSC frequency to the nearest 1000
2023-03-05 02:36:31 -05:00
Morph
026eaddbee
timer_resolution: Set current process to High QoS
...
Ensures that this process is treated as a high performance process by the Windows scheduler.
2023-03-05 02:36:31 -05:00
Morph
3453beb1e0
general: Target Windows 10 SDK
...
We no longer support operating systems below Windows 10.
2023-03-05 02:36:31 -05:00
Morph
194cf0b497
hardware_properties: Update BASE_CLOCK_RATE to exactly 1020 MHz
2023-03-05 02:36:31 -05:00
Morph
bff1453282
core_timing: Use higher precision sleeps on Windows
...
The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows.
Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution.
This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop.
2023-03-05 02:36:31 -05:00
Morph
7e353082ac
main: (Windows) Set the current timer resolution to the maximum
...
Increases the precision of thread sleeps on Windows.
2023-03-05 02:36:31 -05:00
Morph
7fffdf83b7
wall_clock: Make use of SteadyClock
2023-03-05 02:36:31 -05:00
Morph
1ed49f92dd
common: Implement a method to change the Windows timer resolution
...
This utilizes undocumented NtDll functions to change the current timer resolution from the default of 1ms.
2023-03-05 01:41:28 -05:00
Morph
bd09c82521
common: Implement a high resolution steady clock
...
This implementation provides a consistent, high performance, and high resolution clock where/when std::chrono::steady_clock does not provide sufficient precision.
2023-03-05 01:41:19 -05:00
Morph and GitHub
ce8f4da638
Merge pull request #9884 from liamwhite/service-cleanup
...
service: miscellaneous cleanups
2023-03-03 22:51:17 -05:00
Morph and GitHub
b4b3454d9b
ci: Actually enable LTO on MSVC ( #9887 )
2023-03-02 14:47:20 +01:00
Morph and GitHub
41183b622f
Merge pull request #9825 from liamwhite/object-name
...
kernel: add KObjectName
2023-02-18 16:22:50 -05:00
Morph
d6677b50f6
main: Fix borderless fullscreen for high dpi scaled displays
...
On Windows, a borderless window will be treated the same as exclusive fullscreen
when the window geometry matches the physical dimensions of the screen.
However, with High DPI scaling, when the devicePixelRatioF() is > 1, the borderless
window apparently is not treated as exclusive fullscreen and functions correctly.
One can verify and replicate this behavior by using a high resolution (4K) display,
and switching between 100% and 200% scaling in Windows' display settings.
At 100%, without the addition of 1, it is treated as exclusive fullscreen.
At 200%, with or without the addition of 1, it is treated as borderless windowed.
Therefore, we can use (read: abuse) this difference in behavior to fix this issue for
those with higher resolution displays when the Qt scaling ratio is > 1.
Should this behavior be changed in the future, please revisit this workaround.
2023-02-12 21:58:49 -05:00
Morph
3fbb93e5c9
main: Re-add QtWebEngine zoom factor
...
For some reason, I had removed this in https://github.com/yuzu-emu/yuzu/pull/4949/commits/ad6cec71ecd61aa2533d9efa89b68837516f8464
This should fix any improperly scaled web applets.
2023-02-09 22:57:37 -05:00
Morph and GitHub
4069c3ac8b
Merge pull request #9707 from german77/clang15
...
cmake: Download clang format 15
2023-01-29 21:00:55 -05:00
Morph and GitHub
07cefe9062
Merge pull request #9706 from Morph1984/github-tagged-merge
...
ci: Abort on failure to query Github's API
2023-01-29 20:09:29 -05:00
Morph
e711188be7
apply-patches-by-label: Remove unused variables and imports
2023-01-29 19:53:14 -05:00
Morph
0f04cabf84
apply-patches-by-label: Use python f-strings
2023-01-29 19:53:14 -05:00
Morph
8532e17243
ci: Abort on failure to query Github's API
...
This raises an exception if the GET request to Github's API returns anything other than 200 OK, ensuring we always have successful merges of tagged PRs.
Also, reduces the number of queried pages from 29 to 9 to reduce the number of requests.
2023-01-29 19:53:14 -05:00
Morph and GitHub
5f4647df7d
Merge pull request #9705 from behunin/patch-1
...
Move to Clang Format 15
2023-01-29 19:52:38 -05:00
Morph
ad6cec71ec
main: Convert to device independent coordinates for scaling
...
devicePixelRatioF() returns the scaling ratio when high dpi scaling is enabled.
When high dpi scaling is enabled, the raw screen coordinate system is scaled to device independent coordinates.
2023-01-25 21:16:05 -05:00
Morph
5be85c556e
main: Use passthrough scaling for non-windows OSes
...
They should be better than windows when handling fractional scaling ratios.
2023-01-25 21:16:04 -05:00
Morph
6a1b089a50
main: Enable High DPI fixes for Qt >= 5.14
...
This uses Qt's new high DPI application attributes for scaling the current window.
However, these aren't perfect as scaling with non integer scales will cause artifacts in UI, icons and other elements.
Therefore, we use a heuristic to select an appropriate integer scale value depending on the current screen resolution and applies this to the application.
2023-01-25 21:16:04 -05:00
Morph and GitHub
0a7cdc1981
Merge pull request #9681 from Morph1984/nice-one-qt6
...
main: Only set AA_DisableWindowContextHelpButton below Qt6
2023-01-25 20:46:51 -05:00
Morph
b6e5a6bda8
main: Only set AA_DisableWindowContextHelpButton below Qt6
...
This is fortunately disabled by default on Qt6, so we just have to check whether we are compiling with Qt6 or not.
2023-01-25 18:45:22 -05:00
Morph
c55147b24a
input_common: Make use of StoppableTimedWait
2023-01-25 16:43:04 -05:00
Morph and liamwhite
9b0563fa87
polyfill_thread: Implement StoppableTimedWait
...
StoppableTimedWait allows for a timed wait to be stopped immediately after a stop is requested.
This is useful in cases where long duration thread sleeps are needed and allows for immediate joining of waiting threads after a stop is requested.
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com >
2023-01-25 16:43:04 -05:00
Morph
4cdf69c378
default_ini: Split and concatenate the config string literal
...
We are dangerously close to MSVC's 16384 character limit for string literals. Breaking this string up and concatenating will allow for more settings to be added in the future.
2023-01-25 14:06:06 -05:00
Morph
cdfb3795af
main: Globally disable the "?" button on dialogs
...
Sets the AA_DisableWindowContextHelpButton attribute to disable this useless button globally.
2023-01-25 01:12:50 -05:00
Morph and GitHub
c277dad25f
Merge pull request #9596 from liamwhite/mvk
...
MoltenVK: restrict number of vertex attributes/bindings to 16
2023-01-10 18:11:44 -05:00
Morph and GitHub
6bf1436f5c
Merge pull request #9589 from liamwhite/default
...
renderer_vulkan: disable turbo by default
2023-01-09 16:23:24 -05:00
Morph and GitHub
ffb12f4f9f
Merge pull request #9581 from liamwhite/turbo2
...
renderer_vulkan: pause turbo submissions on inactive queue
2023-01-09 16:23:16 -05:00
Morph and GitHub
a4cd747122
Merge pull request #9530 from liamwhite/vk-feature-init
...
vulkan_device: refactor feature testing
2023-01-09 16:23:04 -05:00
Morph and GitHub
3be8312120
Merge pull request #9569 from liamwhite/shutdown-wars
...
qt: additional fixes for reentrant shutdown
2023-01-09 16:21:27 -05:00
Morph and GitHub
fa231645f2
Merge pull request #9486 from liamwhite/shutdown-hell
...
qt: exit properly on guest-initiated close
2022-12-23 21:03:58 -05:00
Morph
690a4c9438
overlay_dialog: Avoid starting the input thread if non-interactive
2022-12-19 00:00:03 -05:00
Morph
190ded7f48
overlay_dialog: Hide button dialog box when both buttons are hidden
...
This allows for the creation of a non-interactive dialog overlay to display system messages.
2022-12-18 23:54:56 -05:00
Morph and GitHub
bfdd512787
Merge pull request #9365 from liamwhite/val
...
vulkan_common: quiet some validation errors
2022-12-06 21:08:14 -05:00
Morph and GitHub
bcf59ff3a7
Merge pull request #9388 from lioncash/fix-msvc
...
CMakeLists: Remove version specifier for lz4
2022-12-05 18:29:47 -05:00
Morph
7381f873e9
externals: Bump dynarmic to 6.4.0
...
Uses the tagged, versioned release instead.
2022-12-05 13:08:00 -05:00
Morph and GitHub
49219b8a86
Merge pull request #9349 from lat9nq/cmake-322
...
CMakeLists: Bump minimum required CMake version to 3.22
2022-11-29 19:41:47 -05:00
Morph
00fdffec58
service: nifm: Update stubs for Submit/GetRequestState/GetResult
2022-11-28 22:58:10 -05:00
Morph and GitHub
bbb963a31a
Merge pull request #9339 from lioncash/cacheheader
...
common/cache_management: Amend header includes
2022-11-28 13:12:20 -05:00
Morph and GitHub
51abe35e05
Merge pull request #9338 from lioncash/properties
...
input_common/helpers: Mark analog property structs members as static constexpr
2022-11-28 13:12:14 -05:00
Morph and GitHub
64ff79f919
Merge pull request #9337 from lioncash/pbr
...
common/input: Add helper functions for constructing input and output devices
2022-11-28 13:12:08 -05:00
Morph and GitHub
e507c01a22
Merge pull request #9336 from lioncash/themepath
...
yuzu/main: Merge variable declaration into ifdef
2022-11-28 13:11:17 -05:00
Morph and GitHub
ef6144bf48
Merge pull request #9324 from v1993/master
...
crypto: use user-provided keys whenever possible
2022-11-26 21:20:05 -05:00
Morph and GitHub
9d081a8729
Merge pull request #9312 from FernandoS27/pokemomma
...
GPU: Fix buffer cache issue, engine upload not inlining memory in multiple lines, etc
2022-11-24 18:24:07 -05:00
Morph
852de7a771
maxwell_to_vk: Add R16_SINT
...
This was somehow missed when the format was added to GL
2022-11-23 21:30:58 -05:00
Morph
ca154d466a
maxwell_to_vk: Fix format usage bits
...
- VK_FORMAT_B8G8R8A8_UNORM supports the STORAGE_IMAGE_BIT
- VK_FORMAT_R4G4B4A4_UNORM_PACK16 does not support the COLOR_ATTACHMENT_BIT
2022-11-23 21:29:43 -05:00
Morph
7e0f70e5a1
qt_amiibo_settings: Use WebClient only if ENABLE_WEB_SERVICE is enabled
...
Resolves compilation errors when ENABLE_WEB_SERVICE is disabled in CMake configuration
2022-11-21 15:22:17 -05:00
Morph and GitHub
aab68674c0
Merge pull request #9279 from liamwhite/this-would-have-never-happened-in-rust
...
dmnt:cht: fix copy-paste error
2022-11-20 13:30:35 -05:00
Morph and GitHub
69c92b8156
Merge pull request #9249 from goldenx86/available-vram
...
Add available Vulkan VRAM to log files
2022-11-20 00:21:29 -05:00
Morph and GitHub
4acbf3a193
Merge pull request #9274 from Morph1984/issue-forms
...
github: Add new issue form templates
2022-11-20 00:21:24 -05:00
Morph
54d6273975
github: Add blank issue template
...
This is meant to only be used by developers.
2022-11-20 00:18:53 -05:00
Morph
98a6cd02c8
github: Remove old markdown form
...
Replaced by the newer issue forms template
2022-11-19 17:41:26 -05:00
Morph
52acdafa95
github: Add new feature request issue form
2022-11-19 17:41:26 -05:00
Morph
975e17aa13
github: Add new bug report issue form
2022-11-19 17:41:26 -05:00
Morph and GitHub
e5a446a0df
Merge pull request #9229 from Docteh/achy_breaky_heart
...
Add break for default cases
2022-11-17 19:20:18 -05:00
Morph and GitHub
8cc5ad8742
Merge pull request #9235 from goldenx86/ignorearm
...
Ignore ARM for core count
2022-11-12 14:46:17 -05:00