Commit Graph

20338 Commits (b6e5a6bda8a71b4cc53aa0b6d4a45910ac04ac9e)

Author SHA1 Message Date
german77 80bcc18788 service: nifm: Initialize request state
german77 ebd811b535 service: nifm: Match documentation names
Liam f9c6d39a6c vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1
Liam 4814d87385 video_core: fix build
Fernando Sahmkow d09aa0182f MacroHLE: Final cleanup and fixes.
Fernando Sahmkow 581a7d785b Rasterizer: Setup skeleton for Host Conditional rendering
Fernando Sahmkow 3630bfaef3 RasterizerMemory: Add filtering for flushing/invalidation operations.
Fernando Sahmkow 2793304117 Vulkan: Allow stagging buffer deferrals.
Fernando Sahmkow 8d694701bc MacroHLE: Add OpenGL Support
Fernando Sahmkow 4c82e47edd Vulkan: Add other additional pipeline specs
Fernando Sahmkow d33251db93 Vulkan: Implement Dynamic State 3
Fernando Sahmkow f800e485c9 Vulkan Implement Dynamic State 2 LogicOp and PatchVertices
Fernando Sahmkow c897c55e3c Vulkan: Implement Dynamic States 2
Fernando Sahmkow cb1497d0d7 DMAPusher: Improve collection of non executing methods
Fernando Sahmkow ce448ce770 Revert Buffer cache changes and setup additional macros.
Fernando Sahmkow 18637766ef MacroHLE: Reduce massive calculations on sizing estimation.
Fernando Sahmkow aad0cbf024 MacroHLE: Add HLE replacement for base vertex and base instance.
Fernando Sahmkow 93ac5a6a6d MacroHLE: Add Index Buffer size estimation.
Fernando Sahmkow c541559767 MacroHLE: Refactor MacroHLE system.
Fernando Sahmkow 0f89828073 MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.
Fernando Sahmkow a5a94f52ff MacroHLE: Add MultidrawIndirect HLE Macro.
MonsterDruide1 d46c9c4659 TAS: Record sanitized instead of raw stick inputs
Co-Authored-By: Narr the Reg <5944268+german77@users.noreply.github.com>
Merry bee395d2f0 vfs: Replace cstr concat with char concat
Liam aa13ee5c4a vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
liamwhite 92103d4ff3
Merge pull request from merryhime/overcommit
host_memory: mmap changes for virtual_base
liamwhite 0b228fde15
Merge pull request from ColinKinloch/en_gb
settings: warn on invalid regon/language combinations
Merry fd1831b65b host_memory: Use transparent huge pages where available
Merry 4d7be85e73 host_memory: Allocate virtual_base with MAP_NORESERVE
Specify that we do not require swap to be reserved for this address range;
allow overcommitting.
Colin Kinloch 28cfc2146f settings: comment language blocklist columns
bunnei 05c709bebe core: hid: emulated_console: Avoid a crash if frontend does not configure touch_from_button_maps.
bunnei c3af6d8372
Merge pull request from liamwhite/cmake-refactor
CMake: make more features optional
Wollnashorn 1df5d12b19 config: Save multiplayer settings only globally
Saved multiplayer settings like the nickname, remote address, etc. were reset everytime a game was booted up and the game-specific config files were loaded, as these values will never be set.
Colin Kinloch 8594f287b8 settings: added regon/language warning bounds check
gidoly 10eaf31af3
Revert "k_page_group: synchronize"
liamwhite 9fdacb5e3a
Merge pull request from vonchenplus/vulkan_quad_strip
video_core: Implement all vulkan topology
Liam c18cf05a06 cmake: make cubeb and SDL2 optional
bunnei 60419dd35e
Merge pull request from liamwhite/pg2
k_page_group: synchronize
Liam be43b62d79 cmake: make libusb optional
Liam 106cf27135 cmake: make room server optional
Colin Kinloch 2ccf175324 settings: warn on invalid regon/language combinations
bunnei c5de54d509
Merge pull request from ameerj/texture-cache-prealloc
texture_cache: Use pre-allocated heap buffer for texture swizzles
bunnei 343c01b87a
Merge pull request from german77/no_refresh
yuzu: Automatically refresh device list
Alexandre Bouvier dce2649daf
tests: add missing header
<cstring> is needed for std::memcpy
FengChen 6a397bc8ed video_core: Implement other missing vulkan topology
FengChen 86d5b4e556 video_core: Implement vulkan QuadStrip topology
MonsterDruide1 bc4126acd7 TAS: Increase accuracy of Stick inputs
ameerj 7584d36922 texture_cache: Use Common::ScratchBuffer for swizzle buffers
ameerj 1209d428f1 texture_cache: Use pre-allocated buffer for texture downloads
ameerj c448b3af2f texture_cache: Use pre-allocated buffer for texture uploads
Liam 28d9c30861 k_page_table: remove HACK_OpenPages/ClosePages
Liam 3392fdac9b k_page_group: synchronize
liamwhite 9933121256
Merge pull request from liamwhite/reentrant-shutdown
qt: prevent reentrant shutdown
liamwhite c6767704fb
Merge pull request from liamwhite/shm3
kernel: workaround static shared memory initialization
liamwhite ea70d9c79e
Merge pull request from liamwhite/look-at-the-time
time: add LockFreeAtomicType
Fernando S 3e6850f00b
Merge pull request from ameerj/scratch-vector
common: Add ScratchBuffer Class
Liam cb7f0c2ec3 qt: prevent reentrant shutdown
liamwhite c86e21abe4
qt: fix 'Pause' menu item ()
Chris Oboe 201733d1b5
Disable automatically opening the console on windows yuzu-cmd builds ()
* don't automatically open the console on windows build of yuzu-cmd

