summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2405 from lioncash/qtGravatar bunnei2019-04-162-1/+7
|\ | | | | CMakeLists: Define QT_USE_QSTRINGBUILDER for the Qt target
| * CMakeLists: Define QT_USE_QSTRINGBUILDER for the Qt targetGravatar Lioncash2019-04-152-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a compile definition introduced in Qt 4.8 for reducing the total potential number of strings created when performing string concatenation. This allows for less memory churn. This can be read about here: https://blog.qt.io/blog/2011/06/13/string-concatenation-with-qstringbuilder/ For a change that isn't source-compatible, we only had one occurrence that actually need to have its type clarified, which is pretty good, as far as transitioning goes.
* | Merge pull request #2092 from ReinUsesLisp/stgGravatar bunnei2019-04-1611-89/+186
|\ \ | | | | | | shader/memory: Implement STG and global memory flushing
| * | shader_ir: Implement STG, keep track of global memory usage and flushGravatar ReinUsesLisp2019-04-1411-89/+186
| |/
* | Merge pull request #2376 from lioncash/constGravatar bunnei2019-04-163-12/+12
|\ \ | | | | | | yuzu/configure_hotkey: Minor changes
| * | configure_hotkeys: Pass the dialog as a parent to SequenceDialog()Gravatar Lioncash2019-04-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without passing in a parent, this can result in focus being stolen from the dialog in certain cases. Example: On Windows, if the logging window is left open, the logging Window will potentially get focus over the hotkey dialog itself, since it brings all open windows for the application into view. By specifying a parent, we only bring windows for the parent into view (of which there are none, aside from the hotkey dialog).
| * | configure_hotkeys: Avoid dialog memory leak within Configure()Gravatar Lioncash2019-04-091-3/+3
| | | | | | | | | | | | | | | Without a parent, this dialog won't have its memory freed when it happens to get destroyed.
| * | configure_hotkeys: Mark member variables as const where applicable in ↵Gravatar Lioncash2019-04-091-7/+7
| | | | | | | | | | | | Configure()
| * | configure_hotkeys: Make comparison check a little more self-documentingGravatar Lioncash2019-04-091-1/+2
| | | | | | | | | | | | | | | This is checking if an index is valid or not and returning early if it isn't.
| * | configure_dialog: Amend constructor initializer list orderGravatar Lioncash2019-04-091-1/+1
| | | | | | | | | | | | Avoids a -Wreorder compiler warning.
| * | configure_hotkey: Remove unnecessary includeGravatar Lioncash2019-04-091-1/+0
| | | | | | | | | | | | | | | | | | Avoids dumping all of the core settings machinery into whatever files include this header. Nothing inside the header itself actually made use of anything in settings.h anyways.
| * | configure_hotkey: Make IsUsedKey() a const member functionGravatar Lioncash2019-04-092-2/+2
| | | | | | | | | | | | | | | This doesn't actually modify instance state of the dialog, so this can be made const.
* | | Merge pull request #2401 from lioncash/guardGravatar bunnei2019-04-162-0/+4
|\ \ \ | | | | | | | | common/{lz4_compression, zstd_compression}: Add missing header guards
| * | | common/{lz4_compression, zstd_compression}: Add missing header guardsGravatar Lioncash2019-04-152-0/+4
| | |/ | |/| | | | | | | These two files were missing the #pragma once directive.
* | | Merge pull request #2382 from lioncash/tableGravatar bunnei2019-04-1527-57/+262
|\ \ \ | | | | | | | | service: Update service function tables
| * | | service: Update service function tablesGravatar Lioncash2019-04-1127-57/+262
| | |/ | |/| | | | | | | Updates function tables based off information from SwitchBrew.
* | | Merge pull request #2393 from lioncash/svcGravatar bunnei2019-04-154-2/+274
|\ \ \ | | | | | | | | kernel/svc: Implement svcMapProcessCodeMemory/svcUnmapProcessCodeMemory
| * | | kernel/svc: Implement svcUnmapProcessCodeMemoryGravatar Lioncash2019-04-123-1/+143
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Essentially performs the inverse of svcMapProcessCodeMemory. This unmaps the aliasing region first, then restores the general traits of the aliased memory. What this entails, is: - Restoring Read/Write permissions to the VMA. - Restoring its memory state to reflect it as a general heap memory region. - Clearing the memory attributes on the region.
| * | | kernel/svc: Implement svcMapProcessCodeMemoryGravatar Lioncash2019-04-124-1/+131
| | | | | | | | | | | | | | | | | | | | This is utilized for mapping code modules into memory. Notably, the ldr service would call this in order to map objects into memory.
* | | | Merge pull request #2398 from lioncash/boostGravatar bunnei2019-04-152-11/+0
|\ \ \ \ | | | | | | | | | | kernel/thread: Remove BoostPriority()
| * | | | kernel/thread: Remove BoostPriority()Gravatar Lioncash2019-04-152-11/+0
| | |_|/ | |/| | | | | | | | | | | | | | This is a holdover from Citra that currently remains unused, so it can be removed from the Thread interface.
* / | | Correct Pitch in Fermi2DGravatar Fernando Sahmkow2019-04-151-4/+1
|/ / /
* | | Merge pull request #2378 from lioncash/roGravatar bunnei2019-04-131-65/+85
|\ \ \ | | | | | | | | ldr: Minor amendments to IPC-related parameters
| * | | ldr: Mark IsValidNROHash() as a const member functionGravatar Lioncash2019-04-101-5/+4
| | | | | | | | | | | | | | | | This doesn't modify instance state, so it can be made const.
| * | | ldr: Amend parameters for LoadNro/UnloadNro LoadNrr/UnloadNrrGravatar Lioncash2019-04-101-60/+81
| | |/ | |/| | | | | | | | | | The initial two words indicate a process ID. Also UnloadNro only specifies one address, not two.
* | | Merge pull request #2373 from FernandoS27/z32Gravatar bunnei2019-04-132-2/+19
|\ \ \ | | | | | | | | Set Pixel Format to Z32 if its R32F and depth compare enabled, and Implement format ZF32_X24S8
| * | | Implement Texture Format ZF32_X24S8.Gravatar Fernando Sahmkow2019-04-091-0/+2
| | | |
| * | | Correct depth compare with color formats for R32FGravatar Fernando Sahmkow2019-04-091-2/+17
| | | |
* | | | Merge pull request #2357 from zarroboogs/force-30fps-modeGravatar bunnei2019-04-135-6/+23
|\ \ \ \ | | | | | | | | | | Add a toggle to force 30FPS mode
| * | | | added a toggle to force 30fps modeGravatar zarroboogs2019-04-095-6/+23
| |/ / /
* | | | Merge pull request #2381 from lioncash/fsGravatar bunnei2019-04-131-8/+7
|\ \ \ \ | | | | | | | | | | fsp_srv: Minor cleanup related changes
| * | | | fsp_srv: Remove unnecessary parameter popping in IDirectory's Read()Gravatar Lioncash2019-04-101-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | IDirectory's Read() function doesn't take any input parameters. It only uses the output parameters that we already provide.
| * | | | fsp_srv: Log out option values in IFile's Read and Write functionsGravatar Lioncash2019-04-101-4/+6
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | These indicate options that alter how a read/write is performed. Currently we don't need to handle these, as the only one that seems to be used is for writes, but all the custom options ever seem to do is immediate flushing, which we already do by default.
* | | | Merge pull request #2386 from ReinUsesLisp/shader-managerGravatar bunnei2019-04-132-34/+61
|\ \ \ \ | | | | | | | | | | gl_shader_manager: Move code to source file and minor clean up
| * | | | gl_shader_manager: Move code to source file and minor clean upGravatar ReinUsesLisp2019-04-102-34/+61
| | | | |
* | | | | Merge pull request #2017 from jroweboy/glwidgetGravatar bunnei2019-04-137-94/+240
|\ \ \ \ \ | | | | | | | | | | | | Frontend: Migrate to QOpenGLWindow and support shared contexts
| * | | | | bootmanager: Bypass input focus issuesGravatar ReinUsesLisp2019-03-254-55/+78
| | | | | |
| * | | | | bootmanager: Bypass resizing issueGravatar ReinUsesLisp2019-03-251-7/+12
| | | | | |
| * | | | | bootmanager: Delete container to avoid crash on game restartingGravatar ReinUsesLisp2019-03-252-14/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we are at it, remove nullptr checks for deletion, since the C++ standard defines that delete does it by its own
| * | | | | QT: Hide GLWidget immediately after showing.Gravatar James Rowe2019-01-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the loading screen merged, we don't want to actually show at this point, but it still needs to be shown to actually create the context. Turns out you can just show and hide it immediately and it'll work.
| * | | | | SDL Frontend: Add shared context supportGravatar James Rowe2019-01-212-1/+38
| | | | | |
| * | | | | QT Frontend: Migrate to QOpenGLWindowGravatar James Rowe2019-01-214-30/+113
| | | | | |
* | | | | | Merge pull request #2389 from FreddyFunk/rename-gamedirGravatar bunnei2019-04-135-20/+25
|\ \ \ \ \ \ | | | | | | | | | | | | | | ui_settings: Rename game directory variables
| * | | | | | Fix Clang FormatGravatar FreddyFunk2019-04-122-5/+10
| | | | | | |
| * | | | | | ui_settings: Rename game directory variablesGravatar FreddyFunk2019-04-115-20/+20
| | |/ / / / | |/| | | |
* | | | | | Merge pull request #2391 from lioncash/scopeGravatar bunnei2019-04-121-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | common/scope_exit: Replace std::move with std::forward in ScopeExit()
| * | | | | | common/scope_exit: Replace std::move with std::forward in ScopeExit()Gravatar Lioncash2019-04-111-1/+1
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | The template type here is actually a forwarding reference, not an rvalue reference in this case, so it's more appropriate to use std::forward to preserve the value category of the type being moved.
* | | | | | Merge pull request #2392 from lioncash/swapGravatar bunnei2019-04-121-69/+27
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | common/swap: Minor cleanup and improvements to byte swapping functions
| * | | | | common/swap: Improve codegen of the default swap fallbacksGravatar Lioncash2019-04-121-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Uses arithmetic that can be identified more trivially by compilers for optimizations. e.g. Rather than shifting the halves of the value and then swapping and combining them, we can swap them in place. e.g. for the original swap32 code on x86-64, clang 8.0 would generate: mov ecx, edi rol cx, 8 shl ecx, 16 shr edi, 16 rol di, 8 movzx eax, di or eax, ecx ret while GCC 8.3 would generate the ideal: mov eax, edi bswap eax ret now both generate the same optimal output. MSVC used to generate the following with the old code: mov eax, ecx rol cx, 8 shr eax, 16 rol ax, 8 movzx ecx, cx movzx eax, ax shl ecx, 16 or eax, ecx ret 0 Now MSVC also generates a similar, but equally optimal result as clang/GCC: bswap ecx mov eax, ecx ret 0 ==== In the swap64 case, for the original code, clang 8.0 would generate: mov eax, edi bswap eax shl rax, 32 shr rdi, 32 bswap edi or rax, rdi ret (almost there, but still missing the mark) while, again, GCC 8.3 would generate the more ideal: mov rax, rdi bswap rax ret now clang also generates the optimal sequence for this fallback as well. This is a case where MSVC unfortunately falls short, despite the new code, this one still generates a doozy of an output. mov r8, rcx mov r9, rcx mov rax, 71776119061217280 mov rdx, r8 and r9, rax and edx, 65280 mov rax, rcx shr rax, 16 or r9, rax mov rax, rcx shr r9, 16 mov rcx, 280375465082880 and rax, rcx mov rcx, 1095216660480 or r9, rax mov rax, r8 and rax, rcx shr r9, 16 or r9, rax mov rcx, r8 mov rax, r8 shr r9, 8 shl rax, 16 and ecx, 16711680 or rdx, rax mov eax, -16777216 and rax, r8 shl rdx, 16 or rdx, rcx shl rdx, 16 or rax, rdx shl rax, 8 or rax, r9 ret 0 which is pretty unfortunate.
| * | | | | common/swap: Mark byte swapping free functions with [[nodiscard]] and noexceptGravatar Lioncash2019-04-111-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows the compiler to inform when the result of a swap function is being ignored (which is 100% a bug in all usage scenarios). We also mark them noexcept to allow other functions using them to be able to be marked as noexcept and play nicely with things that potentially inspect "nothrowability".