* fix formatting
liamwhite db15142ac9
Merge pull request from liamwhite/async-shutdown
qt: continue event loop during game close
Liam 646656412f qt: fix uninitialized memory usage
german77 c3a5522830 yuzu: Automatically refresh device list
Liam 99eccf581e kernel: workaround static shared memory initialization
Liam 80670a5b6c time: add LockFreeAtomicType
Liam 60ce34aa80 qt: exit properly on guest-initiated close
Liam ae6015a69b qt: use main window as close overlay parent
Liam 053ad04d3f qt: continue event loop during game close
liamwhite 1b11e0f0d3
Merge pull request from liamwhite/manager-events
EmuThread: refactor
ameerj c6590ad07b scratch_buffer: Explicitly defing resize and resize_destructive functions
resize keeps previous data intact when the buffer grows
resize_destructive destroys the previous data when the buffer grows
liamwhite 6cb6b2da8e
Merge pull request from jbeich/vk-238
externals: update Vulkan-Headers to v1.3.238 to fix -Werror=switch with system package
ameerj 64869807e2 tests: Add ScratchBuffer tests
ameerj 61e4f2d931 dma_pusher: Rework command_headers usage
Uses ScratchBuffer and avoids overwriting the command_headers buffer with the prefetch_command_list
ameerj bdef22ff85 buffer_cache: Use Common::ScratchBuffer for ImmediateBuffer usage
ameerj 4bc2d82130 video_core: Add usages of ScratchBuffer
ameerj cfc34dd41d common: Add ScratchBuffer class
This class creates a default initialized heap allocated buffer for cases where value initializing members during allocation or resize
is redundant.
ameerj 88ba5a7f22 common: add make_unique_for_overwrite
Matías Locatti e44d1fe73c
Merge pull request from liamwhite/timer
kernel: add KHardwareTimer
Jan Beich b60a93a936 externals: update Vulkan-Headers to v1.3.238
liamwhite 42d81aab32
Merge pull request from german77/input
input_common: Cleanup project
Morph 690a4c9438 overlay_dialog: Avoid starting the input thread if non-interactive
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.
Liam c770f25ccb kernel: remove TimeManager
Liam 67c0d714c5 kernel: add KHardwareTimer
german77 cf01a507fb input_common: Cleanup project
liamwhite fcc93a445f
Merge pull request from german77/silenceIkillYou
service: nfc: Silence ListDevices
german77 79f1f326c7 service: nfc: Silence ListDevices
liamwhite 2724ffd6e3
Merge pull request from Rubo3/patch-1
Use execlp instead of execl to avoid failure
liamwhite ee71404d71
Merge pull request from german77/folder
yuzu: Remember last selected directory
Marco Rubin 56b0f979eb
Use execlp instead of execl to avoid failure
german77 c218c7d4da yuzu: Remember last selected directory
german77 f999d268f9 bootmanager: Use proper camera size
german77 c489cbee29 bootmanager: Encapsulate all QCamera code
german77 dffeca66fa yuzu: fix device name setting
Matías Locatti fd1ea0fd84
Enable compiler optimizations and enforce x86-64-v2 on GCC/Clang ()
* Testing LTO ()

* Testing LTO

* clang

* linux

* Added the rest of Blinkhawk's optimizations

* Unlikely asserts

* Removing LTO from Linux builds - GCC

* Removing LTO from Linux builds - Clang
bunnei 48108a8c9b
Merge pull request from german77/virtual_gamepad
input_common: Add virtual gamepad
Liam 92ce241d4d qt: use _exit instead of exit on SIGINT
Liam d3123079e8 EmuThread: refactor
liamwhite 5da72a891f
Merge pull request from FernandoS27/ndc-vulkan
Vulkan: Add support for VK_EXT_depth_clip_control.
Mai f8a7d6a0ae
Merge pull request from liamwhite/wanative
qt: avoid setting WA_DontCreateNativeAncestors on all platforms
Mai da31326c17
Merge pull request from liamwhite/wayland-egl
qt: handle wayland-egl platform name
Liam 45672d43e3 qt: avoid setting WA_DontCreateNativeAncestors on all platforms
liamwhite a3bac5550d
Merge pull request from ameerj/camera-data-array
camera: Use pre-allocated vector for camera data
liamwhite 4faea2bbf4
Merge pull request from ameerj/hle-read-buffer-resreve
hle_ipc: Refactor ReadBuffer to set buffer size upon initialization
liamwhite fa10374d39
Merge pull request from Kelebek1/audio_signal
[audio_core] Signal buffer event on audio in/out system stop
liamwhite 98135dee16
Merge pull request from Kelebek1/silence_tfb
Remove unimplemented geometry transform feedback log spam
german77 243404bf34 input_common: Add virtual gamepad
ameerj 7bf4bec257 camera: Use pre-allocated vector for camera data
And avoid an unnecessary copy
Kelebek1 f7d95d0a3a Remove unimplemented transform feedback geometry spam, it should be implemented
liamwhite bbb202ceed
Merge pull request from ogniK5377/device-name
Set: Allow setting device nickname
liamwhite 789da737af
Merge pull request from ameerj/hle-ipc-vector-reserve
hle_ipc: Reserve vectors before populating
liamwhite b541a35e27
Merge pull request from german77/free_threads
kernel: process: Implement GetFreeThreadCount
liamwhite 6bc1a477bf
Merge pull request from devsnek/graceful-shutdown
let games gracefully exit
liamwhite 9bfd4d880e
Merge pull request from lat9nq/create-shortcut-2
yuzu qt, common: Add option to create game shortcuts on Linux
Kelebek1 6a56f42f5d Signal buffer event on audio in/out system stop, and force remove all registered audio buffers
Liam b81caf1879 qt: handle wayland-egl platform name
ameerj b1d633532f hle_ipc: Refactor ReadBuffer to set buffer size upon initialization
Initializing the vector size during initialization is more efficient than a later call to resize()
ameerj 12c0f682e6 hle_ipc: Reserve vectors before populating
Narr the Reg 9ff891ce71
Merge pull request from liamwhite/sixty-five-oh-two
vulkan_common: declare storageBuffer8BitAccess
Matías Locatti 82d80869fc
Merge pull request from liamwhite/capable
spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
Narr the Reg 20cbf6f3db kernel: svc: Fix duplicated InfoType enum
Narr the Reg dca4f0687a kernel: process: Implement GetFreeThreadCount
Used by Just Dance® 2023 Edition
liamwhite 3ff7a5de1a
Merge pull request from Nefsen402/wayland-fixes
Wayland fixes
bunnei beba9c9b61
Revert "hle: service: audio: Use default service thread."
liamwhite a222f02c7a
Merge pull request from yzct12345/valid-intel-max
render_vulkan: Fix validation errors on less compatible Intel GPUs
FernandoS27 0104e28fe4 Vulkan: Add support for VK_EXT_depth_clip_control.
Chloe Marcec c5f519e1e4 Set: Allow setting device nickname
lat9nq 5a5bb91f40 main: Address review feedback
Moves icon path to ~/.local/share/icons, though I'm opting to avoid
using the game title for the icon and desktop entry name as that would
cause filenames such as
"yuzu-cadence-of-hyrule-crypt-of-the-necrodancer-featuring-the-legend-of-zelda-demo.desktop".
Liam 4fce72c902 vulkan_common: declare storageBuffer8BitAccess
Liam 77b0d01639 spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId
lat9nq 18bdf45868 yuzu qt: Create shortcuts on Linux
This creates a Desktop Entry file and a PNG icon for the entry when the
user right-clicks a game and selects "Create Shortcut -> Create
{Application,Desktop} Shortcut". This uses the current executable's path
to create the shortcut.

yuzu qt: Add more error checking and OS gating for shortcuts

main: Remove FreeBSD gating for shortcuts

I'm not going to test FreeBSD, so I don't know if they follow
Freedesktop.org or not. I just have to let someone else verify that it
works there and let them enable it.

main: Move shortcut function to its own function

This function should really be in a common library, at least among
frontends.

main: Remove image manip references

main: Fix difference in MinGW and native GCC versions

main: Fix negation in creat shortcut

Addresses review comment

Co-authored-by: Jan Beich <jbeich@FreeBSD.org>

main: Re-enable freedesktop shorcuts for FreeBSD
Alexander Orzechowski 09e3029c11 gl_device: Use a more robust way to use strict context mode
Instead of checking a environment variable which may not actually
exist or is just wrong, ask QT if it's running on the wayland
platform.
Alexander Orzechowski 2221afaf26 OpenGL: Check for threading support
We need this.
Alexander Orzechowski 45fcde817e wayland: Always use exclusive fullscreen
Wayland does not allow clients to choose their own size and position
on the screen. The concept of fullscreening an application by sizing
it to the screen and removing decorations does not exist. Use
exclusive fullscreen instead.
Alexander Orzechowski 29fbce9fe6 RenderWidget: Set WA_DontCreateNativeAncestors
Some windowing systems like wayland are designed to show hardware accellerated
surfaces as subsurfaces and not native windows.
Alexander Orzechowski 5754456292 emu_window_sdl2: Respect hidpi
Use SDL_GL_GetDrawableSize instead of SDL_GetWindowSize which
will return the true size our swapchain needs to be in even
for hidpi displays.
Alexander Orzechowski 3cc3176ad6 video_core/vulkan: Explicity check swapchain size when deciding to recreate
Vulkan for whatever reason does not return VK_ERROR_OUT_OF_DATE_KHR when
the swapchain is the wrong size. Explicity make sure the size is indeed
up to date to workaround this.
Liam d5f53da79d renderer_opengl: refactor context acquire
Liam 179adee396 emu_thread: properly force shutdown for unresponsive guest programs
Gus Caplan f44c60321e let games gracefully exit
yzct12345 f6868ae4dd Fix validation errors on less compatible Intel GPU
Narr the Reg 0ed80c9818 yuzu: Make unlimited frame rate non persistent between game boots
bunnei 339a37f8cb
Merge pull request from liamwhite/fail
general: improve handling of system startup failure
bunnei da58eb6208
Merge pull request from vonchenplus/topology
video_core: Adjust topology update logic and Adjust Clear Manage
Narr the Reg 3e1e6c66c0 input_common: Filter SDL GUID
Mai 8ef9075b1b
Merge pull request from liamwhite/aniso
video_core: fix off by one in anisotropic filtering amount
Mai 0c531ff911
Merge pull request from liamwhite/no-gl
cmake: make OpenGL loader optional
Mai d5684dbe7d
Merge pull request from liamwhite/dc
memory: correct semantics of data cache management operations
Liam ed37192441 memory: correct semantics of data cache management operations
Matías Locatti 623429a27e
Merge pull request from liamwhite/smaa2
video_core: Integrate SMAA
Liam 456322dde6 video_core: fix off by one in anisotropic filtering amount
Liam 8d1d6e149f cmake: make OpenGL loader optional
Co-authored-by: liushuyu <liushuyu@users.noreply.github.com>
Mai a5bc86a9ac
Merge pull request from liamwhite/debug-assert
memory: remove DEBUG_ASSERT pointer test
Liam e532b74e11 audio_core: remove explicitly defaulted and implicitly deleted constructors
Liam 985ed1e160 memory: remove DEBUG_ASSERT pointer test
liamwhite f6e705737a
Merge pull request from Saalvage/fix/trace-log-compilation
Fix compilation error
Salvage c586ac9be2
Remove the lock entirely as per PR discussion
Correctly unlock mutex before its destruction

As per https://en.cppreference.com/w/cpp/thread/mutex/~mutex destroying a locked mutex is undefined behavior and MSVC++ decides to throw in this case

Swap out unique for scoped lock and readd comment
Salvage 0e265db873
Fix compilation error
Liam 5b837157bd video_core: Integrate SMAA
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
FengChen 37014e9127 video_core: Add vertex_array_instance_* sbubbed called warning
FengChen 1e64b5e2ec video_core: The draw manager manages whether Clear is required.
FengChen 15d63c3d3d video_core: Adjust topology update logic
Fernando S 41461514d6
Merge pull request from vonchenplus/draw_manager
video_core: Implement maxwell3d draw manager and split draw logic
Feng Chen bf0b957c05 video_core: Implement maxwell3d draw manager and split draw logic
Morph bfdd512787
Merge pull request from liamwhite/val
vulkan_common: quiet some validation errors
Liam 9704acb982 general: improve handling of system startup failure
merry e1f5f4bdea
Merge pull request from liamwhite/break-unmapped
core: add option to break on unmapped access
Fernando S 08d4e7c7af
Merge pull request from liamwhite/more-vulkan
vulkan_common: further initialization tweaks
liamwhite 4b7e73e0a6
Merge pull request from lioncash/reporter
reporter: Eliminate undefined behavior in SaveErrorReport
liamwhite d8534ea140
Merge pull request from lioncash/keyboard
applets: Extract callback types into aliases
liamwhite bbdb6d391e
Merge pull request from lioncash/emumove
emulated_console/emulated_controller: std::move ParamPackage instances where applicable
liamwhite a86af1b776
Merge pull request from lioncash/init
kernel: Ensure relevant class members are always initialized on construction
liamwhite a225ba4cda
Merge pull request from abouvier/cmake-sdl
cmake: use sdl2 imported target
liamwhite e86e144a7c
Merge pull request from abouvier/cmake-libusb
cmake: prefer system libusb
Lioncash dba84458be configure_graphics: Make SPIRV backend string translatable
The parenthetical needs to be translatable, like with GLASM
Alexandre Bouvier f385175aa2 cmake: prefer system libusb
liamwhite 04779b3d2a
Merge pull request from german77/mifare
service: nfc: Implement mifare service
liamwhite 90145c424d
Merge pull request from Kelebek1/R-E-S-P-E-C-T
Respect render mode override
Liam 7e7a23363a vulkan_common: further initialization tweaks
Lioncash eadc1ae1e7 reporter: Pass by const reference where applicable
Same behavior, but without memory churn.
Lioncash e7f9f58fa4 reporter: Eliminate undefined behavior in SaveErrorReport
The optionals are unconditionally dereferenced when setting the custom
error text, and in a few cases this function is called using the default
value of the optionals.

This means we'd be dereferencing uninitialized storage.

Since they're used unconditionally, we can use value_or to set a default
when storage is uninitialized.
Alexandre Bouvier e6ae720c33 cmake: use sdl2 imported target
Lioncash fedd857054 applets/controller: Use aliases for callbacks
Lioncash d8da9a2afd applets/error: Use aliases for callbacks
Lioncash 2b40cdf04f applets/mii_edit: Use aliases for callbacks
Lioncash a84676c2aa applets/profile_select: Use aliases for callbacks
Deduplicates callback definitions and situates it in one place.
Lioncash e26c86a6e7 applets/web_browser: Use aliases for callbacks
Deduplicates a lot of long callback declarations
Lioncash 9bbb77637e applets/software_keyboard: Use aliases for callbacks
Deduplicates really long std::function declarations to make the
interface nicer to read.
Lioncash e4a16f50ef emulated_controller: Remove unused parameter in GetMappedDevices()
This isn't used, so it can be removed to make the function a little
nicer.
Lioncash 87543b9dea emulated_controller: Use std::move() in GetMappedDevices()
Avoids churning allocations in a loop.
Lioncash 7bf4b45349 emulated_console: Amend cast in SetTouch()
id is an int value, not a u32.
Lioncash 4255e30722 emulated_console: std::move() ParamPackages and callbacks where applicable
Lioncash efa8711bf3 kernel/k_shared_memory: Ensure device_memory is always initialized
Lioncash c3fd211b43 kernel/k_memory_block: Ensure members are always initialized
Lioncash dcca650599 kernel/physical_core: Ensure is_interrupted is always initialized
Lioncash dddc9bb8f1 kernel/thread: Ensure stack_top and argument are always initialized
Lioncash 4769d798f9 kernel/kernel: Ensure shutdown threads are always initialized
liamwhite 3b19f741bd
Merge pull request from abouvier/unbundle
cmake: prefer system libraries
Fernando Sahmkow 6352c5dc31 Vulkan: Implement Alpha coverage
Narr the Reg 752236caad input_common: Allow mifare files
Mai a52d0b82a6
Merge pull request from liamwhite/uninit
service_thread: fix uninitialized memory usage
Liam cec3a3cd5a service_thread: fix uninitialized memory usage