Lioncash
03746be097
service/audren_u: Handle version 2 of performance frame info in GetWorkBufferSize()
...
Introduced in REV5. This is trivial to add support for, now that
everything isn't a mess of random magic constant values.
All this is, is a change in data type sizes as far as this function
cares.
2019-04-30 23:52:28 -04:00
Lioncash
de93507a5a
service/audren_u: Clean up work buffer calculations
...
"Unmagics" quite a few magic constants within this code, making it much
easier to understand. Particularly given this factors out specific
sections into their own self-contained lambda functions.
2019-04-30 23:51:59 -04:00
ReinUsesLisp
4aa081b4e7
gl_shader_disk_cache: Skip stored shader variants instead of asserting
...
Instead of asserting on already stored shader variants, silently skip them.
This shouldn't be happening but when a shader is invalidated and it is
not stored in the shader cache, this assert would hit and save that
shader anyways when the asserts are disabled.
2019-05-01 00:36:11 -03:00
Fernando Sahmkow
95261639fb
Fix Layered ASTC Textures
...
By adding the missing layer offset in ASTC compression.
2019-04-30 23:02:31 -04:00
Lioncash
75a8b304d4
loader/nso: Remove left-in debug pragma
...
Unintentionally introduced in 552d5071fa
2019-04-30 22:55:53 -04:00
bunnei
79e54abe19
Merge pull request #2100 from FreddyFunk/disk-cache-precompiled-file
...
gl_shader_disk_cache: Improve precompiled shader cache generation speed and size
2019-04-30 19:24:01 -04:00
Lioncash
19632d2421
kernel/svc: Make svcCreateThread/svcStartThread/svcSleepThread/svcExitThread calls show up in the debug log
...
These are actually quite important indicators of thread lifetimes, so
they should be going into the debug log, rather than being treated as
misc info and delegated to the trace log.
2019-04-29 01:38:27 -04:00
Lioncash
d672c6e759
kernel/svc: Reorganize svcSetThreadCoreMask()
...
Makes the code much nicer to follow in terms of behavior and control
flow. It also fixes a few bugs in the implementation.
Notably, the thread's owner process shouldn't be accessed in order to
retrieve the core mask or ideal core. This should be done through the
current running process. The only reason this bug wasn't encountered yet
is because we currently only support running one process, and thus every
owner process will be the current process.
We also weren't checking against the process' CPU core mask to see if an
allowed core is specified or not.
With this out of the way, it'll be less noisy to implement proper
handling of the affinity flags internally within the kernel thread
instances.
2019-04-29 01:38:27 -04:00
Lioncash
69a2003a8e
kernel/thread: Update thread processor ID flags
...
Adds the missing flags to the enum and documents them.
2019-04-29 01:37:51 -04:00
bunnei
91e239d66f
Merge pull request #2435 from ReinUsesLisp/misc-vc
...
shader_ir: Miscellaneous fixes
2019-04-28 22:29:43 -04:00
bunnei
2be32eb3d2
Merge pull request #2412 from lioncash/system
...
kernel/vm_manager: Remove usages of global system accessors
2019-04-28 22:27:14 -04:00
bunnei
c52233ec8b
Merge pull request #2322 from ReinUsesLisp/wswitch
...
video_core: Silent -Wswitch warnings
2019-04-28 22:24:58 -04:00
bunnei
9a3737120d
Merge pull request #2423 from FernandoS27/half-correct
...
Corrections on Half Float operations: HADD2 HMUL2 and HFMA2
2019-04-28 22:24:22 -04:00
Lioncash
565fce71b1
service/audctl: Update documentation comments to be relative to 8.0.0
...
The state of these service calls are still the same in version 8.0.0.
2019-04-27 23:17:58 -04:00
ReinUsesLisp
2156e52014
shader_ir: Move Sampler index entry in operand< to sort declarations
2019-04-26 01:13:05 -03:00
ReinUsesLisp
b77b4b76bb
shader_ir: Add missing entry to Sampler operand< comparison
2019-04-26 01:11:24 -03:00
ReinUsesLisp
0b91087a1e
shader_ir/texture: Fix sampler const buffer key shift
2019-04-26 01:09:29 -03:00
Zach Hilman
4e462d1fd7
mii_manager: Fix incorrect loop condition in mii UUID generation code
2019-04-25 08:57:23 -04:00
Zach Hilman
851c01c45e
profile_select: Port Service::Account::UUID to Common::UUID
2019-04-25 08:13:11 -04:00
Zach Hilman
1aa2b99a98
mii: Implement Delete and Destroy file
2019-04-25 08:07:57 -04:00
Zach Hilman
c40cff454d
mii: Implement IsUpdated command (IPC 0)
2019-04-25 08:07:57 -04:00
Zach Hilman
f0db2e3ef3
mii_manager: Cleanup and optimization
2019-04-25 08:07:57 -04:00
Zach Hilman
e25a7891e9
mii: Implement IDatabaseService commands using MiiManager
...
Since the MiiManager was designed around the IPC interface, this is quite easy. Only functions that were clearly defined were implemented.
2019-04-25 08:07:57 -04:00
Zach Hilman
daf5b8c61b
mii: Add MiiManager class to manage Mii database
...
Provides serialization/deserialization to the database in system save files, accessors for database state and proper handling of both major Mii formats (MiiInfo and MiiStoreData)
2019-04-25 08:07:57 -04:00
Zach Hilman
ca5638a142
common: Extract UUID to its own class
...
Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them.
2019-04-25 08:07:57 -04:00
bunnei
78574e7a47
Merge pull request #2416 from lioncash/wait
...
kernel/svc: Clean up wait synchronization related functionality
2019-04-24 22:56:08 -04:00
bunnei
94db649205
Merge pull request #2424 from FernandoS27/compat
...
Allow picking a Compatibility Profile for OpenGL.
2019-04-24 22:54:27 -04:00
bunnei
53f746fa9a
Merge pull request #2228 from DarkLordZach/applet-manager-p1
...
applets: Add AppletManager and implement PhotoViewer and Error applets
2019-04-24 22:53:21 -04:00
bunnei
0592869076
Merge pull request #2404 from lioncash/unicode
...
CMakeLists: Ensure we specify Unicode as the codepage on Windows
2019-04-24 22:51:17 -04:00
FreddyFunk
1a3ff252a4
Re added new lines at the end of files
2019-04-23 23:19:28 +02:00
unknown
3091b40691
gl_shader_disk_cache: Compress precompiled shader cache file with Zstandard
2019-04-23 22:24:31 +02:00
unknown
9db2c734c9
gl_shader_disk_cache: Use VectorVfsFile for the virtual precompiled shader cache file
2019-04-23 22:24:23 +02:00
unknown
3fe542cf60
gl_shader_disk_cache: Remove per shader compression
2019-04-23 21:40:01 +02:00
Fernando Sahmkow
b3118ee316
Fixes and Corrections to DMA Engine
2019-04-23 15:28:18 -04:00
Hexagon12
8df9449bb8
Merge pull request #2422 from ReinUsesLisp/fixup-samplers
...
gl_state: Fix samplers memory corruption
2019-04-23 18:30:35 +03:00
Hexagon12
b2fbcaae30
Merge pull request #2425 from FernandoS27/y-direction
...
Fix flipping on some games by applying Y direction register
2019-04-23 18:29:29 +03:00
Fernando Sahmkow
f1e5314f1a
Add Swizzle Parameters to the DMA engine
2019-04-23 11:21:00 -04:00
Fernando Sahmkow
e140e2ebc6
Add Documentation Headers to all the GPU Engines
2019-04-23 08:44:52 -04:00
Fernando Sahmkow
021d28c9b8
Corrections and styling
2019-04-23 08:02:24 -04:00
bunnei
4fad91ca45
Merge pull request #2383 from ReinUsesLisp/aoffi-test
...
gl_shader_decompiler: Disable variable AOFFI on unsupported devices
2019-04-22 22:14:02 -04:00
bunnei
9cab042674
Merge pull request #2420 from lioncash/audctl
...
service/audctl: Implement GetTargetVolumeMin() and GetTargetVolumeMax()
2019-04-22 22:12:48 -04:00
Fernando Sahmkow
701ce1c9d0
Implement Maxwell3D Data Upload
2019-04-22 19:27:36 -04:00
Fernando Sahmkow
e4ff140b99
Introduce skeleton of the GPU Compute Engine.
2019-04-22 19:05:43 -04:00
Fernando Sahmkow
a91d3fc639
Revamp Kepler Memory to use a subegine to manage uploads
2019-04-22 18:50:56 -04:00
bunnei
b5889cbd6f
Merge pull request #2403 from FernandoS27/compressed-linear
...
Support compressed formats on linear textures.
2019-04-22 17:09:42 -04:00
bunnei
68b707711a
Merge pull request #2411 from FernandoS27/unsafe-gpu
...
GPU Manager: Implement ReadBlockUnsafe and WriteBlockUnsafe
2019-04-22 17:09:00 -04:00
bunnei
01100f8afd
Merge pull request #2400 from FernandoS27/corret-kepler-mem
...
Implement Kepler Memory on both Linear and BlockLinear.
2019-04-22 16:47:05 -04:00
Fernando Sahmkow
4c36b78567
Rasterizer Cache: Use a temporal storage for Surfaces loading/flushing.
...
This PR should heavily reduce memory usage since temporal buffers are no
longer stored per Surface but instead managed by the Rasterizer Cache.
2019-04-21 11:42:07 -04:00
Fernando Sahmkow
623b2e4b8f
Corrections Half Float operations on const buffers and implement saturation.
2019-04-20 21:11:33 -04:00
bunnei
da0c3bc658
Merge pull request #2407 from FernandoS27/f2f
...
Do some corrections in conversion shader instructions.
2019-04-20 00:42:34 -04:00
Fernando Sahmkow
788497fd9d
Allow picking a Compatibility Profile for OpenGL.
...
This option allows picking the compatibility profile since a lot of bugs
are fixed in it. We devs will use this option to easierly debug current
problems in our Core implementation.:wq
2019-04-20 00:05:24 -04:00
bunnei
650d9b1044
Merge pull request #2409 from ReinUsesLisp/half-floats
...
shader_ir/decode: Miscellaneous fixes to half-float decompilation
2019-04-19 21:31:52 -04:00
Fernando Sahmkow
08cdcc2871
Apply Position Y Direction
2019-04-19 20:49:00 -04:00
Fernando Sahmkow
a3eb91ed8c
RasterizerCache Redesign: Flush
...
flushing is now responsability of children caches instead of the cache
object. This change will allow the specific cache to pass extra
parameters on flushing and will allow more flexibility.
2019-04-19 20:44:56 -04:00
Fernando Sahmkow
db4b2bc798
make ReadBlockunsafe and WriteBlockunsafe, ignore invalid pages.
2019-04-19 20:35:54 -04:00
bunnei
62c2404d3c
Merge pull request #2415 from lioncash/const
...
kernel/wait_object: Make GetHighestPriorityReadyThread() a const member function
2019-04-19 19:12:02 -04:00
bunnei
cd38eadcc1
Merge pull request #2414 from lioncash/reorder
...
yuzu/bootmanager: Resolve constructor initializer list warnings
2019-04-19 19:11:47 -04:00
bunnei
b6faea0dd2
Merge pull request #2421 from lioncash/svc-call
...
kernel/svc: Name supervisor call 0x36
2019-04-19 19:10:20 -04:00
bunnei
40dc893c37
Merge pull request #2374 from lioncash/pagetable
...
core: Reorganize boot order
2019-04-19 19:09:20 -04:00
ReinUsesLisp
d74cb16535
gl_state: Fix samplers memory corruption
...
It was possible for "samplers" to be read without being written. This
addresses that.
2019-04-19 17:07:56 -03:00
Lioncash
f8be3f55da
kernel/svc: Name supervisor call 0x36
...
This call was added to the SVC handlers in the 8.0.0 kernel, so we can
finally give it a name.
2019-04-19 14:34:56 -04:00
Lioncash
19f8f86bdb
service/audctl: Implement GetTargetVolumeMin() and GetTargetVolumeMax()
...
These two service functions are literally hardcoded to always return
these values without any other error checking.
2019-04-18 16:39:54 -04:00
ReinUsesLisp
fbe8d1ceaa
video_core: Silent -Wswitch warnings
2019-04-18 15:54:39 -03:00
bunnei
83b830eb2f
Merge pull request #2397 from lioncash/thread-unused
...
kernel/thread: Remove unused guest_handle member variable
2019-04-17 21:46:46 -04:00
bunnei
4294062516
Merge pull request #2318 from ReinUsesLisp/sampler-cache
...
gl_sampler_cache: Port sampler cache to OpenGL
2019-04-17 21:45:56 -04:00
bunnei
5bd5140bde
Merge pull request #2348 from FernandoS27/guest-bindless
...
Implement Bindless Textures on Shader Decompiler and GL backend
2019-04-17 20:59:49 -04:00
Zach Hilman
2adb226b26
web_browser: Make OpenPage non-const
2019-04-17 11:35:24 -04:00
Zach Hilman
8f8049e846
main: Add GMainWindow hooks for Error display
2019-04-17 11:35:24 -04:00
Zach Hilman
a04d36c5a4
main: Switch to AppletManager for frontend
2019-04-17 11:35:24 -04:00
Zach Hilman
76452cd5b3
qt: Add dialog implementation of Error applet
2019-04-17 11:35:24 -04:00
Zach Hilman
f6e2295055
general_backend: Move StubApplet and add backend PhotoViewer
2019-04-17 11:35:24 -04:00
Zach Hilman
80c9e4d3ab
general_frontend: Add frontend scaffold for PhotoViewer applet
2019-04-17 11:35:24 -04:00
Zach Hilman
d9f6715d45
frontend: Add frontend receiver for Error applet
2019-04-17 11:35:24 -04:00
Zach Hilman
de3cfb1d37
applets: Add Error applet
...
Responsible for displaying error codes and messages
2019-04-17 11:35:24 -04:00
Zach Hilman
d273bec68f
applets: Port current applets to take frontend in constructor
...
As opposed to using Core::System::GetInstance()
2019-04-17 11:35:24 -04:00
Zach Hilman
f7540157e4
web_browser: Make OpenPage const
2019-04-17 11:35:24 -04:00
Zach Hilman
ec0bc3061e
core: Remove specific applets in favor of AppletManager
2019-04-17 11:35:24 -04:00
Zach Hilman
6cea62b756
am: Delegate applet creation to AppletManager
2019-04-17 11:35:24 -04:00
Zach Hilman
e51d33f0ce
applets: Add AppletManager class to control lifetime
2019-04-17 11:35:24 -04:00
Lioncash
c268ffd831
kernel/thread: Unify wait synchronization types
...
This is a holdover from Citra, where the 3DS has both
WaitSynchronization1 and WaitSynchronizationN. The switch only has one
form of wait synchronizing (literally WaitSynchonization). This allows
us to throw out code that doesn't apply at all to the Switch kernel.
Because of this unnecessary dichotomy within the wait synchronization
utilities, we were also neglecting to properly handle waiting on
multiple objects.
While we're at it, we can also scrub out any lingering references to
WaitSynchronization1/WaitSynchronizationN in comments, and change them
to WaitSynchronization (or remove them if the mention no longer
applies).
2019-04-17 09:30:56 -04:00
Lioncash
433b59c112
kernel/svc: Migrate svcCancelSynchronization behavior to a thread function
...
The actual behavior of this function is slightly more complex than what
we're currently doing within the supervisor call. To avoid dumping most
of this behavior in the supervisor call itself, we can migrate this to
another function.
2019-04-17 09:30:56 -04:00
Lioncash
6b2bece81f
kernel/wait_object: Make GetHighestPriorityReadyThread() a const member function
...
This doesn't actually modify internal state of a wait object, so it can
be const qualified.
2019-04-17 06:44:34 -04:00
Lioncash
54e9f9b6ed
yuzu/bootmanager: Replace unnnecessary constructor initializer list member of GGLContext
...
The default constructor will always run, even when not specified, so
this is redundant.
However, the context member can indeed be initialized in the constructor
initializer list.
2019-04-17 00:04:10 -04:00
Lioncash
52e43734c4
yuzu/bootmanager: Remove unnecessary includes
...
This include isn't used anymore so it can be removed.
2019-04-16 23:52:57 -04:00
Lioncash
fbfc347351
yuzu/bootmanager: Resolve constructor initializer list warnings
...
Resolves -Wreorder warnings. These will automatically be initialized to
nullptr anyways, so these were redundant.
2019-04-16 23:49:26 -04:00
bunnei
0cfbd3325b
Merge pull request #2315 from ReinUsesLisp/severity-decompiler
...
shader_ir/decode: Reduce the severity of common assertions
2019-04-16 22:21:19 -04:00
bunnei
21d498bc06
Merge pull request #2384 from ReinUsesLisp/gl-state-clear
...
gl_rasterizer: Apply just the needed state on Clear
2019-04-16 22:19:03 -04:00
bunnei
be6b9e2d2b
Merge pull request #2405 from lioncash/qt
...
CMakeLists: Define QT_USE_QSTRINGBUILDER for the Qt target
2019-04-16 22:17:09 -04:00
bunnei
1b83f255c2
Merge pull request #2092 from ReinUsesLisp/stg
...
shader/memory: Implement STG and global memory flushing
2019-04-16 22:15:17 -04:00
bunnei
2654eb659e
Merge pull request #2376 from lioncash/const
...
yuzu/configure_hotkey: Minor changes
2019-04-16 22:13:12 -04:00
bunnei
382fbbb198
Merge pull request #2401 from lioncash/guard
...
common/{lz4_compression, zstd_compression}: Add missing header guards
2019-04-16 22:11:04 -04:00
Lioncash
819c21d99e
CMakeLists: Ensure we specify Unicode as the codepage on Windows
...
Previously we were building with MBCS, which is pretty undesirable. We
want the application to be Unicode-aware in general.
Currently, we make the command line variant of yuzu use ANSI variants of
the non-standard getopt functions that we link in for Windows, given we
only have an ANSI option-set.
We should really replace getopt with a library that we make all build
types of yuzu link in, but this will have to do for the time being.
2019-04-16 21:23:34 -04:00
Lioncash
b6a87b422e
kernel/vm_manager: Remove usages of global system accessors
...
Makes the dependency on the system instance explicit within VMManager's
interface.
2019-04-16 20:02:50 -04:00
Fernando Sahmkow
d0082de82a
Implement IsBlockContinous
...
This detects when a GPU Memory Block is not continous within host cpu
memory.
2019-04-16 18:49:35 -04:00
Fernando Sahmkow
da91e6e4b6
Apply Const correctness to SwizzleKepler and replace u32 for size_t on iterators.
2019-04-16 12:00:46 -04:00
Fernando Sahmkow
13d626fc21
Use ReadBlockUnsafe for fetyching DMA CommandLists
2019-04-16 11:22:34 -04:00
Fernando Sahmkow
06d1c5a991
Document unsafe versions and add BlockCopyUnsafe
2019-04-16 10:11:35 -04:00
Fernando Sahmkow
6fc562a9aa
Use ReadBlockUnsafe for Shader Cache
2019-04-15 23:34:03 -04:00
Fernando Sahmkow
ef381e6924
Use ReadBlockUnsafe on TIC and TSC reading
...
Use ReadBlockUnsafe on TIC and TSC reading as memory is never flushed
from host GPU there.
2019-04-15 23:10:24 -04:00
Fernando Sahmkow
367704aa82
GPU MemoryManager: Implement ReadBlockUnsafe and WriteBlockUnsafe
2019-04-15 23:01:35 -04:00
Fernando Sahmkow
3e96c367bd
Use WriteBlock and ReadBlock.
2019-04-15 22:42:34 -04:00
bunnei
9186f76b07
Merge pull request #2382 from lioncash/table
...
service: Update service function tables
2019-04-15 21:46:15 -04:00
bunnei
fc64156533
Merge pull request #2393 from lioncash/svc
...
kernel/svc: Implement svcMapProcessCodeMemory/svcUnmapProcessCodeMemory
2019-04-15 21:43:56 -04:00
bunnei
a7c3275b8b
Merge pull request #2398 from lioncash/boost
...
kernel/thread: Remove BoostPriority()
2019-04-15 21:42:16 -04:00
Fernando Sahmkow
bec28d692d
Implement Block Linear copies in Kepler Memory.
2019-04-15 21:22:16 -04:00
ReinUsesLisp
ef8245bed2
vk_shader_decompiler: Add missing operations
2019-04-15 21:32:57 -03:00
ReinUsesLisp
f43995ec53
shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmetic
...
Operations done before the main half float operation (like HAdd) were
managing a packed value instead of the unpacked one. Adding an unpacked
operation allows us to drop the per-operand MetaHalfArithmetic entry,
simplifying the code overall.
2019-04-15 21:16:10 -03:00
ReinUsesLisp
abcbcb1b2a
gl_shader_decompiler: Fix MrgH0 decompilation
...
GLSL decompilation for HMergeH0 was wrong. This addresses that issue.
2019-04-15 21:16:10 -03:00
ReinUsesLisp
64613db605
shader_ir/decode: Implement half float saturation
2019-04-15 21:16:10 -03:00
ReinUsesLisp
90cbf89303
shader_ir/decode: Reduce severity of unimplemented half-float FTZ
2019-04-15 21:16:09 -03:00
ReinUsesLisp
acf618afbc
renderer_opengl: Implement half float NaN comparisons
2019-04-15 21:13:26 -03:00
ReinUsesLisp
ae46ad48ed
shader_ir: Avoid using static on heap-allocated objects
...
Using static here might be faster at runtime, but it adds a heap
allocation called before main.
2019-04-15 21:12:43 -03:00
Fernando Sahmkow
aa471274d9
Do some corrections in conversion shader instructions.
...
Corrects encodings for I2F, F2F, I2I and F2I
Implements Immediate variants of all four conversion types.
Add assertions to unimplemented stuffs.
2019-04-15 19:16:27 -04:00
Lioncash
d28bb56c91
CMakeLists: Define QT_USE_QSTRINGBUILDER for the Qt target
...
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.
2019-04-15 17:59:41 -04:00
Lioncash
3283aa1e20
svc: Specify handle value in thread's name
...
Allows the handle to be seen alongside the entry point.
2019-04-15 15:56:18 -04:00
Fernando Sahmkow
8a099ac99f
Correct Kepler Memory on Linear Pushes.
2019-04-15 14:51:36 -04:00
Fernando Sahmkow
773d955dfa
Support compressed formats on linear textures.
2019-04-15 13:56:09 -04:00
Lioncash
4620ed47a3
common/{lz4_compression, zstd_compression}: Add missing header guards
...
These two files were missing the #pragma once directive.
2019-04-15 13:00:08 -04:00
Fernando Sahmkow
bf561e4340
Correct Pitch in Fermi2D
2019-04-15 12:24:29 -04:00
Lioncash
e3566e6c1d
kernel/thread: Remove BoostPriority()
...
This is a holdover from Citra that currently remains unused, so it can
be removed from the Thread interface.
2019-04-15 06:59:19 -04:00
Lioncash
09caf8a756
kernel/thread: Remove unused guest_handle member variable
...
This member variable is entirely unused. It was only set but never
actually utilized. Given that, we can remove it to get rid of noise in
the thread interface.
2019-04-14 06:06:06 -04:00
ReinUsesLisp
f15c59a164
gl_shader_decompiler: Use variable AOFFI on supported hardware
2019-04-14 05:13:19 -03:00
ReinUsesLisp
5c280e6ff0
shader_ir: Implement STG, keep track of global memory usage and flush
2019-04-14 00:25:32 -03:00
bunnei
1f4dfb3998
Merge pull request #2378 from lioncash/ro
...
ldr: Minor amendments to IPC-related parameters
2019-04-13 22:16:10 -04:00
bunnei
c9454c8422
Merge pull request #2373 from FernandoS27/z32
...
Set Pixel Format to Z32 if its R32F and depth compare enabled, and Implement format ZF32_X24S8
2019-04-13 22:14:51 -04:00
bunnei
6088898b02
Merge pull request #2357 from zarroboogs/force-30fps-mode
...
Add a toggle to force 30FPS mode
2019-04-13 22:14:04 -04:00
bunnei
a788c861bd
Merge pull request #2381 from lioncash/fs
...
fsp_srv: Minor cleanup related changes
2019-04-13 22:09:58 -04:00
bunnei
ee2206a1b7
Merge pull request #2386 from ReinUsesLisp/shader-manager
...
gl_shader_manager: Move code to source file and minor clean up
2019-04-13 22:09:27 -04:00
bunnei
065f83c6c3
Merge pull request #2017 from jroweboy/glwidget
...
Frontend: Migrate to QOpenGLWindow and support shared contexts
2019-04-13 22:08:40 -04:00
bunnei
ee3f576495
Merge pull request #2389 from FreddyFunk/rename-gamedir
...
ui_settings: Rename game directory variables
2019-04-13 22:06:51 -04:00
Lioncash
4d293bb5cb
kernel/svc: Implement svcUnmapProcessCodeMemory
...
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.
2019-04-12 21:56:03 -04:00
Lioncash
76a2465655
kernel/svc: Implement svcMapProcessCodeMemory
...
This is utilized for mapping code modules into memory. Notably, the
ldr service would call this in order to map objects into memory.
2019-04-12 21:55:50 -04:00
bunnei
b42595fa6b
Merge pull request #2391 from lioncash/scope
...
common/scope_exit: Replace std::move with std::forward in ScopeExit()
2019-04-12 21:52:35 -04:00
bunnei
0faf7b17a1
Merge pull request #2392 from lioncash/swap
...
common/swap: Minor cleanup and improvements to byte swapping functions
2019-04-12 21:52:16 -04:00
FreddyFunk
382722b9c4
Fix Clang Format
2019-04-12 16:40:35 +02:00
Lioncash
0d8ef2d3b9
common/swap: Improve codegen of the default swap fallbacks
...
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.
2019-04-12 00:07:39 -04:00
Lioncash
612e1388df
core/core: Move process execution start to System's Load()
...
This gives us significantly more control over where in the
initialization process we start execution of the main process.
Previously we were running the main process before the CPU or GPU
threads were initialized (not good). This amends execution to start
after all of our threads are properly set up.
2019-04-11 22:11:41 -04:00
Lioncash
32a6ceb4e5
core/process: Remove unideal page table setting from LoadFromMetadata()
...
Initially required due to the split codepath with how the initial main
process instance was initialized. We used to initialize the process
like:
Init() {
main_process = Process::Create(...);
kernel.MakeCurrentProcess(main_process.get());
}
Load() {
const auto load_result = loader.Load(*kernel.GetCurrentProcess());
if (load_result != Loader::ResultStatus::Success) {
// Handle error here.
}
...
}
which presented a problem.
Setting a created process as the main process would set the page table
for that process as the main page table. This is fine... until we get to
the part that the page table can have its size changed in the Load()
function via NPDM metadata, which can dictate either a 32-bit, 36-bit,
or 39-bit usable address space.
Now that we have full control over the process' creation in load, we can
simply set the initial process as the main process after all the loading
is done, reflecting the potential page table changes without any
special-casing behavior.
We can also remove the cache flushing within LoadModule(), as execution
wouldn't have even begun yet during all usages of this function, now
that we have the initialization order cleaned up.
2019-04-11 22:11:41 -04:00
Lioncash
a4b0a8559c
core/core: Move main process creation into Load()
...
Now that we have dependencies on the initialization order, we can move
the creation of the main process to a more sensible area: where we
actually load in the executable data.
This allows localizing the creation and loading of the process in one
location, making the initialization of the process much nicer to trace.
2019-04-11 22:11:40 -04:00
Lioncash
6d0551196d
video_core/gpu: Create threads separately from initialization
...
Like with CPU emulation, we generally don't want to fire off the threads
immediately after the relevant classes are initialized, we want to do
this after all necessary data is done loading first.
This splits the thread creation into its own interface member function
to allow controlling when these threads in particular get created.
2019-04-11 22:11:40 -04:00
Lioncash
f2331a804a
core/cpu_core_manager: Create threads separately from initialization.
...
Our initialization process is a little wonky than one would expect when
it comes to code flow. We initialize the CPU last, as opposed to
hardware, where the CPU obviously needs to be first, otherwise nothing
else would work, and we have code that adds checks to get around this.
For example, in the page table setting code, we check to see if the
system is turned on before we even notify the CPU instances of a page
table switch. This results in dead code (at the moment), because the
only time a page table switch will occur is when the system is *not*
running, preventing the emulated CPU instances from being notified of a
page table switch in a convenient manner (technically the code path
could be taken, but we don't emulate the process creation svc handlers
yet).
This moves the threads creation into its own member function of the core
manager and restores a little order (and predictability) to our
initialization process.
Previously, in the multi-threaded cases, we'd kick off several threads
before even the main kernel process was created and ready to execute (gross!).
Now the initialization process is like so:
Initialization:
1. Timers
2. CPU
3. Kernel
4. Filesystem stuff (kind of gross, but can be amended trivially)
5. Applet stuff (ditto in terms of being kind of gross)
6. Main process (will be moved into the loading step in a following
change)
7. Telemetry (this should be initialized last in the future).
8. Services (4 and 5 should ideally be alongside this).
9. GDB (gross. Uses namespace scope state. Needs to be refactored into a
class or booted altogether).
10. Renderer
11. GPU (will also have its threads created in a separate step in a
following change).
Which... isn't *ideal* per-se, however getting rid of the wonky
intertwining of CPU state initialization out of this mix gets rid of
most of the footguns when it comes to our initialization process.
2019-04-11 22:11:40 -04:00
bunnei
ea80e2bc57
Merge pull request #2235 from ReinUsesLisp/spirv-decompiler
...
vk_shader_decompiler: Implement a SPIR-V decompiler
2019-04-11 21:54:23 -04:00
bunnei
83a2fb3c3a
Merge pull request #2360 from lioncash/svc-global
...
kernel/svc: Deglobalize the supervisor call handlers
2019-04-11 21:50:05 -04:00
bunnei
e2f2155dab
Merge pull request #2388 from lioncash/constexpr
...
kernel: Make handle type declarations constexpr
2019-04-11 21:49:45 -04:00
Lioncash
66b73fd399
common/swap: Mark byte swapping free functions with [[nodiscard]] and noexcept
...
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".
2019-04-11 20:42:44 -04:00
Lioncash
9cb4b7be40
common/swap: Simplify swap function ifdefs
...
Including every OS' own built-in byte swapping functions is kind of
undesirable, since it adds yet another build path to ensure compilation
succeeds on.
Given we only support clang, GCC, and MSVC for the time being, we can
utilize their built-in functions directly instead of going through the
OS's API functions.
This shrinks the overall code down to just
if (msvc)
use msvc's functions
else if (clang or gcc)
use clang/gcc's builtins
else
use the slow path
2019-04-11 20:36:19 -04:00
Lioncash
598954436f
common/swap: Remove 32-bit ARM path
...
We don't plan to support host 32-bit ARM execution environments, so this
is essentially dead code.
2019-04-11 20:15:47 -04:00
Lioncash
b569641098
common/scope_exit: Replace std::move with std::forward in ScopeExit()
...
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.
2019-04-11 20:01:33 -04:00
Lioncash
6300ccbc3c
kernel: Make handle type declarations constexpr
...
Some objects declare their handle type as const, while others declare it
as constexpr. This makes the const ones constexpr for consistency, and
prevent unexpected compilation errors if these happen to be attempted to be
used within a constexpr context.
2019-04-11 16:34:53 -04:00
FreddyFunk
dffa1a872a
ui_settings: Rename game directory variables
2019-04-11 19:55:56 +02:00
Fernando Sahmkow
c9305959d3
gl_rasterizer_cache: Relax restrictions on FastCopySurface and FastLayeredCopySurface
2019-04-11 13:14:28 -04:00
Lioncash
ca96dc4676
service: Update service function tables
...
Updates function tables based off information from SwitchBrew.
2019-04-11 02:47:00 -04:00
bunnei
6951741a94
Merge pull request #2278 from ReinUsesLisp/vc-texture-cache
...
video_core: Implement API agnostic view based texture cache
2019-04-10 21:17:35 -04:00
bunnei
0371650bd7
Merge pull request #2372 from FernandoS27/fermi-fix
...
Correct Fermi Copy on Linear Textures.
2019-04-10 21:17:03 -04:00
ReinUsesLisp
93af663683
gl_shader_manager: Move code to source file and minor clean up
2019-04-10 19:29:15 -03:00
ReinUsesLisp
6df25e9c7b
gl_rasterizer: Apply just the needed state on Clear
2019-04-10 18:13:15 -03:00
Lioncash
dae2449880
ldr: Mark IsValidNROHash() as a const member function
...
This doesn't modify instance state, so it can be made const.
2019-04-10 15:57:02 -04:00
Lioncash
0032cf3818
ldr: Amend parameters for LoadNro/UnloadNro LoadNrr/UnloadNrr
...
The initial two words indicate a process ID. Also UnloadNro only
specifies one address, not two.
2019-04-10 15:56:43 -04:00
ReinUsesLisp
0032821864
gl_device: Implement interface and add uniform offset alignment
2019-04-10 15:56:12 -03:00
ReinUsesLisp
75d23a3679
vk_shader_decompiler: Implement flow primitives
2019-04-10 14:20:25 -03:00
ReinUsesLisp
58ad8dfac6
vk_shader_decompiler: Implement most common texture primitives
2019-04-10 14:20:25 -03:00
ReinUsesLisp
4667ed8e22
vk_shader_decompiler: Implement texture decompilation helper functions
2019-04-10 14:20:25 -03:00
ReinUsesLisp
676172e20d
vk_shader_decompiler: Implement Assign and LogicalAssign
2019-04-10 14:20:25 -03:00
ReinUsesLisp
d316d248ab
vk_shader_decompiler: Implement non-OperationCode visits
2019-04-10 14:20:25 -03:00
ReinUsesLisp
b758c861b0
vk_shader_decompiler: Implement OperationCode decompilation interface
2019-04-10 14:20:25 -03:00
ReinUsesLisp
fec4eb9776
vk_shader_decompiler: Implement Visit
2019-04-10 14:20:25 -03:00
ReinUsesLisp
ca51f99840
vk_shader_decompiler: Implement labels tree and flow
2019-04-10 14:20:25 -03:00
ReinUsesLisp
13aa664f3f
vk_shader_decompiler: Implement declarations
2019-04-10 14:20:25 -03:00
ReinUsesLisp
ad53b233c5
vk_shader_decompiler: Declare and stub interface for a SPIR-V decompiler
2019-04-10 14:20:25 -03:00
ReinUsesLisp
970d9e57c8
video_core: Add sirit as optional dependency with Vulkan
...
sirit is a runtime assembler for SPIR-V
2019-04-10 14:20:25 -03:00
Lioncash
8676832064
fsp_srv: Remove unnecessary parameter popping in IDirectory's Read()
...
IDirectory's Read() function doesn't take any input parameters. It only
uses the output parameters that we already provide.
2019-04-10 13:04:08 -04:00
Lioncash
fc436bb09b
fsp_srv: Log out option values in IFile's Read and Write functions
...
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.
2019-04-10 13:01:52 -04:00
bunnei
97648f4841
Merge pull request #2345 from ReinUsesLisp/multibind
...
gl_rasterizer: Use ARB_multi_bind to update buffers with a single call per drawcall
2019-04-10 11:23:19 -04:00
bunnei
1312cf15d6
Merge pull request #2377 from lioncash/todo
...
kernel/server_session: Remove obsolete TODOs
2019-04-10 10:29:24 -04:00
Lioncash
08d507a196
kernel/server_session: Remove obsolete TODOs
...
These are holdovers from Citra.
2019-04-09 23:34:49 -04:00
bunnei
ed9dba89d3
Merge pull request #2375 from FernandoS27/fix-ldc
...
Remove unnecessary bounding in LD_C
2019-04-09 21:23:24 -04:00
bunnei
f46c3164e7
Merge pull request #2353 from lioncash/surface
...
yuzu/debugger: Remove graphics surface viewer
2019-04-09 21:20:02 -04:00
Lioncash
e1101d3e20
configure_hotkeys: Pass the dialog as a parent to SequenceDialog()
...
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).
2019-04-09 20:06:49 -04:00
Lioncash
b47c0c8a80
configure_hotkeys: Avoid dialog memory leak within Configure()
...
Without a parent, this dialog won't have its memory freed when it
happens to get destroyed.
2019-04-09 20:05:57 -04:00
Fernando Sahmkow
c9f35d96be
Remove bounding in LD_C
2019-04-09 20:02:11 -04:00
Lioncash
dbf13f8169
configure_hotkeys: Mark member variables as const where applicable in Configure()
2019-04-09 19:50:14 -04:00
Lioncash
cf6cdd20f8
configure_hotkeys: Make comparison check a little more self-documenting
...
This is checking if an index is valid or not and returning early if it
isn't.
2019-04-09 19:47:20 -04:00
Lioncash
c4ba717491
configure_dialog: Amend constructor initializer list order
...
Avoids a -Wreorder compiler warning.
2019-04-09 19:39:43 -04:00
Lioncash
8c05dfaa61
configure_hotkey: Remove unnecessary include
...
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.
2019-04-09 19:37:08 -04:00
Lioncash
e28a5b0d18
configure_hotkey: Make IsUsedKey() a const member function
...
This doesn't actually modify instance state of the dialog, so this can
be made const.
2019-04-09 19:35:54 -04:00
bunnei
2598433f9c
Merge pull request #2354 from lioncash/header
...
video_core/texures/texture: Remove unnecessary includes
2019-04-09 19:19:41 -04:00
bunnei
61f63bb994
Merge pull request #1957 from DarkLordZach/title-provider
...
file_sys: Provide generic interface for accessing game data
2019-04-09 19:16:37 -04:00
bunnei
353a099481
Merge pull request #2366 from FernandoS27/xmad-fix
...
Correct XMAD mode, psl and high_b on different encodings.
2019-04-09 19:15:01 -04:00
bunnei
1a3098f11a
Merge pull request #2132 from FearlessTobi/port-4437
...
Port citra-emu/citra#4437 : "citra-qt: Make hotkeys configurable via the GUI (Attempt 2)"
2019-04-09 18:08:30 -04:00
bunnei
71182643f7
Merge pull request #2370 from lioncash/qt-warn
...
yuzu/loading_screen: Resolve runtime Qt string formatting warnings
2019-04-09 17:21:18 -04:00
bunnei
bc7e149835
Merge pull request #2369 from FernandoS27/mip-align
...
gl_backend: Align Pixel Storage
2019-04-09 17:20:43 -04:00
bunnei
088c7c1bb5
Merge pull request #2368 from FernandoS27/fix-lop
...
Correct LOP_IMM encoding
2019-04-09 17:19:56 -04:00
Fernando Sahmkow
cd91e98dab
Correct Fermi Copy on Linear Textures.
2019-04-09 14:13:58 -04:00
Lioncash
2abf979c35
kernel/process: Set page table when page table resizes occur.
...
We need to ensure dynarmic gets a valid pointer if the page table is
resized (the relevant pointers would be invalidated in this scenario).
In this scenario, the page table can be resized depending on what kind
of address space is specified within the NPDM metadata (if it's
present).
2019-04-09 13:00:56 -04:00
Fernando Sahmkow
7c458311d3
Implement Texture Format ZF32_X24S8.
2019-04-09 12:33:46 -04:00
Fernando Sahmkow
b0aa8ad736
Correct depth compare with color formats for R32F
2019-04-09 12:06:59 -04:00
Lioncash
b73e433dff
yuzu/loading_screen: Resolve runtime Qt string formatting warnings
...
In our error console, when loading a game, the strings:
QString::arg: Argument missing: "Loading...", 0
QString::arg: Argument missing: "Launching...", 0
would occasionally pop up when the loading screen was running. This was
due to the strings being assumed to have formatting indicators in them,
however only two out of the four strings actually have them.
This only applies the arguments to the strings that have formatting
specifiers provided, which avoids these warnings from occurring.
2019-04-09 10:49:38 -04:00
zarroboogs
be6466d5c0
added a toggle to force 30fps mode
2019-04-09 02:14:03 +03:00
Fernando Sahmkow
9f16833097
gl_backend: Align Pixel Storage
...
This commit makes sure GL reads on the correct pack size for the
respective texture buffer.
2019-04-08 17:16:02 -04:00
Fernando Sahmkow
5c55ae4e18
Correct LOP_IMN encoding
2019-04-08 13:39:12 -04:00
Fernando Sahmkow
16adc735a5
Correct XMAD mode, psl and high_b on different encodings.
2019-04-08 13:01:17 -04:00
Fernando Sahmkow
ef8be408d3
Adapt Bindless to work with AOFFI
2019-04-08 12:07:56 -04:00
Fernando Sahmkow
492040bd9c
Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.
2019-04-08 11:36:11 -04:00
Fernando Sahmkow
797e351bf8
Fix bad rebase
2019-04-08 11:35:22 -04:00
Fernando Sahmkow
c60b0b8432
Fix TMML
2019-04-08 11:35:22 -04:00
Fernando Sahmkow
a77e9a27b0
Simplify ConstBufferAccessor
2019-04-08 11:35:19 -04:00
Fernando Sahmkow
fd4e994de3
Refactor GetTextureCode and GetTexCode to use an optional instead of optional parameters
2019-04-08 11:35:18 -04:00
Fernando Sahmkow
4841440382
Implement TXQ_B
2019-04-08 11:29:52 -04:00
Fernando Sahmkow
189bd1980c
Implement TMML_B
2019-04-08 11:29:49 -04:00
Fernando Sahmkow
ac3ba9a33e
Corrections to TEX_B
2019-04-08 11:28:44 -04:00
Fernando Sahmkow
90d06acfed
Fixes to Const Buffer Accessor and Formatting
2019-04-08 11:23:47 -04:00
Fernando Sahmkow
7af82ca022
Implement Bindless Handling on SetupTexture
2019-04-08 11:23:46 -04:00
Fernando Sahmkow
fe392fff24
Unify both sampler types.
2019-04-08 11:23:45 -04:00
Fernando Sahmkow
e28fd3d0a5
Implement Bindless Samplers and TEX_B in the IR.
2019-04-08 11:23:42 -04:00
Fernando Sahmkow
c4ac05c82c
Implement Const Buffer Accessor
2019-04-08 11:19:34 -04:00
Lioncash
b117ca5fce
kernel/svc: Deglobalize the supervisor call handlers
...
Adjusts the interface of the wrappers to take a system reference, which
allows accessing a system instance without using the global accessors.
This also allows getting rid of all global accessors within the
supervisor call handling code. While this does make the wrappers
themselves slightly more noisy, this will be further cleaned up in a
follow-up. This eliminates the global system accessors in the current
code while preserving the existing interface.
2019-04-07 20:30:05 -04:00
bunnei
f14328bf0a
Merge pull request #2300 from FernandoS27/null-shader
...
shader_cache: Permit a Null Shader in case of a bad host_ptr.
2019-04-07 17:58:27 -04:00
bunnei
c2fee0e519
Merge pull request #2355 from ReinUsesLisp/sync-point
...
maxwell_3d: Reduce severity of ProcessSyncPoint
2019-04-07 17:56:11 -04:00
bunnei
8aaf418bd6
Merge pull request #2306 from ReinUsesLisp/aoffi
...
shader_ir: Implement AOFFI for TEX and TLD4
2019-04-07 17:52:30 -04:00
bunnei
3c1ce290d0
Merge pull request #2361 from lioncash/pagetable
...
core/memory: Minor simplifications to page table management
2019-04-07 17:50:31 -04:00
bunnei
6b18a1592f
Merge pull request #2321 from ReinUsesLisp/gl-state-rework
...
gl_state: Rework to enable individual applies
2019-04-07 17:50:07 -04:00
bunnei
21a4e7deea
Merge pull request #2098 from FreddyFunk/disk-cache-zstd
...
gl_shader_disk_cache: Use Zstandard for compression
2019-04-07 17:48:33 -04:00
bunnei
52ad5fa0e8
Merge pull request #2356 from lioncash/pair
...
kernel/{server_port, server_session}: Return pairs instead of tuples from pair creation functions
2019-04-07 17:48:00 -04:00
bunnei
d9b1c24f4f
Merge pull request #2362 from lioncash/enum
...
core/memory: Remove unused enum constants
2019-04-07 17:46:09 -04:00
bunnei
80162888e6
Merge pull request #2352 from bunnei/mem-manager-fixes
...
memory_manager: Improved implementation of read/write/copy block.
2019-04-07 17:44:59 -04:00
Fernando Sahmkow
021cd56bc9
Permit a Null Shader in case of a bad host_ptr.
2019-04-07 07:52:01 -04:00
Lioncash
36a1e6a982
core/memory: Remove unused enum constants
...
These are holdovers from Citra and can be removed.
2019-04-07 03:04:55 -04:00
Lioncash
abae7577d2
core/memory: Remove GetCurrentPageTable()
...
Now that nothing actually touches the internal page table aside from the
memory subsystem itself, we can remove the accessor to it.
2019-04-07 02:47:37 -04:00
Lioncash
a6a82bb004
arm/arm_dynarmic: Remove unnecessary current_page_table member
...
Given the page table will always be guaranteed to be that of whatever
the current process is, we no longer need to keep this around.
2019-04-07 02:43:51 -04:00
Lioncash
e779686a76
kernel: Handle page table switching within MakeCurrentProcess()
...
Centralizes the page table switching to one spot, rather than making
calling code deal with it everywhere.
2019-04-07 01:12:54 -04:00
Lioncash
7a7ffa602d
kernel/server_session: Return a std::pair from CreateSessionPair()
...
Keeps the return type consistent with the function name. While we're at
it, we can also reduce the amount of boilerplate involved with handling
these by using structured bindings.
2019-04-06 01:42:03 -04:00
Lioncash
04d265562f
kernel/server_port: Return a std::pair from CreatePortPair()
...
Returns the same type that the function name describes.
2019-04-06 01:36:53 -04:00
ReinUsesLisp
ddcb711ee8
maxwell_3d: Reduce severity of ProcessSyncPoint
2019-04-06 02:18:20 -03:00
Lioncash
89c106e31b
video_core/textures/convert: Replace include with a forward declaration
...
Avoids dragging in a direct dependency in a header.
2019-04-06 00:14:36 -04:00
Lioncash
fbf452ab0e
video_core/texures/texture: Remove unnecessary includes
...
Nothing in this header relies on common_funcs or the memory manager.
This gets rid of reliance on indirect inclusions in the OpenGL caches.
2019-04-06 00:03:35 -04:00
Lioncash
218ae888f3
yuzu/debugger: Remove graphics surface viewer
...
This doesn't actually work anymore, and given how long it's been left in
that state, it's unlikely anyone actually seriously used it.
Generally it's preferable to use RenderDoc or Nsight to view surfaces.
2019-04-05 23:54:00 -04:00
bunnei
864280fabc
Merge pull request #2317 from FernandoS27/sync
...
Implement SyncPoint Register in the GPU.
2019-04-05 23:50:54 -04:00
bunnei
7d1c0fd1ad
Merge pull request #2325 from lioncash/name
...
kernel/server_session: Provide a GetName() override
2019-04-05 23:48:13 -04:00
bunnei
fddafa14c8
Merge pull request #2342 from lioncash/warning
...
common/multi_level_queue: Silence truncation warnings
2019-04-05 23:47:27 -04:00
bunnei
54c7e8e40e
Merge pull request #2240 from FearlessTobi/port-4651
...
Port citra-emu/citra#4651 : "gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB."
2019-04-05 23:46:37 -04:00
bunnei
e3402d976d
Merge pull request #2346 from lioncash/header
...
video_core/engines: Remove unnecessary inclusions where applicable
2019-04-05 23:44:27 -04:00
bunnei
20be92d5e6
memory_manager: Improved implementation of read/write/copy block.
...
- Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY!
- Fixes a crash with Mario Tennis Aces
2019-04-05 23:43:34 -04:00
bunnei
89b8801a97
Merge pull request #2350 from lioncash/vmem
...
video_core/memory_manager: Mark a few member functions with the const qualifier
2019-04-05 23:40:54 -04:00
bunnei
00207cc965
Merge pull request #2340 from lioncash/view
...
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash
2019-04-05 23:40:16 -04:00
bunnei
e86b26cd2b
Merge pull request #2334 from lioncash/override
...
core: Add missing override specifiers where applicable
2019-04-05 23:39:52 -04:00
bunnei
41890a84be
Merge pull request #2347 from lioncash/trunc
...
video_core/gpu_thread: Silence truncation warning in ThreadManager's constructor
2019-04-05 23:39:31 -04:00
bunnei
23d3cd7604
Merge pull request #2341 from lioncash/compare
...
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
2019-04-05 23:38:37 -04:00
bunnei
d6cddffb78
Merge pull request #2339 from lioncash/rank
...
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
2019-04-05 23:36:46 -04:00
bunnei
520e4e5d4b
Merge pull request #2327 from ReinUsesLisp/crash-safe-visit
...
gl_shader_decompiler: Return early when an operation is invalid
2019-04-05 23:36:18 -04:00
bunnei
b8fbd125e6
Merge pull request #2343 from lioncash/todo
...
file_sys/program_metadata: Remove obsolete TODOs
2019-04-05 23:35:54 -04:00
bunnei
cb2209d06a
Merge pull request #2337 from lioncash/temporary
...
gl_shader_decompiler: Rename GenerateTemporal() to GenerateTemporary()
2019-04-05 23:35:31 -04:00
bunnei
854ac468b9
Merge pull request #2329 from lioncash/sanitize
...
kernel/svc: Properly sanitize mutex address in WaitProcessWideKeyAtomic
2019-04-05 23:35:06 -04:00
bunnei
150a3c0890
Merge pull request #2344 from lioncash/result
...
hle/result: Remove unnecessary bitfield entry for ResultCode
2019-04-05 23:34:42 -04:00
bunnei
d9ee5b874c
Merge pull request #2349 from lioncash/surface
...
yuzu/debugger/graphics/graphics_surface: General cleanup
2019-04-05 23:33:45 -04:00
bunnei
8a1bcc3d30
Merge pull request #2351 from lioncash/macro
...
video_core/macro_interpreter: Simplify GetRegister()
2019-04-05 23:32:26 -04:00
Lioncash
00e7190e29
video_core/macro_interpreter: Remove assertion within FetchParameter()
...
We can just use .at(), which essentially does the same thing, but with
less code.
2019-04-05 22:56:58 -04:00
Lioncash
1efdb4897e
video_core/macro_interpreter: Simplify GetRegister()
...
Given we already ensure nothing can set the zeroth register in
SetRegister(), we don't need to check if the index is zero and special
case it. We can just access the register normally, since it's already
going to be zero.
We can also replace the assertion with .at() to perform the equivalent
behavior inline as part of the API.
2019-04-05 22:55:13 -04:00
Lioncash
c13fbe6a41
video_core/memory_manager: Make Read() a const qualified member function
...
Given this doesn't actually alter internal state, this can be made a
const member function.
2019-04-05 20:30:48 -04:00
Lioncash
76ef6e5c2b
video_core/memory_manager: Make ReadBlock() a const qualifier member function
...
Now, since we have a const qualified variant of GetPointer(), we can put
it to use in ReadBlock() to retrieve the source pointer that is passed
into memcpy.
Now block reading may be done from a const context.
2019-04-05 20:28:44 -04:00
Lioncash
34510bcda8
video_core/memory_manager: Add a const qualified variant of GetPointer()
...
Allows retrieving read-only pointers from a const context externally.
2019-04-05 20:25:28 -04:00
Lioncash
085b388a7a
video_core/memory_manager: Make FindFreeRegion() a const member function
...
This doesn't modify internal state, so it can be made a const member
function.
2019-04-05 20:22:55 -04:00
Lioncash
9dec087fca
video_core/memory_manager: Make GpuToCpuAddress() a const member function
...
This doesn't modify any internal state, so it can be made a const member
function to allow its use in const contexts.
2019-04-05 20:18:29 -04:00
Lioncash
c0e320ad0d
yuzu/debugger/graphics_surface: Display error messages for file I/O errors
2019-04-05 19:54:53 -04:00
Lioncash
845607481c
yuzu/debugger/graphics_surface: Tidy up SaveSurface
...
- Use QStringLiteral where applicable.
- Use const where applicable
- Remove unnecessary precondition check (we already assert the pixbuf
being non null)
2019-04-05 19:33:00 -04:00
Lioncash
bbeb859122
yuzu/debugger/graphics_surface: Clean up connection overload deduction
...
We can utilize qOverload with the signal connections to make the
function deducing a little less ugly.
2019-04-05 19:26:43 -04:00
Fernando Sahmkow
fc91e21206
Implement SyncPoint Register in the GPU.
2019-04-05 19:19:30 -04:00
Lioncash
9d296f8a35
yuzu/debugger/graphics_surface: Fill in missing surface format listings
...
Fills in the missing surface types that were marked as unknown. The
order corresponds with the TextureFormat enum within
video_core/texture.h.
We also don't need to all of these strings as translatable (only the
first string, as it's an English word).
2019-04-05 19:09:56 -04:00
Lioncash
30ce9b2b5c
video_core/gpu_thread: Silence truncation warning in ThreadManager's constructor
...
Since c5d41fd812
callback parameters were
changed to use an s64 to represent late cycles instead of an int, so
this was causing a truncation warning to occur here. Changing it to s64
is sufficient to silence the warning.
2019-04-05 18:37:37 -04:00
Lioncash
22f02076c6
video_core/engines: Make memory manager members private
...
These aren't used externally by anything, so they can be made private
data members.
2019-04-05 18:26:43 -04:00
Lioncash
26223f8124
video_core/engines: Remove unnecessary inclusions where applicable
...
Replaces header inclusions with forward declarations where applicable
and also removes unused headers within the cpp file. This reduces a few
more dependencies on core/memory.h
2019-04-05 18:26:32 -04:00
ReinUsesLisp
34c3e2c786
renderer_opengl/utils: Skip empty binds
2019-04-05 19:19:49 -03:00
ReinUsesLisp
b631c09e72
gl_rasterizer: Use ARB_multi_bind to update SSBOs
2019-04-05 19:18:43 -03:00
ReinUsesLisp
2d1f054c61
gl_rasterizer: Use ARB_multi_bind to update UBOs across stages
2019-04-05 19:10:46 -03:00
Lioncash
5dfcf7cf26
hle/result: Remove unnecessary bitfield entry for ResultCode
...
This is a hold over from the 3DS error codes in Citra.
2019-04-05 16:34:34 -04:00
Lioncash
37b23efece
file_sys/program_metadata: Remove obsolete TODOs
...
BitField has been trivially copyable since
e99a148628
, so we can eliminate these
TODO comments and use ReadObject() directly instead of memcpying the
data.
2019-04-05 15:57:47 -04:00
Lioncash
93b84e9308
common/multi_level_queue: Silence truncation warning in iterator operator++
2019-04-05 15:35:46 -04:00
Lioncash
33db37e669
common/bit_util: Make CountLeading/CountTrailing functions have the same return types
...
Makes the return type consistently uniform (like the intrinsics we're
wrapping). This also conveniently silences a truncation warning within
the kernel multi_level_queue.
2019-04-05 15:29:40 -04:00
Lioncash
a1868286b0
file_sys/nca_metadata: Remove unnecessary comparison operators for TitleType
...
enum class elements from the same enum can already be compared against
one another without the need for explicitly defined comparison
operators.
2019-04-05 15:20:07 -04:00
Lioncash
28e36de56f
file_sys/fsmitm_romfsbuild: Utilize a string_view in romfs_calc_path_hash()
...
The given string instance doesn't need to be copied entirely, we can
just use a view instead.
2019-04-05 15:12:20 -04:00
Lioncash
c05c8a7a06
service/fsp_srv: Don't pass SaveDataDescriptor instances by value.
...
Passing around a 64 byte data struct by value is kind of wasteful,
instead pass a reference to the struct.
2019-04-05 11:04:01 -04:00
Lioncash
d0ed3ff4b7
service/fsp_srv: Remove unnecessary unknown member in OpenSaveDataFileSystem
...
The unknown member here is actually padding due to being passed as a
struct. We can do the same, and remove the need to pop a padding word.
2019-04-05 11:04:01 -04:00
Lioncash
d9ee58a3b5
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
...
I realized that I updated the documentation on SwitchBrew a while ago,
but never actually updated the structs within yuzu.
2019-04-05 11:03:53 -04:00
bunnei
d6b7195192
Merge pull request #2338 from lioncash/fs
...
filesystem: Use a std::string_view in OpenFile()
2019-04-05 10:52:54 -04:00
bunnei
66be5150d6
Merge pull request #2282 from bunnei/gpu-asynch-v2
...
gpu_thread: Improve synchronization by using CoreTiming.
2019-04-04 22:38:04 -04:00
bunnei
7c1af3aa10
Merge pull request #2292 from lioncash/nacp
...
file_sys/control_metadata: Amend naming of members
2019-04-04 22:37:42 -04:00
bunnei
e6a9459b04
Merge pull request #2335 from lioncash/service-unused
...
hle/service: Resolve unused variable warnings
2019-04-04 22:36:57 -04:00
bunnei
f7d6e08688
Merge pull request #2336 from ReinUsesLisp/txq
...
gl_shader_decompiler: Fix TXQ types
2019-04-04 22:36:19 -04:00
bunnei
9959c95966
Merge pull request #2331 from lioncash/cache
...
yuzu/main: Minor adjustments to OnTransferableShaderCacheOpenFile()
2019-04-04 22:35:53 -04:00
bunnei
8502cda17a
Merge pull request #2333 from lioncash/video-include
...
video_core/renderer_opengl: Remove unnecessary includes
2019-04-04 22:35:24 -04:00
Lioncash
15e0c4c4ec
filesystem: Use a std::string_view in OpenFile()
...
Rather than make a full copy of the path, we can just use a string view
and truncate the viewed portion of the string instead of creating a totally
new truncated string.
2019-04-04 20:59:00 -04:00
Lioncash
52746ed8dc
gl_shader_decompiler: Rename GenerateTemporal() to GenerateTemporary()
...
Temporal generally indicates a relation to time, but this is just
creating a temporary, so this isn't really an accurate name for what the
function is actually doing.
2019-04-04 19:35:04 -04:00
ReinUsesLisp
88a3c05b7b
gl_shader_decompiler: Fix TXQ types
...
TXQ returns integer types. Shaders usually do:
R0 = TXQ(); // => int
R0 = static_cast<float>(R0);
If we don't treat it as an integer, it will cast a binary float value as
float - resulting in a corrupted number.
2019-04-04 20:07:11 -03:00
Lioncash
7f506be2ee
hle/service: Resolve unused variable warnings
...
In several places, we have request parsers where there's nothing to
really parse, simply because the HLE function in question operates on
buffers. In these cases we can just remove these instances altogether.
In the other cases, we can retrieve the relevant members from the parser
and at least log them out, giving them some use.
2019-04-04 13:18:09 -04:00
Lioncash
5b0a9f8ba8
core: Add missing override specifiers where applicable
...
Applies the override specifier where applicable. In the case of
destructors that are defaulted in their definition, they can
simply be removed.
This also removes the unnecessary inclusions being done in audin_u and
audrec_u, given their close proximity.
2019-04-04 12:19:44 -04:00
Lioncash
3fd5998d84
video_core/renderer_opengl: Remove unnecessary includes
...
Quite a few unused includes have built up over time, particularly on
core/memory.h. Removing these includes means the source files including
those files will no longer need to be rebuilt if they're changed, making
compilation slightly faster in this scenario.
2019-04-04 12:00:46 -04:00
Lioncash
e8f3d85ea5
yuzu/main: Remove unnecessary includes
...
While we're at it, don't use <QtGui> and <QtWidgets> and instead include
exactly which headers we actually need.
2019-04-04 11:29:19 -04:00
Lioncash
e5bb07a973
yuzu/main: Use QStringLiteral where applicable within OnTransferableShaderCacheOpenFile()
...
Allows these strings to have no allocation cost when used at runtime.
2019-04-04 00:12:55 -04:00
Lioncash
5ba5f82082
yuzu/main: Tidy up the error dialog string in OnTransferableShaderCacheOpenFile()
...
Rather than scream that the file doesn't exist, we can clearly state
what specifically doesn't exist, to avoid ambiguity, and make it easier
to understand for non-primary English speakers/readers.
2019-04-04 00:12:04 -04:00
Lioncash
3f8c9b25d8
yuzu/main: Remove unnecessary string concatenation in OnTransferableShaderCacheOpenFile()
...
We can just make the trailing portion of the string part of the
formatting, getting rid of the need to make another temporary string.
2019-04-03 23:58:58 -04:00
Lioncash
872d480c60
yuzu/main: Make open_target a QString
...
Simplifies the amount of string conversions necessary. We also don't
need to log out what occurs here.
2019-04-03 23:55:57 -04:00
Lioncash
ba4e1adda1
yuzu/main: Use static variant of QFile's exists()
...
There's no need to construct a QFile instance just to check for its
existence.
2019-04-03 23:53:31 -04:00
Lioncash
0e2f617abc
common/lz4_compression: Remove #pragma once directive from the cpp file
...
Introduced within 798d76f4c7
, this only
really has an effect within header files.
Silences a -Wpragma-once-outside-header warning with clang.
2019-04-03 22:07:04 -04:00
bunnei
acde8d3f68
Merge pull request #2328 from lioncash/transfer
...
service/am: Correct behavior of CreateTransferMemoryStorage()
2019-04-03 21:54:32 -04:00
bunnei
a56c4ac91b
Merge pull request #2095 from FreddyFunk/open-transferable-shader-cache
...
frontend: Open transferable shader cache for a selected game in the gamelist
2019-04-03 21:51:50 -04:00
bunnei
d6374b2522
Merge pull request #2093 from FreddyFunk/disk-cache-better-compression
...
Better LZ4 compression utilization for the disk based shader cache and the yuzu build system
2019-04-03 21:50:29 -04:00
bunnei
d7438d067f
Merge pull request #2299 from lioncash/maxwell
...
gl_shader_manager: Remove reliance on a global accessor within MaxwellUniformData::SetFromRegs()
2019-04-03 21:47:48 -04:00
bunnei
a655b59cef
Merge pull request #2324 from lioncash/enum-unused
...
kernel/object: Remove unused handle type entry
2019-04-03 21:47:09 -04:00
Lioncash
a973271b8c
file_sys/control_metadata: Amend naming of members
...
Quite a bit of these were out of sync with Switchbrew (and in some cases
entirely wrong). While we're at it, also expand the section of named
members. A segment within the control metadata is used to specify
maximum values for the user, device, and cache storage max sizes and
journal sizes.
These appear to be generally used by the am service (e.g. in
CreateCacheStorage, etc).
2019-04-03 21:18:12 -04:00
Lioncash
c39c8e6982
kernel/svc: Properly sanitize mutex address in WaitProcessWideKeyAtomic
...
We need to be checking whether or not the given address is within the
kernel address space or if the given address isn't word-aligned and bail
in these scenarios instead of trashing any kernel state.
2019-04-03 20:25:41 -04:00
ReinUsesLisp
78bd66d037
gl_state: Rework to enable individual applies
2019-04-03 20:26:27 -03:00
Lioncash
ea8f633dc0
service/am: Correct behavior of CreateTransferMemoryStorage()
...
For whatever reason, shared memory was being used here instead of
transfer memory, which (quite clearly) will not work based off the name
of the function.
This corrects this wonky usage of shared memory.
2019-04-03 17:49:21 -04:00
Lioncash
140cd5e209
kernel/transfer_memory: Add accessors to data and sizes
...
Also amend erroneous use of size_t. We should be using u64 here.
2019-04-03 17:49:16 -04:00
ReinUsesLisp
04979560fb
shader_ir/memory: Reduce severity of LD_L cache management and log it
2019-04-03 17:12:44 -03:00
ReinUsesLisp
24abeb9a67
shader_ir/memory: Reduce severity of ST_L cache management and log it
2019-04-03 17:12:44 -03:00
ReinUsesLisp
06c1f75f21
gl_shader_decompiler: Return early when an operation is invalid
2019-04-03 16:02:09 -03:00
bunnei
a6d5ff05dc
Merge pull request #2294 from lioncash/fatal
...
service/am: Implement EnterFatalSection/LeaveFatalSection
2019-04-03 12:12:07 -04:00
bunnei
908f24eb88
Merge pull request #2323 from lioncash/include
...
yuzu/debugger/profiler: Remove unnecessary includes
2019-04-03 12:08:16 -04:00
bunnei
7931a68d4e
Merge pull request #2302 from ReinUsesLisp/vk-swapchain
...
vk_swapchain: Implement a swapchain manager
2019-04-03 11:50:05 -04:00
bunnei
580e3564c9
Merge pull request #2305 from lioncash/shared
...
kernel/shared_memory: Sanitize supplied size when unmapping
2019-04-03 11:48:11 -04:00
bunnei
74a4a50470
Merge pull request #2314 from lioncash/const
...
kernel/thread: Minor interface cleanup
2019-04-03 11:46:17 -04:00
Lioncash
65ae1ac4e5
yuzu/applets/software_keyboard: Use QDialogButtonBox standard buttons instead of custom buttons
...
Like the previous change, this allows Qt to handle proper translations
of the UI buttons, rather than us needing to handle it.
2019-04-03 11:17:10 -04:00
Lioncash
a504bad3fb
yuzu/applets/profile_select: Use QDialogButtonBox standard buttons instead of custom buttons
...
Makes for shorter code, while also not requiring the buttons to be
directly translated, they'll be handled by Qt itself.
2019-04-03 11:15:54 -04:00
Lioncash
a074363a5d
kernel/server_session: Provide a GetName() override
...
Given server sessions can be given a name, we should allow retrieving
it instead of using the default implementation of GetName(), which would
just return "[UNKNOWN KERNEL OBJECT]".
2019-04-03 10:39:06 -04:00
Lioncash
7ccb0b16cd
kernel/object: Remove unused handle type entry
...
The AddressArbiter type isn't actually used, given the arbiter itself
isn't a direct kernel object (or object that implements the wait object
facilities).
Given this, we can remove the enum entry entirely.
2019-04-03 10:24:32 -04:00
Lioncash
6b629f4816
yuzu/debugger/profiler: Remove unnecessary includes
...
Moves includes into the cpp file where necessary. This way,
microprofile-related stuff isn't dumped into other UI-related code when
the dialog header gets included.
2019-04-03 10:07:12 -04:00
bunnei
e796351a0d
Merge pull request #2270 from lioncash/plist
...
kernel/svc: Implement svcGetProcessList and svcGetThreadList
2019-04-02 21:40:39 -04:00
bunnei
57279e1981
Merge pull request #2313 from lioncash/reslimit
...
kernel/resource_limit: Remove the name member from resource limits
2019-04-02 16:03:54 -04:00
ReinUsesLisp
576ad9a012
gl_sampler_cache: Port sampler cache to OpenGL
2019-04-02 16:58:08 -03:00
ReinUsesLisp
c5047540c9
video_core: Abstract vk_sampler_cache into a templated class
2019-04-02 15:54:11 -03:00
Lioncash
28719ee3b4
kernel/svc: Implement svcGetThreadList
...
Similarly like svcGetProcessList, this retrieves the list of threads
from the current process. In the kernel itself, a process instance
maintains a list of threads, which are used within this function.
Threads are registered to a process' thread list at thread
initialization, and unregistered from the list upon thread destruction
(if said thread has a non-null owning process).
We assert on the debug event case, as we currently don't implement
kernel debug objects.
2019-04-02 00:48:40 -04:00
Lioncash
cb2bce8006
kernel/svc: Implement svcGetProcessList
...
This service function simply copies out a specified number of kernel
process IDs, while simultaneously reporting the total number of
processes.
2019-04-02 00:47:14 -04:00
ReinUsesLisp
592a24ae53
process: Fix up compilation
2019-04-02 01:44:32 -03:00
bunnei
29df6bbbd3
Merge pull request #2281 from lioncash/memory
...
kernel/codeset: Make CodeSet's memory data member a regular std::vector
2019-04-01 22:20:05 -04:00
bunnei
4555b63750
gpu_thread: Improve synchronization by using CoreTiming.
2019-04-01 21:32:39 -04:00
Lioncash
4366241739
kernel/thread: Make AllWaitObjectsReady() a const qualified member function
...
Now that ShouldWait() is a const qualified member function, this one can
be made const qualified as well, since it can handle passing a const
qualified this pointer to ShouldWait().
2019-04-01 18:23:50 -04:00
Lioncash
20cc0b8d3c
kernel/wait_object: Make ShouldWait() take thread members by pointer-to-const
...
Given this is intended as a querying function, it doesn't make sense to
allow the implementer to modify the state of the given thread.
2019-04-01 18:19:45 -04:00
Lioncash
2d70c30fb2
kernel/thread: Avoid sign conversion within GetCommandBufferAddress()
...
Previously this was performing a u64 + int sign conversion. When dealing
with addresses, we should generally be keeping the arithmetic in the
same signedness type.
This also gets rid of the static lifetime of the constant, as there's no
need to make a trivial type like this potentially live for the entire
duration of the program.
2019-04-01 17:59:45 -04:00
Lioncash
26d0381161
kernel/thread: Make parameter of GetWaitObjectIndex() const qualified
...
The pointed to member is never actually modified, so it can be made
const.
2019-04-01 17:48:33 -04:00
Lioncash
d09e98f566
kernel/resource_limit: Remove the name member from resource limits
...
This doesn't really provide any benefit to the resource limit interface.
There's no way for callers to any of the service functions for resource
limits to provide a custom name, so all created instances of resource
limits other than the system resource limit would have a name of
"Unknown".
The system resource limit itself is already trivially identifiable from
its limit values, so there's no real need to take up space in the object to
identify one object meaningfully out of N total objects.
2019-04-01 16:49:28 -04:00
bunnei
62860dc0b0
Merge pull request #2301 from FearlessTobi/remove-amiibo-setting
...
core/yuzu: Remove enable_nfc setting
2019-04-01 15:02:08 -04:00
Lioncash
781ab8407b
general: Use deducation guides for std::lock_guard and std::unique_lock
...
Since C++17, the introduction of deduction guides for locking facilities
means that we no longer need to hardcode the mutex type into the locks
themselves, making it easier to switch mutex types, should it ever be
necessary in the future.
2019-04-01 12:53:47 -04:00
ReinUsesLisp
38658b38b4
gl_shader_decompiler: Hide local definitions inside an anonymous namespace
2019-03-31 00:26:34 -03:00
Mat M
da02946f4f
shader_ir/decode: Silent implicit sign conversion warning
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-31 00:12:54 -03:00
bunnei
d9b7bc4474
Merge pull request #2304 from lioncash/memsize
...
kernel/process: Report total physical memory used to svcGetInfo slightly better
2019-03-30 20:11:17 -04:00
bunnei
a89266bc5e
Merge pull request #2303 from lioncash/thread
...
common/thread: Remove unused functions
2019-03-30 20:10:32 -04:00
bunnei
1960164055
Merge pull request #2297 from lioncash/reorder
...
video_core: Amend constructor initializer list order where applicable
2019-03-30 20:00:26 -04:00
bunnei
e199d1e14f
Merge pull request #2298 from lioncash/variable
...
video_core/{gl_rasterizer, gpu_thread}: Remove unused class variables where applicable
2019-03-30 19:59:45 -04:00
bunnei
ba3d95e550
Merge pull request #2308 from lioncash/deduction
...
kernel/scheduler: Minor tidying up
2019-03-30 19:59:10 -04:00
Lioncash
824b8e4086
kernel/scheduler: Remove unused parameter to AddThread()
...
This was made unused in b404fcdf14
, but
the parameter itself wasn't removed.
2019-03-30 05:29:33 -04:00
Lioncash
cb805f45ae
kernel/scheduler: Use deduction guides on mutex locks
...
Since C++17, we no longer need to explicitly specify the type of the
mutex within the lock_guard. The type system can now deduce these with
deduction guides.
2019-03-30 05:28:43 -04:00
Lioncash
4b33a346ed
service/fatal: Mark local variables as const where applicable
2019-03-30 03:06:23 -04:00
Lioncash
11505d3d9f
service/fatal: Remove unnecessary semicolon
...
Resolves a -Wextra-semi warning.
2019-03-30 03:04:16 -04:00
Lioncash
cc737e5832
service/fatal: Name FatalInfo structure members
...
Based off RE, most of these structure members are register values, which
makes, sense given this service is used to convey fatal errors.
One member indicates the program entry point address, one is a set of
bit flags used to determine which registers to print, and one member
indicates the architecture type.
The only member that still isn't determined is the final member within
the data structure.
2019-03-30 03:01:20 -04:00
ReinUsesLisp
e8abe4b77c
gl_shader_decompiler: Add AOFFI backing implementation
2019-03-30 02:55:18 -03:00
ReinUsesLisp
cb68ce7c2f
shader_ir/decode: Implement AOFFI for TEX and TLD4
2019-03-30 02:53:29 -03:00
ReinUsesLisp
cf4ecc1945
shader_ir: Implement immediate register tracking
2019-03-30 02:53:16 -03:00
Lioncash
108be41316
kernel/shared_memory: Remove unused core/memory.h include
...
Nothing from this header is used, so we can remove this include, getting
rid of a dependency on it.
2019-03-29 18:16:22 -04:00
Lioncash
c6147a439d
kernel/shared_memory: Sanitize supplied size when unmapping
...
The kernel makes sure that the given size to unmap is always the same
size as the entire region managed by the shared memory instance,
otherwise it returns an error code signifying an invalid size.
This is similarly done for transfer memory (which we already check for).
2019-03-29 18:16:19 -04:00
Lioncash
394095438a
common/thread: Remove unused functions
...
Many of these functions are carried over from Dolphin (where they aren't
used anymore). Given these have no use (and we really shouldn't be
screwing around with OS-specific thread scheduler handling from the
emulator, these can be removed.
The function for setting the thread name is left, however, since it can
have debugging utility usages.
2019-03-29 13:26:21 -04:00
unknown
b4857e326f
common/zstd_compression: simplify decompression interface
2019-03-29 18:22:08 +01:00
unknown
aa92da205e
gl_shader_disk_cache: Fixup clang format
2019-03-29 18:22:08 +01:00
unknown
35ebbbc167
gl_shader_disk_cache: Use Zstandard for compression
2019-03-29 18:22:08 +01:00
unknown
72477731ed
common/zstd_compression: Add Zstandard wrapper
2019-03-29 18:22:08 +01:00
unknown
ca82589350
common: Link libzstd_static
2019-03-29 18:22:07 +01:00
unknown
a05f94dcc8
Addressed feedback
2019-03-29 18:22:07 +01:00
unknown
cec7da37b9
core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead.
2019-03-29 18:20:48 +01:00
unknown
4fad477aeb
gl_shader_disk_cache: Use LZ4HC with compression level 9 instead of compression level 12 for less compression time
2019-03-29 18:13:00 +01:00
unknown
c791192d64
Addressed feedback
2019-03-29 18:12:42 +01:00
unknown
6a1a2d4aa5
core: Do not link LZ4 to core. Use common/data_compression for nso segment decompression instead.
2019-03-29 16:42:34 +01:00
unknown
74cee1b65d
gl_shader_disk_cache: Use better compression for transferable and precompiled shader disk chache files
2019-03-29 16:42:19 +01:00
unknown
798d76f4c7
data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compression
2019-03-29 16:42:19 +01:00
fearlessTobi
ff7e6a42c1
core/yuzu: Remove enable_nfc setting
...
This was initially added to prevent problems from stubbed/not implemented NFC services, but as we never encountered such and as it's only used in a deprecated function anyway, I guess we can just remove it to prevent more clutter of the settings.
2019-03-29 15:02:28 +01:00
ReinUsesLisp
746dab407e
vk_swapchain: Implement a swapchain manager
2019-03-29 00:00:51 -03:00
Lioncash
3a846aa80f
kernel/process: Report total physical memory used to svcGetInfo
...
Reports the (mostly) correct size through svcGetInfo now for queries to
total used physical memory. This still doesn't correctly handle memory
allocated via svcMapPhysicalMemory, however, we don't currently handle
that case anyways.
2019-03-28 22:59:20 -04:00
Lioncash
2289e895aa
kernel/process: Store the total size of the code memory loaded
...
This will be necessary to properly report the used memory size in
svcGetInfo.
2019-03-28 22:51:17 -04:00
bunnei
f770c17d01
Merge pull request #2266 from FernandoS27/arbitration
...
Kernel: Fixes to Arbitration and SignalProcessWideKey Management
2019-03-28 21:42:24 -04:00
bunnei
b404fcdf14
Merge pull request #2265 from FernandoS27/multilevelqueue
...
Replace old Thread Queue for a new Multi Level Queue
2019-03-28 21:41:40 -04:00
Lioncash
5d4ab5ec2f
kernel/process: Store the main thread stack size to a data member
...
This will be necessary in order to properly report memory usage within
svcGetInfo.
2019-03-28 18:45:06 -04:00
Lioncash
427f1e3e3d
kernel/process: Make Run's stack size parameter a u64
...
This will make operating with the process-related SVC commands much
nicer in the future (the parameter representing the stack size in
svcStartProcess is a 64-bit value).
2019-03-28 18:26:12 -04:00
Lioncash
2aca7b9e1e
kernel/process: Ensure that given stack size is always page-aligned
...
The kernel always makes sure that the given stack size is aligned to
page boundaries.
2019-03-28 18:25:00 -04:00
bunnei
16dc3a1dd5
Merge pull request #2284 from lioncash/heap-alloc
...
kernel/vm_manager: Unify heap allocation/freeing functions
2019-03-28 17:56:49 -04:00
bunnei
76f024865d
Merge pull request #2296 from lioncash/override
...
video_core: Add missing override specifiers
2019-03-28 17:54:51 -04:00
Lioncash
c1ba3e3d4a
gl_shader_manager: Remove unnecessary gl_shader_manager inclusion
...
This isn't used at all in the OpenGL shader cache, so we can remove it's
include here, meaning one less file needs to be recompiled if any
changes ever occur within that header.
core/memory.h is also not used within this file at all, so we can remove
it as well.
2019-03-28 11:16:25 -04:00
Lioncash
1650593927
gl_shader_manager: Move using statement into the cpp file
...
Avoids introducing Maxwell3D into the namespace for everything that
includes the header.
2019-03-28 11:16:21 -04:00
Lioncash
7d88fc83bf
gl_shader_manager: Remove reliance on global accessor within MaxwellUniformData::SetFromRegs()
...
We can just pass in the Maxwell3D instance instead of going through the
system class to get at it.
This also lets us simplify the interface a little bit. Since we pass in
the Maxwell3D context now, we only really need to pass the shader stage
index value in.
2019-03-28 11:14:24 -04:00
Zach Hilman
552d5071fa
patch_manager: Dump NSO name with build ID
2019-03-27 20:09:01 -04:00
Fernando Sahmkow
db42bcb306
Fixes and corrections on formatting.
2019-03-27 14:49:43 -04:00
Fernando Sahmkow
f35e09fe0d
Fixes to multilevelqueue's iterator.
2019-03-27 14:34:33 -04:00
Fernando Sahmkow
dde0814837
Use MultiLevelQueue instead of old ThreadQueueList
2019-03-27 14:34:32 -04:00
Fernando Sahmkow
9dbba9240b
Add MultiLevelQueue Tests
2019-03-27 14:34:31 -04:00
Fernando Sahmkow
3bc815a5dc
Implement intrinsics CountTrailingZeroes and test it.
2019-03-27 14:34:29 -04:00
Fernando Sahmkow
522957f9f3
Implement a MultiLevelQueue
2019-03-27 14:33:44 -04:00
Lioncash
d68716efdc
gl_shader_manager: Amend Doxygen string for MaxwellUniformData
...
Previously only one line of the whole comment was in proper Doxygen
formatting.
2019-03-27 13:10:43 -04:00
Lioncash
947d364dba
gpu_thread: Remove unused dma_pusher class member variable from ThreadManager
...
The pusher instance is only ever used in the constructor of the
ThreadManager for creating the thread that the ThreadManager instance
contains. Aside from that, the member is unused, so it can be removed.
2019-03-27 12:51:21 -04:00
Lioncash
e2131f7310
gl_rasterizer: Remove unused reference member variable from RasterizerOpenGL
...
This member variable is no longer being used, so it can be removed,
removing a dependency on EmuWindow from the rasterizer's interface"
2019-03-27 12:45:59 -04:00
Lioncash
a5fa4b311e
video_core: Amend constructor initializer list order where applicable
...
Specifies the members in the same order that initialization would take
place in.
This also silences -Wreorder warnings.
2019-03-27 12:37:53 -04:00
Lioncash
bbe700359d
video_core: Add missing override specifiers
...
Ensures that the signatures will always match with the base class.
Also silences a few compilation warnings.
2019-03-27 12:24:52 -04:00
Lioncash
e36f1a5ba9
video_core/gpu: Amend typo in GPU member variable name
...
smaphore -> semaphore
2019-03-27 12:12:57 -04:00
Zach Hilman
41d2565f29
game_list: Register content with ContentProvider
2019-03-26 22:05:37 -04:00
Zach Hilman
60f39060c6
core: Port current uses of RegisteredCache to ContentProvider
2019-03-26 22:05:37 -04:00
Zach Hilman
45cb41f517
core: Store system-wide ContentProvider for the emulator
2019-03-26 22:05:37 -04:00
Zach Hilman
a6c7ae6fe8
file_sys: Create ContentProvider interface and default implementations
2019-03-26 22:03:26 -04:00
Lioncash
758d84db9a
service/am: Implement EnterFatalSection and LeaveFatalSection
...
These functions act in tandem similar to how a lock or mutex require a
balanced lock()/unlock() sequence.
EnterFatalSection simply increments a counter for how many times it has
been called, while LeaveFatalSection ensures that a previous call to
EnterFatalSection has occured. If a previous call has occurred (the
counter is not zero), then the counter gets decremented as one would
expect. If a previous call has not occurred (the counter is zero), then
an error code is returned.
2019-03-26 17:02:42 -04:00
Lioncash
96d518a59f
service/am: Sort ISelfController's member functions according to table order
...
Makes the declaration order of the handling functions consistent with
the handler table itself.
2019-03-26 17:02:29 -04:00
bunnei
47f2405ab1
Merge pull request #2285 from lioncash/unused-struct
...
kernel/process: Remove unused AddressMapping struct
2019-03-26 11:17:03 -04:00
bunnei
595511876e
Merge pull request #2287 from lioncash/coretiming-cb
...
core/core_timing: Make callback parameters consistent
2019-03-25 21:06:33 -04:00
bunnei
8a24a804c5
Merge pull request #2286 from lioncash/fwd
...
kernel/kernel: Remove unnecessary forward declaration
2019-03-25 21:05:33 -04:00
ReinUsesLisp
9ebc27234d
bootmanager: Bypass input focus issues
2019-03-25 17:10:34 -03:00
ReinUsesLisp
bbb396d7f1
bootmanager: Bypass resizing issue
2019-03-25 17:10:34 -03:00
ReinUsesLisp
9ff72ca9f2
bootmanager: Delete container to avoid crash on game restarting
...
While we are at it, remove nullptr checks for deletion, since the C++
standard defines that delete does it by its own
2019-03-25 17:10:34 -03:00
Lioncash
b26481c94b
core/cheat_engine: Make MemoryReadImpl and MemoryWriteImpl internally linked
...
These don't need to be visible outside of the translation unit, so they
can be enclosed within an anonymous namespace.
2019-03-24 18:34:42 -04:00
Lioncash
c5d41fd812
core/core_timing: Make callback parameters consistent
...
In some cases, our callbacks were using s64 as a parameter, and in other
cases, they were using an int, which is inconsistent.
To make all callbacks consistent, we can just use an s64 as the type for
late cycles, given it gets rid of the need to cast internally.
While we're at it, also resolve some signed/unsigned conversions that
were occurring related to the callback registration.
2019-03-24 18:12:17 -04:00
Lioncash
bd7ec1a749
kernel/kernel: Remove unnecessary forward declaration
...
This is no longer necessary, as ResultVal isn't used anywhere in the
header.
2019-03-24 17:48:54 -04:00
Lioncash
7c4bc7b883
kernel/process: Remove unused AddressMapping struct
...
Another leftover from citra that's now no longer necessary.
2019-03-24 17:40:11 -04:00
Lioncash
1e92ba2785
kernel/vm_manager: Handle shrinking of the heap size within SetHeapSize()
...
One behavior that we weren't handling properly in our heap allocation
process was the ability for the heap to be shrunk down in size if a
larger size was previously requested.
This adds the basic behavior to do so and also gets rid of HeapFree, as
it's no longer necessary now that we have allocations and deallocations
going through the same API function.
While we're at it, fully document the behavior that this function
performs.
2019-03-24 17:08:30 -04:00
Lioncash
99a163478b
kernel/vm_manager: Rename HeapAllocate to SetHeapSize
...
Makes it more obvious that this function is intending to stand in for
the actual supervisor call itself, and not acting as a general heap
allocation function.
Also the following change will merge the freeing behavior of HeapFree
into this function, so leaving it as HeapAllocate would be misleading.
2019-03-24 17:08:30 -04:00
Lioncash
abdb81ccaf
kernel/vm_manager: Handle case of identical calls to HeapAllocate
...
In cases where HeapAllocate is called with the same size of the current
heap, we can simply do nothing and return successfully.
This avoids doing work where we otherwise don't have to. This is also
what the kernel itself does in this scenario.
2019-03-24 17:08:30 -04:00
Lioncash
9f63acac0f
kernel/vm_manager: Remove unused class variables
...
Over time these have fallen out of use due to refactoring, so these can
be removed.
2019-03-24 17:08:30 -04:00
Lioncash
52980df1aa
kernel/vm_manager: Remove unnecessary heap_used data member
...
This isn't required anymore, as all the kernel ever queries is the size
of the current heap, not the total usage of it.
2019-03-24 17:08:16 -04:00
Lioncash
586cab6172
kernel/vm_manager: Tidy up heap allocation code
...
Another holdover from citra that can be tossed out is the notion of the
heap needing to be allocated in different addresses. On the switch, the
base address of the heap will always be managed by the memory allocator
in the kernel, so this doesn't need to be specified in the function's
interface itself.
The heap on the switch is always allocated with read/write permissions,
so we don't need to add specifying the memory permissions as part of the
heap allocation itself either.
This also corrects the error code returned from within the function.
If the size of the heap is larger than the entire heap region, then the
kernel will report an out of memory condition.
2019-03-24 16:17:31 -04:00
bunnei
3f74518e19
Merge pull request #2232 from lioncash/transfer-memory
...
core/hle/kernel: Split transfer memory handling out into its own class
2019-03-24 16:00:23 -04:00
bunnei
1665b70cc6
Merge pull request #2221 from DarkLordZach/firmware-version
...
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
2019-03-23 13:48:29 -04:00
bunnei
f08db7295a
Merge pull request #2253 from lioncash/flags
...
Migrate off directly modifying CMAKE_* compilation-related flags directly
2019-03-23 13:46:53 -04:00
bunnei
6af322a347
Merge pull request #2280 from lioncash/nso
...
loader/nso: Minor refactoring
2019-03-23 13:46:09 -04:00
Lioncash
c0a01f3adc
kernel/codeset: Make CodeSet's memory data member a regular std::vector
...
The use of a shared_ptr is an implementation detail of the VMManager
itself when mapping memory. Because of that, we shouldn't require all
users of the CodeSet to have to allocate the shared_ptr ahead of time.
It's intended that CodeSet simply pass in the required direct data, and
that the memory manager takes care of it from that point on.
This means we just do the shared pointer allocation in a single place,
when loading modules, as opposed to in each loader.
2019-03-22 18:43:46 -04:00
bunnei
819dd93257
Merge pull request #2279 from lioncash/cheat-global
...
file_sys/cheat_engine: Remove use of global system accessors
2019-03-22 18:41:44 -04:00
bunnei
e5893db3e6
Merge pull request #2256 from bunnei/gpu-vmm
...
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-22 18:41:12 -04:00
bunnei
a7157fe27d
Merge pull request #2277 from bunnei/fix-smo-transitions
...
Revert "Devirtualize Register/Unregister and use a wrapper instead."
2019-03-22 18:40:53 -04:00
Lioncash
f3297d8cd1
loader/nso: Place translation unit specific functions into an anonymous namespace
...
Makes it impossible to indirectly violate the ODR in some other
translation unit due to these existing.
2019-03-22 15:25:53 -04:00
Lioncash
733cf179b8
file_sys/cheat_engine: Silence truncation and sign-conversion warnings
2019-03-22 14:43:41 -04:00
Lioncash
540235bb05
file_sys/cheat_engine: Remove use of global system accessors
...
Instead, pass in the core timing instance and make the dependency
explicit in the interface.
2019-03-22 14:43:37 -04:00
Lioncash
611f4666fd
loader/nso: Clean up use of magic constants
...
Now that the NSO header has the proper size, we can just use sizeof on
it instead of having magic constants.
2019-03-22 14:39:17 -04:00
Lioncash
1cf90f4570
file_sys/patch_manager: Deduplicate NSO header
...
This source file was utilizing its own version of the NSO header.
Instead of keeping this around, we can have the patch manager also use
the version of the header that we have defined in loader/nso.h
2019-03-22 14:39:10 -04:00
Lioncash
90e27ea003
loader/nso: Fix definition of the NSO header struct
...
The total struct itself is 0x100 (256) bytes in size, so we should be
providing that amount of data.
Without the data, this can result in omitted data from the final loaded
NSO file.
2019-03-22 14:26:58 -04:00
Lioncash
ee49e1fcb6
file_sys/patch_manager: Remove two magic values
...
These correspond to the NSOBuildHeader.
2019-03-22 14:17:50 -04:00
ReinUsesLisp
d708d03d20
video_core: Implement API agnostic view based texture cache
...
Implements an API agnostic texture view based texture cache. Classes
defined here are intended to be inherited by the API implementation and
used in API-specific code.
This implementation exposes protected virtual functions to be called
from the implementer.
Before executing any surface copies methods (defined in API-specific code)
it tries to detect if the overlapping surface is a superset and if it
is, it creates a view. Views are references of a subset of a surface, it
can be a superset view (the same as referencing the whole texture).
Current code manages 1D, 1D array, 2D, 2D array, cube maps and cube map
arrays with layer and mipmap level views. Texture 3D slices views are
not implemented.
If the view attempt fails, the fast path is invoked with the overlapping
textures (defined in the implementer). If that one fails (returning
nullptr) it will flush and reload the texture.
2019-03-22 13:34:04 -03:00
bunnei
7b6d516faa
Merge pull request #2234 from lioncash/mutex
...
core/hle/kernel: Make Mutex a per-process class.
2019-03-21 22:18:36 -04:00
bunnei
b78e7b3454
Merge pull request #2274 from lioncash/include
...
core/memory: Remove unnecessary includes
2019-03-21 22:14:27 -04:00
bunnei
d0dddb3e9d
Revert "Devirtualize Register/Unregister and use a wrapper instead."
...
- Fixes graphical issues from transitions in Super Mario Odyssey.
2019-03-21 21:56:56 -04:00
bunnei
4d95adcac5
Merge pull request #2275 from lioncash/memflags
...
kernel/vm_manager: Amend flag value for code data
2019-03-21 21:43:15 -04:00
bunnei
e703772c83
Merge pull request #2276 from lioncash/am
...
service/am: Add function table for IDebugFunctions
2019-03-21 21:42:17 -04:00
bunnei
639f0c524d
Merge pull request #1933 from DarkLordZach/cheat-engine
...
file_sys: Implement parser and interpreter for game memory cheats
2019-03-21 21:41:59 -04:00
Lioncash
76f27d1f44
service/am: Add function table for IDebugFunctions
...
We already have the service related stuff set up for this, however, it's
missing the function table.
2019-03-21 15:58:03 -04:00
Lioncash
18918f5f2f
kernel/vm_manager: Rename CodeStatic/CodeMutable to Code and CodeData respectively
...
Makes it more evident that one is for actual code and one is for actual
data. Mutable and static are less than ideal terms here, because
read-only data is technically not mutable, but we were mapping it with
that label.
2019-03-21 11:43:35 -04:00
Lioncash
56c80a2a21
kernel/vm_manager: Amend flag values for CodeMutable
...
This should actually be using the data flags, rather than the code
flags.
2019-03-21 11:23:14 -04:00
Lioncash
c221308a66
core/memory: Remove unnecessary includes
...
In 93da8e0abf
, the page table construct
was moved to the common library (which utilized these inclusions). Since
the move, nothing requires these headers to be included within the
memory header.
2019-03-21 09:48:54 -04:00
bunnei
839c0f829b
Merge pull request #2260 from lioncash/sdl
...
input_common/sdl: Correct return values within GetPollers implementations
2019-03-21 00:20:49 -04:00
Lioncash
109b78a6d6
common/bit_util: Fix bad merge duplicating the copy constructor
...
Introduced as a result of #2090 , we already define the copy constructor
further down below, so this isn't needed.
2019-03-20 23:48:37 -04:00
bunnei
3e930304fe
Merge pull request #2090 from FearlessTobi/port-4599
...
Port citra-emu/citra#4244 and citra-emu/citra#4599 : Changes to BitField
2019-03-20 23:44:20 -04:00
bunnei
52f36ea1c7
Merge pull request #2262 from lioncash/enum
...
file_sys/content_archive: Amend name of Data_Unknown5 enum entry
2019-03-20 23:13:32 -04:00
bunnei
b72664abfd
Merge pull request #2273 from lioncash/guard
...
common/uint128: Add missing header guard
2019-03-20 23:13:06 -04:00
bunnei
2117edd0f8
memory_manager: Cleanup FindFreeRegion.
2019-03-20 23:12:28 -04:00
bunnei
5a5fccaa23
memory_manager: Use Common::AlignUp in public interface as needed.
2019-03-20 22:58:49 -04:00
Lioncash
f2c41ba256
common/uint128: Add missing header guard
2019-03-20 22:39:00 -04:00
Lioncash
b0d70096a1
common/uint128: Add missing top-file source text
2019-03-20 22:38:25 -04:00
bunnei
e76f442a0e
Merge pull request #2268 from lioncash/codeset
...
core/kernel: Migrate CodeSet to its own source files
2019-03-20 22:37:58 -04:00
bunnei
72837e4b3d
memory_manager: Bug fixes and further cleanup.
2019-03-20 22:36:03 -04:00
bunnei
3ae0de9b53
memory: Check that core is powered on before attempting to use GPU.
...
- GPU will be released on shutdown, before pages are unmapped.
- On subsequent runs, current_page_table will be not nullptr, but GPU might not be valid yet.
2019-03-20 22:36:03 -04:00
bunnei
19330f45d3
maxwell_dma: Check for valid source in destination before copy.
...
- Avoid a crash in Octopath Traveler.
2019-03-20 22:36:03 -04:00
bunnei
197dcf0b5e
memory_manager: Add protections for invalid GPU addresses.
...
- Avoid a crash in Xenoblade Chronicles 2.
2019-03-20 22:36:03 -04:00
bunnei
21eb4cfa7f
gl_rasterizer_cache: Check that backing memory is valid before creating a surface.
...
- Fixes a crash in Puyo Puyo Tetris.
2019-03-20 22:36:02 -04:00
bunnei
22d3dfbcd4
gpu: Rewrite virtual memory manager using PageTable.
2019-03-20 22:36:02 -04:00
bunnei
241563d15c
gpu: Move GPUVAddr definition to common_types.
2019-03-20 22:36:02 -04:00
Lioncash
1b6adb5308
common/CMakeLists: Amend boost dependency
...
When #2247 was created, thread_queue_list.h was the only user of
boost-related code, however #2252 moved the page table struct into
common, which makes use of Boost.ICL, so we need to add the dependency
to the common library's link interface again.
2019-03-20 21:42:13 -04:00
bunnei
872a7bee72
Merge pull request #2267 from FernandoS27/fix-2238
...
Fix crash caused by #2238 .
2019-03-20 21:36:55 -04:00
bunnei
e8ff8a66b0
Merge pull request #2247 from lioncash/include
...
common/thread_queue_list: Remove unnecessary dependency on boost
2019-03-20 21:34:12 -04:00
bunnei
723ad4512f
Merge pull request #2224 from lioncash/opus
...
hwopus: Leverage multistream API for decoding regular Opus packets
2019-03-20 21:33:37 -04:00
bunnei
c1409602da
Merge pull request #2239 from FearlessTobi/port-4684
...
Port citra-emu/citra#4684 : "frontend: qt: fix a freeze where if you click on entry in the game list too fast, citra will hang"
2019-03-20 21:33:05 -04:00
Lioncash
8f454a5c68
kernel/process: Make MapSegment lambda reference parameter const
...
The segment itself isn't actually modified.
2019-03-20 13:07:09 -04:00
Lioncash
1b6bd9d6df
kernel: Move CodeSet structure to its own source files
...
Given this is utilized by the loaders, this allows avoiding inclusion of
the kernel process definitions where avoidable.
This also keeps the loading format for all executable data separate from
the kernel objects.
2019-03-20 13:07:04 -04:00
bunnei
9d11303a36
Merge pull request #2264 from lioncash/linker
...
core/loader: Remove vestigial Linker class
2019-03-20 12:31:00 -04:00
Fernando Sahmkow
8a320a6ee2
Fix crash caused by 2238.
2019-03-19 22:45:34 -04:00
Fernando Sahmkow
9c7319a4d4
Fix small bug that kept a thread as a condvar thread after being signalled.
2019-03-19 22:43:13 -04:00
Lioncash
1342c53e27
loader: Remove Linker class
...
Given the class is now currently unused, it can be removed.
2019-03-19 21:32:02 -04:00
Lioncash
ab00552118
loader: Remove Linker inheritance from NRO and NSO loaders
...
Neither the NRO or NSO loaders actually make use of the functions or
members provided by the Linker interface, so we can just remove the
inheritance altogether.
2019-03-19 21:31:59 -04:00
Fernando Sahmkow
acbdfdae64
Add CondVar Thread State.
2019-03-19 20:32:47 -04:00
Fernando Sahmkow
774f139e65
Small fixes to address_arbiter to better match the IDB.
2019-03-19 20:32:46 -04:00
xperia64
ec74a4fd4a
Fix getopt on systems where char is unsigned by default
2019-03-19 23:53:40 +01:00
Lioncash
b8c7072206
file_sys/content_archive: Amend name of Data_Unknown5 enum entry
...
While we're at it, give each entry some documentation.
2019-03-19 15:58:38 -04:00
bunnei
746167f11a
Merge pull request #2258 from lioncash/am
...
service/am: Supply remaining missing IAudioController functions
2019-03-18 22:20:36 -04:00
Lioncash
eb335f51ca
input_common/sdl: Correct return values within implementations of GetPollers()
...
In both cases, we weren't actually returning anything, which is
undefined behavior.
2019-03-18 11:40:38 -04:00
Lioncash
874826b6dd
input_common/sdl: Use a type alias to shorten declaration of GetPollers
...
Just makes the definitions a little bit more tidy.
2019-03-18 11:40:35 -04:00
bunnei
8dc2f01eae
Merge pull request #2259 from lioncash/fsp
...
fsp_srv: Unstub SetCurrentProcess
2019-03-18 11:13:52 -04:00
bunnei
e05136f70b
Merge pull request #2254 from lioncash/redundant
...
input_common/sdl_impl: Minor cleanup in SDLState constructor
2019-03-18 11:13:20 -04:00
Lioncash
9f092554c2
fsp_srv: Unstub SetCurrentProcess
...
This just acts as a basic setter for a given PID value and performs no
further checking, so we can just store the passed in value.
2019-03-18 10:38:01 -04:00
Lioncash
26b809549b
service/am: Add basic implementation of ChangeMainAppletMasterVolume
...
All this does is supply a new volume level and a fade time in
nanoseconds for the volume transition to occur within.
2019-03-18 09:18:34 -04:00
Lioncash
c07ebeac19
service/am: Unstub SetTransparentVolumeRate()
...
Like the other volume setter, this mainly just sets a data member within
the service, nothing too special.
2019-03-18 09:18:34 -04:00
Lioncash
ecd3afdc8e
service/am: Unstub SetExpectedMasterVolume()
...
This function passes in the desired main applet and library applet
volume levels. We can then just pass those values back within the
relevant volume getter functions, allowing us to unstub those as well.
The initial values for the library and main applet volumes differ. The
main applet volume is 0.25 by default, while the library applet volume
is initialized to 1.0 by default in the services themselves.
2019-03-18 09:18:34 -04:00
bunnei
30f228a8c9
Merge pull request #2238 from lioncash/thread
...
kernel/thread: Amend conditional test and assignment within UpdatePriority()
2019-03-17 22:27:33 -04:00
bunnei
57ca1e3e69
Merge pull request #2252 from bunnei/move-page-table
...
core: Move PageTable struct into Common.
2019-03-17 14:42:57 -04:00
Lioncash
e6612d6d8d
CMakeLists: Move off of modifying CMAKE_*-related flags
...
Modifying CMAKE_* related flags directly applies those changes to every
single CMake target. This includes even the targets we have in the
externals directory.
So, if we ever increased our warning levels, or enabled particular ones,
or enabled any other compilation setting, then this would apply to
externals as well, which is often not desirable.
This makes our compilation flag setup less error prone by only applying
our settings to our targets and leaving the externals alone entirely.
This also means we don't end up clobbering any provided flags on the
command line either, allowing users to specifically use the flags they
want.
2019-03-17 06:55:24 -04:00
Lioncash
114060fd87
input_common/sdl_impl: Make lambda capture more specific in SDLState constructor
...
We don't need to universally capture by reference. We specifically just
need to capture the this pointer.
2019-03-17 04:02:52 -04:00
Lioncash
d74aa13bd3
input_common/sdl_impl: Remove unnecessary std::chrono::duration construction
...
Specifying the time unit itself is sufficient here.
2019-03-17 04:02:52 -04:00
Lioncash
834d3fe336
input_common/sdl_impl: Remove unused variable in SDLState constructor
2019-03-17 04:02:48 -04:00
Lioncash
13bc74e957
CMakeLists: Move compilation flags into the src directory
...
We generally shouldn't be hijacking CMAKE_CXX_FLAGS, etc as a means to
append flags to the targets, since this adds the compilation flags to
everything, including our externals, which can result in weird issues
and makes the build hierarchy fragile.
Instead, we want to just apply these compilation flags to our targets,
and let those managing external libraries to properly specify their
compilation flags.
This also results in us not getting as many warnings, as we don't raise
the warning level on every external target.
2019-03-17 01:49:09 -04:00
bunnei
41566c615b
Merge pull request #2251 from bunnei/skip-zero-flush
...
gl_rasterizer: Skip zero addr/sized regions on flush/invalidate.
2019-03-17 01:40:32 -04:00
bunnei
9ad3b01d30
Merge pull request #2249 from lioncash/ipc
...
ipc_helpers: Allow pushing and popping floating-point values
2019-03-16 22:22:03 -04:00
bunnei
ed7a1e1443
Merge pull request #2245 from lioncash/unused-def
...
kernel/thread: Actually remove the definition of ExitCurrentThread()
2019-03-16 22:12:40 -04:00
bunnei
93da8e0abf
core: Move PageTable struct into Common.
2019-03-16 22:05:40 -04:00
bunnei
032e4c4ca3
gl_rasterizer: Skip zero addr/sized regions on flush/invalidate.
2019-03-16 22:03:19 -04:00
bunnei
2392e146b0
Merge pull request #2244 from bunnei/gpu-mem-refactor
...
video_core: Refactor to use MemoryManager interface for all memory access.
2019-03-16 21:59:45 -04:00
bunnei
bf41132aa9
Merge pull request #2243 from bunnei/mem-simplify-cache
...
memory: Simplify rasterizer cache operations.
2019-03-16 21:59:30 -04:00
bunnei
059465d496
Merge pull request #2129 from FernandoS27/cntpct
...
Correct CNTPCT from using CPU Cycles to using Clock Cycles
2019-03-16 21:58:59 -04:00
Lioncash
64444ff481
ipc_helpers: Allow pushing and popping floating-point values
...
Certain values that are passed through the IPC buffer are actually
floating point values, not solely integral values.
2019-03-16 14:05:03 -04:00
Lioncash
f71c598907
common/thread_queue_list: Remove unnecessary dependency on boost
...
We really don't need to pull in several headers of boost related
machinery just to perform the erase-remove idiom (particularly with
C++20 around the corner, which adds universal container std::erase and
std::erase_if, which we can just use instead).
With this, we don't need to link in anything boost-related into common.
2019-03-16 05:01:39 -04:00
Lioncash
99f982dce2
kernel/thread: Actually remove the definition of ExitCurrentThread()
...
This was intended to be removed in
51d7f6bffc
, but I guess I forgot to
actually save the file like a dingus.
2019-03-16 00:51:44 -04:00
bunnei
bdf2da4ee8
Merge pull request #2242 from lioncash/thread-fn
...
kernel/thread: Remove WaitCurrentThread_Sleep() and ExitCurrentThread()
2019-03-16 00:43:09 -04:00
bunnei
10118c71e0
memory: Simplify rasterizer cache operations.
2019-03-16 00:41:08 -04:00
bunnei
574e89d924
video_core: Refactor to use MemoryManager interface for all memory access.
...
# Conflicts:
# src/video_core/engines/kepler_memory.cpp
# src/video_core/engines/maxwell_3d.cpp
# src/video_core/morton.cpp
# src/video_core/morton.h
# src/video_core/renderer_opengl/gl_global_cache.cpp
# src/video_core/renderer_opengl/gl_global_cache.h
# src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
2019-03-16 00:38:48 -04:00
bunnei
47b622825c
Merge pull request #2237 from bunnei/cache-host-addr
...
gpu: Use host address for caching instead of guest address.
2019-03-16 00:05:24 -04:00
Lioncash
51d7f6bffc
kernel/thread: Move thread exiting logic from ExitCurrentThread to svcExitThread
...
Puts the operation on global state in the same places as the rest of the
svc calls.
2019-03-15 23:58:37 -04:00
Lioncash
c892cf01fa
kernel/thread: Migrate WaitCurrentThread_Sleep into the Thread interface
...
Rather than make a global accessor for this sort of thing. We can make
it a part of the thread interface itself. This allows getting rid of a
hidden global accessor in the kernel code.
2019-03-15 23:58:31 -04:00
Lioncash
db47d7e471
kernel/thread: Expand documentation of nominal_priority and current_priority
...
Aims to disambiguate why each priority instance exists a little bit.
While we're at it, also add an explanatory comment to UpdatePriority().
2019-03-15 23:02:14 -04:00
Lioncash
e0d1f11968
kernel/thread: Make bracing consistent within UpdatePriority()
2019-03-15 23:02:10 -04:00
Lioncash
39483b92b7
kernel/thread: Amend condition within UpdatePriority()
...
This condition was checking against the nominal thread priority, whereas
the kernel itself checks against the current priority instead. We were
also assigning the nominal priority, when we should be assigning
current_priority, which takes priority inheritance into account.
This can lead to the incorrect priority being assigned to a thread.
Given we recursively update the relevant threads, we don't need to go
through the whole mutex waiter list. This matches what the kernel does
as well (only accessing the first entry within the waiting list).
2019-03-15 23:01:43 -04:00
Lioncash
0b78cfcc53
kernel/thread: Maintain priority ordering of added mutex waiting threads
...
The kernel keeps the internal waiting list ordered by priority. This is
trivial to do with std::find_if followed by an insertion.
2019-03-15 23:01:39 -04:00
Adityarup Laha
57a4a2ae0f
yuzu: Make hotkeys configurable via the GUI
...
* Adds a new Hotkeys tab in the Controls group.
* Double-click a Hotkey to rebind it.
2019-03-16 03:55:57 +01:00
bunnei
06ac6460d3
Merge pull request #2048 from FearlessTobi/port-3924
...
Port citra-emu/citra#3924 : "citra_qt: Settings (configuration) rework"
2019-03-15 22:23:38 -04:00
Dimitri A
0e7ad1c367
gdbstub: Fix some bugs in IsMemoryBreak() and ServeBreak. Add workaround to let watchpoints break into GDB. ( #4651 )
...
* gdbstub: fix IsMemoryBreak() returning false while connected to client
As a result, the only existing codepath for a memory watchpoint hit to break into GDB (InterpeterMainLoop, GDB_BP_CHECK, ARMul_State::RecordBreak) is finally taken,
which exposes incorrect logic* in both RecordBreak and ServeBreak.
* a blank BreakpointAddress structure is passed, which sets r15 (PC) to NULL
* gdbstub: DynCom: default-initialize two members/vars used in conditionals
* gdbstub: DynCom: don't record memory watchpoint hits via RecordBreak()
For now, instead check for GDBStub::IsMemoryBreak() in InterpreterMainLoop and ServeBreak.
Fixes PC being set to a stale/unhit breakpoint address (often zero) when a memory watchpoint (rwatch, watch, awatch) is handled in ServeBreak() and generates a GDB trap.
Reasons for removing a call to RecordBreak() for memory watchpoints:
* The``breakpoint_data`` we pass is typed Execute or None. It describes the predicted next code breakpoint hit relative to PC;
* GDBStub::IsMemoryBreak() returns true if a recent Read/Write operation hit a watchpoint. It doesn't specify which in return, nor does it trace it anywhere. Thus, the only data we could give RecordBreak() is a placeholder BreakpointAddress at offset NULL and type Access. I found the idea silly, compared to simply relying on GDBStub::IsMemoryBreak().
There is currently no measure in the code that remembers the addresses (and types) of any watchpoints that were hit by an instruction, in order to send them to GDB as "extended stop information."
I'm considering an implementation for this.
* gdbstub: Change an ASSERT to DEBUG_ASSERT
I have never seen the (Reg[15] == last_bkpt.address) assert fail in practice, even after several weeks of (locally) developping various branches around GDB. Only leave it inside Debug builds.
2019-03-15 16:31:06 +01:00
liushuyu
59f16f2e02
frontend: qt: fix a freeze where if you click on entry in the game list too fast, citra will hang
2019-03-15 16:10:21 +01:00
bunnei
2eaf6c41a4
gpu: Use host address for caching instead of guest address.
2019-03-14 22:34:42 -04:00
bunnei
84d3cdf7d7
Merge pull request #2233 from ReinUsesLisp/morton-cleanup
...
video_core/morton: Miscellaneous changes
2019-03-14 21:23:12 -04:00
bunnei
6788ebffc8
Merge pull request #2229 from ReinUsesLisp/vk-sampler-cache
...
vk_sampler_cache: Implement a sampler cache
2019-03-14 21:22:34 -04:00
Lioncash
d71cad6ed0
core/hle/kernel/mutex: Remove usages of global system accessors
...
Removes the use of global system accessors, and instead uses the
explicit interface provided.
2019-03-14 20:55:52 -04:00
Lioncash
555cd26ec2
core/hle/kernel: Make Mutex a per-process class.
...
Makes it an instantiable class like it is in the actual kernel. This
will also allow removing reliance on global accessors in a following
change, now that we can encapsulate a reference to the system instance
in the class.
2019-03-14 20:55:52 -04:00
bunnei
2d9546848e
Merge pull request #2230 from lioncash/global
...
kernel/process: Remove use of global system accessors
2019-03-14 20:42:46 -04:00
bunnei
8bd17aa044
Merge pull request #2216 from ReinUsesLisp/rasterizer-system
...
gl_rasterizer: Use system instance passed from argument
2019-03-14 16:37:05 -04:00
bunnei
4e6c667586
Merge pull request #2227 from lioncash/override
...
renderer_opengl/gl_global_cache: Add missing override specifiers
2019-03-13 17:05:49 -04:00
ReinUsesLisp
ffe2e50458
video_core/morton: Use enum to describe MortonCopyPixels128 mode
2019-03-13 16:35:21 -03:00
ReinUsesLisp
6ed6129b4f
video_core/morton: Remove unused parameter in MortonSwizzle
2019-03-13 16:35:10 -03:00
ReinUsesLisp
9030a8259f
video_core/morton: Remove clang-format off when it's not needed
2019-03-13 16:16:45 -03:00
ReinUsesLisp
fdf76a25ab
video_core/morton: Remove unused functions
2019-03-13 16:15:54 -03:00
bunnei
e7850a7f11
Merge pull request #2226 from lioncash/private
...
kernel/server_port: Make data members private
2019-03-13 14:44:21 -04:00
bunnei
c1ea6a39a0
Merge pull request #2223 from lioncash/error
...
core/hle/result: Tidy up the base error code result header.
2019-03-13 14:43:14 -04:00
bunnei
0a923b4ab3
Merge pull request #2187 from FearlessTobi/port-sdl-things
...
Port various Citra changes to input_common, including deadzone support
2019-03-13 11:46:57 -04:00
bunnei
e8a21f5276
Merge pull request #2166 from lioncash/vi-init-service
...
service/vi: Unstub GetDisplayService
2019-03-13 10:01:54 -04:00
Lioncash
5379063108
core/hle/kernel/svc: Implement svcUnmapTransferMemory
...
Similarly, like svcMapTransferMemory, we can also implement
svcUnmapTransferMemory fairly trivially as well.
2019-03-13 06:04:49 -04:00
Lioncash
567134f874
core/hle/kernel/svc: Implement svcMapTransferMemory
...
Now that transfer memory handling is separated from shared memory, we
can implement svcMapTransferMemory pretty trivially.
2019-03-13 06:04:49 -04:00
Lioncash
cb198d7985
core/hle/kernel: Split transfer memory handling out into its own class
...
Within the kernel, shared memory and transfer memory facilities exist as
completely different kernel objects. They also have different validity
checking as well. Therefore, we shouldn't be treating the two as the
same kind of memory.
They also differ in terms of their behavioral aspect as well. Shared
memory is intended for sharing memory between processes, while transfer
memory is intended to be for transferring memory to other processes.
This breaks out the handling for transfer memory into its own class and
treats it as its own kernel object. This is also important when we
consider resource limits as well. Particularly because transfer memory
is limited by the resource limit value set for it.
While we currently don't handle resource limit testing against objects
yet (but we do allow setting them), this will make implementing that
behavior much easier in the future, as we don't need to distinguish
between shared memory and transfer memory allocations in the same place.
2019-03-13 06:04:44 -04:00
ReinUsesLisp
a63295a872
video_core/texture: Fix up sampler lod bias
2019-03-13 00:45:54 -03:00
Mat M
a3734d7e31
vk_sampler_cache: Use operator== instead of memcmp
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-03-12 21:05:36 -03:00
ReinUsesLisp
aa59d77c3b
vk_sampler_cache: Implement a sampler cache
2019-03-12 20:20:57 -03:00
Lioncash
6eddb60db0
kernel/process: Remove use of global system accessors
...
Now that we pass in a reference to the system instance, we can utilize
it to eliminate the global accessors in Process-related code.
2019-03-12 19:03:28 -04:00
bunnei
3bfd199497
Merge pull request #2211 from lioncash/arbiter
...
kernel: Make the address arbiter instance per-process
2019-03-12 17:54:48 -04:00
bunnei
0f6dd7b64e
Merge pull request #2222 from lioncash/cstr
...
service/service: Remove unncessary calls to c_str()
2019-03-12 17:54:20 -04:00
ReinUsesLisp
8ebeb9ade2
video_core/texture: Add a raw representation of TSCEntry
2019-03-12 16:56:29 -03:00
bunnei
2ad44a453f
Merge pull request #2215 from ReinUsesLisp/samplers
...
gl_rasterizer: Encapsulate sampler queries into methods
2019-03-12 13:10:53 -04:00
Lioncash
3350c0a779
renderer_opengl/gl_global_cache: Replace indexing for assignment with insert_or_assign
...
The previous code had some minor issues with it, really not a big deal,
but amending it is basically 'free', so I figured, "why not?".
With the standard container maps, when:
map[key] = thing;
is done, this can cause potentially undesirable behavior in certain
scenarios. In particular, if there's no value associated with the key,
then the map constructs a default initialized instance of the value
type.
In this case, since it's a std::shared_ptr (as a type alias) that is
the value type, this will construct a std::shared_pointer, and then
assign over it (with objects that are quite large, or actively heap
allocate this can be extremely undesirable).
We also make the function take the region by value, as we can avoid a
copy (and by extension with std::shared_ptr, a copy causes an atomic
reference count increment), in certain scenarios when ownership isn't a
concern (i.e. when ReserveGlobalRegion is called with an rvalue
reference, then no copy at all occurs). So, it's more-or-less a "free"
gain without many downsides.
2019-03-11 12:20:35 -04:00
Lioncash
1070c020db
renderer_opengl/gl_global_cache: Append missing override specifiers
...
Two of the functions here are overridden functions, so we can append
these specifiers to make it explicit.
2019-03-11 12:02:30 -04:00
Zach Hilman
cd2921a047
set_sys: Move constants to anonymous namespace
2019-03-11 11:16:35 -04:00
Lioncash
aa44eb639b
kernel/server_port: Make data members private
...
With this, all kernel objects finally have all of their data members
behind an interface, making it nicer to reason about interactions with
other code (as external code no longer has the freedom to totally alter
internals and potentially messing up invariants).
2019-03-11 10:41:05 -04:00
Lioncash
7ad3d4e49c
hwopus: Leverage multistream API for decoding regular Opus packets
...
After doing a little more reading up on the Opus codec, it turns out
that the multistream API that is part of libopus can handle regular
packets. Regular packets are just a degenerate case of multistream Opus
packets, and all that's necessary is to pass the number of streams as 1
and provide a basic channel mapping, then everything works fine for
that case.
This allows us to get rid of the need to use both APIs in the future
when implementing multistream variants in a follow-up PR, greatly
simplifying the code that needs to be written.
2019-03-11 07:06:18 -04:00
ReinUsesLisp
a6c048920e
gl_rasterizer: Use system instance passed from argument
2019-03-11 03:17:21 -03:00
Zach Hilman
debc7442f2
set_sys: Use official nintendo version string
2019-03-10 19:54:13 -04:00
Zach Hilman
73f2ee5484
system_version: Correct sizes on VectorVfsFile construction
2019-03-10 19:16:17 -04:00
Zach Hilman
597c00698d
set_sys: Use correct error codes in GetFirmwareVersion*
2019-03-10 19:09:23 -04:00
Lioncash
0c28ab92e6
core/hle/result: Remove now-unnecessary manually defined copy assignment operator
...
Previously this was required, as BitField wasn't trivially copyable.
BitField has since been made trivially copyable, so now this isn't
required anymore.
2019-03-10 18:34:20 -04:00
Lioncash
3f602dde0f
core/hle/result: Amend error in comment description for ResultCode
...
Gets rid of another holdover from Citra, and describes the OS on the
Switch instead.
2019-03-10 18:29:31 -04:00
Lioncash
f7ec0bcfc2
core/hle/result: Remove now-unused constructor for ResultCode
...
Now that the final stray ErrorDescription member was relocated, we can
finally remove it and its relevant constructor in the ResultCode union.
2019-03-10 18:26:12 -04:00
Lioncash
d870cc5ad7
core/hle/result: Relocate IPC error code to ipc_helpers
...
Relocates the error code to where it's most related, similar to how all
the other error codes are. Previously we were including a non-generic
error in the main result code header.
2019-03-10 18:23:42 -04:00
Lioncash
8603f0f9b1
service/service: Remove unncessary calls to c_str()
...
These can just be passed regularly, now that we use fmt instead of our
old logging system.
While we're at it, make the parameters to MakeFunctionString
std::string_views.
2019-03-10 18:00:57 -04:00
bunnei
0aa824b12f
Merge pull request #2207 from lioncash/hwopus
...
service/audio/hwopus: Move decoder state to its own class
2019-03-10 17:32:39 -04:00
bunnei
037d9bdde3
Merge pull request #2193 from lioncash/global
...
kernel/scheduler: Pass in system instance in constructor
2019-03-10 17:29:01 -04:00
bunnei
633ce92908
Merge pull request #2147 from ReinUsesLisp/texture-clean
...
shader_ir: Remove "extras" from the MetaTexture
2019-03-10 17:28:36 -04:00
bunnei
4a84921b31
Merge pull request #2143 from ReinUsesLisp/texview
...
gl_rasterizer_cache: Create texture views for array discrepancies
2019-03-10 17:27:49 -04:00
bunnei
add8b1df68
Merge pull request #2220 from lioncash/cubeb
...
audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32
2019-03-10 17:26:20 -04:00
Zach Hilman
ed82bb968a
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
...
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-10 16:51:42 -04:00
Mat M
0ea2771889
Merge pull request #2217 from ReinUsesLisp/rasterizer-logger
...
gl_rasterizer: Minor logger changes
2019-03-10 03:16:00 -04:00
Mat M
9ae680c639
Merge pull request #2219 from Hexagon12/log-settings
...
core/settings: Log more setting values
2019-03-10 03:15:01 -04:00
Lioncash
4a4e87e971
audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32
...
This behavior also needs to be visible for MinGW builds as well.
2019-03-09 18:06:23 -05:00
Hexagon12
e6f652ae12
clang fix
2019-03-09 16:42:56 +02:00
Hexagon12
6ce8de4b5f
Log 2 new setting values
2019-03-09 14:58:15 +02:00
ReinUsesLisp
a0be7b3b92
gl_rasterizer: Encapsulate sampler queries into methods
2019-03-09 04:35:57 -03:00
ReinUsesLisp
45ef421b6b
yuzu_cmd/config: Replace C casts with static_cast
2019-03-09 03:59:23 -03:00
ReinUsesLisp
fedef7bda3
yuzu_cmd/config: Silent implicit cast warning
2019-03-09 03:58:20 -03:00
ReinUsesLisp
6ee0ba64c8
gl_rasterizer: Minor logger changes
2019-03-09 03:34:49 -03:00
bunnei
9909d40530
Merge pull request #2210 from lioncash/optional
...
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
2019-03-08 16:35:57 -05:00
bunnei
160fc63c72
Merge pull request #2209 from lioncash/reorder
...
video_core/gpu_thread: Silence a -Wreorder warning
2019-03-08 12:04:26 -05:00
bunnei
78c803b4f3
Merge pull request #2208 from lioncash/gpu
...
video_core/gpu: Make GPU's destructor virtual
2019-03-08 12:03:58 -05:00
bunnei
1143923cdd
Merge pull request #2191 from ReinUsesLisp/maxwell-to-vk
...
maxwell_to_vk: Initial implementation
2019-03-08 11:51:08 -05:00
ReinUsesLisp
e7ac5a6adf
dma_pusher: Store command_list_header by copy
...
Instead of holding a reference that will get invalidated by
dma_pushbuffer.pop(), hold it as a copy. This doesn't have any
performance cost since CommandListHeader is 8 bytes long.
2019-03-08 04:06:54 -03:00
Lioncash
fbb82e61e3
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
...
There's no real need to use a shared lifetime here, since we don't
actually expose them to anything else. This is also kind of an
unnecessary use of the heap given the objects themselves are so small;
small enough, in fact that changing over to optionals actually reduces
the overall size of the HLERequestContext struct (818 bytes to 808
bytes).
2019-03-07 23:34:37 -05:00
Lioncash
8e510d5afa
kernel: Make the address arbiter instance per-process
...
Now that we have the address arbiter extracted to its own class, we can
fix an innaccuracy with the kernel. Said inaccuracy being that there
isn't only one address arbiter. Each process instance contains its own
AddressArbiter instance in the actual kernel.
This fixes that and gets rid of another long-standing issue that could
arise when attempting to create more than one process.
2019-03-07 23:27:51 -05:00
Lioncash
b7f331afa3
kernel/svc: Move address arbiter signaling behind a unified API function
...
Similar to how WaitForAddress was isolated to its own function, we can
also move the necessary conditional checking into the address arbiter
class itself, allowing us to hide the implementation details of it from
public use.
2019-03-07 23:27:47 -05:00
Lioncash
0209de123b
kernel/svc: Move address arbiter waiting behind a unified API function
...
Rather than let the service call itself work out which function is the
proper one to call, we can make that a behavior of the arbiter itself,
so we don't need to directly expose those implementation details.
2019-03-07 23:27:20 -05:00
bunnei
d26ee6e01e
Merge pull request #2195 from lioncash/shared-global
...
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
2019-03-07 17:26:11 -05:00
Lioncash
e99a148628
common/bit_field: Make BitField trivially copyable
...
This makes the class much more flexible and doesn't make performing
copies with classes that contain a bitfield member a pain.
Given BitField instances are only intended to be used within unions, the
fact the full storage value would be copied isn't a big concern (only
sizeof(union_type) would be copied anyways).
While we're at it, provide defaulted move constructors for consistency.
2019-03-07 17:05:44 -05:00
Lioncash
c2d4c8b95e
video_core/gpu_thread: Remove unimplemented WaitForIdle function prototype
...
This function didn't have a definition, so we can remove it to prevent
accidentally attempting to use it.
2019-03-07 16:08:52 -05:00
Lioncash
48a461a629
video_core/gpu_thread: Amend constructor initializer list order
...
Moves the data members to satisfy the order they're declared as in the
constructor initializer list.
Silences a -Wreorder warning.
2019-03-07 16:05:49 -05:00
Lioncash
24e2e601d5
video_core/gpu: Make GPU's destructor virtual
...
Because of the recent separation of GPU functionality into sync/async
variants, we need to mark the destructor virtual to provide proper
destruction behavior, given we use the base class within the System
class.
Prior to this, it was undefined behavior whether or not the destructor
in the derived classes would ever execute.
2019-03-07 15:59:45 -05:00
bunnei
3b63a46ca4
Merge pull request #2196 from DarkLordZach/web-applet-esc
...
web_browser: Add shortcut to Enter key to exit applet
2019-03-07 15:32:32 -05:00
bunnei
c63a0e88b7
Merge pull request #2202 from lioncash/port-priv
...
kernel/client_session, kernel/server_session: Make data members private
2019-03-07 15:31:26 -05:00
bunnei
1a4d733ec7
Merge pull request #2205 from FearlessTobi/docked-undocked-hotkey
...
yuzu: add a hotkey to switch between undocked and docked mode
2019-03-07 11:33:24 -05:00
zhupengfei
39e895c5ff
citra_qt: Settings (configuration) rework
2019-03-07 16:55:50 +01:00
bunnei
d9e9e71aec
Merge pull request #2206 from lioncash/audio-stop
...
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut if the stream is playing
2019-03-07 10:47:59 -05:00
bunnei
4f352833a5
Merge pull request #2055 from bunnei/gpu-thread
...
Asynchronous GPU command processing
2019-03-07 10:41:53 -05:00
Lioncash
d03ae881fd
service/audio/hwopus: Move decoder state to its own class
...
Moves the non-multistream specific state to its own class. This will be
necessary to support the multistream variants of opus decoding.
2019-03-07 07:47:09 -05:00
Lioncash
960057cba0
service/audio/hwopus: Provide a name for the second word of OpusPacketHeader
...
This indicates the entropy coder's final range.
2019-03-07 05:48:35 -05:00
Lioncash
d41d85766f
service/audio/hwopus: Move Opus packet header out of the IHardwareOpusDecoderManager
...
This will be utilized by more than just that class in the future. This
also renames it from OpusHeader to OpusPacketHeader to be more specific
about what kind of header it is.
2019-03-07 05:37:08 -05:00
Lioncash
3293877456
service/audio/hwopus: Enclose internals in an anonymous namespace
...
Makes it impossible to violate the ODR, as well as providing a place for
future changes.
2019-03-07 05:32:42 -05:00
Lioncash
64e7524f36
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut if the stream is playing
...
The service itself only does further actions if the stream is playing.
If the stream is already stopped, then it just exits successfully.
2019-03-07 03:39:01 -05:00
bunnei
076c76f4e4
Merge pull request #2149 from ReinUsesLisp/decoders-style
...
gl_rasterizer_cache: Move format conversion functions to their own file
2019-03-06 21:56:20 -05:00
bunnei
ed0bdcc638
Merge pull request #2197 from lioncash/include
...
core/hle/ipc: Remove unnecessary includes
2019-03-06 21:55:16 -05:00
bunnei
84ad81ee67
gpu_thread: Fix deadlock with threading idle state check.
2019-03-06 21:48:57 -05:00
bunnei
63aa08acbe
gpu_thread: (HACK) Ignore flush on FlushAndInvalidateRegion.
2019-03-06 21:48:57 -05:00
bunnei
3f1b4fb23a
gpu: Always flush.
2019-03-06 21:48:57 -05:00
bunnei
aaa373585c
gpu: Refactor a/synchronous implementations into their own classes.
2019-03-06 21:48:57 -05:00
bunnei
7b574f406b
gpu: Move command processing to another thread.
2019-03-06 21:48:57 -05:00
bunnei
65651078e5
bootmanager: Ensure that we have a context for shader loading.
2019-03-06 21:48:56 -05:00
bunnei
d2ff93c319
Merge pull request #2190 from lioncash/ogl-global
...
core: Remove the global telemetry accessor function
2019-03-06 21:41:53 -05:00
bunnei
ac51d048a9
gpu: Refactor command and swap buffers interface for asynch.
2019-03-06 21:09:09 -05:00
bunnei
4483089d70
gpu: Refactor to take RendererBase instead of RasterizerInterface.
2019-03-06 21:09:09 -05:00
bunnei
d6015ee211
settings: Add new graphics setting for use_asynchronous_gpu_emulation.
2019-03-06 21:09:09 -05:00
bunnei
81e086b5ac
core: Set is_powered_on before GPU is initialized.
2019-03-06 21:07:33 -05:00
bunnei
75b417489a
Merge pull request #2199 from lioncash/arbiter
...
kernel/address_arbiter: Convert the address arbiter into a class
2019-03-06 15:55:56 -05:00
bunnei
e9b05e86b9
Merge pull request #2201 from lioncash/audio-retval
...
hle/service/audio/audout_u: Correct lack of return in failure case of AppendAudioOutBufferImpl()
2019-03-06 14:20:04 -05:00
bunnei
8ee78521fa
Merge pull request #2204 from lioncash/wait-tree
...
yuzu/debugger/wait_tree: Remove use of global CurrentProcess accessor
2019-03-06 14:17:34 -05:00
fearlessTobi
c8d6f0cb82
yuzu: add a hotkey to switch between undocked and docked mode
2019-03-06 19:31:23 +01:00
Lioncash
9ac176d5a3
hle/service/audio/audout_u: Correct lack of return in failure case of AppendAudioOutBufferImpl()
...
Previously we were overwriting the error case with a success code
further down (which is definitely not what we should be doing here).
2019-03-06 11:44:32 -05:00
bunnei
234f00bdd4
Merge pull request #2194 from lioncash/mem
...
svc: Move memory range checking functions to the VMManager class
2019-03-06 11:43:07 -05:00
bunnei
5a57b1a09b
Merge pull request #2200 from lioncash/audio
...
hle/service/audio: Extract audio error codes to a header
2019-03-06 10:52:45 -05:00
bunnei
22f105c06d
Merge pull request #2203 from lioncash/engines-include
...
video_core/engines: Remove unnecessary includes
2019-03-06 10:51:27 -05:00
Lioncash
196cc82913
yuzu/debugger/wait_tree: Remove use of global CurrentProcess accessor
...
We already have the thread instance that was created under the current
process, so we can just pass the handle table of it along to retrieve
the owner of the mutex.
2019-03-05 21:52:21 -05:00
Lioncash
f9ee0dc7ee
video_core/engines: Remove unnecessary includes
...
Removes a few unnecessary dependencies on core-related machinery, such
as the core.h and memory.h, which reduces the amount of rebuilding
necessary if those files change.
This also uncovered some indirect dependencies within other source
files. This also fixes those.
2019-03-05 20:35:32 -05:00
Lioncash
221613d4ea
kernel/server_session: Make data members private
...
Makes it much nicer to locally reason about server session behavior, as
part of its functionality isn't placed around other classes.
2019-03-05 20:10:07 -05:00
Lioncash
7526b6fce3
kernel/client_session: Make data members private
...
These can be made private, as they aren't accessed in contexts that
require them to be public.
2019-03-05 20:10:03 -05:00
Lioncash
ad9dbeb44b
hle/service/audio: Extract audio error codes to a header
...
Places all error codes in an easily includable header.
This also corrects the unsupported error code (I accidentally used the
hex value when I meant to use the decimal one).
2019-03-05 16:51:37 -05:00
Lioncash
c161389a0f
kernel/address_arbiter: Pass in system instance to constructor
...
Allows getting rid of reliance on the global accessor functions and
instead operating on the provided system instance.
2019-03-05 15:47:03 -05:00
Lioncash
9d9676f620
kernel/address_arbiter: Minor tidying up
...
- Invert conditions into guard clases where applicable.
- Mark std::vector parameter of WakeThreads as const
2019-03-05 12:58:31 -05:00
Lioncash
ec6664f6d6
kernel/address_arbiter: Convert the address arbiter into a class
...
Places all of the functions for address arbiter operation into a class.
This will be necessary for future deglobalizing efforts related to both
the memory and system itself.
2019-03-05 12:58:26 -05:00
Lioncash
42085ff110
video_core/surface: Remove obsolete TODO in PixelFormatFromRenderTargetFormat()
...
This isn't needed anymore, according to Hexagon
2019-03-05 10:15:06 -05:00
Zach Hilman
52ac6419da
vm_manager: Remove cheat-specific ranges from VMManager
2019-03-05 10:09:36 -05:00
Lioncash
79f970e6de
kernel/thread: Remove obsolete TODO in Create()
...
This is a TODO carried over from Citra that doesn't apply here.
2019-03-05 10:05:49 -05:00
Lioncash
02bc9e9de1
core/hle/ipc: Remove unnecessary includes
...
Removes a few inclusion dependencies from the headers or replaces
existing ones with ones that don't indirectly include the required
headers.
This allows removing an inclusion of core/memory.h, meaning that if the
memory header is ever changed in the future, it won't result in
rebuilding the entirety of the HLE services (as the IPC headers are used
quite ubiquitously throughout the HLE service implementations).
2019-03-05 09:53:38 -05:00
bunnei
cc92c054ec
Merge pull request #2185 from FearlessTobi/port-4630
...
Port citra-emu/citra#4630 : "Memory: don't lock hle mutex in memory read/write"
2019-03-04 18:44:53 -05:00
Zach Hilman
7053546687
core: Add support for registering and controlling ownership of CheatEngine
2019-03-04 18:41:29 -05:00
Zach Hilman
769b346682
cheat_engine: Add parser and interpreter for game cheats
2019-03-04 18:39:58 -05:00
Zach Hilman
c100a4b8d4
loader/nso: Set main code region in VMManager
...
For rom directories (and by extension, XCI/NSP/NAX/NCA) this is for the NSO with name 'main', for regular NSOs, this is the NSO.
2019-03-04 18:39:58 -05:00
Zach Hilman
b952a30555
vm_manager: Add support for storing and getting main code region
...
Used as root for one region of cheats, set by loader
2019-03-04 18:39:58 -05:00
Zach Hilman
4495bf5706
patch_manager: Display cheats in game list add-ons
2019-03-04 18:39:57 -05:00
Zach Hilman
c5091bfe00
patch_manager: Add support for loading cheats lists
...
Uses load/<title_id>/<mod_name>/cheats as root dir, file name is all upper or lower hex first 8 bytes build ID.
2019-03-04 18:39:57 -05:00
Zach Hilman
9d1ab766a0
controllers/npad: Add accessor for current press state
...
Allows frontend/features to access pressed buttons conveniently as possible
2019-03-04 18:39:57 -05:00
Zach Hilman
4130b07f88
web_browser: Add shortcut to Enter key to exit applet
...
Addresses issues where a user in fullscreen could not exit some web applets without leaving fullscreen.
2019-03-04 18:26:28 -05:00
Lioncash
40de7f6fe8
vm_manager: Use range helpers in HeapAlloc() and HeapFree()
...
Significantly tidies up two guard conditionals.
2019-03-04 17:16:52 -05:00
Lioncash
6c42a23550
vm_manager: Provide address range checking functions for other memory regions
...
Makes the interface uniform when it comes to checking various memory
regions.
2019-03-04 17:08:55 -05:00
Lioncash
fad20213e6
kernel/scheduler: Pass in system instance in constructor
...
Avoids directly relying on the global system instance and instead makes
an arbitrary system instance an explicit dependency on construction.
This also allows removing dependencies on some global accessor functions
as well.
2019-03-04 17:01:37 -05:00
Lioncash
f59040d752
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
...
Given we already pass in a reference to the kernel that the shared
memory instance is created under, we can just use that to check the
current process, rather than using the global accessor functions.
This allows removing direct dependency on the system instance entirely.
2019-03-04 16:52:36 -05:00
Lioncash
0be8fffc99
svc: Migrate address range checking functions to VMManager
...
Provides a bit of a more proper interface for these functions.
2019-03-04 16:32:03 -05:00
bunnei
07e13d6728
Merge pull request #2165 from ReinUsesLisp/unbind-tex
...
gl_rasterizer: Unbind textures but don't apply the gl_state
2019-03-04 13:51:59 -05:00
bunnei
6ad66acce2
Merge pull request #2188 from lioncash/log-static
...
logging/backend: Move CreateEntry into the Impl class. Relocate local static to a class variable
2019-03-04 13:46:01 -05:00
Lioncash
b114928459
core/core: Remove the global telemetry accessor function
...
With all usages converted off of it, this function can be removed.
2019-03-04 10:24:13 -05:00
Lioncash
319365fdf0
yuzu: Remove usage of the global telemetry accessor
...
In these cases the system object is nearby, and in the other, the
long-form of accessing the telemetry instance is already used, so we can
get rid of the use of the global accessor.
2019-03-04 10:24:13 -05:00
Lioncash
697a4669e1
yuzu-cmd/yuzu: Replace direct usage of the global system telemetry accessor in main()
...
We already have the system instance around, so we can use that instead
of the accessor.
2019-03-04 10:24:13 -05:00
Lioncash
b5f0dc95db
core/core: Replace direct usage of the global system telemetry accessor from Shutdown()
...
The telemetry instance is actually a member of the class itself, so we
can access it directly instead of going through the global accessor.
2019-03-04 10:24:13 -05:00
Lioncash
90febaf717
video_core/renderer_opengl: Replace direct usage of global system object accessors
...
We already pass a reference to the system object to the constructor of the renderer,
so we can just use that instead of using the global accessor functions.
2019-03-04 10:24:09 -05:00
ReinUsesLisp
1f6571b3de
maxwell_to_vk: Initial implementation
2019-03-04 04:06:05 -03:00
bunnei
be6bf37224
Merge pull request #2189 from lioncash/web
...
web_service: Remove unnecessary inclusions
2019-03-03 22:56:49 -05:00
Lioncash
aa30fd75cd
web_service: Remove unnecessary inclusions
...
Reduces the potential amount of rebuilding necessary if any headers
change. In particular, we were including a header from the core library
when we don't even link the core library to the web_service library, so
this also gets rid of an indirect dependency.
2019-03-02 14:58:49 -05:00
Mat M
169d19f7b9
Merge pull request #2154 from FearlessTobi/port-4647
...
Port citra-emu/citra#4647 : "citra_qt/main: make SPEED_LIMIT_STEP static constexpr"
2019-03-02 14:46:04 -05:00
Lioncash
f8f1ff0b4f
logging/backend: Make time_origin a class variable instead of a local static
...
Moves local global state into the Impl class itself and initializes it
at the creation of the instance instead of in the function.
This makes it nicer for weakly-ordered architectures, given the
CreateEntry() class won't need to have atomic loads executed for each
individual call to the CreateEntry class.
2019-03-02 14:44:24 -05:00
Lioncash
43c1092031
logging/backend: Move CreateEntry into the Impl class
...
This function is only ever used within this source file and makes it
easier to remove static state in the following change.
2019-03-02 14:44:24 -05:00
Mat M
a461e266ea
Merge pull request #2183 from ReinUsesLisp/vk-buffer-cache-clang
...
vk_buffer_cache: Fix clang-format
2019-03-02 14:43:15 -05:00
B3n30
71817afbe9
fixup! Joystick: Allow for background events; Add deadzone to SDLAnalog
2019-03-02 19:12:46 +01:00
Weiyi Wang
8b98f60e3c
input/sdl: lock map mutex after SDL call
...
Any SDL invocation can call the even callback on the same thread, which can call GetSDLJoystickBySDLID and eventually cause double lock on joystick_map_mutex. To avoid this, lock guard should be placed as closer as possible to the object accessing code, so that any SDL invocation is with the mutex unlocked
2019-03-02 19:09:58 +01:00
James Rowe
09ac66388c
Input: Remove global variables from SDL Input
...
Changes the interface as well to remove any unique methods that
frontends needed to call such as StartJoystickEventHandler by
conditionally starting the polling thread only if the frontend hasn't
started it already. Additionally, moves all global state into a single
SDLState class in order to guarantee that the destructors are called in
the proper order
2019-03-02 19:09:34 +01:00
James Rowe
c8554d218b
Input: Copy current SDL.h/cpp files to impl
...
This should make reviewing much easier as you can then see what changed
happened between the old file and the new one
2019-03-02 18:38:11 +01:00
fearlessTobi
71c30a0a89
citra_qt/main: make SPEED_LIMIT_STEP static constexpr
...
MSVC does not seem to like using constexpr values in a lambda that were declared outside of it.
Previously on MSVC build the hotkeys to inc-/decrease the speed limit were not working correctly because in the lambda the SPEED_LIMIT_STEP had garbage values.
After googling around a bit I found: https://github.com/codeplaysoftware/computecpp-sdk/issues/95 which seems to be a similar issue.
Trying the suggested fix to make the variable static constexpr also fixes the bug here.
2019-03-02 17:43:19 +01:00
Weiyi Wang
5159f4eee8
Memory: don't lock hle mutex in memory read/write
...
The comment already invalidates itself: neither MMIO nor rasterizer cache belongsHLE kernel state. This mutex has a too large scope if MMIO or cache is included, which is prone to dead lock when multiple thread acquires these resource at the same time. If necessary, each MMIO component or rasterizer should have their own lock.
2019-03-02 15:20:05 +01:00
bunnei
3c39b39bbc
Merge pull request #2182 from bunnei/my-wasted-friday
...
fuck git for ruining my day, I will learn but I will not forgive
2019-03-02 00:57:15 -05:00
ReinUsesLisp
8e84e81e74
vk_buffer_cache: Fix clang-format
2019-03-02 02:16:45 -03:00
bunnei
e22670fbc3
Merge pull request #2178 from ReinUsesLisp/vk-buffer-cache
...
vk_buffer_cache: Implement a buffer cache
2019-03-02 00:13:33 -05:00
bunnei
ab70c2583d
fuck git for ruining my day, I will learn but I will not forgive
2019-03-02 00:01:34 -05:00
ReinUsesLisp
35c105a108
vk_buffer_cache: Implement a buffer cache
...
This buffer cache is just like OpenGL's buffer cache with some minor
style changes. It uses VKStreamBuffer.
2019-03-01 17:33:36 -03:00
bunnei
1da8a0c2a8
Merge pull request #2173 from lioncash/capture
...
yuzu/compatdb: Remove unused lambda capture
2019-03-01 09:55:35 -05:00
bunnei
12e74fe801
Merge pull request #2180 from lioncash/audren
...
service/audio: Provide an implementation of ExecuteAudioRendererRendering
2019-03-01 09:50:14 -05:00
Lioncash
84aff56644
service/audio/audren_u: Implement OpenAudioRendererAuto
...
This currently has the same behavior as the regular
OpenAudioRenderer API function, so we can just move the code within
OpenAudioRenderer to an internal function that both service functions
call.
2019-03-01 05:40:29 -05:00
Lioncash
42dc73157c
service/audio: Provide an implementation of ExecuteAudioRendererRendering
...
This service function appears to do nothing noteworthy on the switch.
All it does at the moment is either return an error code or abort the
system. Given we obviously don't want to kill the system, we just opt
for always returning the error code.
2019-03-01 03:37:00 -05:00
ReinUsesLisp
e85066dac7
gl_rasterizer: Remove texture unbinding after dispatching a draw call
...
Unbinding was required when OpenGL delete operations didn't unbind a
resource if it was bound. This is no longer needed and can be removed.
2019-02-28 00:17:50 -03:00
ReinUsesLisp
bb3ab7d66c
gl_state: Fixup multibind bug
2019-02-28 00:17:03 -03:00
bunnei
49c6d21b31
Merge pull request #2174 from lioncash/fwd
...
service/hid: Amend forward declaration of ServiceManager
2019-02-27 21:20:06 -05:00
bunnei
1b13859af8
Merge pull request #2152 from ReinUsesLisp/vk-stream-buffer
...
vk_stream_buffer: Implement a stream buffer
2019-02-27 21:19:15 -05:00
bunnei
1f5d6a8fed
Merge pull request #2121 from FernandoS27/texception2
...
Improve the Accuracy of the Rasterizer Cache through a Texception Pass
2019-02-27 21:17:55 -05:00
bunnei
66f4fd4c81
Merge pull request #2172 from lioncash/reorder
...
gl_rasterizer/vk_memory_manager: Silence -Wreorder warnings
2019-02-27 21:14:20 -05:00
Fernando Sahmkow
7ea097e5c2
Devirtualize Register/Unregister and use a wrapper instead.
2019-02-27 21:58:50 -04:00
Fernando Sahmkow
5a9204dbd7
Corrections and redesign.
2019-02-27 21:58:49 -04:00
Fernando Sahmkow
d6b9b51606
Fix linux compile error.
2019-02-27 21:58:48 -04:00
Fernando Sahmkow
e64fa4d2ea
Remove NotifyFrameBuffer as we are doing a texception pass every drawcall.
2019-02-27 21:58:47 -04:00
Fernando Sahmkow
3558c88442
Remove certain optimizations that caused texception to fail in certain scenarios.
2019-02-27 21:58:45 -04:00
Fernando Sahmkow
e9d84ef22c
Bug fixes and formatting
2019-02-27 21:58:44 -04:00
Fernando Sahmkow
5bc82d124c
rasterizer_cache_gl: Implement Texception Pass
2019-02-27 21:58:43 -04:00
Fernando Sahmkow
8932001610
rasterizer_cache_gl: Implement Partial Reinterpretation of Surfaces.
2019-02-27 21:58:40 -04:00
Fernando Sahmkow
44ea2810e4
rasterizer_cache: mark reinterpreted surfaces and add ability to reload marked surfaces on next use.
2019-02-27 21:58:39 -04:00
Fernando Sahmkow
d583fc1e97
rasterizer_cache_gl: Notify on framebuffer change
2019-02-27 21:58:37 -04:00
Fernando Sahmkow
45b6d2d349
rasterizer_cache: Expose FlushObject to Child classes and allow redefining of Register and Unregister
2019-02-27 21:57:33 -04:00
bunnei
f15e2dd881
Merge pull request #2163 from ReinUsesLisp/bitset-dirty
...
maxwell_3d: Use std::bitset to manage dirty flags
2019-02-27 20:50:08 -05:00
Annomatg
ef84c70d22
Speed up memory page mapping ( #2141 )
...
- Memory::MapPages total samplecount was reduced from 4.6% to 1.06%.
- From main menu into the game from 1.03% to 0.35%
2019-02-27 17:22:47 -05:00
Lioncash
1068c1b06f
audio_core/cubeb_sink: Ensure COM is initialized on Windows prior to calling cubeb_init
...
cubeb now requires that COM explicitly be initialized on the thread
prior to calling cubeb_init.
2019-02-27 16:14:53 -05:00
ReinUsesLisp
27ddbeb01c
gl_rasterizer_cache: Create texture views for array discrepancies
...
When a texture is sampled in a shader with a different array mode than
the cached state, create a texture view and bind that to the shader
instead.
2019-02-27 14:41:06 -03:00
Lioncash
6335bf136f
service/hid: Amend forward declaration of ServiceManager
...
The SM namespace is within the Service namespace, so this was forward
declaring a type that didn't exist.
2019-02-27 11:36:48 -05:00
Lioncash
456c7043bd
yuzu/compatdb: Remove unused lambda capture
...
Silences a compiler warning with clang.
2019-02-27 11:30:36 -05:00
bunnei
42f7c11021
Merge pull request #2169 from lioncash/naming
...
audio_core/audio_renderer: Provide names for some parameters of AudioRendererParameter
2019-02-27 11:26:54 -05:00
bunnei
14430f7df9
Merge pull request #2170 from lioncash/emu-window
...
core/frontend/emu_window: Make ClipToTouchScreen a const member function
2019-02-27 11:26:24 -05:00
bunnei
eb5a3dd1c7
Merge pull request #2161 from lioncash/handle-table
...
kernel/handle_table: Allow process capabilities to limit the handle table size
2019-02-27 11:22:26 -05:00
bunnei
66e023fba2
Merge pull request #2167 from lioncash/namespace
...
common: Move Quaternion, Rectangle, Vec2, Vec3, and Vec4 into the Common namespace
2019-02-27 11:19:53 -05:00
Lioncash
16ea93c11e
vk_memory_manager: Reorder constructor initializer list in terms of member declaration order
...
Reorders members in the order that they would actually be initialized
in. Silences a -Wreorder warning.
2019-02-27 11:08:19 -05:00
Lioncash
a6a783b3dc
gl_rasterizer: Reorder constructor initializer list in terms of member declaration order
...
Orders the members in the order they would actually be initialized in.
Silences a -Wreorder warning.
2019-02-27 11:08:19 -05:00
Lioncash
e7eff72e83
gl_shader_disk_cache: Remove #pragma once from cpp file
...
This is only necessary in headers. Silences a warning with clang.
2019-02-27 11:02:49 -05:00
Lioncash
46b3209abb
core/frontend/emu_window: Make ClipToTouchScreen a const member function
...
This member function doesn't modify instance state, so it can have the
const specifier applied to it.
2019-02-27 08:54:42 -05:00
Lioncash
0e1b5acc6a
audio_core/audio_renderer: Name previously unknown parameters of AudioRendererParameter
...
Provides names for previously unknown entries (aside from the two u8
that appear to be padding bytes, and a single word that also appears
to be reserved or padding).
This will be useful in subsequent changes when unstubbing behavior related
to the audio renderer services.
2019-02-27 06:09:07 -05:00
Lioncash
b9238edd0d
common/math_util: Move contents into the Common namespace
...
These types are within the common library, so they should be within the
Common namespace.
2019-02-27 03:38:39 -05:00
Lioncash
1b855efd5e
common/vector_math: Move Vec[x] types into the Common namespace
...
These types are within the common library, so they should be using the
Common namespace.
2019-02-26 22:38:36 -05:00
Lioncash
a1574aabd5
common/quaternion: Move Quaternion into the Common namespace
...
Quaternion is within the common library, so it should be using the
Common namespace.
2019-02-26 22:31:17 -05:00
Lioncash
92ea1c32d6
service/vi: Unstub GetDisplayService
...
This function is also supposed to check its given policy type with the
permission of the service itself. This implements the necessary
machinery to unstub these functions.
Policy::User seems to just be basic access (which is probably why vi:u
is restricted to that policy), while the other policy seems to be for
extended abilities regarding which displays can be managed and queried,
so this is assumed to be for a background compositor (which I've named,
appropriately, Policy::Compositor).
2019-02-26 20:16:23 -05:00
Lioncash
254b1e3df7
core/ipc_helper: Allow popping all signed value types with RequestParser
...
There's no real reason this shouldn't be allowed, given some values sent
via a request can be signed. This also makes it less annoying to work
with popping enum values, given an enum class with no type specifier
will work out of the box now.
It's also kind of an oversight to allow popping s64 values, but nothing
else.
2019-02-26 18:10:36 -05:00
ReinUsesLisp
0ad3c031f4
gl_rasterizer_cache: Move format conversion to its own file
2019-02-26 20:08:27 -03:00
ReinUsesLisp
0ccd490fcd
decoders: Minor style changes
2019-02-26 20:08:27 -03:00
Lioncash
1b2872eebc
service/vi: Remove use of a module class
...
This didn't really provide much benefit here, especially since the
subsequent change requires that the behavior for each service's
GetDisplayService differs in a minor detail.
This also arguably makes the services nicer to read, since it gets rid
of an indirection in the class hierarchy.
2019-02-26 17:44:03 -05:00
ReinUsesLisp
d91e35a50a
renderer_opengl: Update pixel format tracking
2019-02-26 03:47:16 -03:00
ReinUsesLisp
5219edd715
maxwell_3d: Use std::bitset to manage dirty flags
2019-02-26 03:01:48 -03:00
ReinUsesLisp
730eb1dad7
vk_stream_buffer: Remove copy code path
2019-02-26 02:09:43 -03:00
ReinUsesLisp
5ca63d0675
shader/decode: Remove extras from MetaTexture
2019-02-26 00:11:30 -03:00
ReinUsesLisp
48e6f77c03
shader/decode: Split memory and texture instructions decoding
2019-02-26 00:11:30 -03:00
bunnei
c3471bf618
Merge pull request #2156 from FreddyFunk/patch-1
...
file_sys/vfs_vector: Fix ignored offset on Write
2019-02-25 18:28:58 -05:00
bunnei
da1b45de34
Merge pull request #2158 from lioncash/table
...
service/vi: Update IManagerDisplayService's function table
2019-02-25 18:27:43 -05:00
bunnei
1cffd3848b
Merge pull request #2160 from lioncash/audio-warn
...
audio_core: Resolve compilation warnings
2019-02-25 18:25:36 -05:00
Lioncash
d29f9e9709
kernel/handle_table: Make local variables as const where applicable
...
Makes immutable state explicit.
2019-02-25 11:12:38 -05:00
Lioncash
5167d1577d
kernel/handle_table: Allow process capabilities to limit the handle table size
...
The kernel allows restricting the total size of the handle table through
the process capability descriptors. Until now, this functionality wasn't
hooked up. With this, the process handle tables become properly restricted.
In the case of metadata-less executables, the handle table will assume
the maximum size is requested, preserving the behavior that existed
before these changes.
2019-02-25 11:12:32 -05:00
Lioncash
4f8cd74061
kernel/handle-table: In-class initialize data members
...
Directly initializes members where applicable.
2019-02-25 10:14:05 -05:00
Lioncash
0220862ba5
kernel/handle_table: Resolve truncation warnings
...
Avoids implicit truncation warnings from u32 -> u16 (the truncation is
desirable behavior here).
2019-02-25 09:53:21 -05:00
Lioncash
04d7b7e09d
audio_core/cubeb_sink: Initialize CubebSinkStream's last_frame data member
...
Ensures that all member variables are initialized in a deterministic
manner across the board.
2019-02-25 09:40:37 -05:00
Lioncash
8250f9bb1c
audio_core/cubeb_sink: Add override specifier to destructor
...
CubebSinkStream inherits from a base class with a virtual destructor, so
override can be appended to CubebSinkStream's destructor.
2019-02-25 09:38:27 -05:00
Lioncash
7cdeec20ec
audio_core/cubeb_sink: Resolve variable shadowing warnings in SamplesInQueue
...
The name of the parameter was shadowing the member variable of the same
name. Instead, alter the name of the parameter to prevent said
shadowing.
2019-02-25 09:28:51 -05:00
Lioncash
a12f4efa2f
audio_core/codec: Resolve truncation warnings within DecodeADPCM
...
The assignments here were performing an implicit truncation from int to
s16. Make it explicit that this is desired behavior.
2019-02-25 09:24:39 -05:00
Lioncash
c1b2e35625
shader/track: Resolve variable shadowing warnings
2019-02-25 09:10:59 -05:00
Lioncash
be7dad5e7e
service/vi: Update IManagerDisplayService's function table
...
Amends it to add the 7.0.0+ CreateStrayLayer function.
2019-02-25 08:09:00 -05:00
bunnei
c07987dfab
Merge pull request #2118 from FernandoS27/ipa-improve
...
shader_decompiler: Improve Accuracy of Attribute Interpolation.
2019-02-24 23:04:22 -05:00
bunnei
c4243c07cc
Merge pull request #2119 from FernandoS27/fix-copy
...
rasterizer_cache_gl: Only do fast layered copy on the same format.
2019-02-24 23:03:52 -05:00
bunnei
c6170565b5
Merge pull request #2155 from FearlessTobi/port-4655
...
Port citra-emu/citra#4655 : "Remove GCC version checks"
2019-02-24 23:03:13 -05:00
bunnei
57985fb16a
Merge pull request #2144 from lioncash/factor
...
service/vi: Convert Display and Layer structs into classes
2019-02-24 23:02:50 -05:00
Frederic L
517933adcb
file_sys/vfs_vector: Fix ignored offset on Write
2019-02-25 00:27:49 +01:00
tgsm
030814b1cb
Remove GCC version checks
...
Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
2019-02-24 15:24:06 +01:00
bunnei
90c780e6f3
Merge pull request #2139 from degasus/dma_pusher
...
video_core/dma_pusher: The full list of headers at once.
2019-02-24 04:15:49 -05:00
ReinUsesLisp
33a0597603
vk_stream_buffer: Implement a stream buffer
...
This manages two kinds of streaming buffers: one for unified memory
models and one for dedicated GPUs. The first one skips the copy from the
staging buffer to the real buffer, since it creates an unified buffer.
This implementation waits for all fences to finish their operation
before "invalidating". This is suboptimal since it should allocate
another buffer or start searching from the beginning. There is room for
improvement here.
This could also handle AMD's "pinned" memory (a heap with 256 MiB) that
seems to be designed for buffer streaming.
2019-02-24 04:27:51 -03:00
ReinUsesLisp
281a8bf259
vk_resource_manager: Minor VKFenceWatch changes
2019-02-24 04:19:04 -03:00
bunnei
f7090bacc5
Merge pull request #2146 from ReinUsesLisp/vulkan-scheduler
...
vk_scheduler: Implement a scheduler
2019-02-23 23:32:43 -05:00
bunnei
d062991643
Merge pull request #2150 from ReinUsesLisp/fixup-layer-swizzle
...
gl_rasterizer_cache: Fixup parameter order in layered swizzle
2019-02-23 23:31:34 -05:00
ReinUsesLisp
92050c4d86
vk_memory_manager: Fixup commit interval allocation
...
VKMemoryCommitImpl was using as the end of its interval "begin + end".
That ended up wasting memory.
2019-02-24 01:04:41 -03:00
ReinUsesLisp
abef11a540
gl_rasterizer_cache: Fixup parameter order in layered swizzle
2019-02-23 23:27:30 -03:00
ReinUsesLisp
f546fb35ed
vk_scheduler: Implement a scheduler
...
The scheduler abstracts command buffer and fence management with an
interface that's able to do OpenGL-like operations on Vulkan command
buffers.
It returns by value a command buffer and fence that have to be used for
subsequent operations until Flush or Finish is executed, after that the
current execution context (the pair of command buffers and fences) gets
invalidated a new one must be fetched. Thankfully validation layers will
quickly detect if this is skipped throwing an error due to modifications
to a sent command buffer.
2019-02-22 01:33:32 -03:00
bunnei
94b27bb8a5
Merge pull request #2138 from ReinUsesLisp/vulkan-memory-manager
...
vk_memory_manager: Implement memory manager
2019-02-21 22:26:54 -05:00
Lioncash
90528f1326
service/nvflinger: Store BufferQueue instances as regular data members
...
The NVFlinger service is already passed into services that need to
guarantee its lifetime, so the BufferQueue instances will already live
as long as they're needed. Making them std::shared_ptr instances in this
case is unnecessary.
2019-02-21 22:09:46 -05:00
Lioncash
fd15730767
service/vi/vi_layer: Convert Layer struct into a class
...
Like the previous changes made to the Display struct, this prepares the
Layer struct for changes to its interface. Given Layer will be given
more invariants in the future, we convert it into a class to better
signify that.
2019-02-21 12:13:09 -05:00
Lioncash
fa4dc2cf42
service/nvflinger: Move display specifics over to vi_display
...
With the display and layer structures relocated to the vi service, we
can begin giving these a proper interface before beginning to properly
support the display types.
This converts the display struct into a class and provides it with the
necessary functions to preserve behavior within the NVFlinger class.
2019-02-21 12:13:04 -05:00
bunnei
9539c4203b
Merge pull request #2125 from ReinUsesLisp/fixup-glstate
...
gl_state: Synchronize gl_state even when state is disabled
2019-02-20 21:47:46 -05:00
bunnei
ae437320c8
Merge pull request #2130 from lioncash/system_engine
...
video_core: Remove usages of System::GetInstance() within the engines
2019-02-20 21:24:56 -05:00
Jungy
3273f93cd5
Fixes Unicode Key File Directories ( #2120 )
...
* Fixes Unicode Key File Directories
Adds code so that when loading a file it converts to UTF16 first, to
ensure the files can be opened. Code borrowed from FileUtil::Exists.
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
* Using FileUtil instead to be cleaner.
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
2019-02-20 21:24:25 -05:00
Lioncash
8d5d369b54
service/nvflinger: Relocate definitions of Layer and Display to the vi service
...
These are more closely related to the vi service as opposed to the
intermediary nvflinger.
This also places them in their relevant subfolder, as future changes to
these will likely result in subclassing to represent various displays
and services, as they're done within the service itself on hardware.
The reasoning for prefixing the display and layer source files is to
avoid potential clashing if two files with the same name are compiled
(e.g. if 'display.cpp/.h' or 'layer.cpp/.h' is added to another service
at any point), which MSVC will actually warn against. This prevents that
case from occurring.
This also presently coverts the std::array introduced within
f45c25aaba
back to a std::vector to allow
the forward declaration of the Display type. Forward declaring a type
within a std::vector is allowed since the introduction of N4510
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html ) by
Zhihao Yuan.
2019-02-19 18:27:16 -05:00
Markus Wick
6dd40976d0
video_core/dma_pusher: Simplyfy Step() logic.
...
As fetching command list headers and and the list of command headers is a fixed 1:1 relation now, they can be implemented within a single call.
This cleans up the Step() logic quite a bit.
2019-02-19 10:28:42 +01:00
Markus Wick
717394c980
video_core/dma_pusher: The full list of headers at once.
...
Fetching every u32 from memory leads to a big overhead. So let's fetch all of them as a block if possible.
This reduces the Memory::* calls by the dma_pusher by a factor of 10.
2019-02-19 09:58:38 +01:00
ReinUsesLisp
b675c97cdd
vk_memory_manager: Implement memory manager
...
A memory manager object handles the memory allocations for a device. It
allocates chunks of Vulkan memory objects and then suballocates.
2019-02-19 03:42:28 -03:00
bunnei
4bce08d497
Merge pull request #2122 from ReinUsesLisp/vulkan-resource-manager
...
vk_resource_manager: Implement fence and command buffer allocator
2019-02-18 21:05:28 -05:00
bunnei
2bb02a0b78
Merge pull request #2134 from lioncash/naming
...
audio_core/buffer: Make const and non-const getter for samples consistent
2019-02-17 11:26:33 -05:00
Fernando Sahmkow
a8d4927e29
Corrections, documenting and fixes.
2019-02-16 16:52:24 -04:00
bunnei
e869c5ef1a
Merge pull request #2133 from lioncash/arbiter
...
address_arbiter: Use nested namespaces where applicable
2019-02-16 15:37:21 -05:00
bunnei
4699fdca8f
Merge pull request #2127 from FearlessTobi/fix-screenshot-srgb
...
renderer_opengl: respect the sRGB colorspace for the screenshot feature
2019-02-16 15:36:00 -05:00
bunnei
cd7e1183e2
Merge pull request #2128 from FearlessTobi/port-4197
...
Port citra-emu/citra#4197 : "threadsafe_queue: Add PopWait and use it where possible "
2019-02-16 15:34:49 -05:00
Lioncash
b009bda67a
audio_core/buffer: Make const and non-const getter for samples consistent
...
This way proper const/non-const selection can occur.
2019-02-16 15:21:35 -05:00
Lioncash
0113c36300
address_arbiter: Use nested namespaces where applicable
...
A fairly trivial change. Other sections of the codebase use nested
namespaces instead of separate namespaces here. This one must have just
been overlooked.
2019-02-16 12:41:30 -05:00
Lioncash
a8fa5019b5
video_core: Remove usages of System::GetInstance() within the engines
...
Avoids the use of the global accessor in favor of explicitly making the
system a dependency within the interface.
2019-02-15 22:06:23 -05:00
Fernando Sahmkow
ecccfe0337
Use u128 on Clock Cycles calculation.
2019-02-15 22:57:16 -04:00
Fernando Sahmkow
3ea48e8ebe
Implement 128 bits Unsigned Integer Multiplication and Division.
2019-02-15 22:55:31 -04:00
Fernando Sahmkow
5b7ec71fb7
Correct CNTPCT to use Clock Cycles instead of Cpu Cycles.
2019-02-15 22:55:29 -04:00
James Rowe
99da6362c4
Merge pull request #2123 from lioncash/coretiming-global
...
core_timing: De-globalize core_timing facilities
2019-02-15 19:52:11 -07:00
Lioncash
bd983414f6
core_timing: Convert core timing into a class
...
Gets rid of the largest set of mutable global state within the core.
This also paves a way for eliminating usages of GetInstance() on the
System class as a follow-up.
Note that no behavioral changes have been made, and this simply extracts
the functionality into a class. This also has the benefit of making
dependencies on the core timing functionality explicit within the
relevant interfaces.
2019-02-15 21:50:25 -05:00
B3n30
2195f10d15
Adressed review comments
2019-02-15 22:14:54 +01:00
B3n30
4154936568
threadsafe_queue: Add WaitIfEmpty and use it in logging
2019-02-15 22:12:54 +01:00
fearlessTobi
9a56b99fa4
renderer_opengl: respect the sRGB colorspace for the screenshot feature
...
Previously, we were completely ignoring for screenshots whether the game uses RGB or sRGB.
This resulted in screenshot colors that looked off for some titles.
2019-02-15 21:27:29 +01:00
ReinUsesLisp
8dfc81239f
gl_state: Synchronize gl_state even when state is disabled
...
There are some potential edge cases where gl_state may fail to track the
state if a related state changes while the toggle is disabled or it
didn't change. This addresses that.
2019-02-15 01:30:14 -03:00
bunnei
4327f430f1
Merge pull request #2112 from lioncash/shadowing
...
gl_rasterizer_cache: Get rid of variable shadowing
2019-02-14 21:45:20 -05:00
bunnei
a8fc5d6edd
Merge pull request #2111 from ReinUsesLisp/fetch-fix
...
gl_shader_decompiler: Re-implement TLDS lod
2019-02-14 21:42:34 -05:00
ReinUsesLisp
ae6c052ed9
vk_resource_manager: Implement a command buffer pool with VKFencedPool
2019-02-14 18:44:26 -03:00
ReinUsesLisp
a2b6de7e9f
vk_resource_manager: Add VKFencedPool interface
...
Handles a pool of resources protected by fences. Manages resource
overflow allocating more resources.
This class is intended to be used through inheritance.
2019-02-14 18:44:26 -03:00
ReinUsesLisp
0ffdd0a683
vk_resource_manager: Implement VKResourceManager and fence allocator
...
CommitFence iterates a pool of fences until one is found. If all fences
are being used at the same time, allocate more.
2019-02-14 18:44:26 -03:00
ReinUsesLisp
aa0b6babda
vk_resource_manager: Implement VKFenceWatch
...
A fence watch is used to keep track of the usage of a fence and protect
a resource or set of resources without having to inherit from their
handlers.
2019-02-14 18:44:26 -03:00
ReinUsesLisp
25c2fe1c6b
vk_resource_manager: Implement VKFence
...
Fences take ownership of objects, protecting them from GPU-side or
driver-side concurrent access. They must be commited from the resource
manager. Their usage flow is: commit the fence from the resource
manager, protect resources with it and use them, send the fence to an
execution queue and Wait for it if needed and then call Release. Used
resources will automatically be signaled when they are free to be
reused.
2019-02-14 18:44:26 -03:00
ReinUsesLisp
33a4cebc22
vk_resource_manager: Add VKResource interface
...
VKResource is an interface that gets signaled by a fence when it is free
to be reused.
2019-02-14 18:36:15 -03:00
bunnei
fcc3aa0bbf
Merge pull request #2113 from ReinUsesLisp/vulkan-base
...
vulkan: Add dependencies and device abstraction
2019-02-14 10:06:48 -05:00
Fernando Sahmkow
10682ad7e0
shader_decompiler: Improve Accuracy of Attribute Interpolation.
2019-02-14 03:25:07 -04:00
bunnei
8490e7746a
Merge pull request #2115 from lioncash/local
...
core_timing: Make EmptyTimedCallback a local variable
2019-02-13 21:42:04 -05:00
bunnei
f0c4ac9abd
Merge pull request #2116 from lioncash/size
...
threadsafe_queue: Remove NeedSize template parameter
2019-02-13 21:41:25 -05:00
Fernando Sahmkow
bb41683394
rasterizer_cache_gl: Only do fast layered copy on the same format. As
...
glCopyImageSubData does not support different formats.
2019-02-13 16:55:00 -04:00
fearlessTobi
efd83570bd
Make bitfield assignment operator public
...
This change needs to be made to get the code compiling again. It was suggested after a conversation with Lioncash.
The conversation can be seen here: https://user-images.githubusercontent.com/20753089/45064197-b6107800-b0b2-11e8-9db8-f696299fb86a.PNG
2019-02-13 21:15:15 +01:00
Lioncash
0829ef97ca
threadsafe_queue: Use std::size_t for representing size
...
Makes it consistent with the regular standard containers in terms of
size representation. This also gets rid of dependence on our own
type aliases, removing the need for an include.
2019-02-12 22:39:53 -05:00
Lioncash
f0bfb24c61
threadsafe_queue: Remove NeedSize template parameter
...
The necessity of this parameter is dubious at best, and in 2019 probably
offers completely negligible savings as opposed to just leaving this
enabled. This removes it and simplifies the overall interface.
2019-02-12 22:09:51 -05:00
Lioncash
83ba3515ec
core_timing: Make EmptyTimedCallback a local variable
...
Given this is only used in one place, it can be moved closest to its
usage site.
2019-02-12 21:47:18 -05:00
bunnei
cd542d5aac
Merge pull request #2099 from greggameplayer/BGRA8-Framebuffer-Real
...
Implement BGRA8 framebuffer format
2019-02-12 21:44:20 -05:00
ReinUsesLisp
8beca060d1
vk_device: Abstract device handling into a class
...
VKDevice contains all the data required to manage and initialize a
physical device. Its intention is to be passed across Vulkan objects to
query device-specific data (for example the logical device and the
dispatch loader).
2019-02-12 21:43:02 -03:00
Lioncash
86b55cb6df
renderer_opengl: Remove reference to global system instance
...
We already store a reference to the system instance that the renderer is
created with, so we don't need to refer to the system instance via
Core::System::GetInstance()
2019-02-12 19:33:22 -05:00
bunnei
8135f4bfce
Merge pull request #2110 from lioncash/namespace
...
core_timing: Rename CoreTiming namespace to Core::Timing
2019-02-12 19:26:37 -05:00
bunnei
c440ecfafe
Merge pull request #2104 from ReinUsesLisp/compute-assert
...
kepler_compute: Fixup assert and rename the engine
2019-02-12 19:24:34 -05:00
Lioncash
054e39647c
gl_rasterizer_cache: Remove unnecessary newline
2019-02-12 16:56:19 -05:00
Lioncash
e25c464c02
gl_rasterizer_cache: Get rid of variable shadowing
...
Avoids shadowing the members of the struct itself, which results in a
-Wshadow warning.
2019-02-12 16:46:39 -05:00
ReinUsesLisp
18fe910957
renderer_vulkan: Add declarations file
...
This file is intended to be included instead of vulkan/vulkan.hpp. It
includes declarations of unique handlers using a dynamic dispatcher
instead of a static one (which would require linking to a Vulkan
library).
2019-02-12 18:33:02 -03:00
ReinUsesLisp
b12ab4d805
logging: Add Vulkan backend logging class type
2019-02-12 18:33:02 -03:00
ReinUsesLisp
e60d4d70bc
gl_shader_decompiler: Re-implement TLDS lod
2019-02-12 17:03:07 -03:00
Lioncash
48d9d66dc5
core_timing: Rename CoreTiming namespace to Core::Timing
...
Places all of the timing-related functionality under the existing Core
namespace to keep things consistent, rather than having the timing
utilities sitting in its own completely separate namespace.
2019-02-12 12:42:17 -05:00
bunnei
444231a83d
Merge pull request #2108 from FernandoS27/fix-cc
...
Fix incorrect value for CC bit in IADD
2019-02-12 10:39:03 -05:00
bunnei
c1accfefde
Merge pull request #2109 from FernandoS27/fix-f2i
...
Corrected F2I None mode to RoundEven.
2019-02-12 10:20:29 -05:00
bunnei
27e5efd265
Merge pull request #2068 from ReinUsesLisp/shader-cleanup-textures
...
shader_ir: Clean texture management code
2019-02-12 10:20:15 -05:00
Fernando Sahmkow
f5ec165e8c
Corrected F2I None mode to RoundEven.
2019-02-11 18:46:45 -04:00
Fernando Sahmkow
edd668047c
Fix incorrect value for CC bit in IADD
2019-02-11 16:44:43 -04:00
ReinUsesLisp
1ddcd0e6f0
kepler_compute: Fixup assert and rename engines
...
When I originally added the compute assert I used the wrong
documentation. This addresses that.
The dispatch register was tested with homebrew against hardware and is
triggered by some games (e.g. Super Mario Odyssey). What exactly is
missing to get a valid program bound by this engine requires more
investigation.
2019-02-10 19:29:33 -03:00
greggameplayer
a6a73d8892
Implement BGRA8 framebuffer format
2019-02-09 23:44:01 +01:00
bunnei
1d98027a0e
Merge pull request #1904 from bunnei/better-fermi-copy
...
gl_rasterizer: Implement a more accurate fermi 2D copy.
2019-02-08 23:32:24 -05:00
bunnei
2374471a1e
Merge pull request #2096 from FearlessTobi/patch-3
...
nvdisp_disp0: change drawing message log level from Warning to Trace
2019-02-08 21:56:47 -05:00
Fernando Sahmkow
e543320129
Implement linear textures ( #2089 )
2019-02-08 18:28:01 -05:00
ReinUsesLisp
e36e7ae74e
gl_rasterizer_cache: Fixup texture view parameters
...
These parameters were declared as constants and passed to glTextureView
but then they were removed on a rabase. This addresses that mistake.
2019-02-08 18:32:58 -03:00
Tobias
259e52ccb2
nvdisp_disp0: change drawing message log level from Warning to Trace
...
This is a leftover from the early yuzu days.
We shouldn't log every time when we are drawing by default, so let's change the log level to Trace.
2019-02-08 19:26:49 +01:00
unknown
f27c65eb91
Use QString instead of std::string where applicable
2019-02-08 14:18:41 +01:00
Mat M
996ddb202b
Use constexpr char array instead of string where applicable
...
Co-Authored-By: FreddyFunk <frederic.laing.development@gmail.com>
2019-02-08 14:03:10 +01:00
unknown
9d411699d8
frontend: Open transferable shader cache for a selected game in the gamelist
2019-02-08 09:05:51 +01:00
ReinUsesLisp
889c646ac0
shader_ir: Remove F4 prefix to texture operations
...
This was originally included because texture operations returned a vec4.
These operations now return a single float and the F4 prefix doesn't
mean anything.
2019-02-07 17:36:46 -03:00
ReinUsesLisp
d62b0a9e29
shader_ir: Clean texture management code
...
Previous code relied on GLSL parameter order (something that's always
ill-formed on an IR design). This approach passes spatial coordiantes
through operation nodes and array and depth compare values in the the
texture metadata. It still contains an "extra" vector containing generic
nodes for bias and component index (for example) which is still a bit
ill-formed but it should be better than the previous approach.
2019-02-07 00:46:13 -03:00
bunnei
f09d1dffd1
Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-tracking
...
shader/track: Add a more permissive global memory tracking
2019-02-06 21:56:14 -05:00
bunnei
35e1118766
gl_rasterizer_cache: Mark surface copy destinations as modified.
2019-02-06 21:54:25 -05:00
bunnei
dd1aab5446
gl_rasterizer: Implement a more accurate fermi 2D copy.
...
- This is a blit, use the blit registers.
2019-02-06 21:54:21 -05:00
bunnei
ca482997fe
Merge pull request #2091 from FearlessTobi/port-4603
...
Port citra-emu/citra#4603 : "gdbstub: only let Execute breakpoints write/restore BKPT opcodes into target memory"
2019-02-06 21:51:46 -05:00
ReinUsesLisp
dfd14618f7
cmake: Fix title bar issue
2019-02-06 22:23:41 -03:00
Frederic L
d0ac624403
gl_shader_disk_cache: Check LZ4 size limit
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
Frederic L
9f0b247cf6
gl_shader_disk_cache: Consider compressed size zero as an error
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
Frederic L
8ff2ce5207
cmake: Use CMAKE_COMMAND instead of "cmake"
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06 22:23:41 -03:00
ReinUsesLisp
e6a2245304
gl_shader_disk_cache: Use unordered containers
2019-02-06 22:23:41 -03:00
ReinUsesLisp
e147ed4fc0
gl_shader_cache: Fixup GLSL unique identifiers
2019-02-06 22:23:40 -03:00
ReinUsesLisp
bd928e70ed
loading_screen: Unchunk progress bar
2019-02-06 22:23:40 -03:00
ReinUsesLisp
eb73247433
gl_shader_cache: Link loading screen with disk shader cache load
2019-02-06 22:23:40 -03:00
ReinUsesLisp
df0f31f44e
gl_shader_cache: Set GL_PROGRAM_SEPARABLE to dumped shaders
...
i965 (and probably all mesa drivers) require GL_PROGRAM_SEPARABLE when using
glProgramBinary. This is probably required by the standard but it's ignored by
permisive proprietary drivers.
2019-02-06 22:23:40 -03:00
ReinUsesLisp
7fefec585c
gl_shader_disk_cache: Pass core system as argument and guard against games without title ids
2019-02-06 22:23:40 -03:00
ReinUsesLisp
2bc6a699dc
gl_shader_disk_cache: Guard reads and writes against failure
2019-02-06 22:23:40 -03:00
ReinUsesLisp
750abcc23d
gl_shader_disk_cache: Address miscellaneous feedback
2019-02-06 22:23:40 -03:00
ReinUsesLisp
8ee3666a3c
gl_shader_disk_cache: Pass return values returning instead of by parameters
2019-02-06 22:23:40 -03:00
ReinUsesLisp
ed956569a4
gl_shader_disk_cache: Compress program binaries using LZ4
2019-02-06 22:23:39 -03:00
ReinUsesLisp
f087639e4a
gl_shader_disk_cache: Compress GLSL code using LZ4
2019-02-06 22:23:39 -03:00
ReinUsesLisp
cfb20c4c9d
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
2019-02-06 22:23:39 -03:00
ReinUsesLisp
e78da8dc1f
settings: Hide shader cache behind a setting
2019-02-06 22:20:57 -03:00
ReinUsesLisp
be4641c43f
gl_shader_disk_cache: Invalidate shader cache changes with CMake hash
2019-02-06 22:20:57 -03:00
ReinUsesLisp
a3703f5767
gl_shader_cache: Refactor to support disk shader cache
2019-02-06 22:20:57 -03:00
ReinUsesLisp
4039086226
gl_shader_disk_cache: Add transferable cache invalidation
2019-02-06 22:20:57 -03:00
ReinUsesLisp
a1faed9950
gl_shader_disk_cache: Add precompiled load
2019-02-06 22:20:57 -03:00
ReinUsesLisp
57fb15d2a3
gl_shader_disk_cache: Add precompiled save
2019-02-06 22:20:57 -03:00
ReinUsesLisp
3435cd8d5e
gl_shader_disk_cache: Add transferable load
2019-02-06 22:20:57 -03:00
ReinUsesLisp
b1efceec89
gl_shader_disk_cache: Add transferable stores
2019-02-06 22:20:57 -03:00
ReinUsesLisp
98be5a4928
gl_shader_disk_cache: Add ShaderDiskCacheOpenGL class and helpers
2019-02-06 22:20:57 -03:00
ReinUsesLisp
145c3ac89e
gl_shader_disk_cache: Add file and move BaseBindings declaration
2019-02-06 22:20:57 -03:00
ReinUsesLisp
c2c5260fd7
gl_shader_decompiler: Remove name entries
2019-02-06 22:20:57 -03:00
ReinUsesLisp
8b11368671
gl_shader_util: Add parameter to handle retrievable programs
2019-02-06 22:20:57 -03:00
ReinUsesLisp
0ed5d728ca
rasterizer_interface: Add disk cache entry for the rasterizer
2019-02-06 22:20:57 -03:00
ReinUsesLisp
84412591c9
file_util: Add shader directory
2019-02-06 22:20:57 -03:00
ReinUsesLisp
049050856f
shader_decode: Implement LDG and basic cbuf tracking
2019-02-06 22:20:57 -03:00
bunnei
10ab714fe0
Merge pull request #2042 from ReinUsesLisp/nouveau-tex
...
maxwell_3d: Allow texture handles with TIC id zero
2019-02-06 20:19:20 -05:00
bunnei
40ac058557
Merge pull request #2071 from ReinUsesLisp/dsa-texture
...
gl_rasterizer: Use DSA for textures and move swizzling to texture state
2019-02-06 20:17:59 -05:00
Dimitri ALBORA
8b800369ea
gdbstub: only let Execute breakpoints write/restore BKPT opcodes into target memory
2019-02-06 19:07:35 +01:00
bunnei
c357d8f6f7
Merge pull request #2057 from FearlessTobi/port-4586
...
Port citra-emu/citra#4586 : "Use QPixmap/QIcon for background color selection button"
2019-02-06 12:37:57 -05:00
bunnei
b34ae2235d
Merge pull request #2086 from FearlessTobi/port-4583
...
Port citra-emu/citra#4583 : "citra_qt: Fix saving screenshot when no file extension is provided"
2019-02-06 12:33:35 -05:00
bunnei
40cd299f01
Merge pull request #2087 from lioncash/const
...
service/nvflinger, service/vi: Improve error case handling
2019-02-06 12:33:13 -05:00
Weiyi Wang
89abef3518
remove all occurance of specifying endianness inside BitField
...
This commit it automatically generated by command in zsh:
sed -i -- 's/BitField<\(.*\)_le>/BitField<\1>/g' **/*(D.)
BitField is now aware to endianness and default to little endian. It expects a value representation type without storage specification for its template parameter.
2019-02-06 18:13:45 +01:00
Weiyi Wang
6b81ceb060
common/bitfield: make it endianness-aware
2019-02-06 17:29:39 +01:00
Weiyi Wang
71530781f3
common/swap: remove default value for swap type internal storage
...
This is compromise for swap type being used in union. A union has deleted default constructor if it has at least one variant member with non-trivial default constructor, and no variant member of T has a default member initializer. In the use case of Bitfield, all variant members will be the swap type on endianness mismatch, which would all have non-trivial default constructor if default value is specified, and non of them can have member initializer
2019-02-06 17:24:27 +01:00
Weiyi Wang
6734c64976
common/swap: use template and tag for LE/BE specification
...
The tag can be useful for other type-generic templates like BitFields to forward the endianness specification
2019-02-06 17:24:13 +01:00
Weiyi Wang
94bc48dd78
common/swap: add swap template for enum
2019-02-06 17:21:15 +01:00
bunnei
67c1f31251
Merge pull request #2088 from jroweboy/h
...
QT: Fix the loading screen 'H' switch logo to not glitch out
2019-02-05 21:06:39 -05:00
James Rowe
c82b0afb69
QT: Fix the loading screen 'H' switch logo to not glitch out
2019-02-05 18:24:15 -07:00
Lioncash
ef073ff117
service/nvflinger,service/vi: Handle failure cases with exposed API
...
Converts many of the Find* functions to return a std::optional<T> as
opposed to returning the raw return values directly. This allows
removing a few assertions and handles error cases like the service
itself does.
2019-02-05 18:03:28 -05:00
bunnei
7aa7d8f4ff
Merge pull request #2085 from ReinUsesLisp/cube-minus-one
...
video_core/texture: Fix BitField size for depth_minus_one
2019-02-05 17:15:26 -05:00
xperia64
f598490b57
Fix crash when no files are selected
2019-02-05 22:40:23 +01:00
xperia64
284536a626
Add file extension to screenshot filename if not provided
2019-02-05 22:31:37 +01:00
Lioncash
7320c667df
service/nvflinger: Mark FindVsyncEvent() as a const member function
...
This member function doesn't actually modify instance state, so it can
be marked as a const member function.
2019-02-05 15:57:29 -05:00
Lioncash
3c02cdcc57
service/nvflinger: Rename GetVsyncEvent() to FindVsyncEvent()
...
This was missed within #2075 . Renames the member function to make it
consistent with the rest of the Find* functions.
2019-02-05 15:55:18 -05:00
bunnei
72c70d6808
Merge pull request #2081 from ReinUsesLisp/lmem-64
...
shader_ir/memory: Add LD_L 64 bits loads
2019-02-05 09:17:48 -05:00
ReinUsesLisp
b5e685b297
video_core/texture: Fix BitField size for depth_minus_one
2019-02-05 04:32:06 -03:00
bunnei
bb4549a73d
Merge pull request #2082 from FernandoS27/txq-stl
...
Fix TXQ not using the component mask.
2019-02-04 20:22:32 -05:00
Mat M
a568cd805b
Update src/video_core/engines/shader_bytecode.h
...
Co-Authored-By: FernandoS27 <fsahmkow27@gmail.com>
2019-02-03 21:27:26 -04:00
Fernando Sahmkow
0306c50339
Fix TXQ not using the component mask.
2019-02-03 18:17:18 -04:00
ReinUsesLisp
dfa7be5ddf
shader_ir/memory: Add ST_L 64 and 128 bits stores
2019-02-03 19:08:10 -03:00
ReinUsesLisp
0d1d755086
shader/track: Search inside of conditional nodes
...
Some games search conditionally use global memory instructions. This
allows the heuristic to search inside conditional nodes for the source
constant buffer.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
42b75e8be8
shader_ir: Rename BasicBlock to NodeBlock
...
It's not always used as a basic block. Rename it for consistency.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
6a6fabea58
shader_ir: Pass decoded nodes as a whole instead of per basic blocks
...
Some games call LDG at the top of a basic block, making the tracking
heuristic to fail. This commit lets the heuristic the decoded nodes as a
whole instead of per basic blocks.
This may lead to some false positives but allows it the heuristic to
track cases it previously couldn't.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
2bdbb90af7
video_core: Assert on invalid GPU to CPU address queries
2019-02-03 04:58:40 -03:00
ReinUsesLisp
04e68e9738
maxwell_3d: Allow sampler handles with TSC id zero
2019-02-03 04:58:40 -03:00
ReinUsesLisp
390721a561
maxwell_3d: Allow texture handles with TIC id zero
...
Also remove "enabled" field from Tegra::Texture::FullTextureInfo because
it would become unused.
2019-02-03 04:58:24 -03:00
ReinUsesLisp
e01a9de35f
memory_manager: Check for reserved page status
2019-02-03 04:58:24 -03:00
ReinUsesLisp
f61c1ed246
shader_ir/memory: Add LD_L 128 bits loads
2019-02-03 00:35:34 -03:00
ReinUsesLisp
9feb68085d
shader_bytecode: Rename BytesN enums to BitsN
2019-02-03 00:25:40 -03:00
ReinUsesLisp
0be835132c
shader_ir/memory: Add LD_L 64 bits loads
2019-02-03 00:25:40 -03:00
bunnei
eceab45dac
Merge pull request #2074 from ReinUsesLisp/shader-ir-unify-offset
...
shader_ir: Unify constant buffer offset values
2019-02-01 13:24:04 -05:00
bunnei
4076d8fe3e
Merge pull request #2073 from lioncash/opus
...
hwopus: Implement DecodeInterleaved (the newest variant)
2019-02-01 13:02:16 -05:00
bunnei
2d226ff8ac
Merge pull request #2067 from ReinUsesLisp/workaround-fb
...
gl_rasterizer: Workaround invalid zeta clears
2019-02-01 12:50:09 -05:00
bunnei
11e7c1244c
Merge pull request #2078 from lioncash/timer
...
kernel: Remove the Timer class
2019-02-01 12:49:16 -05:00
ReinUsesLisp
26f8a700a7
rasterizer_interface: Remove unused AccelerateFill operation
2019-02-01 03:02:22 -03:00
ReinUsesLisp
13222f94c0
video_core: Remove unused Fill surface type
2019-02-01 02:57:47 -03:00
Lioncash
414cc1eb1f
kernel: Remove the Timer class
...
A holdover from citra, the Horizon kernel on the switch has no
prominent kernel object that functions as a timer. At least not
to the degree of sophistication that this class provided.
As such, this can be removed entirely. This class also wasn't used at
all in any meaningful way within the core, so this was just code sitting
around doing nothing. This also allows removing a few things from the
main KernelCore class that allows it to use slightly less resources
overall (though very minor and not anything really noticeable).
2019-01-31 23:05:15 -05:00
bunnei
b0b027d2d0
Merge pull request #2072 from lioncash/service
...
service: Update function tables
2019-01-31 15:19:44 -05:00
bunnei
db21ac2627
Merge pull request #2077 from lioncash/virt
...
kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
2019-01-31 15:19:02 -05:00
bunnei
d6f5f5cafa
Merge pull request #2075 from lioncash/find
...
service/nvflinger: Minor renaming changes
2019-01-31 11:08:36 -05:00
ReinUsesLisp
3e80b08944
gl_rasterizer_cache: Fixup test clause
2019-01-30 19:10:35 -03:00
Mat M
911587fb8d
gl_rasterizer_cache: Guard clause swizzle testing
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-30 19:10:35 -03:00
ReinUsesLisp
220df45b7d
gl_state: Remove texture target tracking
2019-01-30 19:10:35 -03:00
ReinUsesLisp
704744bb72
gl_rasterizer_cache: Move swizzling to textures instead of state
2019-01-30 19:10:35 -03:00
ReinUsesLisp
3bbaa98c78
gl_state: Use DSA and multi bind to update texture bindings
2019-01-30 19:10:11 -03:00
ReinUsesLisp
4b676e7786
gl_rasterizer: Use DSA for textures
2019-01-30 19:10:11 -03:00
Lioncash
a3cdd773c3
kernel/wait_object: Devirtualize functions related to manipulating the thread list directly
...
No inheritors of the WaitObject class actually make use of their own
implementations of these functions, so they can be made non-virtual.
It's also kind of sketchy to allow overriding how the threads get added
to the list anyways, given the kernel itself on the actual hardware
doesn't seem to customize based off this.
2019-01-30 12:50:37 -05:00
Lioncash
4596ef5274
kernel/timer: Remove unnecessary WakeupAllWaitingThreads() override
...
This implementation just calls the base class variant of the function,
so this isn't necessary.
2019-01-30 12:45:00 -05:00
Lioncash
1a302d4d47
kernel/readable_event: Remove unnecessary WakeupAllWaitingThreads() override
...
This just calls the base variant of the function, so it can be removed.
2019-01-30 12:45:00 -05:00
Hexagon12
35480167b1
Merge pull request #2076 from lioncash/enc
...
video_core/dma_pusher: Silence C4828 warnings
2019-01-30 19:42:15 +02:00
Lioncash
0b594f3344
video_core/dma_pusher: Silence C4828 warnings
...
This was previously causing:
warning C4828: The file contains a character starting at offset 0xa33
that is illegal in the current source character set (codepage 65001).
warnings on Windows when compiling yuzu.
2019-01-30 12:36:31 -05:00
bunnei
92b18345a8
Merge pull request #1485 from FernandoS27/render-info
...
Add more info into textures' object labels
2019-01-30 12:35:56 -05:00
Lioncash
a897feb21e
hwopus: Implement DecodeInterleaved
...
This functions almost identically to DecodeInterleavedWithPerfOld,
however this function also has the ability to reset the decoder context.
This is documented as a potentially desirable thing in the libopus
manual in some circumstances as it says for the OPUS_RESET_STATE ctl:
"This should be called when switching streams in order to prevent the
back to back decoding from giving different result from one at a time
decoding."
2019-01-30 11:35:41 -05:00
Lioncash
ba14fb42e4
service/nvflinger: Make FindBufferQueueId() a const member function
...
This member function doesn't actually modify instance state, so it can
be const-qualified.
2019-01-30 11:14:08 -05:00
Lioncash
1d11def9c4
service/nvflinger: Rename Get prefix on function to Find
...
This more accurately describes what the function is actually attempting
to do (it's not a simple trivial getter).
2019-01-30 11:11:32 -05:00
ReinUsesLisp
477d616f7d
shader_ir: Unify constant buffer offset values
...
Constant buffer values on the shader IR were using different offsets if
the access direct or indirect. cbuf34 has a non-multiplied offset while
cbuf36 does. On shader decoding this commit multiplies it by four on
cbuf34 queries.
2019-01-30 02:45:50 -03:00
Lioncash
07b86dc28c
hwopus: Deduplicate the decoding code within DecodeInterleavedOld and DecodeInterleavedWithPerfOld
...
Keeps the logic in one spot for use by both functions.
2019-01-29 22:53:35 -05:00
Lioncash
44f39bfb68
hwopus: Replace std::optional<std::reference_wrapper<u64>> with u64*
...
This doesn't really offer anything over the use of a direct pointer, so
we can just use that instead.
2019-01-29 22:53:35 -05:00
Lioncash
eb1a3c1f4a
hwopus: Mark local variables as const where applicable
...
Makes non-mutable state more explicit.
2019-01-29 22:53:35 -05:00
Lioncash
06887c80a5
hwopus: Fill in the rest of the unknown service function names
...
Filled in via information provided by SwitchBrew.
2019-01-29 22:53:34 -05:00
Lioncash
5078106068
service/ns: Update function tables
...
Updates function tables based off information provided by SwitchBrew
2019-01-29 22:50:26 -05:00
Lioncash
1710847d08
service/ncm: Update function tables
...
Updates function tables based off information provided by SwitchBrew
2019-01-29 22:50:26 -05:00
Lioncash
0db8918947
service/audio: Update function tables
...
Updates function tables based off information provided by SwitchBrew.
2019-01-29 22:50:26 -05:00
Lioncash
c3affdd162
service/am/applet_ae: Update function tables
...
Updates function tables based off information provided by SwitchBrew.
2019-01-29 22:50:26 -05:00
Lioncash
09727a6a97
service/fsp-srv: Update function tables
...
Updates function tables based off information provided by SwitchBrew.
2019-01-29 22:50:26 -05:00
Lioncash
c6c1c1b45f
service/btm: Update function tables
...
Updates function tables based off information provided by SwitchBrew
2019-01-29 22:50:26 -05:00
Lioncash
0c59e6265f
service/btdrv: Update function tables
...
Updates function tables based off information provided by SwitchBrew.
2019-01-29 22:50:18 -05:00
bunnei
3c3d9afd61
Merge pull request #2070 from ReinUsesLisp/cubearray-view
...
gl_shader_cache: Fix texture view for cubemaps as cubemap arrays
2019-01-29 22:27:08 -05:00
bunnei
69884d8a8f
Merge pull request #2069 from lioncash/vi
...
service/nvflinger: Add the null display type
2019-01-29 22:25:26 -05:00
ReinUsesLisp
52c326c301
gl_shader_cache: Use explicit bindings
2019-01-30 00:11:02 -03:00
ReinUsesLisp
9f803299de
gl_rasterizer: Implement global memory management
2019-01-30 00:00:15 -03:00
ReinUsesLisp
3b84e04af1
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
Kevin
ba38d91fe2
video_core/GPU Implemented the GPU PFIFO puller semaphore operations. ( #1908 )
...
* Implemented the puller semaphore operations.
* Nit: Fix 2 style issues
* Nit: Add Break to default case.
* Fix style.
* Update for comments. Added ReferenceCount method
* Forgot to remove GpuSmaphoreAddress union.
* Fix the clang-format issues.
* More clang formatting.
* two more white spaces for the Clang formatting.
* Move puller members into the regs union
* Updated to use Memory::WriteBlock instead of Memory::Write*
* Fix clang style issues
* White space clang error
* Removing unused funcitons and other pr comment
* Removing unused funcitons and other pr comment
* More union magic for setting regs value.
* union magic refcnt as well
* Remove local var
* Set up the regs and regs_assert_positions up properly
* Fix clang error
2019-01-29 21:49:18 -05:00
ReinUsesLisp
f58a6152fc
gl_shader_cache: Fix texture view for cubemaps as cubemap arrays
...
Cubemaps are considered layered and to create a texture view the texture
mustn't be a layered texture, resulting in cubemaps being bound as
cubemap arrays. To fix this issue this commit introduces an extra
surface parameter called "is_array" and uses this to query for texture
view creation.
Now that texture views for cubemaps are actually being created, this
also fixes the number of layers created for the texture view (since they
have to be 6 to create a texture view of cubemaps).
2019-01-29 23:49:02 -03:00
ReinUsesLisp
07692230ca
gl_rasterizer: Workaround invalid zeta clears
...
Some games (like Xenoblade Chronicles 2) clear both depth and stencil
buffers while there's a depth-only texture attached (e.g. D16 Unorm).
This commit reads the zeta format of the bound surface on
ConfigureFramebuffers and returns if depth and/or stencil attachments
were set. This is ignored on DrawArrays but on Clear it's used to just
clear those attachments, bypassing an OpenGL error.
2019-01-29 23:47:33 -03:00
Lioncash
49a3571e76
service/psc: Update function tables
...
Updates the function tables based off information on SwitchBrew. Gets
rid of a swath of unknown names.
2019-01-29 21:16:24 -05:00
Lioncash
7e92497402
nvflinger: Add the Null display
...
In addition to the default, external, EDID, and internal displays,
there's also a null display provided as well, which as the name
suggests, does nothing but discard all commands given to it. This is
provided for completeness.
2019-01-29 21:13:33 -05:00
Lioncash
679e63550a
nvflinger: Change log message in OpenDisplay to be a debug log instead of a warning
...
Opening a display isn't really a thing to warn about. It's an expected
thing, so this can be a debug log. This also alters the string to
indicate the display name better.
Opening "Default" display reads a little nicer compared to Opening
display Default.
2019-01-29 21:13:33 -05:00
Lioncash
3d81a8efd5
nvflinger: Remove unnecessary header inclusions
2019-01-29 21:13:33 -05:00
Lioncash
d9f9bb7552
nvflinger: Mark locals const where applicable
...
Makes non-mutable state more explicit.
2019-01-29 21:13:33 -05:00
Lioncash
f45c25aaba
nvflinger: Use a std::array for the available displays instead of std::vector
...
The built-in set of displays is fixed, so we can utilize an array
instead of a vector here.
2019-01-29 21:13:33 -05:00
Lioncash
2561a79c39
hle/ipc_helpers: Fix clang-format warnings
2019-01-29 21:11:04 -05:00
Lioncash
ac603cf130
hle/ipc_helpers: Allow pushing signed values
...
This is kind of a large hole in the API, given we allow popping signed
values. This fixes that.
2019-01-29 13:09:32 -05:00
bunnei
8dbb8edcd3
Merge pull request #2063 from lioncash/pessimizing
...
video_core/shader: Minor changes
2019-01-28 19:33:26 -05:00
Lioncash
932922f67f
service/pm: Implement SetMaintenanceBoot()
...
This quite literally functions as a basic setter. No other error
checking or anything (since there's nothing to really check against).
With this, it completes the pm:bm interface in terms of functionality.
2019-01-28 11:48:11 -05:00
Lioncash
cb2ce9924a
service/pm: Tidy up functionality related to SystemBootMode
...
Just minor tidying of interfaces.
2019-01-28 11:44:37 -05:00
Lioncash
5e636d1f6e
service/vi: Remove stubbed notifier from SetLayerVisibility
...
This appears to be a vestigial API function that's only kept around for
compatibility's sake, given the function only returns a success error
code and exits.
Since that's the case, we can remove the stubbed notification from the
log, since doing nothing is technically the correct behavior in this
case.
2019-01-28 08:22:28 -05:00
Lioncash
b2b98b2f44
shader/shader_ir: Amend three comment typos
...
Given we're in the area, these are three trivial typos that can be
corrected.
2019-01-28 07:52:04 -05:00
Lioncash
62e08c30b7
shader/shader_ir: Amend constructor initializer ordering for AbufNode
...
Orders the class members in the same order that they would actually be
initialized in. Gets rid of two compiler warnings.
2019-01-28 07:50:34 -05:00
Lioncash
3e1a9a45a6
shader/decode: Avoid a pessimizing std::move within DecodeRange()
...
std::moveing a local variable in a return statement has the potential to
prevent copy elision from occurring, so this can just be converted into
a regular return.
2019-01-28 07:43:23 -05:00
bunnei
a9268286a4
Merge pull request #2060 from lioncash/exception
...
kernel/svc: Log out uncaught C++ exceptions from svcBreak
2019-01-27 12:55:07 -05:00
bunnei
65f3908064
Merge pull request #2058 from ReinUsesLisp/trunc-warning
...
video_core: Silent implicit conversion warning
2019-01-27 12:49:59 -05:00
Lioncash
7842536ddb
kernel/svc: Log out uncaught C++ exceptions from svcBreak
...
Looking into the implementation of the C++ standard facilities that seem
to be within all modules, it appears that they use 7 as a break reason
to indicate an uncaught C++ exception.
This was primarily found via the third last function called within
Horizon's equivalent of libcxxabi's demangling_terminate_handler(),
which passes the value 0x80000007 to svcBreak.
2019-01-26 21:19:13 -05:00
fearlessTobi
7185d90a53
dsp_interface: fix sound being played while volume is 0
...
According to documentation, if the argument of std::exp is zero, one is returned.
However we want the return value to be also zero in this case so no audio is played.
2019-01-26 22:42:09 +01:00
xperia64
32eb080e02
Use QPixmap/QIcon for background color selection button
2019-01-26 15:08:54 +01:00
ReinUsesLisp
fc6d46c374
video_core: Silent implicit conversion warning
2019-01-26 02:27:14 -03:00
bunnei
1f4ca1e841
Merge pull request #1927 from ReinUsesLisp/shader-ir
...
video_core: Replace gl_shader_decompiler with an IR based decompiler
2019-01-25 23:42:14 -05:00
bunnei
f574d324e7
Merge pull request #2054 from bunnei/scope-context-refactor
...
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
2019-01-23 21:20:08 -05:00
bunnei
045b0b70b6
frontend: Refactor ScopeAcquireWindowContext out of renderer_opengl.
2019-01-23 19:19:23 -05:00
zhupengfei
a94a828b6c
citra_qt: Log settings on launch
2019-01-22 23:35:38 +01:00
ReinUsesLisp
9a82dec74a
maxwell_3d: Set rt_separate_frag_data to 1 by default
...
Commercial games assume that this value is 1 but they never set it. On
the other hand nouveau manually sets this register. On
ConfigureFramebuffers we were asserting for what we are actually
implementing (according to envytools).
2019-01-22 04:14:29 -03:00
James Rowe
5f2d9f282a
QT: Hide GLWidget immediately after showing.
...
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.
2019-01-21 16:21:44 -07:00
James Rowe
f2a2f818b6
SDL Frontend: Add shared context support
2019-01-21 16:00:01 -07:00
James Rowe
c6a0ab9792
QT Frontend: Migrate to QOpenGLWindow
2019-01-21 16:00:01 -07:00
bunnei
839c4a8a1c
Merge pull request #2035 from lioncash/fwd-decl
...
yuzu/configuration: Remove unnecessary inclusions where applicable
2019-01-21 17:31:07 -05:00
James Rowe
3049ea45d3
Change const char* to const char[]
2019-01-21 10:28:32 -07:00
James Rowe
372245e0b5
Fix mingw compile error and warnings
2019-01-21 09:39:45 -07:00
James Rowe
3ca0af8bb3
Add fade out effect to the loading screen
2019-01-21 09:20:16 -07:00
James Rowe
3740adb6f5
Set Minimum Size to the same as renderwindow
2019-01-21 08:51:37 -07:00
James Rowe
aa427bb2a7
Remove blue box around loading screen
2019-01-21 08:50:23 -07:00
James Rowe
636cc2a496
Change the background color of Stage Complete to yuzu blue
2019-01-20 19:14:14 -07:00
James Rowe
ea73ffe202
Rename step 1 and step 2 to be a little more descriptive
2019-01-20 18:40:25 -07:00
James Rowe
56541b1ae5
Prevent estimated time from flashing after slow shader compilation starts
2019-01-20 18:31:35 -07:00
James Rowe
4bce57b149
Move progress bar style into constexpr strings
2019-01-20 18:20:21 -07:00
James Rowe
63783db1b3
Hide progress bar on Prepare step
2019-01-20 15:09:14 -07:00
James Rowe
e8bd6b1fcc
QT: Upgrade the Loading Bar to look much better
2019-01-20 14:47:35 -07:00
bunnei
1c733bf175
Merge pull request #2034 from jroweboy/loading-widget
...
QT Frontend: Add a Loading screen with progressbar
2019-01-20 15:45:07 -05:00
bunnei
197d0d9d24
Merge pull request #2008 from ReinUsesLisp/dirty-framebuffers
...
gl_rasterizer_cache: Use dirty flags for framebuffers
2019-01-20 14:06:26 -05:00
bunnei
cbf8bea9d5
Merge pull request #2002 from ReinUsesLisp/dsa-vao-buffer
...
gl_rasterizer: Use DSA for VAOs and buffers
2019-01-20 14:06:01 -05:00
bunnei
eff61c5c42
Merge pull request #2032 from lioncash/web
...
yuzu/configuration/configure_web: Amend verification string
2019-01-20 13:26:47 -05:00
bunnei
f9e69faf4a
Merge pull request #2025 from DarkLordZach/loader-banner-logo
...
loader: Add getters for application banner and logo
2019-01-20 13:26:27 -05:00
James Rowe
69da267540
Add a workaround if QMovie isn't available
2019-01-19 23:34:03 -07:00
James Rowe
08fcf41b0a
QT Frontend: Add a Loading screen with progressbar
...
With shader caches on the horizon, one requirement is to provide visible
feedback for the progress. The shader cache reportedly takes several
minutes to load for large caches that were invalidated, and as such we
should provide a loading screen with progress.
Adds a loading screen widget that will be shown until the first frame of
the game is swapped. This was chosen in case shader caches are not being
used, several games still take more than a few seconds to launch and
could benefit from a loading screen.
2019-01-19 23:34:03 -07:00
bunnei
83f8d1aa2e
Merge pull request #2031 from lioncash/priv
...
yuzu/web_browser: Minor cleanup
2019-01-19 12:57:09 -05:00
bunnei
966405d64b
Merge pull request #2033 from ReinUsesLisp/fixup-clip-warning
...
gl_rasterizer: Silent unsafe mix warning
2019-01-19 12:56:40 -05:00
Lioncash
96644385ca
file_sys/directory: Remove unused DirectoryBackend class
...
This isn't used at all, so we can just get rid of it.
2019-01-18 14:33:50 -05:00
ReinUsesLisp
a1b1ea47ed
gl_rasterizer: Silent unsafe mix warning
2019-01-18 03:25:28 -03:00
Lioncash
faf69a22d4
yuzu/configuration/configure_input_player: Forward declare types where applicable
...
Allows removing the inclusion of the main input common header from the
UI config header.
2019-01-17 12:08:15 -05:00
Lioncash
609e98bc63
yuzu/configuration/configure_touchscreen_advanced: Remove unnecessary header inclusions
2019-01-17 12:02:01 -05:00
Lioncash
a0f615f232
yuzu/configuration/configure_per_general: Remove unused header inclusions
2019-01-17 11:58:43 -05:00
Lioncash
ac754a57d2
yuzu/configuration/configure_debug: Remove unused header inclusions
2019-01-17 11:51:47 -05:00
Lioncash
3629fcf3e6
yuzu/configuration/configure_system: Remove unused header inclusions
2019-01-17 11:50:57 -05:00
Lioncash
549164d425
yuzu/configuration/configure_web: Remove an unused lambda capture
...
'this' isn't actually used within the lambda, since what we need
from the class is already assigned within the capture section of
the lambda.
2019-01-17 11:39:49 -05:00
Lioncash
b8b87ec01f
yuzu/configuration/configure_web: Use an ellipsis with 'Verifying' text
...
It's a common UI pattern to use an ellipsis to indicate an ongoing
action, rather than just specifying the word by itself.
2019-01-17 11:35:59 -05:00
Lioncash
5961928543
core/frontend/applets/web_browser: Include missing headers
...
Gets rid of a few indirect inclusions.
2019-01-17 11:25:37 -05:00
Lioncash
a661025637
core/frontend/applets/web_browser: Make OpenPage() non-const
...
This is a function that definitely doesn't always have a non-modifying
behavior across all implementations, so this should be made non-const.
This gets rid of the need to mark data members as mutable to work around
the fact mutating data members needs to occur.
2019-01-17 11:19:52 -05:00
Lioncash
66978a772d
yuzu/web_browser: std::move std::function instances in OpenPage()
...
Avoids the need to potentially reallocate the contained callbacks.
2019-01-17 11:10:35 -05:00
Lioncash
e4fa77ef6a
yuzu/web_browser: Make slot functions private
...
These currently aren't used by anything other than the QtWebBrowser
class itself, and can be made private.
2019-01-17 11:08:05 -05:00
ReinUsesLisp
a63d7c49fc
shader_ir: Fixup clang build
2019-01-15 21:06:05 -03:00
Zach Hilman
b273b19576
loader: Propagate NCA logo section to ReadBanner and ReadLogo
2019-01-15 16:01:04 -05:00
Zach Hilman
318bf7c8e3
content_archive: Add getter for logo section of NCA
2019-01-15 16:00:29 -05:00
ReinUsesLisp
1e40a4b343
gl_shader_decompiler: replace std::get<> with std::get_if<> for macOS compatibility
2019-01-15 17:54:53 -03:00
ReinUsesLisp
51de4e00a6
gl_shader_decompiler: Inline textureGather component
2019-01-15 17:54:53 -03:00
ReinUsesLisp
1c9c4eefeb
shader_decode: Fixup XMAD
2019-01-15 17:54:53 -03:00
ReinUsesLisp
170c8212bb
shader_ir: Pass to decoder functions basic block's code
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2d6c064e66
shader_decode: Improve zero flag implementation
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d911740e5d
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
bb12f99b20
gl_shader_decompiler: Fixup AssignCompositeHalf
2019-01-15 17:54:53 -03:00
ReinUsesLisp
50195b1704
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2faad9bf23
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
52223313b1
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d6b173d5fe
gl_shader_decompiler: Use rasterizer's UBO size limit
2019-01-15 17:54:53 -03:00
ReinUsesLisp
df74ff3c8b
gl_shader_gen: Fixup code formatting
2019-01-15 17:54:53 -03:00
ReinUsesLisp
af5d7e2c49
video_core: Rename glsl_decompiler to gl_shader_decompiler
2019-01-15 17:54:53 -03:00
ReinUsesLisp
d9118d324a
shader_ir: Remove RZ and use Register::ZeroIndex instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
5af82a8ed4
shader_decode: Implement TEXS.F16
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c68c13e1aa
shader_decode: Fixup R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8b5588e776
glsl_decompiler: Fixup TLDS
2019-01-15 17:54:53 -03:00
ReinUsesLisp
dbed6c6485
glsl_decompiler: Fixup geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ea78c78253
shader_decode: Fixup WriteLogicOperation zero comparison
2019-01-15 17:54:53 -03:00
ReinUsesLisp
ab7f52b279
glsl_decompiler: Fixup permissive member function declarations
2019-01-15 17:54:53 -03:00
ReinUsesLisp
55a10d02e5
shader_decode: Fixup PSET
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a2e22b4359
shader_decode: Fixup clang-format
2019-01-15 17:54:53 -03:00
ReinUsesLisp
e1fea1e0c5
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a1b845b651
shader_decode: Implement VMAD and VSETP
2019-01-15 17:54:53 -03:00
ReinUsesLisp
b11e0b94c7
shader_decode: Implement HSET2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
2df55985b6
shader_decode: Rework HSETP2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8332482c24
shader_decode: Implement R2P
2019-01-15 17:54:53 -03:00
ReinUsesLisp
3f1136ac6f
shader_decode: Implement CSETP
2019-01-15 17:54:52 -03:00
ReinUsesLisp
7e13e8bfcb
shader_decode: Implement PSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
dd91650aaf
shader_decode: Implement HFMA2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d6f76307fe
glsl_decompiler: Remove HNegate inlining
2019-01-15 17:54:52 -03:00
ReinUsesLisp
027f443e69
shader_decode: Implement POPC
2019-01-15 17:54:52 -03:00
ReinUsesLisp
55e6786254
shader_decode: Implement TLDS (untested)
2019-01-15 17:54:52 -03:00
ReinUsesLisp
ec98e4d842
shader_decode: Update TLD4 reflecting #1862 changes
2019-01-15 17:54:52 -03:00
ReinUsesLisp
03e088a4f4
shader_ir: Fixup TEX and TEXS and partially fix TLD4 decompiling
2019-01-15 17:54:52 -03:00
ReinUsesLisp
2d9136cec6
shader_decode: Fixup FSET
2019-01-15 17:54:52 -03:00
ReinUsesLisp
af5c6e4ccb
shader_decode: Implement IADD32I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
4316eaf75c
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
fc46ecddb3
video_core: Return safe values after an assert hits
2019-01-15 17:54:52 -03:00
ReinUsesLisp
148a6418ed
shader_decode: Implement FFMA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21aff36459
video_core: Address feedback
2019-01-15 17:54:52 -03:00
ReinUsesLisp
59b34b1d76
shader_ir: Fixup file inclusions and clang-format
2019-01-15 17:54:52 -03:00
Mat M
57a900cc45
shader_ir: Move comment node string
...
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-01-15 17:54:52 -03:00
ReinUsesLisp
d4fae3a699
shader_ir: Address feedback to avoid UB in bit casting
2019-01-15 17:54:52 -03:00
ReinUsesLisp
946c86f0bb
shader_decode: Fixup clang-format
2019-01-15 17:54:52 -03:00
ReinUsesLisp
c9cf899d18
shader_decode: Implement LEA
2019-01-15 17:54:52 -03:00
ReinUsesLisp
4fd06efeb9
shader_decode: Implement IADD3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
a40fd07516
shader_decode: Implement LOP3
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b184ca9089
shader_decode: Implement ST_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
8d42feb09b
shader_decode: Implement LD_L
2019-01-15 17:54:52 -03:00
ReinUsesLisp
21f9e9da09
shader_decode: Implement HSETP2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
68c99d2597
shader_decode: Implement HADD2 and HMUL2
2019-01-15 17:54:52 -03:00
ReinUsesLisp
cf4a08d950
shader_decode: Implement HADD2_IMM and HMUL2_IMM
2019-01-15 17:54:52 -03:00
ReinUsesLisp
376a837511
shader_decode: Implement MOV_SYS
2019-01-15 17:54:52 -03:00
ReinUsesLisp
518a2bd206
shader_decode: Implement IMNMX
2019-01-15 17:54:52 -03:00
ReinUsesLisp
07944a2345
shader_decode: Implement F2F_C
2019-01-15 17:54:52 -03:00
ReinUsesLisp
e8235c0215
shader_decode: Implement I2I
2019-01-15 17:54:52 -03:00
ReinUsesLisp
6ca31f544a
shader_decode: Implement BRA internal flag
2019-01-15 17:54:52 -03:00
ReinUsesLisp
210620ff31
shader_decode: Implement ISCADD
2019-01-15 17:54:52 -03:00
ReinUsesLisp
b0e7920838
shader_decode: Implement XMAD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
becfdb8638
shader_decode: Implement PBK and BRK
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8f37531f8e
shader_decode: Implement LOP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8486e7f8c8
shader_decode: Implement SEL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
ccb71bece9
shader_decode: Implement IADD
2019-01-15 17:54:51 -03:00
ReinUsesLisp
faadae5814
shader_decode: Implement ISETP
2019-01-15 17:54:51 -03:00
ReinUsesLisp
80183de884
shader_decode: Implement BFI
2019-01-15 17:54:51 -03:00
ReinUsesLisp
078ba28e13
shader_decode: Implement ISET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
acdbbb8885
shader_decode: Implement LD_C
2019-01-15 17:54:51 -03:00
ReinUsesLisp
d79c462af0
shader_decode: Implement SHL
2019-01-15 17:54:51 -03:00
ReinUsesLisp
a2819c204f
shader_decode: Implement SHR
2019-01-15 17:54:51 -03:00
ReinUsesLisp
39f1c6246a
shader_decode: Implement LOP32I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
501284a81a
shader_decode: Implement BFE
2019-01-15 17:54:51 -03:00
ReinUsesLisp
e444a6553f
shader_decode: Implement FSET
2019-01-15 17:54:51 -03:00
ReinUsesLisp
3052eae25e
shader_decode: Implement F2I
2019-01-15 17:54:51 -03:00
ReinUsesLisp
8abe5ba2c8
shader_decode: Implement I2F
2019-01-15 17:54:51 -03:00
ReinUsesLisp
c849b5b320
shader_decode: Implement F2F
2019-01-15 17:54:50 -03:00
ReinUsesLisp
9118deb990
shader_decode: Stub DEPBAR
2019-01-15 17:54:50 -03:00
ReinUsesLisp
97f33f00cf
shader_decode: Implement SSY and SYNC
2019-01-15 17:54:50 -03:00
ReinUsesLisp
abdbafbc20
shader_decode: Implement PSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
802c23b8a8
shader_decode: Implement TMML
2019-01-15 17:54:50 -03:00
ReinUsesLisp
2b90637f4b
shader_decode: Implement TEX and TXQ
2019-01-15 17:54:50 -03:00
ReinUsesLisp
878672f371
shader_decode: Implement TEXS (F32)
2019-01-15 17:54:50 -03:00
ReinUsesLisp
c703f0aee4
shader_decode: Implement FSETP
2019-01-15 17:54:50 -03:00
ReinUsesLisp
8215ae942c
shader_decode: Partially implement BRA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4f95dc950e
shader_decode: Implement IPA
2019-01-15 17:54:50 -03:00
ReinUsesLisp
cacb934f21
shader_decode: Implement EXIT
2019-01-15 17:54:50 -03:00
ReinUsesLisp
0c049e0a21
shader_decode: Implement ST_A
2019-01-15 17:54:50 -03:00
ReinUsesLisp
e3f1233ce1
shader_decode: Implement LD_A
2019-01-15 17:54:50 -03:00
ReinUsesLisp
ea358bd4bf
shader_decode: Implement FADD32I
2019-01-15 17:54:50 -03:00
ReinUsesLisp
c9b2a1b051
shader_decode: Implement FMUL32_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
2edee801ce
shader_decode: Implement MOV32_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
06cb910c6d
shader_decode: Stub RRO_C, RRO_R and RRO_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
5e6a0a08c1
shader_decode: Implement FMNMX_C, FMNMX_R and FMNMX_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
964ddeeb90
shader_decode: Implement MUFU
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4ccaa1402d
shader_decode: Implement FADD_C, FADD_R and FADD_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
7c192ec43f
shader_decode: Implement FMUL_C, FMUL_R and FMUL_IMM
2019-01-15 17:54:50 -03:00
ReinUsesLisp
4c70d5b8eb
shader_decode: Implement MOV_C and MOV_R
2019-01-15 17:54:50 -03:00
ReinUsesLisp
a4f052f6b3
video_core: Replace gl_shader_decompiler
2019-01-15 17:54:50 -03:00
ReinUsesLisp
0c6fb456e0
glsl_decompiler: Implementation
2019-01-15 17:54:50 -03:00
ReinUsesLisp
fbc67a0563
shader_ir: Add condition code helper
2019-01-15 17:54:50 -03:00
ReinUsesLisp
a58abbcfc4
shader_ir: Add predicate combiner helper
2019-01-15 17:54:49 -03:00
ReinUsesLisp
bf07272695
shader_ir: Add comparison helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
60f044df56
shader_ir: Add half float helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
e3c55e31d7
shader_ir: Add integer helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
833d0806f9
shader_ir: Add float helpers
2019-01-15 17:54:49 -03:00
ReinUsesLisp
6b9eea3fe5
shader_ir: Add setters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
12a95ff453
shader_ir: Add local memory getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
2f87fd060d
shader_ir: Add internal flag getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
15f431f0cb
shader_ir: Add attribute getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
864e8f55cf
shader_ir: Add constant buffer getters
2019-01-15 17:54:49 -03:00
ReinUsesLisp
5e639bfcf6
shader_ir: Add register getter
2019-01-15 17:54:49 -03:00
ReinUsesLisp
4aaa2192b9
shader_ir: Add immediate node constructors
2019-01-15 17:54:49 -03:00
ReinUsesLisp
15a0e1481d
shader_ir: Initial implementation
2019-01-15 17:54:49 -03:00
ReinUsesLisp
294df41b86
shader_bytecode: Fixup encoding
2019-01-15 17:54:49 -03:00
ReinUsesLisp
a0c8c16d07
shader_header: Make local memory size getter constant
2019-01-15 17:54:49 -03:00
Otávio Pace
215ca770df
audio_core: remove unnecessary spaces on comments
2019-01-14 00:22:05 -02:00
bunnei
bc879ae880
Merge pull request #1848 from FreddyFunk/QJsonArray
...
game_list: Remove a reference of a reference
2019-01-12 02:01:13 -05:00
bunnei
c9ef8b0af1
Merge pull request #1959 from DarkLordZach/custom-rtc
...
settings: Add support for setting the RTC manually
2019-01-10 17:05:21 -05:00
bunnei
83e8ad2331
Merge pull request #1939 from DarkLordZach/web-applet
...
applets: Implement HLE web browser applet (LibAppletOff)
2019-01-10 17:04:38 -05:00
ReinUsesLisp
877a978a22
gl_rasterizer: Workaround Intel VAO DSA bug
...
There is a bug on Intel's blob driver where it fails to properly build a
vertex array object if it's not bound even after creating it with
glCreateVertexArrays. This workaround binds it after creating it to
bypass the issue.
2019-01-09 02:40:19 -03:00
ReinUsesLisp
3121408a90
gl_global_cache: Add dummy global cache manager
2019-01-08 17:47:45 -03:00
Zach Hilman
ac7d8983eb
settings: Fix comment structure
2019-01-07 19:40:28 -05:00
Zach Hilman
05dbb47af5
settings: Use std::chrono::seconds instead of s64 for RTC
2019-01-07 19:19:40 -05:00
Zach Hilman
dbb1eb9c29
time: Use custom RTC settings if applicable for game
2019-01-07 19:19:40 -05:00
Zach Hilman
21f1b2889d
core: Set custom RTC differential on game boot
2019-01-07 19:19:40 -05:00
Zach Hilman
26c9f12271
qt: Provide UI to edit custom RTC settings
2019-01-07 19:19:40 -05:00
Zach Hilman
c6016856d8
settings: Add custom RTC settings
...
Stored as signed seconds since epoch.
2019-01-07 19:18:45 -05:00
ReinUsesLisp
19cf995225
gl_rasterizer: Skip framebuffer configuration if rendertargets have not been changed
2019-01-07 16:23:23 -03:00
bunnei
23ebd4920e
Merge pull request #1999 from ReinUsesLisp/dirty-shader
...
gl_shader_cache: Use dirty flags for shaders
2019-01-07 14:22:30 -05:00
ReinUsesLisp
b683e41fca
gl_rasterizer_cache: Use dirty flags for the depth buffer
2019-01-07 16:22:28 -03:00
ReinUsesLisp
179ee963db
gl_rasterizer_cache: Use dirty flags for color buffers
2019-01-07 16:20:39 -03:00
ReinUsesLisp
0ab17ab406
gl_shader_cache: Use dirty flags for shaders
2019-01-07 16:13:12 -03:00
bunnei
17a68e5ebe
Merge pull request #1989 from lioncash/set
...
service/vi: Unstub IApplicationDisplayService's SetLayerScalingMode
2019-01-07 12:59:33 -05:00
bunnei
e04d75f44c
Merge pull request #1992 from DarkLordZach/move-profile-manager-ui
...
qt: Move profile manager to own UI tab
2019-01-07 11:41:37 -05:00
bunnei
37ac1bb576
Merge pull request #1990 from ReinUsesLisp/copy-surface-stream-copy
...
gl_rasterizer_cache: Use GL_STREAM_COPY for PBOs
2019-01-07 11:34:05 -05:00
ReinUsesLisp
5933b3ea96
gl_stream_buffer: Use DSA for buffer management
2019-01-06 16:49:24 -03:00
ReinUsesLisp
35c095898b
gl_rasterizer: Use DSA for vertex array objects
2019-01-06 16:49:24 -03:00
ReinUsesLisp
ea4928393f
gl_state: Drop uniform buffer state tracking
2019-01-06 00:28:01 -03:00
ReinUsesLisp
fc8a8789da
gl_rasterizer_cache: Use GL_STREAM_COPY for PBOs
...
Since the data is doing the path CPU -> GPU -> GPU copy is the most
approximate hint. Using GL_STREAM_DRAW generated a performance warning
on Nvidia's stack. Changing this hint removed the warning.
2019-01-05 02:27:55 -03:00
bunnei
59c665b28e
Merge pull request #1988 from lioncash/res
...
service/vi: Correct reported dimensions from IApplicationDisplayService's GetDisplayResolution()
2019-01-05 00:26:29 -05:00
Lioncash
9e8737b535
service/vi: Correct scaling mode conversions
...
These values are not equivalent, based off RE. The internal value is put
into a lookup table with the following values:
[3, 0, 1, 2, 4]
So the values absolutely do not map 1:1 like the comment was indicating.
2019-01-04 21:45:18 -05:00
Lioncash
56e51da1d9
service/vi: Factor out scaling mode conversions from the IPC function itself
...
Avoids entangling the IPC buffer appending with the actual operation of
converting the scaling values over. This also inserts the proper error
handling for invalid scaling values.
2019-01-04 21:45:18 -05:00
Lioncash
40aa1ea9f9
service/vi: Unstub IApplicationDisplayService' SetLayerScalingMode()
...
This appears to only check if the scaling mode can actually be
handled, rather than actually setting the scaling mode for the layer.
This implements the same error handling performed on the passed in
values.
2019-01-04 21:45:14 -05:00
bunnei
a01832b2e0
Merge pull request #1981 from ogniK5377/open-app-area-create
...
Return no application area when games try to open an application area
2019-01-04 21:42:23 -05:00
bunnei
1c7696e0d9
Merge pull request #1980 from ogniK5377/applet-msg-update
...
Proper no message handling for AM::PopMessage
2019-01-04 21:42:12 -05:00
Lioncash
bf036b46fc
service/vi: Correct reported dimensions from IApplicationDisplayService's GetDisplayResolution()
...
Within the actual service, it makes no distinguishing between docked and
undocked modes. This will always return the constants values reporting
1280x720 as the dimensions.
2019-01-04 19:13:32 -05:00
Zach Hilman
54d7b664da
qt: Move profile manager to own UI tab
2019-01-04 17:32:13 -05:00
David Marcec
4f41fd84ff
Removed pulse event type
...
Pulse is considered a hack and nothing should be using it. We should completely remove it
2019-01-04 20:47:20 +11:00
bunnei
de4f931d13
Merge pull request #1975 from lioncash/vi
...
service/vi: Minor updates and corrections to the DisplayInfo struct
2019-01-03 22:45:27 -05:00
David Marcec
48a526dba1
Return no application area when games try to open an application area
...
This will prompt CreateApplicationArea
2019-01-04 13:22:25 +11:00
David Marcec
f2536cafe5
Proper no message handling for AM::PopMessage
...
When we have no messages, we should be returning an error code.
2019-01-04 13:11:17 +11:00
David Marcec
5af0340066
Fixed botw deadlock(and possibly 30 fps games rendering too fast? needs testing to confirm)
...
Upon investigating the issue with #1878 , I found that games are the ones who handle the vsync event resetting and not us.
2019-01-03 20:32:47 +11:00
bunnei
2c0f831468
Merge pull request #1976 from lioncash/display
...
service/vi: Implement OpenDefaultDisplay in terms of OpenDisplay
2019-01-02 21:51:20 -05:00
bunnei
56a97647a3
Merge pull request #1978 from lioncash/enabled
...
service/vi: Implement SetDisplayEnabled()
2019-01-02 21:34:12 -05:00
bunnei
a6aa710b84
Merge pull request #1942 from DarkLordZach/profile-select-game-boot
...
qt: Add setting to prompt for user on game boot
2019-01-02 21:05:27 -05:00
bunnei
11f990975c
Merge pull request #1941 from DarkLordZach/profile-select-save-data
...
qt: Use ProfileSelectionDialog when selecting user for save data
2019-01-02 21:05:02 -05:00
Lioncash
ceeff8ebfd
service/vi: Implement SetDisplayEnabled()
...
This IPC command is simply a stub inside the actual service itself, and
just returns a successful error code regardless of input. This is likely
only retained in the service interface to not break older code that relied
upon it succeeding in some way.
2019-01-02 20:48:04 -05:00
bunnei
7538fa4a67
Merge pull request #1977 from lioncash/vi-log
...
service/vi: Log more information where applicable
2019-01-02 20:36:40 -05:00
Lioncash
5bfd810ab5
service/vi: Log more information where applicable
...
In many cases, we didn't bother to log out any of the popped data
members. This logs them out to the console within the logging call to
provide more contextual information.
2019-01-02 19:42:10 -05:00
Lioncash
dea1db0414
service/vi: Implement OpenDefaultDisplay in terms of OpenDisplay
...
Internally within the vi services, this is essentially all that
OpenDefaultDisplay does, so it's trivial to just do the same, and
forward the default display string into the function.
2019-01-02 18:16:36 -05:00
bunnei
c91d2bac45
Merge pull request #1961 from ReinUsesLisp/tex-view-2d
...
gl_rasterizer_cache: Texture view if shader samples array but OGL is not
2019-01-02 17:51:32 -05:00
Lioncash
351f010cfc
service/vi: Correct initial width and height values
...
Based off RE, it appears that almost all display types seem to use
1920x1080 except for a few (null display, edid display).
2019-01-02 17:36:03 -05:00
Lioncash
fe3bf4f075
service/vi: Document unknown DisplayInfo struct members
...
It appears that the two members indicate whether a display has a bounded
number of layers (and if set, the second member indicates the total
number of layers).
2019-01-02 17:35:58 -05:00
bunnei
6a0e258dde
Merge pull request #1944 from FearlessTobi/port-4187
...
Port citra-emu/citra#4187 : "Qt/Configure: Use sidebar to divide tabs into smaller groups"
2019-01-02 17:24:38 -05:00
bunnei
dd0b17a5f0
Merge pull request #1969 from lioncash/cast
...
yuzu: Fix truncation warnings within UI code
2019-01-02 17:20:52 -05:00
Lioncash
cd8924520c
yuzu/configure_general: Silence truncation warnings in loadConfiguration()
...
The QPixmap API expects an unsigned int.
2018-12-31 19:14:48 -05:00
Lioncash
f5f35caf20
yuzu/config: Silence truncation warnings
2018-12-31 19:11:29 -05:00
Lioncash
1f0c8bfeda
core/kernel: Remove unnecessary inclusions
...
Gets rid of a few unnecessary header dependencies in some source files.
2018-12-31 19:04:16 -05:00
bunnei
f96bb2520b
Merge pull request #1966 from lioncash/backtrace
...
arm_interface: Minor cleanup
2018-12-31 11:11:00 -05:00
Lioncash
b4242633ad
kernel/svc: Correct misleading error message within CreateThread()
...
This is a bounds check to ensure that the thread priority is within the
valid range of 0-64. If it exceeds 64, that doesn't necessarily mean
that an actual priority of 64 was expected (it actually means whoever
called the function screwed up their math).
Instead clarify the message to indicate the allowed range of thread
priorities.
2018-12-30 21:29:38 -05:00
Lioncash
3a8d38be7e
kernel/svc: Sanitize core number and thread priorities in CreateThread()
...
Now that we handle the kernel capability descriptors we can correct
CreateThread to properly check against the core and priority masks
like the actual kernel does.
2018-12-30 21:23:56 -05:00
Lioncash
8769604144
kernel/process: Rename GetAllowedProcessorMask() and GetAllowedThreadPriorityMask()
...
Makes them consistent with their kernel capability counterparts.
2018-12-30 21:09:46 -05:00
Lioncash
205e6d3b97
kernel/svc: Simplify thread core ID sanitizing in CreateThread
...
Rather than use a switch here, this can be collapsed into a simple range
check, which is a little easier on the eyes.
2018-12-30 20:59:54 -05:00
Lioncash
039e58a984
arm_interface: Make include path relative for arm_interface.h
...
Makes it consistent with the rest of the includes.
2018-12-30 20:46:29 -05:00
Lioncash
a17dd30057
arm_interface: Make LogBacktrace() a const member function
...
This function doesn't modify instance state, so it can be made const.
2018-12-30 20:44:48 -05:00
Lioncash
776ce5d74c
arm_interface: Mark variables as const where applicable in LogBacktrace()
...
Two of these variables have fixed values, so we can make that
immediately obvious from the get-go.
2018-12-30 20:43:17 -05:00
Lioncash
387bffda5e
arm_interface: Remove unnecessary semicolon
...
Namespaces don't require the use of a semicolon. Silences a -Wextra-semi
warning.
2018-12-30 20:41:33 -05:00
Sebastian Valle
e5dfbe22ee
Merge pull request #1956 from lioncash/process-thread
...
kernel/process: Start the main thread using the specified ideal core
2018-12-30 20:32:41 -05:00
bunnei
331c252509
Merge pull request #1847 from ogniK5377/backtrace-break
...
Print backtrace on svcBreak
2018-12-29 22:58:13 -05:00
bunnei
f80229b676
Merge pull request #1964 from lioncash/time
...
service/time: Minor cleanup
2018-12-29 22:57:38 -05:00
ReinUsesLisp
97fb6179b9
gl_rasterizer_cache: Texture view if shader samples array but OGL is not
...
When a shader samples a texture array but that texture in OpenGL is
created without layers, use a texture view to increase the texture
hierarchy. For example, instead of binding a GL_TEXTURE_2D bind a
GL_TEXTURE_2D_ARRAY view.
2018-12-29 23:49:12 -03:00
Lioncash
fa97f50bff
service/time: Minor cleanup to GetClockSnapshot()
...
Moves some variables closer to their actual usage sites.
2018-12-29 21:42:13 -05:00
Lioncash
af51f123fa
service/time: Fill in some structures and remove padding where not necessary
2018-12-29 18:26:32 -05:00
David Marcec
22d4e10664
Moved log backtrace to arm_interface.cpp. Added printing of error code to fatal
2018-12-29 12:55:19 +11:00
Zach Hilman
0c5ede492f
travis: Use correct package for linux Qt5WebEngine
2018-12-28 19:29:49 -05:00
Zach Hilman
cb930c4b5a
web_browser: Add bounds checking to applet interface
2018-12-28 18:20:29 -05:00
bunnei
2020ba06e1
gpu: Remove PixelFormat G8R8U and G8R8S, as they do not seem to exist.
...
- Fixes UI rendering issues in The Legend of Zelda: Breath of the Wild.
2018-12-28 15:36:45 -05:00
bunnei
af9336df57
Merge pull request #1958 from lioncash/audio
...
audio_core: Convert LOG_CRITICAL + UNREACHABLE over to UNIMPLEMENTED/UNIMPLEMENTED_MSG
2018-12-28 15:32:41 -05:00
Zach Hilman
45da3be40e
main: Add main window integrations for QtWebBrowserApplet
2018-12-28 15:32:39 -05:00
Zach Hilman
e00e1fc755
qt: Implement Qt frontend to web browser
...
Using a custom reimplementation of QWebEngineView and an injector script.
2018-12-28 15:32:39 -05:00
Zach Hilman
32bfa92c71
core: Add getter and setter for WebBrowserApplet frontend
2018-12-28 15:32:39 -05:00
Zach Hilman
85a3368e6d
frontend: Add frontend responder for web browser
2018-12-28 15:32:39 -05:00
Zach Hilman
69f622be36
applets: Implement LibAppletOff (Web) applet
2018-12-28 15:32:39 -05:00
Zach Hilman
4c20a39828
loader: Add accessor for Manual RomFS
2018-12-28 15:32:39 -05:00
Zach Hilman
621b25b6be
hid: Make Hid service accessible and add GetPressState
2018-12-28 15:32:03 -05:00
Zach Hilman
abbcc8e61e
romfs: Add SingleDiscard extraction type
...
Needed for manual RomFS extraction, as Full generates an extra directory and Truncated generates variable results.
2018-12-28 15:30:36 -05:00
Zach Hilman
94db6e5f3f
am: Add size parameter to am:IStorage logging
2018-12-28 15:30:36 -05:00
Lioncash
a73c7c73eb
audio_core: Convert LOG_CRITICAL + UNREACHABLE over to UNIMPLEMENTED/UNIMPLEMENTED_MSG
...
These two macros being used in tandem were used prior to the
introduction of UNIMPLEMENTED and UNIMPLEMENTED_MSG. This provides
equivalent behavior, just with less typing/reading involved.
2018-12-28 14:13:58 -05:00
Lioncash
a81ff6f54c
kernel/process: Start the main thread using the specified ideal core
...
This matches kernel behavior in that processes are started using their
specified ideal core, rather than always starting on core 0.
2018-12-27 21:50:16 -05:00
Lioncash
f80bc712ea
kernel: Rename 'default' CPU core to 'ideal' core
...
This makes the naming more closely match its meaning. It's just a
preferred core, not a required default core. This also makes the usages
of this term consistent across the thread and process implementations.
2018-12-27 21:48:49 -05:00
Lioncash
771431f625
kernel/thread: Move process thread initialization into process.cpp
...
This function isn't a general purpose function that should be exposed to
everything, given it's specific to initializing the main thread for a
Process instance.
Given that, it's a tad bit more sensible to place this within
process.cpp, which keeps it visible only to the code that actually needs
it.
2018-12-27 20:32:30 -05:00
bunnei
19bfbb28ce
Merge pull request #1954 from lioncash/npdm
...
file_sys/program_metadata: Print out more descriptive address space descriptions
2018-12-27 19:58:36 -05:00
Lioncash
9aa68212d9
file_sys/program_metadata: Print out more descriptive address space descriptions
...
Provides extra information that makes it easier to tell if an executable
being run is using a 36-bit address space or a 39-bit address space.
While we don't support AArch32 executables yet, this also puts in
distinguishing information for the 32-bit address space types as well.
2018-12-27 19:16:45 -05:00
spycrab
c6da772b24
Qt/Configure: Use sidebar to divide tabs into smaller groups
2018-12-28 01:14:57 +01:00
Lioncash
fbeaa330a3
kernel/process: Remove most allocation functions from Process' interface
...
In all cases that these functions are needed, the VMManager can just be
retrieved and used instead of providing the same functions in Process'
interface.
This also makes it a little nicer dependency-wise, since it gets rid of
cases where the VMManager interface was being used, and then switched
over to using the interface for a Process instance. Instead, it makes
all accesses uniform and uses the VMManager instance for all necessary
tasks.
All the basic memory mapping functions did was forward to the Process'
VMManager instance anyways.
2018-12-27 19:08:47 -05:00
Rodolfo Bogado
fbe900ba6d
Add missing uintBitsToFloat to SetRegisterToHalfFloat
2018-12-27 14:39:10 -03:00
bunnei
795335af0f
Merge pull request #1928 from lioncash/caps
...
kernel: Handle kernel capability descriptors
2018-12-27 11:15:34 -05:00
bunnei
fa9acc26d9
Merge pull request #1892 from Tinob/master
...
Improve Zero flag implementation
2018-12-27 11:06:59 -05:00
bunnei
8e23e40a72
Merge pull request #1929 from bunnei/fix-hid
...
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-27 11:04:56 -05:00
bunnei
2991c747c9
Merge pull request #1945 from bunnei/fix-hid-horiz
...
npad: Remove code to invert input in horizontal mode.
2018-12-27 11:04:40 -05:00
bunnei
7477c12fe2
Merge pull request #1949 from lioncash/unmap
...
kernel/vm_manager: Reset region attributes when unmapping a VMA
2018-12-27 11:04:26 -05:00
Zach Hilman
c643f364b4
am: Implement GetSaveDataSize and ExtendSaveData
...
These functions come in a pair and are needed by Smash Ultimate, Minecraft, and Skyrim, amongst others.
2018-12-27 00:18:00 -05:00
Zach Hilman
2e6b67a079
filesystem: Populate save data sizes from control data
2018-12-27 00:18:00 -05:00
Zach Hilman
4082c4eda6
savedata_factory: Partially implement IVFC save sizes using files
...
This stores a file in the save directory called '.yuzu_save_size' which stores the two save sizes (normal area and journaled area) sequentially as u64s.
2018-12-27 00:18:00 -05:00
Zach Hilman
0756f29a2c
loader: Add accessor for game control data
2018-12-27 00:16:55 -05:00
Zach Hilman
417e1ef09c
control_metadata: Update NACP fields with latest Switchbrew data
2018-12-27 00:16:55 -05:00
Zach Hilman
5c4259ec1a
control_metadata: Use value member instead of unique_ptr to store struct
...
Serves no actual purpose in this instance besides making NACP's copy assignment deleted, which is not intended behavior.
2018-12-27 00:16:55 -05:00
Zach Hilman
4a6ba58073
vfs: Add reinterpret_casts to WriteArray and Object
...
Allows these functions to compile when T is not u8.
2018-12-27 00:16:55 -05:00
bunnei
73c9ffc422
Merge pull request #1946 from lioncash/decl
...
renderer_opengl: Correct forward declaration of FramebufferLayout
2018-12-26 20:39:54 -05:00
bunnei
17fa0ffff9
Merge pull request #1948 from lioncash/translatable
...
configure_per_general: Mark UI strings as translatable in the constructor
2018-12-26 20:39:30 -05:00
Lioncash
1392597ede
kernel/vm_manager: Reset region attributes when unmapping a VMA
...
Like the other members related to memory regions, the attributes need to
be reset back to their defaults as well.
2018-12-26 20:15:29 -05:00
Lioncash
0c18d47348
configure_per_general: Mark UI strings as translatable in the constructor
...
These are user-facing strings, so they should be translatable.
2018-12-26 17:45:15 -05:00
Lioncash
faa9110541
configure_input_simple: Make input profile array constexpr
...
Calling tr() from a file-scope array isn't advisable, since it can be
executed before the Qt libraries are even fully initialized, which can
lead to crashes.
Instead, the translatable strings should be annotated, and the tr()
function should be called at the string's usage site.
2018-12-26 17:36:36 -05:00
Lioncash
67fa21e143
renderer_opengl: Correct forward declaration of FramebufferLayout
...
This is actually a struct, not a class, which can lead to compilation
warnings.
2018-12-26 17:32:32 -05:00
Rodolfo Bogado
33056dd833
Apply CC test to the final value to be stored in the register
2018-12-26 18:16:31 -03:00
David
8047873a66
Fixed shader linking error due to TLDS ( #1934 )
...
* Fixed shader linking error due to TLDS
coord should be coords
* Fix remaining coords
2018-12-26 15:55:39 -05:00
bunnei
ae582b6669
Merge pull request #1849 from encounter/svcSetThreadActivity
...
svc: Implement SetThreadActivity (thread suspension)
2018-12-26 15:54:14 -05:00
bunnei
7e622c5575
npad: Remove code to invert input in horizontal mode.
...
- This was incorrect, the game appears to handle this for us.
- Fixes horizontal mode with Puyo Puyo Tetris and Super Mario Odyssey.
2018-12-26 15:47:11 -05:00
ReinUsesLisp
aaa0e6c346
shader_bytecode: Fixup TEXS.F16 encoding
2018-12-26 01:35:44 -03:00
Zach Hilman
9c2d83cb9c
qt: Use ProfileSelectionDialog when selecting user for save data
...
This allows us to present a much nicer UI to the user over a simple combo box and is made easy with the modular nature of the profile-selection applet frontend.
2018-12-25 10:52:50 -05:00
Zach Hilman
4d61ac08aa
qt: Add setting to prompt for user on game boot
...
Using the QtProfileSelectorDialog, this implementation is trivial. This mimics the real switch behavior of asking which user on every game boot, but it is default disabled as that might get inconvenient.
2018-12-25 10:42:14 -05:00
bunnei
9a22a94a51
Merge pull request #1886 from FearlessTobi/port-4164
...
Port citra-emu/citra#4164 : "citra_qt, video_core: Screenshot functionality"
2018-12-23 14:36:51 -05:00
bunnei
52726342bd
Merge pull request #1930 from lioncash/common
...
common/quaternion: Ensure that w is always initialized
2018-12-23 14:35:29 -05:00
bunnei
f95f6c7d86
Merge pull request #1781 from DarkLordZach/applet-profile-select
...
am: Implement HLE profile selector applet
2018-12-23 14:35:13 -05:00
bunnei
d08bdc861f
Merge pull request #1780 from DarkLordZach/controller-profiles
...
configure_input: Add Controller Setup Profiles and simplify input UI
2018-12-23 14:34:29 -05:00
Rodolfo Bogado
bbf8d6bf01
Includde saturation in the evaluation of the control code
2018-12-22 19:19:18 -03:00
Rodolfo Bogado
946777601b
Handle RZ cases evaluating the expression instead of the register value.
2018-12-22 19:19:18 -03:00
Rodolfo Bogado
7e72b5e453
complete emulation of ZeroFlag
2018-12-22 19:19:18 -03:00
Lioncash
acddf16e57
common/quaternion: Ensure that w is always initialized
...
Previously xyz was always being zero initialized due to its constructor,
but w wasn't. Ensures that we always have a deterministic initial state.
2018-12-21 15:25:31 -05:00
bunnei
e75e8b9580
Merge pull request #1921 from ogniK5377/no-unit
...
Fixed uninitialized memory due to missing returns in canary
2018-12-21 14:12:54 -05:00
bunnei
42427b9c7a
Merge pull request #1920 from heapo/texture_format_selection
...
Texture format fixes for RGBA16UI for copies and R16U when used as depth
2018-12-21 13:46:17 -05:00
bunnei
59ac3346eb
Merge pull request #1925 from lioncash/pid
...
kernel/{process, thread}: Amend behavior related to IDs
2018-12-21 13:45:27 -05:00
bunnei
41cbd088c2
Merge pull request #1914 from lioncash/id
...
service/am: Unstub GetAppletResourceUserId
2018-12-21 13:43:51 -05:00
bunnei
1120e0b4d2
hid: Fix SetNpadJoyHoldType and improve logging.
2018-12-21 13:37:39 -05:00
Lioncash
002ae08bbd
kernel/process: Hook up the process capability parser to the process itself
...
While we're at it, we can also toss out the leftover capability parsing
from Citra.
2018-12-21 07:05:34 -05:00
Lioncash
d09fb82113
kernel/process_capability: Handle debug capability flags
2018-12-21 07:05:34 -05:00
Lioncash
10824c5d63
kernel/process_capability: Handle handle table capability flags
...
This just specifies the handle table size. There's also a section of
reserved bits that are checked against.
2018-12-21 07:05:34 -05:00
Lioncash
e0e84aede0
kernel/process_capability: Handle kernel version capability flags
2018-12-21 07:05:34 -05:00
Lioncash
010bc677f3
kernel/process_capability: Handle program capability flags
2018-12-21 07:05:34 -05:00
Lioncash
0f216d20e3
kernel/process_capability: Handle interrupt capability flags
...
Similar to the service capability flags, however, we currently don't
emulate the GIC, so this currently handles all interrupts as being valid
for the time being.
2018-12-21 07:05:34 -05:00
Lioncash
3dc59b74ec
kernel/process_capability: Handle syscall capability flags
2018-12-21 07:05:34 -05:00
Lioncash
27caf71204
kernel/process_capability: Handle the priority mask and core mask flags
...
Handles the priority mask and core mask flags to allow building up the
masks to determine the usable thread priorities and cores for a kernel
process instance.
2018-12-21 07:05:34 -05:00
Lioncash
6ff5135521
kernel/process: Introduce process capability parsing skeleton
...
We've had the old kernel capability parser from Citra, however, this is
unused code and doesn't actually map to how the kernel on the Switch
does it. This introduces the basic functional skeleton for parsing
process capabilities.
2018-12-21 07:05:31 -05:00
Lioncash
fc8da2d5e3
common: Add basic bit manipulation utility function to Common
2018-12-21 07:04:18 -05:00
bunnei
4923df10cc
Merge pull request #1923 from ogniK5377/nfp-device-list
...
Device handle should not be a random id, instead it's the current npad id
2018-12-19 13:14:43 -05:00
bunnei
3050f3a7ba
Merge pull request #1909 from heapo/shadow_sampling_fixes
...
Fix arrayed texture LOD selection and depth comparison ordering
2018-12-19 13:10:37 -05:00
bunnei
80d36634e1
Merge pull request #1915 from lioncash/sm
...
service/sm: Improve debug log for RegisterService
2018-12-19 13:10:11 -05:00
Lioncash
b74eb88c68
kernel/svc: Handle thread handles within GetProcessId
...
If a thread handle is passed to svcGetProcessId, the kernel attempts to
access the process ID via the thread's instance's owning process.
Technically, this function should also be handling the kernel debug
objects as well, however we currently don't handle those kernel objects
yet, so I've left a note via a comment about it to remind myself when
implementing it in the future.
2018-12-19 12:16:15 -05:00
bunnei
e73dd39413
Merge pull request #1907 from lioncash/attribute
...
kernel/svc: Implement svcSetMemoryAttribute
2018-12-19 11:50:50 -05:00
Lioncash
caab838bdb
svc: Implement svcSetMemoryAttribute
...
With all the basic backing functionality implemented, we can now unstub
svcSetMemoryAttribute.
2018-12-19 10:59:40 -05:00
Lioncash
622242e345
vm_manager: Add member function for setting memory attributes across an address range
...
This puts the backing functionality for svcSetMemoryAttribute in place,
which will be utilized in a following change.
2018-12-19 10:59:40 -05:00
Lioncash
603cc72168
vm_manager: Add member function for checking a memory range adheres to certain attributes, permissions and states
2018-12-19 10:59:36 -05:00
Lioncash
62d4377053
kernel/kernel: Use correct initial PID for userland Process instances
...
Starts the process ID counter off at 81, which is what the kernel itself
checks against internally when creating processes. It's actually
supposed to panic if the PID is less than 81 for a userland process.
2018-12-18 22:54:01 -05:00
Lioncash
0906302ca9
kernel/svc: Correct output parameter for svcGetThreadId
...
The service call uses a 64-bit value, just like svcGetProcessId. This
amends the function signature accordingly.
2018-12-18 22:38:26 -05:00
Lioncash
8435451093
kernel/thread: Make thread_id a 64-bit value
...
The kernel uses a 64-bit value for the thread ID, so we shouldn't be
using a 32-bit value.
2018-12-18 22:37:03 -05:00
Lioncash
43e1189688
kernel/svc: Correct output parameter for svcGetProcessId
...
svcGetProcessId's out parameter is a pointer to a 64-bit value, not a
32-bit one.
2018-12-18 22:30:56 -05:00
Lioncash
9b3a38e3d3
kernel/process: Make process_id a 64-bit value
...
In the actual kernel, this is a 64-bit value, so we shouldn't be using a
32-bit type to handle it.
2018-12-18 22:28:55 -05:00
David Marcec
807e7640aa
Device handle should not be a random id, instead it's the current npad id
...
Found during hardware testing
2018-12-19 14:16:30 +11:00
David Marcec
08d5663cb8
Moved backtrace to ArmInterface
2018-12-19 14:10:51 +11:00
David Marcec
20859802f0
hopefully fix clang format issue
2018-12-19 13:22:09 +11:00
David Marcec
fdd649e2ef
Fixed uninitialized memory due to missing returns in canary
...
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-19 12:52:32 +11:00
Lioncash
2a533f0067
service/sm: Improve debug log for RegisterService
...
Now it also indicates the name and max session count. This also gives a
name to the unknown bool. This indicates if the created port is supposed
to be using light handles or regular handles internally. This is passed
to the respective svcCreatePort parameter internally.
2018-12-18 18:22:22 -05:00
zhupengfei
a2be49305d
yuzu, video_core: Screenshot functionality
...
Allows capturing screenshot at the current internal resolution (native for software renderer), but a setting is available to capture it in other resolutions. The screenshot is saved to a single PNG in the current layout.
2018-12-18 22:54:41 +01:00
heapo
37280cf555
Texture format fixes: Flag RGBA16UI as GL_RGBA_INTEGER format, and interpret R16U as Z16 when depth_compare is enabled.
2018-12-18 11:34:51 -08:00
bunnei
39262921f2
Merge pull request #1913 from MerryMage/default-fpcr
...
kernel/thread: Set default fpcr
2018-12-18 14:13:57 -05:00
bunnei
5bae002aaa
Merge pull request #1918 from MerryMage/cntfrq
...
arm_dynarmic: Set CNTFRQ value
2018-12-18 14:13:35 -05:00
MerryMage
eef6ce79a9
kernel/thread: Set default fpcr
2018-12-18 17:37:03 +00:00
MerryMage
fd2c42bfcd
arm_dynarmic: Set CNTFRQ value
2018-12-18 17:28:12 +00:00
bunnei
325dcf2881
Merge pull request #1917 from ReinUsesLisp/fixup-half
...
shader_bytecode: Fixup half float's operator B encoding
2018-12-18 10:45:58 -05:00
bunnei
116e6247ce
Merge pull request #1889 from DarkLordZach/swkbd-state-changed
...
applets: Correct usage of SignalStateChanged event
2018-12-18 09:59:27 -05:00
ReinUsesLisp
ef061481c5
shader_bytecode: Fixup half float's operator B encoding
2018-12-18 04:28:50 -03:00
bunnei
95255899e7
Merge pull request #1903 from heapo/fmul_postfactor
...
Implement postfactor multiplication/division for fmul instructions
2018-12-17 22:00:43 -05:00
Lioncash
dd272298aa
service/am: Unstub GetAppletResourceUserId
...
This is supposed to return the current process' ID. (0 indicates an
invalid ID for both process IDs and ARU IDs).
2018-12-17 21:01:14 -05:00
heapo
72599cc667
Implement postfactor multiplication/division for fmul instructions
2018-12-17 07:56:25 -08:00
heapo
a6daed74f5
Fix arrayed shadow sampler array slice/depth comparison ordering, as well as invalid GLSL LOD selection.
2018-12-17 07:53:48 -08:00
Lioncash
4dc8a7da3f
vm_manager: Rename meminfo_state to state
...
This is shorter and more concise. This also removes the now-innaccurate
comment, as it's not returned wholesale to svcQueryMemory anymore.
2018-12-15 19:43:36 -05:00
Lioncash
34b24a47e9
vm_manager: Add backing functionality for memory attributes
...
Adds the barebones enumeration constants and functions in place to
handle memory attributes, while also essentially leaving the attribute
itself non-functional.
2018-12-15 19:43:32 -05:00
bunnei
84823a3036
Merge pull request #1905 from bunnei/ignore-empty-gpu-lists
...
nvhost_gpu: Skip empty GPU command lists.
2018-12-15 00:35:33 -05:00
bunnei
040d84d816
nvhost_gpu: Skip empty GPU command lists.
2018-12-15 00:33:22 -05:00
bunnei
d1603a0abb
Merge pull request #1901 from jschmer/ServiceLeak
...
Fix Service object leak on emulation stop
2018-12-15 00:30:10 -05:00
bunnei
2f2fc47af2
Merge pull request #1732 from DarkLordZach/yield-types
...
svc: Implement yield types 0 and -1
2018-12-15 00:28:12 -05:00
bunnei
b88430c299
Merge pull request #1902 from lioncash/audio
...
audio_core: Make g_sink_details internally linked
2018-12-14 21:48:17 -05:00
bunnei
1a23970d17
Merge pull request #1899 from lioncash/state
...
vm_manager/svc: Modify MemoryState enum, and correct error handling for svcQueryMemory
2018-12-14 15:30:02 -05:00
bunnei
7d39b19edc
Merge pull request #1871 from lioncash/move
...
yuzu/wait_tree: Pass QString by value and std::move in the initializer list for WaitTreeText
2018-12-14 13:13:32 -05:00
bunnei
1006df7fc1
Merge pull request #1900 from lioncash/wrapper
...
svc_wrap: Correct register index for a wrapper specialization
2018-12-14 13:12:55 -05:00
Lioncash
6beb823f15
audio_core: Make g_sink_details internally linked
...
We can hide the direct array from external view and instead provide
functions to retrieve the necessary info. This has the benefit of
completely hiding the makeup of the SinkDetails structure from the rest
of the code.
Given that this makes the array hidden, we can also make the array
constexpr by altering the members slightly. This gets rid of several
static constructor calls related to std::vector and std::function.
Now we don't have heap allocations here that need to occur before the
program can even enter main(). It also has the benefit of saving a
little bit of heap space, but this doesn't matter too much, since the
savings in that regard are pretty tiny.
2018-12-13 16:44:32 -05:00
Jens Schmer
27a9cc2e63
Fix Service object leak on emulation stop
...
Services created with the ServiceFramework base class install themselves as HleHandlers with an owning shared_ptr in the ServerPort ServiceFrameworkBase::port member variable, creating a cyclic ownership between ServiceFrameworkBase and the ServerPort, preventing deletion of the service objects.
Fix that by removing the ServiceFrameworkBase::port member because that was only used to detect multiple attempts at installing a port. Instead store a flag if the port was already installed to achieve the same functionality.
2018-12-13 20:08:23 +01:00
Lioncash
b79f086613
svc: Enable svcQueryProcessMemory
...
svcQueryProcessMemory is trivial to implement, given all the behavior
necessary for it is present, it just needs a handler for it.
2018-12-12 15:45:05 -05:00
Lioncash
09a219d5b4
svc: Write out the complete MemoryInfo structure in QueryProcessMemory
...
In the previous change, the memory writing was moved into the service
function itself, however it still had a problem, in that the entire
MemoryInfo structure wasn't being written out, only the first 32 bytes
of it were being written out. We still need to write out the trailing
two reference count members and zero out the padding bits.
Not doing this can result in wrong behavior in userland code in the following
scenario:
MemoryInfo info; // Put on the stack, not quaranteed to be zeroed out.
svcQueryMemory(&info, ...);
if (info.device_refcount == ...) // Whoops, uninitialized read.
This can also cause the wrong thing to happen if the user code uses
std::memcmp to compare the struct, with another one (questionable, but
allowed), as the padding bits are not guaranteed to be a deterministic
value. Note that the kernel itself also fully zeroes out the structure
before writing it out including the padding bits.
2018-12-12 15:44:58 -05:00
Lioncash
d8deb39b83
svc: Handle memory writing explicitly within QueryProcessMemory
...
Moves the memory writes directly into QueryProcessMemory instead of
letting the wrapper function do it. It would be inaccurate to allow the
handler to do it because there's cases where memory shouldn't even be
written to. For example, if the given process handle is invalid.
HOWEVER, if the memory writing is within the wrapper, then we have no
control over if these memory writes occur, meaning in an error case, 68
bytes of memory randomly get trashed with zeroes, 64 of those being
written to wherever the memory info address points to, and the remaining
4 being written wherever the page info address points to.
One solution in this case would be to just conditionally check within
the handler itself, but this is kind of smelly, given the handler
shouldn't be performing conditional behavior itself, it's a behavior of
the managed function. In other words, if you remove the handler from the
equation entirely, does the function still retain its proper behavior?
In this case, no.
Now, we don't potentially trash memory from this function if an invalid
query is performed.
2018-12-12 15:43:31 -05:00
Lioncash
b1b855c5d9
vm_manager: Correct ordering of last two struct members of MemoryInfo
...
These should be swapped.
2018-12-12 15:43:31 -05:00
Lioncash
22230a2eca
svc_wrap: Correct register index for a wrapper specialization
...
This would result in svcSetMemoryAttribute getting the wrong value for
its third parameter. This is currently fine, given the service function
is stubbed, however this will be unstubbed in a future change, so this
needs to change.
2018-12-12 15:14:28 -05:00
Lioncash
eb5f3f67f6
vm_manager: Amend the returned values for invalid memory queries in QueryMemory()
...
The kernel returns a memory info instance with the base address set to
the end of the address space, and the size of said block as
0 - address_space_end, it doesn't set both of said members to zero.
2018-12-12 15:08:06 -05:00
Lioncash
a8cc03502b
vm_manager: Migrate memory querying to the VMManager interface
...
Gets rid of the need to directly access the managed VMAs outside of the
memory manager itself just for querying memory.
2018-12-12 15:07:30 -05:00
Lioncash
c02b8c895b
vm_manager: Migrate MemoryInfo and PageInfo to vm_manager.h
...
Gets the two structures out of an unrelated header and places them with
the rest of the memory management code.
This also corrects the structures. PageInfo appears to only contain a
32-bit flags member, and the extra padding word in MemoryInfo isn't
necessary.
2018-12-12 14:03:53 -05:00
Lioncash
366985ca92
vm_manager: Amend MemoryState enum members
...
Amends the MemoryState enum to use the same values like the actual
kernel does. Also provides the necessary operators to operate on them.
This will be necessary in the future for implementing
svcSetMemoryAttribute, as memory block state is checked before applying
the attribute.
2018-12-12 14:03:50 -05:00
Jens Schmer
ae390ad5a2
Fix Process object leak on emulation stop
...
The Process object kept itself alive indefinitely because its handle_table
contains a SharedMemory object which owns a reference to the same Process object,
creating a circular ownership scenario.
Break that up by storing only a non-owning pointer in the SharedMemory object.
2018-12-12 17:25:56 +01:00
Mat M
9bae3ac33a
Merge pull request #1891 from DarkLordZach/istorage-getsize
...
fsp_srv: Implement IStorage::GetSize
2018-12-12 07:31:33 -05:00
bunnei
e1f28afb98
Merge pull request #1893 from lioncash/warn
...
gl_shader_cache: Resolve truncation compiler warning
2018-12-11 20:47:10 -05:00
bunnei
785d6f9ce0
Merge pull request #1895 from lioncash/uninit
...
patch_manager: Prevent use of a dangling pointer within PatchRomFS
2018-12-11 20:27:37 -05:00
bunnei
2c6679bb01
Merge pull request #1877 from heapo/audio_interp
...
Perf: Avoid (expensive) audio interpolation when sample rates already match
2018-12-11 11:45:53 -05:00
bunnei
d63c883e66
Merge pull request #1888 from marcosvitali/glFrontFacing
...
gl_shader_decompiler: IPA fix FrontFacing.
2018-12-11 11:43:38 -05:00
Lioncash
5c72aa7c4c
patch_manager: Prevent use of a dangling pointer within PatchRomFS
...
fmt::format() returns a std::string instance by value, so calling
.c_str() on it here is equivalent to doing:
auto* ptr = std::string{}.c_str();
The data being pointed to isn't guaranteed to actually be valid anymore
after that expression ends. Instead, we can just take the string as is,
and provide the necessary formatting parameters.
2018-12-11 10:08:13 -05:00
Lioncash
4c2b94559b
gl_shader_cache: Dehardcode constant in CalculateProgramSize()
...
This constant is related to the size of the instruction.
2018-12-10 23:47:20 -05:00
Lioncash
861bfdbf5d
gl_shader_cache: Resolve truncation compiler warning
...
The previous code would cause a warning, as it was truncating size_t
(64-bit) to a u32 (32-bit) implicitly.
2018-12-10 23:44:18 -05:00
bunnei
3b1043c58a
Merge pull request #1846 from lioncash/dir
...
file_sys/directory: Amend path buffer size for directory entries
2018-12-10 21:54:03 -05:00
bunnei
2c45c6d234
Merge pull request #1819 from DarkLordZach/disable-addons
...
patch_manager: Add support for disabling patches
2018-12-10 21:52:19 -05:00
bunnei
9eb9b344c7
Merge pull request #1887 from FearlessTobi/port-4476
...
Port citra-emu/citra#4476 : "web_service: move telemetry condition from TelemetrySession constructor to destructor"
2018-12-10 21:47:22 -05:00
bunnei
1aa9106244
Merge pull request #1883 from lioncash/log-fsp
...
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
2018-12-10 21:45:29 -05:00
bunnei
01ab4aab91
Merge pull request #1885 from lioncash/data_id
...
file_sys/save_data_factory: Update SaveDataSpaceId enum
2018-12-10 21:44:50 -05:00
Zach Hilman
5e632caca5
fsp_srv: Implement IStorage::GetSize
...
Takes no input and returns the size as a u64. Needed by Katamari Damacy Reroll to boot.
2018-12-10 14:14:36 -05:00
bunnei
5b5d0199fe
Merge pull request #1740 from FernandoS27/shader_props
...
Implemented Shader Unique Identifiers
2018-12-10 12:43:43 -05:00
Hexagon12
315f3342f7
Merge pull request #1872 from lioncash/proc-info
...
kernel/process: Set ideal core from metadata
2018-12-10 18:44:14 +02:00
Hexagon12
ee9e433517
Merge pull request #1880 from DarkLordZach/cache-storage
...
savedata_factory: Add CacheStorage and delete TemporaryStorage on boot
2018-12-10 18:41:46 +02:00
bunnei
74242a8fb4
Merge pull request #1876 from lioncash/vma
...
vm_manager: Make vma_map private
2018-12-10 10:09:50 -05:00
bunnei
be657036be
Merge pull request #1862 from marcosvitali/tlds
...
gl_shader_decompiler: TLDS/TLD4/TLD4S Reworked reflecting the source registers, bugs fixed and modularize.
2018-12-10 10:08:20 -05:00
Marcos Vitali
430e1f864b
gl_shader_decompiler: IPA FrontFacing: the right value when is the front face is 0xFFFFFFFF.
2018-12-09 23:36:21 -03:00
Lioncash
f3a555a484
service/fsp_srv: Correct returned value in GetGlobalAccessLogMode()
...
Based off RE, the backing code only ever seems to use 0-2 as the range
of values 1 being a generic log enable, with 2 indicating logging should
go to the SD card. These are used as a set of flags internally.
Given we only care about receiving the log in general, we can just
always signify that we want logging in general.
2018-12-09 20:42:35 -05:00
Zach Hilman
0d2ba2ca4c
applets: Correct usage of SignalStateChanged event
...
This was causing some games (most notably Pokemon Quest) to softlock due to an event being fired when not supposed to. This also removes a hack wherein we were firing the state changed event when the game retrieves it, which is incorrect.
2018-12-09 19:46:15 -05:00
Fernando Sahmkow
d5d77848e6
Implemented a shader unique identifier.
2018-12-09 17:33:33 -04:00
FernandoS27
7b9c982d29
Add more info into textures' object labels
2018-12-09 17:22:29 -04:00
fearlessTobi
ca4e20b4e0
web_service: move telemetry condition from TelemetrySession constructor to destructor
...
Fixes an issue where Testcases couldn't be sent when Telemetry was disabled, because both things are tied closely together in the backend.
2018-12-08 14:34:37 +01:00
bunnei
3bddd5351e
Merge pull request #1864 from lioncash/nrr
...
service/ldr: Amend layouts of NRO and NRR headers
2018-12-07 22:26:31 -05:00
Lioncash
a4eaa6782f
file_sys/save_data_factory: Update SaveDataSpaceId enum
...
Amends it with missing values deduced from RE (ProperSystem being from
SwitchBrew for naming)
(SdCardUser wasn't that difficult to discern given it's used alongside
SdCardSystem when creating the save data indexer, based off the usage of
the string "saveDataIxrDbSd" nearby).
2018-12-07 18:52:18 -05:00
bunnei
b9e80e97b7
Merge pull request #1874 from lioncash/bindings
...
hle/service, hle/sm: Minor cleanup
2018-12-07 18:31:04 -05:00
bunnei
713fc67b51
Merge pull request #1882 from FearlessTobi/backport-4418-fix
...
Backport review comment from citra-emu/citra#4418
2018-12-07 18:16:10 -05:00
bunnei
f85134021f
Merge pull request #1873 from lioncash/const
...
loaders: Make GetFileType() a const qualified member function
2018-12-07 18:15:30 -05:00
Marcos Vitali
f4fa7ecb0e
gl_shader_decompiler: TLDS/TLD4/TLD4S Reworked reflecting the source registers, bugs fixed and modularize.
2018-12-07 19:09:36 -03:00
Tobias
eb15711ee6
Backport review comment from citra-emu/citra#4418
...
Original reason:
As Windows multi-byte character codec is unspecified while we always assume std::string uses UTF-8 in our code base, this can output gibberish when the string contains non-ASCII characters. ::OutputDebugStringW combined with Common::UTF8ToUTF16W is preferred here.
2018-12-07 16:21:18 +01:00
Zach Hilman
fcfbae88e9
savedata_factory: Add support for CacheStorage
2018-12-07 08:47:32 -05:00
Zach Hilman
5721b8b5ad
savedata_factory: Delete TemporaryStorage on startup
...
Mimics hardware behavior.
2018-12-06 22:07:34 -05:00
bunnei
f761e3ef86
Merge pull request #1868 from lioncash/config
...
configuration/config: Use an intermediary variable for accessing players
2018-12-06 15:24:28 -05:00
bunnei
30b5d8b0ae
Merge pull request #1875 from DarkLordZach/oss-ngword2
...
system_archive: Implement open source NgWord2
2018-12-06 15:23:58 -05:00
Lioncash
15e3d4f357
memory: Convert ASSERT into a DEBUG_ASSERT within GetPointerFromVMA()
...
Given memory should always be expected to be valid during normal
execution, this should be a debug assertion, rather than a check in
regular builds.
2018-12-06 15:02:34 -05:00
Lioncash
d4c1b9d311
vm_manager: Make vma_map private
...
This was only ever public so that code could check whether or not a
handle was valid or not. Instead of exposing the object directly and
allowing external code to potentially mess with the map contents, we
just provide a member function that allows checking whether or not a
handle is valid.
This makes all member variables of the VMManager class private except
for the page table.
2018-12-06 15:02:17 -05:00
bunnei
8de6403a08
Merge pull request #1861 from lioncash/reset
...
kernel/svc: Correct behavior of svcResetSignal()
2018-12-06 13:42:46 -05:00
heapo
117b1f3ec1
Avoid (expensive) audio interpolation when sample rates already match
2018-12-06 09:46:08 -08:00
bunnei
9390452195
Merge pull request #1824 from ReinUsesLisp/fbcache
...
gl_rasterizer: Implement a framebuffer cache
2018-12-06 11:56:59 -05:00
bunnei
7fbd484f0e
Merge pull request #1863 from ReinUsesLisp/texs-f16
...
gl_shader_decompiler: Implement TEXS.F16
2018-12-06 11:56:05 -05:00
Zach Hilman
8be475d4dc
system_archive: Implement open source NgWord2
2018-12-06 10:17:50 -05:00
Lioncash
24f051d723
hle/service: Replace log + UNIMPLEMENTED with UNIMPLEMENTED_MSG
...
Combines the two into one, shortening the amount of code here.
2018-12-06 01:40:23 -05:00
Lioncash
9f56477539
hle/service: Remove unnecessary using declarations
...
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
2018-12-06 01:37:41 -05:00
Lioncash
d8625f5544
hle/service, hle/sm: Compress usages of MakeResult()
...
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
2018-12-06 01:33:22 -05:00
Lioncash
a8269fdae3
hle/service, hle/sm: Use structured bindings where applicable
...
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-06 01:31:26 -05:00
bunnei
4c106b43a9
Merge pull request #1867 from lioncash/alloc
...
system_archive: Use a regular function pointer instead of std::function for the file-scope system archive array
2018-12-05 22:37:14 -05:00
bunnei
cca4665a69
Merge pull request #1866 from lioncash/cache
...
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
2018-12-05 22:36:44 -05:00
Lioncash
17b4355391
yuzu/wait_tree: Pass QString by value and std::move in the initializer list for WaitTreeText
...
Just a trivial modernization that potentially avoids copying strings in certain scenarios.
2018-12-05 18:34:03 -05:00
Lioncash
01bf329f63
yuzu/game_list_worker: Don't retrieve the file type twice in AddFstEntriesToGameList()
...
Similarly, here we can avoid doing unnecessary work twice by retrieving
the file type only once and comparing it against relevant operands,
avoiding potential unnecessary object construction/destruction.
2018-12-05 17:58:15 -05:00
Lioncash
de095ded5c
yuzu/game_list_worker: Don't retrieve file type and file type strings twice in MakeGameListEntry()
...
While GetFileType() is indeed a getter function, that doesn't mean it's
a trivial function, given some case require reading from the data or
constructing other objects in the background. Instead, only do necessary
work once.
2018-12-05 17:49:37 -05:00
Lioncash
de323851b4
loaders: Make GetFileType() a const qualified member function
...
No implementations actually modify instance state (and it would be
questionable to do that in the first place given the name), so we can
make this a const member function.
2018-12-05 17:49:34 -05:00
heapo
ca8ab1bc3b
Call shrink_to_fit after page-table vector resizing to cause crt to actually lower vector capacity. For 36-bit titles saves 800MB of commit.
2018-12-05 14:40:56 -08:00
Lioncash
547eecf119
kernel/process: Set ideal core from metadata
...
A very trivial change. If metadata is available, the process should use
it to retrieve the desired core for the process to run on.
2018-12-05 16:59:37 -05:00
Zach Hilman
c07059e7fd
configure_input_simple: Properly signal docked mode change
2018-12-05 14:05:57 -05:00
Zach Hilman
233a804196
configure_input: Add ConfigureInputSimple as default input UI config
...
Greatly simplifies the current input UI, while still allowing power users to tweak advanced settings. Adds 'input profiles', which are easy autoconfigurations to make getting started easy and fast. Also has a custom option which brings up the current, full UI.
2018-12-05 14:02:02 -05:00
Zach Hilman
59ca8d458d
configure_input: Convert into QDialog
2018-12-05 14:02:02 -05:00
Zach Hilman
20dffc22a2
configure: Use ConfigureInputSimple for Input tab
2018-12-05 14:02:02 -05:00
Zach Hilman
281b64daf4
ui_settings: Add UI setting for input profile index
2018-12-05 14:02:02 -05:00
Lioncash
e90fa1ac54
configuration/config: Use an intermediary variable for accessing players
...
Avoids typing the same long accessor just to retrieve player attributes.
2018-12-05 03:41:33 -05:00
Lioncash
2207baaa04
ng_word: Deduplicate use of a constant value
...
We've already given the constant to the vector itself, so we don't need
to re-hardcode it in the array.
2018-12-05 02:36:45 -05:00
Lioncash
edd9bfd54a
system_archive: Use a regular function pointer instead of std::function for file-scope system archive array
...
This allows the array to be constexpr. std::function is also allowed to
allocate memory, which makes its constructor non-trivial, we definitely
don't want to have all of these execute at runtime, taking up time
before the application can actually load.
2018-12-05 02:33:17 -05:00
Lioncash
7c9b194d63
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
...
We don't need to specify all of the ARM interfaces explicitly.
2018-12-05 00:33:47 -05:00
Lioncash
05a6f1f676
service/ldr: Amend layout of the NRO header
...
The first word is just a padding byte, it's not an actual entry
instruction. Also renames the rest of the entries according to
SwitchBrew.
2018-12-05 00:16:49 -05:00
ReinUsesLisp
59a8df1b14
gl_shader_decompiler: Implement TEXS.F16
2018-12-05 02:06:34 -03:00
Lioncash
817fb18e30
service/ldr: Corrent padding within the NRR header layout
...
The padding after the magic signature value should be 12 bytes rather
than 28 bytes. The other 16 should be placed after the title ID pattern.
2018-12-05 00:05:04 -05:00
ReinUsesLisp
370980fdc3
gl_shader_decompiler: Fixup inverted if
2018-12-05 01:23:04 -03:00
Zach Hilman
e6f7825a24
svc: Avoid incorrect fast yield condition
2018-12-04 22:11:32 -05:00
bunnei
db3200b515
Merge pull request #1859 from heapo/lut_array_codegen
...
Convert high-frequency LUT arrays from constexpr to static constexpr
2018-12-04 22:07:12 -05:00
Lioncash
2f253986df
kernel/svc: Correct behavior of svcResetSignal()
...
While partially correct, this service call allows the retrieved event to
be null, as it also uses the same handle to check if it was referring to
a Process instance. The previous two changes put the necessary machinery
in place to allow for this, so we can simply call those member functions
here and be done with it.
2018-12-04 20:14:59 -05:00
Lioncash
c7462ce712
kernel/process: Make Process a WaitObject
...
Process instances can be waited upon for state changes. This is also
utilized by svcResetSignal, which will be modified in an upcoming
change. This simply puts all of the WaitObject related machinery in
place.
2018-12-04 20:14:59 -05:00
Lioncash
a3aa7aaf0b
kernel/readable_event: Add member function for enforcing a strict reset contract
...
svcResetSignal relies on the event instance to have already been
signaled before attempting to reset it. If this isn't the case, then an
error code has to be returned.
2018-12-04 20:14:55 -05:00
heapo
7853e6b5d4
Improve msvc codegen for hot-path array LUTs
...
In some constexpr functions, msvc is building the LUT at runtime
(pushing each element onto the stack) out of an abundance of caution. Moving the
arrays into be file-scoped constexpr's avoids this and turns the functions into
simple look-ups as intended.
2018-12-04 17:13:07 -08:00
bunnei
d08d4a366b
Merge pull request #1704 from DarkLordZach/oss-sysarchive
...
file_sys: Implement open source system archives
2018-12-04 19:59:52 -05:00
bunnei
af286294f9
Merge pull request #1837 from lioncash/map
...
yuzu/game_list_worker: Minor cleanup and code deduplication
2018-12-04 19:57:41 -05:00
Lioncash
a49fd7fd57
yuzu/game_list_worker: Move std::string construction after the termination check in callbacks
...
Avoids potentially allocating a std::string instance when it isn't
needed.
2018-12-04 18:39:35 -05:00
bunnei
e5dd4cb392
Merge pull request #1838 from lioncash/dedup
...
file_sys/registered_cache: Eliminate variable shadowing
2018-12-04 18:34:49 -05:00
bunnei
173073c722
Merge pull request #1836 from lioncash/unused
...
crypto/key_manager: Remove unused variable in GetTicketblob()
2018-12-04 18:28:15 -05:00
Lioncash
8ea1f28614
kernel/svc: Remove unused header inclusion
2018-12-04 15:48:20 -05:00
Lioncash
a543c35962
kernel/svc: Implement svcSignalEvent()
...
This function simply does a handle table lookup for a writable event
instance identified by the given handle value. If a writable event
cannot be found for the given handle, then an invalid handle error is
returned. If a writable event is found, then it simply signals the
event, as one would expect.
2018-12-04 15:47:59 -05:00
Lioncash
2a1f59b301
kernel/svc: Implement svcCreateEvent()
...
svcCreateEvent operates by creating both a readable and writable event
and then attempts to add both to the current process' handle table.
If adding either of the events to the handle table fails, then the
relevant error from the handle table is returned.
If adding the readable event after the writable event to the table
fails, then the writable event is removed from the handle table and the
relevant error from the handle table is returned.
Note that since we do not currently test resource limits, we don't check
the resource limit table yet.
2018-12-04 15:47:55 -05:00
Zach Hilman
f6f6503578
qt: Add Properties menu to game list right-click
2018-12-04 13:34:50 -05:00
bunnei
465f486160
Merge pull request #1845 from lioncash/nro
...
loader/{nro, nso}: Remove dependency on the System class
2018-12-04 12:26:12 -05:00
bunnei
d533767623
Merge pull request #1853 from lioncash/event
...
kernel/object: Amend handle types to distinguish between readable and writable events
2018-12-04 12:25:40 -05:00
Marcos
ab2108fb2a
Rewrited TEX/TEXS (TEX Scalar). ( #1826 )
...
* Rewrited TEX/TEXS (TEX Scalar).
* Style fixes.
* Styles issues.
2018-12-04 12:24:35 -05:00
bunnei
da5659fb87
Merge pull request #1857 from lioncash/res-info
...
kernel/svc: Implement the resource limit svcGetInfo option
2018-12-04 12:23:19 -05:00
bunnei
7f6bc284e9
Merge pull request #1854 from Subv/old_command_processor
...
Don't try to route PFIFO methods (0-0x40) to the other engines.
2018-12-04 08:49:22 -05:00
Luke Street
a3d78b77f8
debugger: Set paused thread color
2018-12-04 02:25:34 -05:00
Lioncash
5eb057f422
kernel/object: Amend handle types to distinguish between readable and writable events
...
Two kernel object should absolutely never have the same handle ID type.
This can cause incorrect behavior when it comes to retrieving object
types from the handle table. In this case it allows converting a
WritableEvent into a ReadableEvent and vice-versa, which is undefined
behavior, since the object types are not the same.
This also corrects ClearEvent() to check both kernel types like the
kernel itself does.
2018-12-04 02:20:47 -05:00
Lioncash
ac966e4213
kernel/handle_table: Amend reference to CTR-OS in Create()
...
Another hold-over from Citra.
2018-12-04 01:50:44 -05:00
Lioncash
312690b450
kernel/svc: Implement the resource limit svcGetInfo option
...
Allows a process to register the resource limit as part of its handle
table.
2018-12-04 01:50:30 -05:00
Luke Street
3e75175d02
svc: Implement SetThreadActivity (thread suspension)
2018-12-04 01:23:50 -05:00
Subv
c4c19fa6c1
Removed unused file.
...
This is a leftover from #1792
2018-12-03 23:52:38 -05:00
Subv
b873253da1
GPU: Don't try to route PFIFO methods (0-0x40) to the other engines.
2018-12-03 23:52:18 -05:00
V.Kalyuzhny
b330b495dc
[Kernel::CreateThread] Match format specifiers to LOG_TRACE's arguments
2018-12-04 05:13:50 +02:00
Zach Hilman
ddf5903cd9
scheduler: Avoid manual Reschedule call
...
This will automatically occur anyway when PrepareReschedule is called
2018-12-03 21:22:09 -05:00
bunnei
9f1ac96afa
Merge pull request #1840 from lioncash/info
...
svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
2018-12-03 18:46:22 -05:00
Zach Hilman
b5af41a07b
scheduler: Only work steal higher priority threads from other cores
2018-12-03 17:29:30 -05:00
Zach Hilman
e11e65b3d6
applets: Correct event ResetTypes from OneShot to Sticky
...
Fixes bugs relating to signalling in software keyboard.
2018-12-03 17:27:40 -05:00
Zach Hilman
bf90f2402d
qt: Implement GUI dialog frontend for ProfileSelector
...
Presents profiles in a list, similar to switch.
2018-12-03 17:26:27 -05:00
Zach Hilman
60b59d554d
am: Use ProfileSelect applet
2018-12-03 17:26:27 -05:00
Zach Hilman
4fb59fdfe1
applets: Implement ProfileSelect applet
...
Allows the player to select an emulated profile.
2018-12-03 17:26:27 -05:00
Zach Hilman
6deccc7e6b
qt: Register to use Qt ProfileSelector instead of default
2018-12-03 17:26:27 -05:00
Zach Hilman
58fd0a1c50
core: Add getter/setter for ProfileSelector in System
2018-12-03 17:26:26 -05:00
Zach Hilman
d17f38494b
frontend: Add frontend applet for ProfileSelect
...
Responsible for selecting a profile and firing callback upon completion.
2018-12-03 17:26:26 -05:00
Zach Hilman
877b31b33e
software_keyboard: Signal state changed event upon construction
...
Previously, ILibraryAppletAccessor would signal upon creation of any applet, but this is incorrect. A flag inside of the applet code determines whether or not creation should signal state change and swkbd happens to be one of these applets.
2018-12-03 17:26:26 -05:00
Zach Hilman
60e27252a5
qt: Add UI to display game properties and disable add-ons
2018-12-03 17:21:25 -05:00
Zach Hilman
5f0217592b
loader: Add support for reading the name of game's developer
2018-12-03 17:21:25 -05:00
Zach Hilman
51483d83bb
aoc_u: Obey disabled add-ons list when listing DLC
2018-12-03 17:21:25 -05:00
Zach Hilman
0cea05cdf7
patch_manager: Obey disabled add-ons list when patching game
2018-12-03 17:21:25 -05:00
Zach Hilman
c7b41ade74
core: Make GetGameFileFromPath function externally accessible
2018-12-03 17:20:34 -05:00
Zach Hilman
c381f46428
config: Store and load disabled add-ons list
2018-12-03 17:20:34 -05:00
Zach Hilman
282b7e902c
settings: Store list of disabled add-ons per title ID
2018-12-03 17:20:34 -05:00
bunnei
76525013c0
Merge pull request #1842 from lioncash/slot
...
yuzu/configuration: Minor clean-up related changes
2018-12-03 17:12:01 -05:00
bunnei
f6b22d9251
Merge pull request #1835 from lioncash/cache-global
...
filesystem: De-globalize registered_cache_union
2018-12-03 17:11:26 -05:00
bunnei
8a12daac8c
Merge pull request #1822 from ReinUsesLisp/glsl-scope
...
gl_shader_decompiler: Introduce a scoped object and style changes
2018-12-03 17:10:02 -05:00
bunnei
ef69b4b830
Merge pull request #1803 from DarkLordZach/k-able-event
...
kernel: Divide Event into ReadableEvent and WritableEvent
2018-12-03 17:05:57 -05:00
bunnei
f7d5f72944
Merge pull request #1833 from lioncash/clean
...
service/fsp_srv: Implement CleanDirectoryRecursively
2018-12-03 17:04:05 -05:00
bunnei
118f402382
Merge pull request #1839 from lioncash/init
...
service/audio/audout_u: Amend constructor initialization list order
2018-12-03 17:03:00 -05:00
bunnei
a238cdb5ca
Merge pull request #1841 from ogniK5377/npad-mode-fix
...
Fixed crash with SetNpadMode
2018-12-03 17:02:40 -05:00
Frederic Laing
6d7514ccec
game_list: Remove a reference of a reference
2018-12-03 19:26:36 +01:00
David Marcec
5102c91256
Moved backtrace to ArmInterface
...
Added to both dynarmic and unicorn
2018-12-03 20:13:48 +11:00
David Marcec
7149332712
Print backtrace on svcBreak
...
When we get an svcBreak we get a backtrace now
2018-12-03 19:12:09 +11:00
Lioncash
7695febfa1
loader/nso: Remove dependency on the System class
...
Similar to the NRO changes, we can also pass the process explicitly as a
parameter from Load instead of indirecting through the System class.
2018-12-02 23:39:03 -05:00
Lioncash
fc32d6256a
loader/nro: Make the static LoadNro function internally linked
...
This simply acts as a forwarding function for the Load() function, so
this doesn't need to be directly exposed.
2018-12-02 23:38:58 -05:00
Lioncash
7e2467e695
file_sys/directory: Amend path buffer size for directory entries
...
The path buffer is actually 0x301 (769) characters in length, with the
extra character being intended for the null-terminator.
2018-12-02 23:15:58 -05:00
Lioncash
b110d2176c
loader/nro: Remove dependency on the System class
...
Load() is already given the process instance as a parameter, so instead
of coupling the class to the System class, we can just forward that
parameter to LoadNro()
2018-12-02 22:18:52 -05:00
Lioncash
6306e54f45
service/usb: Update function table
...
Updates the function table for IClientEpSession based off information
provided by SwitchBrew.
2018-12-02 15:49:40 -05:00
Lioncash
f933b3370e
service/erpt: Update function table
...
Updates the function table according to information provided by
SwitchBrew.
2018-12-02 15:46:44 -05:00
Lioncash
195cad9635
yuzu/configuration: Make slots private where applicable
...
These slots are only ever attached to event handling mechanisms within
the class itself, they're never used externally. Because of this, we can
make the functions private.
This also removes redundant usages of the private access specifier.
2018-12-02 14:18:36 -05:00
Lioncash
eabfb7730d
yuzu/configuration: Add missing override specifiers to configuration-related classes
...
Resolves trivial compiler warnings.
2018-12-02 14:18:36 -05:00
Lioncash
f3253d0f14
yuzu/configuration/configure_input: Default destructor in the cpp file
...
The previous code could potentially be a compilation issue waiting to
occur, given we forward declare the type for a std::unique_ptr. If the
complete definition of the forward declared type isn't visible in a
translation unit that the class is used in, then it would fail to
compile.
Defaulting the destructor in a cpp file ensures the std::unique_ptr's
destructor is only invoked where its complete type is known.
2018-12-02 14:18:26 -05:00
David Marcec
a9223c8182
Fixed crash with SetNpadMode
...
fixed crash due to handheld
2018-12-03 02:45:08 +11:00
Lioncash
7fe27de26e
svc: Use the current process' handle table for retrieving the process instance to act upon
...
The kernel uses the handle table of the current process to retrieve the
process that should be used to retrieve certain information. To someone
not familiar with the kernel, this might raise the question of "Ok,
sounds nice, but doesn't this make it impossible to retrieve information
about the current process?".
No, it doesn't, because HandleTable instances in the kernel have the
notion of a "pseudo-handle", where certain values allow the kernel to
lookup objects outside of a given handle table. Currently, there's only
a pseudo-handle for the current process (0xFFFF8001) and a pseudo-handle
for the current thread (0xFFFF8000), so to retrieve the current process,
one would just pass 0xFFFF8001 into svcGetInfo.
The lookup itself in the handle table would be something like:
template <typename T>
T* Lookup(Handle handle) {
if (handle == PSEUDO_HANDLE_CURRENT_PROCESS) {
return CurrentProcess();
}
if (handle == PSUEDO_HANDLE_CURRENT_THREAD) {
return CurrentThread();
}
return static_cast<T*>(&objects[handle]);
}
which, as is shown, allows accessing the current process or current
thread, even if those two objects aren't actually within the HandleTable
instance.
2018-12-02 03:41:49 -05:00
Lioncash
6712e7402c
svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
...
Our implementation of svcGetInfo was slightly incorrect in that we
weren't doing proper error checking everywhere. Instead, reorganize it
to be similar to how the kernel seems to do it.
2018-12-02 03:40:10 -05:00
Zach Hilman
3476830b26
svc: Avoid performance-degrading unnecessary reschedule
2018-12-02 00:44:40 -05:00
Lioncash
57ac068a23
service/audio/audout_u: Amend constructor initialization list order
...
Orders the constructor initializer list the same way the members of the
class are declared. Prevents -Wreorder warnings
2018-12-01 23:56:20 -05:00
bunnei
7ce17b2cf6
Merge pull request #1827 from ReinUsesLisp/clip-and-shader
...
gl_rasterizer: Enable clip distances when set in register and in shader
2018-12-01 23:51:47 -05:00
Lioncash
efbcff0af0
file_sys/registered_cache: Eliminate variable shadowing
...
Also inverts if statements where applicable to allow unindenting code a
little bit.
2018-12-01 23:50:13 -05:00
bunnei
80aa124b1d
Merge pull request #1825 from ReinUsesLisp/shader-pipeline-cache
...
gl_shader_manager: Update pipeline when programs have changed
2018-12-01 23:48:55 -05:00
bunnei
a6805e58ce
Merge pull request #1795 from ReinUsesLisp/vc-cleanup
...
video_core: Minor style changes
2018-12-01 23:46:18 -05:00
bunnei
0e9be7be37
Merge pull request #1823 from bunnei/fix-surface-copy
...
gl_rasterizer_cache: Fix several surface copy issues.
2018-12-01 23:44:32 -05:00
Lioncash
db4523f1ec
filesystem: De-globalize registered_cache_union
...
We can just return a new instance of this when it's requested. This only
ever holds pointers to the existing registed caches, so it's not a large
object. Plus, this also gets rid of the need to keep around a separate
member function just to properly clear out the union.
Gets rid of one of five globals in the filesystem code.
2018-12-01 23:43:23 -05:00
Lioncash
8c108eaca7
yuzu/game_list_worker: Deduplicate game list entry creation
...
Avoids duplicating the same code twice verbatim.
2018-12-01 23:23:39 -05:00
Lioncash
f1ecfcb8bc
yuzu/game_list_worker: Tidy up string handling in FillControlMap()
...
We don't need to call out to our own file handling functions when we're
going to construct a QFileInfo instance right after it. We also don't
need to convert to a std::string again just to compare the file
extension.
2018-12-01 22:49:00 -05:00
Lioncash
a8aca4306d
crypto/key_manager: Remove unused variable in GetTicketblob()
2018-12-01 22:37:51 -05:00
bunnei
c5e781e72a
Merge pull request #1832 from Simek/remove-game-list-border
...
UI: Remove border from Game List
2018-12-01 22:26:34 -05:00
bunnei
97e73591e3
Merge pull request #1830 from Subv/vi_ub
...
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
2018-12-01 22:25:10 -05:00
Lioncash
e88cdcc912
Fix debug build
...
A non-existent parameter was left in some formatting calls (the logging
macro for which only does anything meaningful on debug builds)
2018-12-01 02:11:42 -05:00
Lioncash
0ccaaafca3
file_sys: Override missing mutating functions to be stubbed out for ReadOnlyVfsDirectory by default
...
Ensures that read only indeed means read only.
2018-11-30 23:52:56 -05:00
Lioncash
a7d9fe993a
service/fsp_srv: Implement CleanDirectoryRecursively
...
This is the same behavior-wise as DeleteDirectoryRecursively, with the
only difference being that it doesn't delete the top level directory in
the hierarchy, so given:
root_dir/
- some_dir/
- File.txt
- OtherFile.txt
The end result is just:
root_dir/
2018-11-30 20:17:28 -05:00
Bartosz Kaszubowski
5f07ca3dce
remove border from GameList
2018-11-30 23:35:08 +01:00
Subv
583bd20f02
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
...
Assert that it is not empty before using it in the DequeueBuffer wait callback.
2018-11-30 16:06:49 -05:00
Lioncash
308bbba8b9
service/set: Convert GetLanguageCode over to using PushEnum()
...
This code was around prior to the introduction of PushEnum, so convert
it over so we don't need to cast here.
2018-11-30 09:08:07 -05:00
Lioncash
7c04fe22b4
service/set: Implement MakeLanguageCode
...
This function simply converts a given index into a language code.
2018-11-30 09:08:03 -05:00
Lioncash
4b950728fd
configure_input: Amend clang-format discrepancies
2018-11-30 03:31:56 -05:00
bunnei
0f43564d09
gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.
...
- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
2018-11-29 20:10:11 -05:00
ReinUsesLisp
2908d30274
gl_rasterizer: Enable clip distances when set in register and in shader
2018-11-29 16:58:20 -03:00
ReinUsesLisp
1a2bb596db
gl_rasterizer: Implement a framebuffer cache
2018-11-29 16:34:46 -03:00
ReinUsesLisp
e8620eaa9a
gl_shader_manager: Update pipeline when programs have changed
2018-11-29 16:26:42 -03:00
Zach Hilman
170d707850
hle_ipc: Refactor SleepClientThread to avoid ReadableEvent
2018-11-29 09:14:20 -05:00
Zach Hilman
a342bcc9b1
kernel/event: Reference ReadableEvent from WritableEvent
2018-11-29 08:48:40 -05:00
Zach Hilman
ff610103b5
core: Port all current usages of Event to Readable/WritableEvent
2018-11-29 08:45:41 -05:00
Zach Hilman
a56fc84e7a
hle_ipc: Use event pair for SleepClientThread
2018-11-29 08:42:26 -05:00
Zach Hilman
c61d2a2841
kernel: Add named event table
...
Used to store ReadableEvents of all events on the system.
2018-11-29 08:42:26 -05:00
Zach Hilman
c713383816
kernel: Divide Event into ReadableEvent and WritableEvent
...
More hardware accurate. On the actual system, there is a differentiation between the signaler and signalee, they form a client/server relationship much like ServerPort and ClientPort.
2018-11-29 08:42:26 -05:00
Zach Hilman
d92989e787
kernel/object: Add descriptions to ResetTypes
2018-11-29 08:42:26 -05:00
bunnei
7befe0134d
Merge pull request #1768 from greggameplayer/patch-2
...
Uncheck automatically joycons docked when docked mode is enable
2018-11-29 01:00:09 -05:00
bunnei
1e49a85106
Merge pull request #1801 from ogniK5377/log-before-execute
...
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
2018-11-29 00:58:46 -05:00
bunnei
3d3cc35ee7
gl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy.
...
- BlitSurface with different texture targets is inherently broken.
- When target is the same, we can just use FastCopySurface.
- Fixes rendering issues with Breath of the Wild.
2018-11-28 21:56:21 -05:00
ReinUsesLisp
eb700afcf0
gl_shader_decompiler: Remove texture temporal in TLD4
2018-11-28 23:46:16 -03:00
ReinUsesLisp
8d58e5da71
gl_shader_decompiler: Flip negated if else statement
2018-11-28 23:46:16 -03:00
ReinUsesLisp
f4abebd731
gl_shader_decompiler: Use GLSL scope on instructions unrelated to textures
2018-11-28 23:46:14 -03:00
ReinUsesLisp
78fc8f6b66
gl_shader_decompiler: Move texture code generation into lambdas
2018-11-28 23:45:53 -03:00
ReinUsesLisp
ab13b628d0
gl_shader_decompiler: Clean up texture instructions
2018-11-28 23:45:53 -03:00
ReinUsesLisp
6a642022dd
gl_shader_decompiler: Scope GLSL variables with a scoped object
2018-11-28 23:45:51 -03:00
ReinUsesLisp
037449668e
gl_rasterizer: Signal UNIMPLEMENTED when rt_separate_frag_data is not zero
2018-11-28 21:26:22 -03:00
ReinUsesLisp
653d7a3f0d
gl_rasterizer_cache: Use brackets for two-line single-expresion blocks
2018-11-28 21:18:14 -03:00
ReinUsesLisp
432a9872ed
gl_rasterizer: Remove unused struct declarations
2018-11-28 21:18:13 -03:00
ReinUsesLisp
22c7c710b4
gl_rasterizer: Remove extension booleans
2018-11-28 21:18:13 -03:00
bunnei
5a9a84994a
Merge pull request #1808 from Tinob/master
...
Fix clip distance and viewport
2018-11-28 17:47:28 -05:00
bunnei
3fe8ab0d99
Merge pull request #1786 from Tinob/DepthClamp
...
Add Depth Clamp Support
2018-11-28 17:46:55 -05:00
bunnei
c5ab648554
Merge pull request #1817 from DarkLordZach/npad-idx-fix
...
npad: Use NPadIdToIndex to prevent invalid array access
2018-11-28 17:46:17 -05:00
bunnei
6f849887c9
Merge pull request #1792 from bunnei/dma-pusher
...
gpu: Rewrite GPU command list processing with DmaPusher class.
2018-11-28 10:12:37 -05:00
Zach Hilman
299224790c
npad: Use NPadIdToIndex to prevent invalid array access
2018-11-28 09:01:58 -05:00
bunnei
881f5ad70f
Merge pull request #1735 from FernandoS27/tex-spacing
...
Texture decoder: Implemented Tile Width Spacing
2018-11-27 19:21:17 -05:00
bunnei
adb882bf90
Merge pull request #1814 from lioncash/ptr
...
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
2018-11-27 19:20:12 -05:00
bunnei
ac74b71d75
dma_pushbuffer: Optimize to avoid loop and copy on Push.
2018-11-27 19:17:33 -05:00
bunnei
c568f5cea7
gpu: Move command list profiling to DmaPusher::DispatchCalls.
2018-11-27 18:42:21 -05:00
bunnei
e89a3b9e59
Merge pull request #1811 from lioncash/input
...
yuzu/input: Minor changes
2018-11-27 18:38:12 -05:00
Zach Hilman
6df74ff579
npad: Fix copy/paste error with LED position assignments
2018-11-27 17:23:44 -05:00
Lioncash
2a22c1b27e
yuzu/configure_input_player: Use std::size_t to represent the player index instead of u8
...
Prevents compiler warnings related to truncation when invoking the
dialog. It's also extremely suspect to use a u8 value here instead of a
more general type to begin with.
2018-11-27 16:37:21 -05:00
Lioncash
0782d3971b
yuzu/configure_input: Make CallConfigureDialog a non-member template function
...
This doesn't depend on any part of the private interface, so it can be
made a non-member internal function.
2018-11-27 16:37:18 -05:00
bunnei
3cc204aff8
Merge pull request #1802 from DarkLordZach/user-data-storage
...
profile_manager: Save and load ProfileData from disk
2018-11-27 16:36:23 -05:00
Lioncash
7b1aaaa069
file_sys/registered_cache: Remove unused <map> include
2018-11-27 16:33:18 -05:00
Lioncash
d72c809030
file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
...
These parameters don't need to utilize a shared lifecycle directly in
the interface. Instead, the caller should provide a regular reference
for the function to use. This also allows the type system to flag
attempts to pass nullptr and makes it more generic, since it can now be
used in contexts where a shared_ptr isn't being used (in other words, we
don't constrain the usage of the interface to a particular mode of
memory management).
2018-11-27 16:33:14 -05:00
bunnei
bf055e14ab
Merge pull request #1812 from lioncash/nacp
...
control_metadata: Correct typo in language name (Portugese -> Portuguese)
2018-11-27 16:29:53 -05:00
ReinUsesLisp
2e9b90abad
gl_shader_decompiler: Fixup clip distance index
2018-11-27 15:35:26 -03:00
Lioncash
d4e3d567ce
control_metadata: Correct typo in language name (Portugese -> Portuguese)
...
While we're at it, organize the array linearly, since clang formats the
array elements quite wide length-wise with the addition of the missing
'u'.
Technically also fixes patch lookup and icon lookup with Portuguese,
though I doubt anyone has actually run into this issue.
2018-11-27 13:21:46 -05:00
Lioncash
11cf13a6e1
yuzu/configure_input_player: Use a lambda expression instead of std::bind
...
std::bind is the pre-C++11 way of doing this.
2018-11-27 05:08:13 -05:00
Lioncash
73a48d6523
yuzu/configure_input_player: Amend constructor initializer list order
...
Orders the elements the way they would actually be initialized in.
Resolves compiler warnings with gcc and clang
2018-11-27 05:04:51 -05:00
Lioncash
53bff53791
yuzu/configure_input: Remove unused function MoveGridElement
2018-11-27 05:03:26 -05:00
Lioncash
d67e88e59c
yuzu/configure_input*: Move data members after function declarations
...
The common pattern is to put the data members after the function
interface where applicable.
2018-11-27 05:02:15 -05:00
Lioncash
ec7ea4ae96
yuzu/configure_input: Remove unnecessary includes
2018-11-27 05:00:56 -05:00
Markus Wick
8747f5fc0d
gl_rasterizer: Fixup for #1723 .
...
On invalidating the streaming buffer, we need to reupload all vertex buffers.
But we don't need to reconfigure the vertex format.
This was a (silly) misstake in #1723 .
Thanks at Rodrigo for discovering the issue.
Fun fact, as configuring the vertex format also invalidate the vertex buffer,
this misstake had no affect on the behavior.
2018-11-27 10:32:41 +01:00
bunnei
1cd40f107f
Merge pull request #1806 from ReinUsesLisp/morton-fixup
...
morton: Fixup compiler warning
2018-11-26 23:22:59 -05:00
bunnei
11c17465d8
Merge pull request #1804 from lioncash/cast
...
gdbstub: Silence value truncation warning within FpuWrite()
2018-11-26 23:19:40 -05:00
bunnei
abea6fa90c
gpu: Rewrite GPU command list processing with DmaPusher class.
...
- More accurate impl., fixes Undertale (among other games).
2018-11-26 23:14:01 -05:00
bunnei
852a462df3
Merge pull request #1805 from lioncash/resource
...
svc: Implement svcCreateResourceLimit, svcGetResourceLimitCurrentValue(), svcGetResourceLimitLimitValue(), and svcSetResourceLimitLimitValue()
2018-11-26 22:59:51 -05:00
Rodolfo Bogado
6710eb4892
remove viewport_transform_enabled as it seems to be inactive when valid transforms are used.
2018-11-27 00:04:33 -03:00
Lioncash
5905162e36
svc: Implement svcSetResourceLimitLimitValue()
...
The opposite of the getter functions, this function sets the limit value
for a particular ResourceLimit resource category, with the restriction
that the new limit value must be equal to or greater than the current
resource value. If this is violated, then ERR_INVALID_STATE is returned.
e.g.
Assume:
current[Events] = 10;
limit[Events] = 20;
a call to this service function lowering the limit value to 10 would be
fine, however, attempting to lower it to 9 in this case would cause an
invalid state error.
2018-11-26 21:23:15 -05:00
Lioncash
eb5596044d
svc: Implement svcGetResourceLimitCurrentValue()
...
This kernel service function is essentially the exact same as
svcGetResourceLimitLimitValue(), with the only difference being that it
retrieves the current value for a given resource category using the
provided resource limit handle, rather than retrieving the limiting
value of that resource limit instance.
Given these are exactly the same and only differ on returned values, we
can extract the existing code for svcGetResourceLimitLimitValue() to
handle both values.
2018-11-26 21:23:11 -05:00
ReinUsesLisp
237c2026e9
morton: Fixup compiler warning
2018-11-26 23:22:57 -03:00
Lioncash
1d6399c222
svc: Implement svcGetResourceLimitLimitValue()
...
This kernel service function retrieves the maximum allowable value for
a provided resource category for a given resource limit instance. Given
we already have the functionality added to the resource limit instance
itself, it's sufficient to just hook it up.
The error scenarios for this are:
1. If an invalid resource category type is provided, then ERR_INVALID_ENUM is returned.
2. If an invalid handle is provided, then ERR_INVALID_HANDLE is returned (bad thing goes in, bad thing goes out, as one would expect).
If neither of the above error cases occur, then the out parameter is
provided with the maximum limit value for the given category and success
is returned.
2018-11-26 21:12:13 -05:00
Lioncash
4ef2af8c98
svc: Implement svcCreateResourceLimit()
...
This function simply creates a ResourceLimit instance and attempts to
create a handle for it within the current process' handle table. If the
kernal fails to either create the ResourceLimit instance or create a
handle for the ResourceLimit instance, it returns a failure code
(OUT_OF_RESOURCE, and HANDLE_TABLE_FULL respectively). Finally, it exits
by providing the output parameter with the handle value for the
ResourceLimit instance and returning that it was successful.
Note: We do not return OUT_OF_RESOURCE because, if yuzu runs out of
available memory, then new will currently throw. We *could* allocate the
kernel instance with std::nothrow, however this would be inconsistent
with how all other kernel objects are currently allocated.
2018-11-26 21:10:31 -05:00
David Marcec
cc4521fc70
Added comment on Main memory size for more clarity
2018-11-27 12:56:50 +11:00
David Marcec
f058de337e
Made svcSetHeapSize and svcCreateSharedMemory more readable
2018-11-27 12:53:18 +11:00
David Marcec
f271316822
Reworked svcs slightly, improved error messages in AM and fsp_srv
2018-11-27 12:29:06 +11:00
Lioncash
474c745502
gdbstub: Silence value truncation warning within FpuWrite()
...
Previously this would cause an implicit truncation warning about
assigning a u64 value to a u32 value without an explicit cast.
2018-11-26 19:58:23 -05:00
Rodolfo Bogado
dfdbfa69e5
Implement depth clamp
2018-11-26 20:56:32 -03:00
Rodolfo Bogado
8e971f5062
Add support for Clip Distance enabled register
2018-11-26 20:45:21 -03:00
bunnei
1856d0ee8a
Merge pull request #1794 from Tinob/master
...
Add support for viewport_transfom_enable register
2018-11-26 18:34:09 -05:00
bunnei
67a154e23d
Merge pull request #1723 from degasus/dirty_flags
...
gl_rasterizer: Skip VB upload if the state is clean.
2018-11-26 18:33:22 -05:00
Marcos
cb8d51e37e
GPU States: Implement Polygon Offset. This is used in SMO all the time. ( #1784 )
...
* GPU States: Implement Polygon Offset. This is used in SMO all the time.
* Clang Format fixes.
* Initialize polygon_offset in the constructor.
2018-11-26 18:31:44 -05:00
bunnei
7684f4d0cf
Merge pull request #1713 from FernandoS27/bra-cc
...
Implemented BRA CC conditional and FSET CC Setting
2018-11-26 18:28:03 -05:00
bunnei
a41943dc55
Merge pull request #1798 from ReinUsesLisp/y-direction
...
gl_shader_decompiler: Implement S2R's Y_DIRECTION
2018-11-26 18:25:42 -05:00
Zach Hilman
dac0c33fd2
profile_manager: Save and load ProfileData from disk
...
The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
2018-11-26 17:11:12 -05:00
FernandoS27
ddfbe0b58d
Implemented Tile Width Spacing
2018-11-26 09:05:12 -04:00
David Marcec
dace6087d6
Fixed hwopus compile error
2018-11-26 21:52:10 +11:00
David Marcec
3d627df4d8
Improved error messages in AM, HwOpus and NvMap
2018-11-26 20:05:09 +11:00
David Marcec
9662ca918d
Improved error messages for SVCs
2018-11-26 19:47:39 +11:00
David Marcec
a2cc3b10bb
Changed logging to be "Log before execution", Added more error logging, all services should now log on some level
2018-11-26 17:06:13 +11:00
bunnei
f9a211220c
Merge pull request #1763 from ReinUsesLisp/bfi
...
gl_shader_decompiler: Implement BFI_IMM_R
2018-11-25 23:04:57 -05:00
bunnei
ee764c3b4b
Merge pull request #1793 from lioncash/ref
...
service/sm: Take std::string by const reference in UnregisterService
2018-11-25 23:04:21 -05:00
bunnei
d7d1ab15b6
Merge pull request #1760 from ReinUsesLisp/r2p
...
gl_shader_decompiler: Implement R2P_IMM
2018-11-25 22:38:42 -05:00
bunnei
0394813401
Merge pull request #1782 from FernandoS27/dc
...
Fixed Coordinate Encodings in TEX and TEXS instructions
2018-11-25 22:36:25 -05:00
bunnei
8ce90a4f0b
Merge pull request #1783 from ReinUsesLisp/clip-distances
...
gl_shader_decompiler: Implement clip distances
2018-11-25 22:35:30 -05:00
bunnei
ceb4bc22a4
Merge pull request #1796 from ReinUsesLisp/morton-move
...
video_core: Move morton functions out of gl_rasterizer_cache
2018-11-25 22:35:12 -05:00
Luke Street
94e8dfc0c7
svc: Return ERR_INVALID_ENUM_VALUE from svcGetInfo
2018-11-25 16:48:44 -05:00
Rodolfo Bogado
415e8383ba
Limit the amount of viewports tested for state changes only to the usable ones
2018-11-25 12:18:29 -03:00
ReinUsesLisp
924e834b8f
gl_shader_decompiler: Implement S2R's Y_DIRECTION
2018-11-25 04:37:29 -03:00
bunnei
932fbd5a25
Merge pull request #1791 from bunnei/nvdrv-stub
...
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
2018-11-24 23:45:24 -05:00
bunnei
7d544c1b9d
Merge pull request #1787 from bunnei/fix-gpu-mm
...
memory_manager: Do not allow 0 to be a valid GPUVAddr.
2018-11-24 23:45:00 -05:00
ReinUsesLisp
7ff2131cf9
morton: Style changes
2018-11-25 00:38:53 -03:00
ReinUsesLisp
dad3a6718e
video_core: Move morton functions to their own file
2018-11-25 00:37:18 -03:00
FernandoS27
8c797464a2
Fix Texture Overlapping
2018-11-24 17:26:42 -04:00
FernandoS27
33afff1870
Implemented BRA CC conditional and FSET CC Setting
2018-11-24 13:25:54 -04:00
Rodolfo Bogado
13f6a603c2
Add support for viewport_transfom_enable register
2018-11-24 13:17:48 -03:00
Lioncash
b0df09335c
service/sm: Take std::string by const reference in UnregisterService
...
Avoids the need to create a copy of the std::string instance
(potentially allocating).
The only reason RegisterService takes its argument by value is because
it's std::moved internally.
2018-11-24 00:08:13 -05:00
bunnei
f7a1827aaa
Merge pull request #1641 from DarkLordZach/sm-register-unregister
...
sm: Implement RegisterService and UnregisterService
2018-11-23 23:59:01 -05:00
bunnei
7c4fb09a7c
Merge pull request #1731 from DarkLordZach/change-dir-crash
...
filesystem: Clear registered union paths on factory creation
2018-11-23 23:58:31 -05:00
bunnei
d01bf170c4
Merge pull request #1725 from FernandoS27/gl43
...
Update OpenGL's backend version from 3.3 to 4.3
2018-11-23 23:56:57 -05:00
bunnei
e23543918b
Merge pull request #1785 from Tinob/master
...
Add support for clear_flags register
2018-11-23 23:55:56 -05:00
bunnei
69a9bd8187
Merge pull request #1692 from Hedges/GDBClean
...
GDBStub Improvements
2018-11-23 23:36:36 -05:00
bunnei
e65966bcfc
Merge pull request #1708 from ogniK5377/res-scale
...
Report resolution scaling support for vi and am
2018-11-23 23:32:19 -05:00
bunnei
67ff974387
Merge pull request #1747 from DarkLordZach/exefs-lfs
...
patch_manager: Add support for applying LayeredFS patches to ExeFS
2018-11-23 23:31:48 -05:00
bunnei
b6b78203cc
Merge pull request #1769 from ReinUsesLisp/cc
...
gl_shader_decompiler: Rename cc to condition code and name internal flags
2018-11-23 23:31:04 -05:00
bunnei
0d673a84b6
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
...
- Used by Undertale.
2018-11-23 23:22:04 -05:00
Rodolfo Bogado
54c2a4cafc
Add support for clear_flags register
2018-11-24 00:16:33 -03:00
FernandoS27
7668ef51d6
Fix TEXS Instruction encodings
2018-11-23 22:46:50 -04:00
FernandoS27
9c2127d5eb
Fix one encoding in TEX Instruction
2018-11-23 22:46:49 -04:00
FernandoS27
487d805899
Corrected inputs indexing in TEX instruction
2018-11-23 22:46:48 -04:00
bunnei
69b3f98d3a
Merge pull request #1744 from degasus/shader_cache
...
shader_cache: Only lock covered instructions.
2018-11-23 21:09:36 -05:00
bunnei
d57e00801d
Merge pull request #1741 from lioncash/kbd
...
software_keyboard: Minor changes
2018-11-23 21:09:18 -05:00
bunnei
0b1842294f
memory_manager: Do not allow 0 to be a valid GPUVAddr.
...
- Fixes a bug with Undertale using 0 for a render target.
2018-11-23 12:58:55 -05:00
bunnei
c267aea29b
Merge pull request #1770 from DarkLordZach/applet-stub
...
applets: Add StubApplet and use it as fallback when AppletId is not implemented
2018-11-23 09:02:25 -08:00
bunnei
f1969ee1f3
Merge pull request #1777 from lioncash/core-mgr
...
core: Relocate CPU core management to its own class
2018-11-23 09:00:41 -08:00
bunnei
24dfb43ac6
Merge pull request #1773 from lioncash/thread
...
common/thread: Minor cleanup
2018-11-23 08:52:05 -08:00
Hexagon12
3135dbc29c
Added predicate comparison LessEqualWithNan ( #1736 )
...
* Added predicate comparison LessEqualWithNan
* oops
* Clang fix
2018-11-23 08:51:32 -08:00
bunnei
c4b5319446
Merge pull request #1756 from ReinUsesLisp/fix-textures
...
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-23 08:49:37 -08:00
bunnei
d77af9f8fd
Merge pull request #1766 from FernandoS27/fix-txq
...
Properly Implemented TXQ Instruction
2018-11-23 08:48:57 -08:00
bunnei
cb5b68cb0a
Merge pull request #1762 from bunnei/getgputime
...
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
2018-11-23 08:35:26 -08:00
ReinUsesLisp
b3853403b7
gl_shader_decompiler: Implement clip distances
2018-11-23 02:14:43 -03:00
Zach Hilman
86ad1f8db6
file_sys: Implement system archive synthesizer for NgWord (806)
2018-11-22 21:39:10 -05:00
Zach Hilman
f820e58be4
am: Return StubApplet instead of nullptr when AppletId not found
2018-11-22 15:58:11 -05:00
ReinUsesLisp
c9ac23683b
gl_shader_decompiler: Add a message for unimplemented cc generation
2018-11-22 16:12:27 -03:00
greggameplayer
c14af2f71d
correct clang-format
2018-11-22 18:26:43 +01:00
Zach Hilman
b358e88512
debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)
...
Prevents memory exceptions when the debug pad is enabled.
2018-11-22 12:23:43 -05:00
bunnei
50d2abaaa9
Merge pull request #1775 from bunnei/blend-eq
...
maxwell_3d: Implement alternate blend equations.
2018-11-22 08:44:05 -08:00
bunnei
af159a4d08
Merge pull request #1765 from bunnei/multi-audout
...
audout_u: Add support for multiple IAudioOut streams.
2018-11-22 08:43:53 -08:00
bunnei
e633021532
Merge pull request #1764 from bunnei/macrointerpreter
...
macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.
2018-11-22 08:43:29 -08:00
Lioncash
232d95b56e
core: Relocate CPU core management to its own class
...
Keeps the CPU-specific behavior from being spread throughout the main
System class. This will also act as the home to contain member functions
that perform operations on all cores. The reason for this being that the
following pattern is sort of prevalent throughout sections of the
codebase:
If clearing the instruction cache for all 4 cores is necessary:
Core::System::GetInstance().ArmInterface(0).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(1).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(2).ClearInstructionCache();
Core::System::GetInstance().ArmInterface(3).ClearInstructionCache();
This is kind of... well, silly to copy around whenever it's needed.
especially when it can be reduced down to a single line.
This change also puts the basics in place to begin "ungrafting" all of the
forwarding member functions from the System class that are used to
access CPU state or invoke CPU-specific behavior. As such, this change
itself makes no changes to the direct external interface of System. This
will be covered by another changeset.
2018-11-22 04:28:19 -05:00
bunnei
033b46253e
macro_interpreter: Implement AddWithCarry and SubtractWithBorrow.
...
- Used by Undertale.
2018-11-22 00:58:00 -05:00
bunnei
5a6dc4d041
audout_u: Add support for multiple IAudioOut streams.
...
- Used by Undertale.
2018-11-22 00:53:39 -05:00
bunnei
0e6a608245
maxwell_3d: Implement alternate blend equations.
...
- Used by Undertale.
2018-11-22 00:51:01 -05:00
Lioncash
1bf5a337a5
common/thread: Drop Hungarian notation on SetCurrentThreadName's parameter
...
This is inconsistent with our coding style.
2018-11-22 00:40:26 -05:00
bunnei
b84f4cfb62
Merge pull request #1737 from FernandoS27/layer-copy
...
Implemented Fast Layered Copy
2018-11-21 21:39:16 -08:00
bunnei
f0d3f1b376
Merge pull request #1771 from lioncash/bit-set
...
common: Remove bit_set.h
2018-11-21 21:36:15 -08:00
Zach Hilman
820d81b9a5
scheduler: Add explanations for YieldWith and WithoutLoadBalancing
2018-11-22 00:33:53 -05:00
bunnei
f926559ef4
Merge pull request #1767 from lioncash/handle
...
kernel/handle_table: Minor changes
2018-11-21 21:26:48 -08:00
Lioncash
93f7677402
common/thread: Make Barrier's 'count' member non-const
...
While admirable as a means to ensure immutability, this has the
unfortunate downside of making the class non-movable. std::move cannot
actually perform a move operation if the provided operand has const data
members (std::move acts as an operation to "slide" resources out of an
object instance). Given Barrier contains move-only types such as
std::mutex, this can lead to confusing error messages if an object ever
contained a Barrier instance and said object was attempted to be moved.
2018-11-21 21:47:08 -05:00
Lioncash
756e773096
common/thread: Initialize class member variables where applicable
...
Simplifies the constructor interfaces for Barrier and Event classes.
2018-11-21 21:45:01 -05:00
Lioncash
02602afd10
common/thread: Group non-member functions together
...
Keeps the non-member interface in one spot instead of split into two
places, making it nicer to locate functions.
2018-11-21 21:42:33 -05:00
Lioncash
d6583d68f6
common/thread: Remove SleepCurrentThread()
...
This is also unused and superceded by standard functionality. The
standard library provides std::this_thread::sleep_for(), which provides
a much more flexible interface, as different time units can be used with
it.
2018-11-21 21:40:11 -05:00
Lioncash
1d555fdd25
common/thread: Remove unused CurrentThreadId()
...
This is an old function that's no longer necessary. C++11 introduced
proper threading support to the language and a thread ID can be
retrieved via std::this_thread::get_id() if it's ever needed.
2018-11-21 21:37:11 -05:00
Lioncash
8b27e73bd7
common: Remove bit_set.h
...
This is an analog of BitSet from Dolphin that was introduced to allow
iterating over a set of bits. Given it's currently unused, and given
that std::bitset exists, we can remove this. If it's ever needed in the
future it can be brought back.
2018-11-21 21:30:10 -05:00
Zach Hilman
699900eed0
applets: Add StubApplet
...
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
2018-11-21 21:20:02 -05:00
ReinUsesLisp
74eb16521f
gl_shader_decompiler: Rename internal flag strings
2018-11-21 22:31:42 -03:00
ReinUsesLisp
8a5e6fce07
gl_shader_decompiler: Rename control codes to condition codes
2018-11-21 22:31:16 -03:00
greggameplayer
6d2adb0bc0
Automatically disable joycons docked
...
when docked mode is enable
2018-11-22 01:24:39 +01:00
ReinUsesLisp
864cbbaf4c
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-21 21:21:19 -03:00
Lioncash
0e35f1bb18
kernel/handle_table: Move private static functions into the cpp file
...
These don't depend on class state, and are effectively implementation
details, so they can go into the cpp file .
2018-11-21 18:31:01 -05:00
Lioncash
568bcbc29d
kernel/handle_table: Restrict handle table size to 1024 entries
...
The previous handle table size is a holdover from Citra. The actual
handle table construct on Horizon only allows for a maximum of 1024
entries.
2018-11-21 18:28:03 -05:00
Lioncash
f5ce71793e
kernel/handle_table: Default destructor in the cpp file
...
We don't need to potentially inline the teardown logic of all of the
handle instances.
2018-11-21 18:23:09 -05:00
bunnei
ec38b4e883
Merge pull request #1753 from FernandoS27/ufbtype
...
Use default values for unknown framebuffer pixel format
2018-11-21 14:15:27 -08:00
bunnei
61586e8794
Merge pull request #1752 from ReinUsesLisp/unimpl-decompiler
...
gl_shader_decompiler: Use UNIMPLEMENTED when applicable
2018-11-21 14:13:28 -08:00
FernandoS27
4a6a9b6622
Properly Implemented TXQ Instruction
2018-11-21 18:12:36 -04:00
bunnei
d4012a4540
Merge pull request #1742 from lioncash/hle-swkbd
...
am/applets: Minor cleanup
2018-11-21 11:43:43 -08:00
ReinUsesLisp
642dfeda2a
gl_shader_decompiler: Implement BFI_IMM_R
2018-11-21 16:12:30 -03:00
bunnei
7f10db1c20
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
...
- Used by Undertale.
2018-11-21 11:43:25 -05:00
bunnei
bb175ab430
Merge pull request #1754 from ReinUsesLisp/zero-register
...
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
2018-11-21 08:06:29 -08:00
bunnei
8cdb48224d
Merge pull request #1758 from lioncash/rect
...
common/math_util: Minor cleanup
2018-11-21 08:05:39 -08:00
FernandoS27
0368260c99
Removed pre 4.3 ARB extensions
2018-11-21 11:43:17 -04:00
FernandoS27
377c60645c
Update OpenGL's backend version from 3.3 to 4.3
2018-11-21 11:43:17 -04:00
FernandoS27
0a9fedfac9
Use default values for unknown framebuffer pixel format
2018-11-21 07:33:34 -04:00
Lioncash
3533d33ff5
common: Remove dependency on xbyak
...
Xbyak is currently entirely unused. Rather than carting it along, remove
it and get rid of a dependency. If it's ever needed in the future, then
it can be re-added (and likely be more up to date at that point in
time).
2018-11-21 03:43:41 -05:00
ReinUsesLisp
d92afc7493
gl_shader_decompiler: Implement R2P_IMM
2018-11-21 04:56:00 -03:00
Lioncash
45211a7a91
common/math_util: Simplify std::make_signed usages to std::make_signed_t
...
Gets rid of the need to use typename to access the ::type alias.
2018-11-21 02:08:18 -05:00
Lioncash
f11173f88c
common/math_util: Make Rectangle's constructors constexpr
...
Allows objects that contain rectangle instances to be constexpr
constructible as well.
2018-11-21 02:08:18 -05:00
Lioncash
cc0801745a
common/math_util: Remove unnecessary static from PI
...
const/constexpr variables have internal linkage by default.
2018-11-21 02:08:18 -05:00
Lioncash
74fd0aa2e8
common/math_util: Remove unused IntervalsIntersect() function
...
This hasn't been used since the project started, so we may as well get
rid of it to keep it from bit rotting.
2018-11-21 02:08:15 -05:00
bunnei
5af4160bf2
Merge pull request #1751 from bunnei/color-mask-fix
...
maxwell_3d: Initialize rasterizer color mask registers as enabled.
2018-11-20 19:20:13 -08:00
ReinUsesLisp
423a3ed2c8
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
2018-11-20 22:23:10 -03:00
ReinUsesLisp
bb893188eb
gl_shader_decompiler: Use UNIMPLEMENTED instead of LOG+UNREACHABLE when applicable
2018-11-20 22:00:13 -03:00
bunnei
1a543723ab
maxwell_3d: Initialize rasterizer color mask registers as enabled.
...
- Fixes rendering regression with Sonic Mania.
2018-11-20 19:58:06 -05:00
Lioncash
f17e122025
am: Correct build failure
...
The interface for shared memory was changed, but another commit was
merged that relied on the (previously public) internals of SharedMemory.
This amends that discrepancy.
2018-11-20 19:49:07 -05:00
Zach Hilman
54e74b3572
patch_manager: Show LayeredExeFS patch in add-ons column
...
The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
2018-11-20 19:22:34 -05:00
bunnei
aa7e53ab5c
Merge pull request #1734 from lioncash/shared
...
kernel/shared_memory: Make data members private, plus minor interface changes
2018-11-20 16:13:30 -08:00
bunnei
ab292c501c
Merge pull request #1733 from lioncash/ldr
...
ldr: Clean up error codes
2018-11-20 16:13:09 -08:00
bunnei
67486c0568
Merge pull request #1746 from lioncash/random
...
kernel/process: Move <random> include to the cpp file
2018-11-20 16:12:29 -08:00
bunnei
1d0604e33c
Merge pull request #1748 from lioncash/assert
...
common/assert: Make the UNIMPLEMENTED macro properly assert
2018-11-20 16:11:30 -08:00
Lioncash
820bcee6a4
file_sys/card_image: Provide named members for the GamecardInfo struct
...
Fills out the struct according to information provided by SwitchBrew
2018-11-20 18:40:53 -05:00
Lioncash
9dcc229dfe
common/assert: Add UNIMPLEMENTED_IF and UNIMPLEMENTED_IF_MSG for conditional assertions
...
Currently, there's no way to specify if an assertion should
conditionally occur due to unimplemented behavior. This is useful when
something is only partially implemented (e.g. due to ongoing RE work).
In particular, this would be useful within the graphics code.
The rationale behind this is it allows a dev to disable unimplemented
feature assertions (which can occur in an unrelated work area), while
still enabling regular assertions, which act as behavior guards for
conditions or states which must not occur. Previously, the only way a
dev could temporarily disable asserts, was to disable the regular
assertion macros, which has the downside of also disabling, well, the
regular assertions which hold more sanitizing value, as opposed to
unimplemented feature assertions.
2018-11-20 18:15:37 -05:00
Lioncash
aaec85df9e
common/assert: Make the UNIMPLEMENTED macro properly assert
...
Currently, this was only performing a logging call, which doesn't
actually invoke any assertion behavior. This is unlike
UNIMPLEMENTED_MSG, which *does* assert.
This makes the expected behavior uniform across both macros.
2018-11-20 17:59:00 -05:00
Zach Hilman
da6d4cde56
patch_manager: Apply LayeredExeFS patches
...
This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
2018-11-20 17:51:00 -05:00
Zach Hilman
17d8e25cbf
settings: Add option to dump ExeFS of games upon launch
...
When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
2018-11-20 17:49:09 -05:00
Lioncash
31d1e06eb1
kernel/process: Move <random> include to the cpp file
...
<random> isn't necesary directly within the header and can be placed in
the cpp file where its needed. Avoids propagating random generation
utilities via a header file.
2018-11-20 17:46:20 -05:00
Markus Wick
cfbae58b2b
shader_cache: Only lock covered instructions.
2018-11-20 21:58:31 +01:00
Lioncash
73b7748984
am/applets: Make the applet data broker part of the applet itself.
...
The accessor should be doing just that, accessing, rather than retaining
the lifetime of the data broker as well.
2018-11-20 12:36:33 -05:00
Lioncash
8b4b560df5
am/applets: Replace includes with forward declarations where applicable
...
Also resolve places where includes should have been provided, but
weren't.
2018-11-20 11:53:55 -05:00
Lioncash
dd254c603d
am/applets: Relocate comments above the relevant data member in AppletDataBroker
...
Avoids wonky wrapping and makes it nicer to read.
2018-11-20 11:49:49 -05:00
Lioncash
4dcdd3a837
yuzu/applets/software_keyboard: Override accept() and reject() instead of providing own differently named member functions
...
Uses Qt's built-in interface instead of rolling our own separate one on
top of it. This also fixes a bug in reject() where we were calling
accept() instead of reject().
2018-11-20 11:36:50 -05:00
Lioncash
3fa2b218ac
yuzu/applets/software_keyboard: std::move std::function instances where applicable
...
std::function instances can potentially allocate. std::moveing them
prevents an avoidable allocation in that case.
2018-11-20 11:34:19 -05:00
Lioncash
fe2609cb77
yuzu/applets/software_keyboard: Make slots private functions
...
These aren't required to be public.
2018-11-20 11:29:22 -05:00
bunnei
b6d2c64f4d
Merge pull request #1667 from DarkLordZach/swkbd
...
am: Implement HLE software keyboard applet
2018-11-20 08:24:11 -08:00
bunnei
e9265ac598
Merge pull request #1739 from lioncash/lm
...
lm: Implement SetDestination by doing nothing
2018-11-19 18:40:17 -08:00
FernandoS27
eb36463e03
Implemented Fast Layered Copy
2018-11-19 19:51:13 -04:00
Lioncash
5d46038c5c
kernel/resource_limit: Clean up interface
...
Cleans out the citra/3DS-specific implementation details that don't
apply to the Switch. Sets the stage for implementing ResourceLimit
instances properly.
While we're at it, remove the erroneous checks within CreateThread() and
SetThreadPriority(). While these are indeed checked in some capacity,
they are not checked via a ResourceLimit instance.
In the process of moving out Citra-specifics, this also replaces the
system ResourceLimit instance's values with ones from the Switch.
2018-11-19 18:16:39 -05:00
Lioncash
34e4aaddd9
lm: Implement SetDestination by doing nothing
...
This service function was likely intended to be a way to redirect where
the output of a log went. e.g. Firing a log over a network, dumping over
a tunneling session, etc.
Given we always want to see the log and not change its output. It's one
of the lucky service functions where the easiest implementation is to
just do nothing at all and return success.
2018-11-19 18:09:40 -05:00
Zach Hilman
a9fa890f14
software_keyboard: Fix erroneous extra PushNormalData
2018-11-19 16:30:17 -05:00
Zach Hilman
d68795c665
software_keyboard: Return correct result code on user cancel operation
2018-11-19 15:10:01 -05:00
Zach Hilman
32775125b7
applet: Add AppletDataBroker to manage HLE to AM service interaction
...
This cleans up most of the callbacks and such in the Applets::Applet interface, while also properly implementing all four data channels.
2018-11-19 14:24:36 -05:00
Zach Hilman
96535c13a5
software_keyboard: Use correct offset for inital text string
2018-11-19 11:22:04 -05:00
Lioncash
233e495c14
kernel/shared_memory: Make Map() and Unmap() take the target process by reference rather than as a pointer
...
Both member functions assume the passed in target process will not be
null. Instead of making this assumption implicit, we can change the
functions to be references and enforce this at the type-system level.
2018-11-19 09:20:29 -05:00
Lioncash
fb5d4b17de
kernel/shared_memory: Add a const qualified member function overload for GetPointer()
...
Given this doesn't mutate instance state, we can provide a
const-qualified variant as well.
2018-11-19 09:20:29 -05:00
Lioncash
2d37ca3726
kernel/shared_memory: Use 64-bit types for offset and size in CreateForApplet
...
Keeps the interface consistent with the regular Create() function.
2018-11-19 09:20:29 -05:00
Lioncash
76ac234bf6
kernel/shared_memory: Make GetPointer() take a std::size_t instead of a u32
...
Makes the interface nicer to use in terms of 64-bit code, as it makes it
less likely for one to get truncation warnings (and also makes sense in
the context of the rest of the interface where 64-bit types are used for
sizes and offsets
2018-11-19 09:20:29 -05:00
Lioncash
f472232705
kernel/shared_memory: Make data members private
...
Rather than allow unfettered access to the class internals, we hide all
members by default and create and API that other code can operate
against.
2018-11-19 09:20:25 -05:00
Lioncash
43e7c6cf49
ldr: Clean up error codes
...
The separate enum isn't particularly necessary here, and the values can
just be directly put into the ResultCode instances, given the names are
also self-documenting here.
2018-11-19 08:12:25 -05:00
Zach Hilman
409dcf0e0a
svc: Implement yield types 0 and -1
2018-11-18 23:44:19 -05:00
Zach Hilman
c3becdbca7
filesystem: Clear registered union paths on factory creation
2018-11-18 23:31:30 -05:00
Zach Hilman
aef0d88165
configure_input: Use Joycons Docked instead of Connected as label
2018-11-18 23:22:36 -05:00
Zach Hilman
312ef596a5
configure_input_player: Set minimum width on controls
2018-11-18 23:22:36 -05:00
Zach Hilman
dd92db3fb0
configure_input: Properly update UI components on removal of player
2018-11-18 23:22:36 -05:00
Zach Hilman
e58c951a59
configure_input: Make None a controller option instead of checkbox
2018-11-18 23:22:36 -05:00
Zach Hilman
3a6cd5b3c8
hid: Use player-defined controller type as PREFERRED_CONTROLLER
2018-11-18 23:22:36 -05:00
Zach Hilman
3d1a221893
qt: Move controller button config to separate dialog
...
Handles button configuration for all controller layouts and debug pads. Configurable at construction.
2018-11-18 23:22:36 -05:00
Zach Hilman
afe8df5020
qt: Add UI to configure touchscreen parameters
...
This allows adjusting the finger, diameter, and angle of the emulated touchscreen. It also provides a warning to the user about what changing these parameters can do.
2018-11-18 23:22:36 -05:00
Zach Hilman
2e1dd9c649
qt: Add UI to configure mouse buttons
...
Supports setting the five mouse buttons to any valid controller button/keyboard key (Left, Right, Middle, Foward, Back)
2018-11-18 23:22:36 -05:00
Zach Hilman
f1aec256d7
configure_input: Add support for multiplayer and controller types
...
This moves the actual button configuration to a separate dialog and only has the enabled and type controls in the tab.
2018-11-18 23:22:36 -05:00
Zach Hilman
55ded706d6
hid/npad: Update NPad to use player controller bindings and type
2018-11-18 23:22:36 -05:00
Zach Hilman
e9145c3e16
hid/touchscreen: Update Touchscreen to use advanced parameters
...
Including finger ID, diamater x/y, and angle. Additionally, checks if the touchscreen is enabled.
2018-11-18 23:22:36 -05:00
Zach Hilman
3b25426bd9
hid: Add controller bindings for Mouse controller
2018-11-18 23:22:36 -05:00
Zach Hilman
0fd45e78f4
hid: Add keyboard bindings for Keyboard controller
2018-11-18 23:22:36 -05:00
Zach Hilman
06cf050c0a
hid: Add controller bindings for DebugPad controller
...
Used by developers to test games, not present on retail systems. Some games are known to respond to DebugPad input though, for example Kirby Star Allies.
2018-11-18 23:22:36 -05:00
Zach Hilman
d1b7c65b9e
yuzu/config: Add (de-)serialization for multiplayer
...
Defaults to full keyboard for keyboard -- It did not seem to be necessary to make the keyboard configurable (besides enabled/disabled).
2018-11-18 23:22:36 -05:00
Zach Hilman
b8f7f9651e
yuzu_cmd/config: Add config deserialization for multiplayer
2018-11-18 23:22:36 -05:00
Zach Hilman
c77454b9d0
settings: Add settings for multiple players and controllers
...
Uses the PlayerInput struct to represent all of the data that constitutes a player.
2018-11-18 23:21:33 -05:00
Zach Hilman
fd5fa48674
settings: Add Native type for keyboard
2018-11-18 23:21:33 -05:00
Zach Hilman
152422bab1
settings: Add Native type for mouse buttons
2018-11-18 23:21:33 -05:00
David Marcec
0c3e7b7086
Added missing start/end touch attributes to touchscreen
2018-11-18 23:21:33 -05:00
David Marcec
f66c6fe554
Added debugpad skeleton
2018-11-18 23:21:33 -05:00
David Marcec
362b28d052
Added controller helper funcs
2018-11-18 23:21:33 -05:00
David Marcec
a69b9d73f5
Changed polling rate of hid and Right joycon rotation
2018-11-18 23:21:33 -05:00
David Marcec
7fbe2c83a7
Left joycon rotation button remapping
2018-11-18 23:21:33 -05:00
David Marcec
b9c1e4b0e7
Added automatic npad switch based on supported stylesets
2018-11-18 23:21:33 -05:00
David Marcec
beab38601b
Added multi-input support and controller assignment at any port
2018-11-18 23:21:33 -05:00
David Marcec
60fecee1ec
Removed hard coded values for width and height
2018-11-19 15:20:47 +11:00
Zach Hilman
ea680bea60
software_keyboard: Check for UTF-8 config flag
2018-11-18 23:14:48 -05:00
bunnei
f02b125ac8
Merge pull request #1717 from FreddyFunk/swizzle-gob
...
textures/decoders: Replace magic numbers
2018-11-18 20:13:00 -08:00
bunnei
6dc33fb812
Merge pull request #1693 from Tinob/master
...
Missing ogl states
2018-11-18 19:59:10 -08:00
Frederic L
11a1442229
Eliminated unnessessary memory allocation and copy ( #1702 )
2018-11-18 19:53:03 -08:00
bunnei
3e93c30630
Merge pull request #1640 from DarkLordZach/game-list-reload
...
game_list: Only reload game list after relevant settings changed
2018-11-18 19:24:53 -08:00
bunnei
e34d47e6e3
Merge pull request #1620 from DarkLordZach/ldr-ro
...
ldr_ro: Complete LDR:RO implementation
2018-11-18 19:23:38 -08:00
bunnei
f08b4cbbc8
Merge pull request #1718 from ogniK5377/lets-go-softlock
...
Implemented CalculateStandardUserSystemClockDifferenceByUser
2018-11-18 19:22:47 -08:00
Schplee
9a47e40dd6
Correctly sets default system language for yuzu-CLI ( #1727 )
...
* Correctly sets default system language for yuzu-CLI
A user reported that yuzu_cmd runs games in Japanese rather than the correct default of English (like yuzu-qt does correctly), this change fixes that.
* fix clang issue
deleted whitespace
2018-11-18 19:21:17 -08:00
bunnei
da238db6df
Merge pull request #1730 from ReinUsesLisp/fix-intel
...
gl_rasterizer: Remove default clip distance
2018-11-18 19:19:43 -08:00
bunnei
611141e09f
Merge pull request #1671 from DarkLordZach/vi-disconnect
...
vi: Implement TransactParcel for Disconnect and DetachBuffer
2018-11-18 19:18:46 -08:00
ReinUsesLisp
29e7c76d66
gl_rasterizer: Remove default clip distance
2018-11-18 23:57:52 -03:00
Mat M
9a1bac840e
Merge pull request #1728 from FearlessTobi/reset-signal
...
svc: ResetSignal is not stubbed
2018-11-18 15:51:32 -05:00
Tobias
13f79cc5bd
svc: ResetSignal is not stubbed
...
https://user-images.githubusercontent.com/20753089/48677874-b8e01c80-eb7b-11e8-8043-b99faa29022c.PNG
2018-11-18 21:49:17 +01:00
Zach Hilman
56cf5b7b17
software_keyboard: Add max and current length display to dialog
2018-11-18 10:53:47 -05:00
Zach Hilman
02e6602baa
software_keyboard: Push all data over all channels on dialog completion
2018-11-18 10:53:47 -05:00
Zach Hilman
4ee087fb3c
applet: Use std::queue instead of std::vector for storage stack
2018-11-18 10:53:47 -05:00
Zach Hilman
19b2571aec
applet: Add operation completed callback
2018-11-18 10:53:47 -05:00
Zach Hilman
6209fe0c27
software_keyboard: Push buffer size to offset 0x4 in output data
2018-11-18 10:53:47 -05:00
Zach Hilman
8b433beff3
software_keyboard: Make GetText asynchronous
...
a
2018-11-18 10:53:47 -05:00
Zach Hilman
7cfb29de23
am: Allow applets to push multiple and different channels of data
2018-11-18 10:53:47 -05:00
Zach Hilman
3cf7246e37
am: Implement ILibraryAppletAccessor IsCompleted and GetResult
2018-11-18 10:53:47 -05:00
Zach Hilman
fed6ab14c3
am: Implement text check software keyboard mode
...
Allows the game to verify and send a message to the frontend.
2018-11-18 10:53:47 -05:00
Zach Hilman
e696ed1f4d
am: Deglobalize software keyboard applet
2018-11-18 10:53:47 -05:00
Zach Hilman
a81645400f
qt/main: Register Qt Software Keyboard frontend with AM
...
Allows using Qt provider over default.
2018-11-18 10:53:47 -05:00
Zach Hilman
48fcb43585
am: Construct and use proper applets with ILibraryAppletAccessor
...
Allows use of software keyboard applet and future applets to be easily added by adding enum ID and a switch case.
2018-11-18 10:53:47 -05:00
Zach Hilman
5454494adb
qt/applets: Provide Qt frontend implementation of software keyboard
...
Implements all of the features of the keyboard, including length, default text, character validation, and UTF-16 character support.
2018-11-18 10:53:47 -05:00
Zach Hilman
de16c1e453
am/applets: Add connector between frontend and AM applet classes
...
Provides a middleman between the Frontend provider class and the expected AM::Applets::Applet class needed by ILibraryAppletAccessor
2018-11-18 10:53:47 -05:00
Zach Hilman
ae53b84efd
frontend/applets: Add frontend software keyboard provider and default
...
Default implementation will return "yuzu" for any string. GUI clients (or CLI) can implement the Frontend::SoftwareKeyboardApplet class and register an instance to provide functionality.
2018-11-18 10:53:47 -05:00
Zach Hilman
5b95de0c9c
am/applets: Add Applet superclass to describe a generic applet
...
Adds an Initialize and Execute methods which are used by the ILibraryAppletAccessor to start and control the applet.
2018-11-18 10:53:47 -05:00
Zach Hilman
731b4bd691
am: Unstub ILibraryAppletAccessor::Start
...
Now starts the applet provided in constructor.
2018-11-18 10:53:47 -05:00
Zach Hilman
ba03bfa430
am: Implement PopInteractiveOutData and PushInteractiveInData
...
Used by software keyboard applet for data transfer.
2018-11-18 10:53:47 -05:00
Zach Hilman
5ce6b8fea7
am: Convert storage stack to vector
...
std::stack was no longer suitable for non-trivial operations
2018-11-18 10:53:47 -05:00
Zach Hilman
0682a908c0
am: Move AM::IStorage to header
...
Needs to be accessible by applet files.
2018-11-18 10:53:47 -05:00
Zach Hilman
c7b6c9de9c
am: Move IStorageAccessor to header and update backing buffer
...
Writes to an AM::IStorage object through an IStorageAccessor will now be preserved once the accessor is destroyed.
2018-11-18 10:53:47 -05:00
Zach Hilman
76d515327b
am: Implement CreateTransferMemoryStorage
...
Creates an AM::IStorage object with the contents of the transfer memory located at the handle provided.
2018-11-18 10:53:47 -05:00
Zach Hilman
c70529c1ec
string_util: Implement buffer to UTF-16 string helper function
...
Needed as most all software keyboard functions use fixed-length UTF16 string buffers.
2018-11-18 10:53:47 -05:00
Zach Hilman
7901de2b75
svc: Implement svcCreateTransferMemory
...
Seems to be used and created identically to SharedMemory, so just reuse that.
2018-11-18 10:53:47 -05:00
Rodolfo Bogado
4d1a0a24cc
drop support for non separate alpha as it seems to cause issues in some games
2018-11-18 03:44:48 -03:00
Zach Hilman
51af996854
ldr_ro: Add error check for memory allocation failure
2018-11-17 21:40:26 -05:00
Rodolfo Bogado
81a9c5fe6f
fix sampler configuration, thanks to Marcos for his investigation
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
b312cca756
small type fix
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
5297495c87
small fix for alphaToOne bit location
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
e69eb3c760
fix for gcc compilation
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
53b4a1af0f
add AlphaToCoverage and AlphaToOne
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
8ed7e1af2c
add support for fragment_color_clamp
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
02c22a3440
add missing MirrorOnceBorder support where supported
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
1d60bb6544
set border color not depending on the wrap mode
...
only enable color mask for the first framebuffer id independent blending is disabled
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
6a2aa6dbdb
set default value for point size register
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
1881e86c43
fix viewport and scissor behavior
2018-11-17 19:59:32 -03:00
Zach Hilman
c91dc417d5
vi: Implement TransactParcel for Disconnect and DetachBuffer
...
Used by homebrew on exit. According to switchbrew, returns an empty response parcel with one zero in it.
2018-11-17 17:10:19 -05:00
MysticExile
03f274d8c1
Stubbed am:EnableApplicationCrashReport
2018-11-17 15:05:55 +01:00
Markus Wick
97f5c4ffd3
gl_rasterizer: Skip VB upload if the state is clean.
2018-11-17 14:28:54 +01:00
bunnei
0072275d25
Merge pull request #1678 from FearlessTobi/amiibo-hotkeys
...
Port citra-emu/citra#4387 : "yuzu: Add hotkey for Amiibo loading"
2018-11-16 20:20:41 -08:00
bunnei
0149b4245c
Merge pull request #1711 from ogniK5377/bluetooth-lets-go
...
Added various bluetooth based cmds for palma
2018-11-16 20:08:36 -08:00
bunnei
6552d75be1
Merge pull request #1719 from bunnei/hwopus-fix
...
hwopus: DecodeInterleavedWithPerformance: Fix ordering of output parameters.
2018-11-16 20:08:17 -08:00
bunnei
224fcabe46
Merge pull request #1714 from lioncash/kern-err
...
kernel/errors: Clean up error codes
2018-11-16 20:07:55 -08:00
bunnei
585e6fd426
hwopus: DecodeInterleavedWithPerformance: Fix ordering of output parameters.
...
- Fixes audio issues with Pokemon: Let's Go Pikachu & Eevee.
2018-11-16 22:54:38 -05:00
David Marcec
c440e8b8e1
Implemented CalculateStandardUserSystemClockDifferenceByUser
...
Seems pokemon calls this sometimes and it caused "random crashes"
2018-11-17 14:01:16 +11:00
Frederic Laing
7a400e2191
textures/decoders: Replace magic numbers
2018-11-17 01:55:28 +01:00
bunnei
3c7ba00d73
Merge pull request #1712 from FearlessTobi/port-4426
...
Port citra-emu/citra#4426 : "Common/Bitfield: store value as unsigned type"
2018-11-16 14:42:59 -08:00
Lioncash
d21b2164e9
kernel/errors: Clean up error codes
...
Similar to PR 1706, which cleans up the error codes for the filesystem
code, but done for the kernel error codes. This removes the ErrCodes
namespace and specifies the errors directly. This also fixes up any
straggling lines of code that weren't using the named error codes where
applicable.
2018-11-16 14:32:30 -05:00
Mat M
14cede1a0c
Merge pull request #1638 from FreddyFunk/SetMemoryPermission-Stubbed
...
Implement SetMemoryPermission
2018-11-16 10:35:56 -05:00
bunnei
405dd03dae
Merge pull request #1700 from FreddyFunk/cleanup
...
gl_rasterizer_chache: Minor cleanup
2018-11-16 07:07:30 -08:00
bunnei
241646f423
Merge pull request #1701 from FreddyFunk/decoders
...
textures/decoders: Minor cleanup
2018-11-16 07:07:11 -08:00
bunnei
5b8f70ea2e
Merge pull request #1632 from DarkLordZach/keys-manager-optimizations
...
game_list: Optimize game list refresh
2018-11-16 07:02:37 -08:00
bunnei
0b701751da
Merge pull request #1676 from lioncash/warn
...
gl_state: Amend compilation warnings
2018-11-16 07:00:03 -08:00
bunnei
238bc4a077
Merge pull request #1706 from lioncash/file-err
...
file_sys/errors: Clean up error code values
2018-11-16 06:59:07 -08:00
Weiyi Wang
786995a81e
Common/Bitfield: store value as unsigned type
...
Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift
2018-11-16 15:49:57 +01:00
David Marcec
e8899e7027
Added various bluetooth based cmds for palma
...
It seems palma is done through bluetooth, we need this for pokemon go however more research needs to be done when we actually get palma working. This is presumably used for transfering data between the controller and the console, it does not seem for actual input as far as I know.
2018-11-17 01:42:17 +11:00
David Marcec
e658118aa9
Added SetIsPalmaAllConnectable, SetPalmaBoostMode
...
Currently unclear what these do yet, will be researched at a later time when we want to implement palma.
2018-11-17 01:40:18 +11:00
David Marcec
4476fd29d6
Fixed switching operation modes when not running a game
...
The service manager seems to be a nullptr before a game boots
2018-11-16 20:08:02 +11:00
David Marcec
9359655712
Report resolution scaling support for vi and am
...
Specifying an internal resolution in yuzu now will report the scaled changes to vi and am.
2018-11-16 18:07:42 +11:00
Lioncash
5c9c33e8ad
file_sys/errors: Remove currently unused filesystem error codes
...
Rather than keeping around unused values, we can just introduce them as
needed.
2018-11-16 00:18:22 -05:00
Lioncash
edd5b6f12f
file_sys/errors: Get rid of the ErrCodes namespace
...
There's no real point to keeping the separate enum around, especially
given the name of the error code itself is supposed to document what the
value actually represents.
2018-11-16 00:13:50 -05:00
Lioncash
b725d1fdf7
file_sys/errors: Extract FS-related error codes to file_sys/errors.h
...
Keeps filesystem-related error codes in one spot.
2018-11-16 00:13:50 -05:00
David
87eca5b209
Fixed priority switching edge case for handheld ( #1675 )
...
* Fixed priority switching edge case for handheld
We accidently used controller index instead of npad id
* Moved NPadIdToIndex
2018-11-15 20:31:27 -08:00
bunnei
75640c9c71
Merge pull request #1699 from DarkLordZach/deterministic-rng-3
...
csrng: Use random integer distribution instead of raw engine
2018-11-15 20:18:47 -08:00
Zach Hilman
4838bc8ddc
fsp_srv: Add support for using open source archive if not found in NAND
2018-11-15 22:35:16 -05:00
Zach Hilman
6aa69880ea
file_sys: Add framework for synthesizing open source archives
2018-11-15 22:34:35 -05:00
Zach Hilman
34cd56980f
vfs_vector: Add VFS backend for std::array
...
Allows using constexpr/static const data with VFS.
2018-11-15 22:33:52 -05:00
Zach Hilman
8cb2e7d881
csrng: Use random integer distribution instead of raw engine
...
Prevents returning the same value every single call.
2018-11-15 18:44:26 -05:00
bunnei
f7319b0d3c
Merge pull request #1687 from lioncash/deduplication
...
kernel/thread: Deduplicate scheduler switching code
2018-11-15 14:47:42 -08:00
bunnei
97605e36f7
Merge pull request #1618 from DarkLordZach/dump-nso
...
patch_manager: Add support for dumping uncompressed NSOs
2018-11-15 14:46:10 -08:00
bunnei
98060c6f7b
Merge pull request #1691 from lioncash/audren
...
service/audren_u: Forward RequestUpdateAuto through the same function as RequestUpdate
2018-11-15 14:44:36 -08:00
Frederic Laing
95d3965f31
textures/decoders: Minor cleanup
2018-11-15 21:04:17 +01:00
Frederic Laing
3844b5c0c5
gl_rasterizer_chache: Minor cleanup
2018-11-15 20:10:05 +01:00
Zach Hilman
c0a9abc3e1
ldr_ro: Implement UnloadNro (command 1)
...
Includes actual unmapping and address error checking.
2018-11-15 12:48:09 -05:00
Zach Hilman
056fa43dcd
ldr_ro: Fully Implement LoadNro (command 0)
...
Includes NRO and BSS error checking, maximum loaded NRO check, NRR hash check, and proper remapping of BSS data.
2018-11-15 12:48:09 -05:00
Zach Hilman
5e8e7b6019
ldr_ro: Implement UnloadNrr (command 3)
...
Includes initialization check, proper address check, alignment check, and actual unloading of a loaded NRR.
2018-11-15 12:48:09 -05:00
Zach Hilman
6cd504feb9
ldr_ro: Fully implement LoadNrr (command 2)
...
Includes parameter error checking, hash enforcement, initialization check, and max NRR load check.
2018-11-15 12:48:09 -05:00
Zach Hilman
0276761a1e
process: Make MirrorMemory take state to map new memory as
...
Credits to Subv
2018-11-15 12:48:09 -05:00
Zach Hilman
8aa17f0480
pl_u: Resize buffers in shared font data getter to what game requests
...
Fixes unmapped spam in SMP and buffer size errors in some other games
2018-11-15 12:47:36 -05:00
bunnei
8a537a2021
Merge pull request #1637 from FernandoS27/cache
...
Improved GPU Caches lookup Speed
2018-11-14 19:07:52 -08:00
bunnei
c6c74248fe
Merge pull request #1697 from lioncash/acc
...
acc/profile_manager: Minor cleanup-related changes
2018-11-14 19:02:25 -08:00
bunnei
0478308094
Merge pull request #1696 from lioncash/acc-cond
...
service/acc: Correct error case within TrySelectUserWithoutInteraction()
2018-11-14 19:02:16 -08:00
bunnei
53b3c3ab7f
Merge pull request #1695 from lioncash/tr
...
yuzu/configure_system: Mark the entropy mask string as nontranslatable
2018-11-14 15:32:04 -08:00
Lioncash
cd47af8af0
service/acc: Correct error case within TrySelectUserWithoutInteraction()
...
empty() in this case will always return false, since the returned
container is a std::array. Instead, check if all given users are invalid
before returning the error code.
2018-11-14 17:43:23 -05:00
Lioncash
9761936e02
profile_manager: Replace iterative loop with a ranged-for loop in ParseUserSaveFile()
2018-11-14 17:13:17 -05:00
Lioncash
1af13e0802
profile_manager: Move UUID Format function definitions into the cpp file
...
Avoids relying on fmt always being indirectly included.
2018-11-14 17:08:59 -05:00
bunnei
c681690358
Merge pull request #1690 from lioncash/nfp
...
nfp: Correct erroneous sizeof expression within GetTagInfo()
2018-11-14 11:55:09 -08:00
bunnei
7384b33c4f
Merge pull request #1689 from lioncash/break
...
hid/npad: Add missing break in switch statement within Controller_NPad::OnUpdate
2018-11-14 11:54:45 -08:00
bunnei
c95ded3a4a
Merge pull request #1688 from lioncash/unused
...
service: Mark MakeFunctionString with the [[maybe_unused]] attribute.
2018-11-14 11:54:29 -08:00
Lioncash
e6676afa18
yuzu/configure_system: Mark the entropy mask string as nontranslatable
...
There's no need for translators to concern themselves with the
validation mask used by the entry field.
2018-11-14 14:53:43 -05:00
bunnei
ebf1b58a22
Merge pull request #1684 from lioncash/common
...
common/string_util: Minor cleanup
2018-11-14 11:53:10 -08:00
bunnei
e1ea8cc721
Merge pull request #1679 from DarkLordZach/deterministic-rng-2
...
svc: Use proper random entropy generation algorithm
2018-11-14 11:52:27 -08:00
Lioncash
b4f63db04e
nfp: Correct erroneous sizeof expression within GetTagInfo()
...
The previous expression would copy sizeof(size_t) amount of bytes (8 on
a 64-bit platform) rather than the full 10 bytes comprising the uuid
member.
Given the source and destination types are the same, we can just use an
assignment here instead.
2018-11-14 12:53:39 -05:00
Lioncash
3619b31fc0
service/audren_u: Forward RequestUpdateAuto through the same function as RequestUpdate
...
Based off RE, they both currently go through the same codepath with no
difference in behavior.
2018-11-14 02:36:21 -05:00
Lioncash
fcde356f15
hid/npad: Add missing break in switch statement within Controller_NPad::OnUpdate()
2018-11-14 00:59:17 -05:00
Lioncash
958fa15a4c
service: Mark MakeFunctionString with the [[maybe_unused]] attribute.
...
When yuzu is compiled in release mode this function is unused, however,
when compiled in debug mode, it's used within a LOG_TRACE statement.
This prevents erroneous compilation warnings about an unused function
(that isn't actually totally unused).
2018-11-14 00:49:04 -05:00
Lioncash
f9db75fe40
kernel/thread: Deduplicate scheduler switching code
...
The code in both places was the same verbatim, so we can extract it to a
function to deduplicate the logic.
2018-11-14 00:02:42 -05:00
bunnei
3bd503d59c
Merge pull request #1662 from FreddyFunk/CopySurface-Optimization
...
gl_rasterizer_cache: CopySurface optimization
2018-11-13 18:58:12 -08:00
bunnei
09f4150241
Merge pull request #1686 from DarkLordZach/move-open-yuzu-folder
...
qt: Move Open yuzu Folder action from Help to File
2018-11-13 18:56:44 -08:00
bunnei
d2b2b05b6a
Merge pull request #1685 from lioncash/base
...
video_core/renderer_base: Remove GL include from the renderer base class files
2018-11-13 18:53:59 -08:00
bunnei
723bd89883
Merge pull request #1677 from FreddyFunk/skip-vao-binding-cleanup
...
engines/maxwell_3d: Minor cleanup
2018-11-13 18:53:38 -08:00
bunnei
70f189d7af
Merge pull request #1680 from lioncash/mem
...
kernel/process: Migrate heap-related memory management out of the process class and into the vm manager
2018-11-13 18:52:18 -08:00
bunnei
a80467db57
Merge pull request #1682 from lioncash/audio
...
hle/audren_u: Implement Get/SetRenderingTimeLimit
2018-11-13 18:51:44 -08:00
bunnei
d2a630c41f
Merge pull request #1683 from lioncash/typo
...
audio_core/audio_renderer: Fix typo in AuxInfo member name
2018-11-13 18:51:35 -08:00
bunnei
9b12623743
Merge pull request #1608 from DarkLordZach/save-data-reader
...
[ns|fsp_srv]: Implement various functions to boot Checkpoint
2018-11-13 18:51:08 -08:00
Lioncash
c7387e6504
string_util: Remove ArrayToString()
...
An old function from Dolphin. This is also unused, and pretty inflexible
when it comes to printing out different data types (for example, one
might not want to print out an array of u8s but a different type
instead. Given we use fmt, there's no need to keep this implementation
of the function around.
2018-11-13 18:14:11 -05:00
Lioncash
f1219e3a87
string_util: Remove TryParse()
...
This is an unused hold-over from Dolphin that was primarily used to
parse values out of the .ini files. Given we already have libraries that
do this for us, we don't need to keep this around.
2018-11-13 18:13:45 -05:00
Zach Hilman
6001af2b89
qt: Move Open yuzu Folder action from Help to File
2018-11-13 17:17:47 -05:00
Lioncash
4ed9ef15c4
video_core/renderer_base: Remove GL include from the renderer base class files
...
Keeps the base class source files implementation-agnostic.
2018-11-13 14:38:13 -05:00
Lioncash
9bc18eada8
string_util: Remove ThousandSeparate()
...
This is currently unused and doesn't really provide much value to keep
around either.
2018-11-13 14:04:26 -05:00
Lioncash
454cf1dc09
hle/audren_u: Implement Get/SetRenderingTimeLimit
...
These appear to be a basic getter and setter pair, so these are fairly
trivial to implement and get out of the way.
2018-11-13 13:49:09 -05:00
Lioncash
81a39181b0
audio_core/audio_renderer: Fix typo in AuxInfo member name
2018-11-13 13:32:13 -05:00
Lioncash
004277477a
vm_manager: Unstub GetTotalHeapUsage()
...
Now that we've moved all of the heap-related stuff to the VMManager
class, we can unstub this function, as the necessary members are visible
now.
2018-11-13 13:08:26 -05:00
Lioncash
b8e885c6e5
kernel/process: Migrate heap-related memory management out of the process class and into the vm manager
...
Avoids a breach of responsibilities in the interface and keeps the
direct code for memory management within the VMManager class.
2018-11-13 13:08:19 -05:00
Zach Hilman
ab552e4a25
svc: Use proper random entropy generation algorithm
2018-11-13 12:26:03 -05:00
Hedges
af42320021
GDBStub improvements:
...
- Add FPU support
- Fix access to TLS
Fix clang-format.
2018-11-13 15:44:20 +00:00
fearlessTobi
9ea8eb6b2e
yuzu: Add hotkey for Amiibo loading
2018-11-13 15:10:39 +01:00
Frederic L
ab362aa7e5
gl_rasterizer: Minor cleanup
...
Minor code cleanup from unaddressed feedback in #1654
2018-11-13 14:07:23 +01:00
Lioncash
9a0fb7d9fb
gl_state: Amend compilation warnings
...
Makes float -> integral conversions explicit via casts and also silences
a sign conversion warning.
2018-11-13 07:10:40 -05:00
bunnei
65bd03d74c
Merge pull request #1628 from greggameplayer/Texture2DArray
...
Implement SurfaceTarget Texture2DArray
2018-11-12 21:13:47 -08:00
bunnei
7f3c2525e6
Merge pull request #1670 from DarkLordZach/deterministic-rng
...
csrng: Add config option to set RNG seed
2018-11-12 21:10:08 -08:00
bunnei
fd72d889bf
Merge pull request #1665 from ogniK5377/GetClockSnapshot
...
Implement GetClockSnapshot, ToPosixTime & ToPosixTimeWithMyRule
2018-11-12 20:13:47 -08:00
Zach Hilman
cb1e63ef09
svc: Return random seed for svcGetInfo RandomEntropy
2018-11-12 21:46:21 -05:00
greggameplayer
c8b3f09876
Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB ( #1666 )
...
* Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB
( needed by Mario+Rabbids Kingdom Battle )
* Small placement correction
2018-11-12 18:34:54 -08:00
bunnei
d08b876c9d
Merge pull request #1650 from FreddyFunk/cast
...
yuzu/main: Fix compiler warning
2018-11-12 18:32:54 -08:00
James Rowe
b4a6ce02ce
Merge pull request #1674 from FearlessTobi/fullscreen-fix
...
yuzu: Add a missing "!" to fix the stuck-in-fullscreen bug
2018-11-12 13:00:25 -07:00
Tobias
9333ee29ca
yuzu: Add a missing "!" to fix the stuck-in-fullscreen bug
2018-11-12 20:57:15 +01:00
Zach Hilman
2a16fd7ffc
settings: Add config option to set RNG seed
2018-11-11 23:09:46 -05:00
Zach Hilman
4b4f883aef
csrng: Use std::mt19937 engine for random number generation
2018-11-11 23:08:39 -05:00
bunnei
2c6efda235
Merge pull request #1660 from Tinob/master
...
Map more missing opengl states
2018-11-11 19:58:16 -08:00
bunnei
7474382266
Merge pull request #1652 from FreddyFunk/static-cast
...
configure_system: Fix compiler warning
2018-11-11 12:19:03 -08:00
bunnei
a264fac943
Merge pull request #1664 from FreddyFunk/cast2
...
gl_rasterizer: Fix compiler warnings
2018-11-11 12:18:29 -08:00
Rodolfo Bogado
72b1fae984
Use core extensions when available to set max anisotropic filtering level
2018-11-11 16:36:53 -03:00
Rodolfo Bogado
4e6c64bf8d
Improve state management by splitting some of the states id separated function to avoid a full apply overhead
2018-11-11 16:36:53 -03:00
Rodolfo Bogado
4a6eff3b7b
Try to fix problems with stencil test in some games, relax translation to opengl enums to avoid crashing and only generate logs of the errors.
2018-11-11 16:31:00 -03:00
Rodolfo Bogado
e9610ec0dd
set sampler max lod, min lod, lod bias and max anisotropy
2018-11-11 16:31:00 -03:00
FernandoS27
3088e36237
Improved GPU Caches lookup Speed
2018-11-11 12:53:25 -04:00
bunnei
eaee73f95d
Merge pull request #1669 from ReinUsesLisp/fixup-gs
...
gl_shader_decompiler: Guard out of bound geometry shader input reads
2018-11-11 08:28:20 -08:00
bunnei
c82bccab56
Merge pull request #1663 from lioncash/raster
...
rasterizer_cache: Remove reliance on the System singleton
2018-11-11 08:20:27 -08:00
bunnei
1916213311
Merge pull request #1648 from FernandoS27/texs-3-array
...
Implement 3 coordinate array in TEXS instruction
2018-11-11 08:18:27 -08:00
bunnei
8ea6261547
Merge pull request #1654 from degasus/dirty_flags
...
gl_rasterizer: Skip VAO binding if the state is clean.
2018-11-11 08:17:57 -08:00
James Rowe
93fca5d9cf
Merge pull request #1656 from ogniK5377/message-queue
...
Ability to switch between docked and undocked mode in-game
2018-11-10 11:27:17 -07:00
David Marcec
48cd61d9c8
Added maybe_unused
2018-11-10 18:07:34 +11:00
David Marcec
ddc242dd51
Added ToPosixTime & ToPosixTimeWithMyRule
...
Added instead of using a seperate PR to prevent conflicts
2018-11-10 17:41:57 +11:00
ReinUsesLisp
8d4bb10d44
gl_shader_decompiler: Guard out of bound geometry shader input reads
...
Geometry shaders follow a pattern that results in out of bound reads.
This pattern is:
- VSETP to predicate
- Use that predicate to conditionally set a register a big number
- Use the register to access geometry shaders
At the time of writing this commit I don't know what's the intent of
this number. Some drivers argue about these out of bound reads. To avoid
this issue, input reads are guarded limiting reads to the highest
posible vertex input of the current topology (e.g. points to 1 and
triangles to 3).
2018-11-10 03:10:50 -03:00
David Marcec
84c6134264
Added consts and static
2018-11-10 12:31:48 +11:00
David Marcec
4f78f5c0df
Implement GetClockSnapshot
...
Needed by megaman 11
2018-11-10 01:25:56 +11:00
Frederic Laing
e2bf581e3a
gl_rasterizer_cache: Remove unnecessary memory allocation and copy in CopySurface
2018-11-08 16:50:09 +01:00
Frederic Laing
1d36aec267
gl_rasterizer: Fix compiler warnings
2018-11-08 13:33:30 +01:00
Lioncash
9046f764bf
rasterizer_cache: Remove reliance on the System singleton
...
Rather than have a transparent dependency, we can make it explicit in
the interface. This also gets rid of the need to put the core include in
a header.
2018-11-08 06:16:38 -05:00
Lioncash
9de523fd90
rasterizer_cache: Add missing virtual destructor to RasterizerCacheObject
...
Ensures that destruction will always do the right thing in any context.
2018-11-08 00:31:39 -05:00
Lioncash
29f082775b
gl_resource_manager: Amend clang-format discrepancies
...
Fixes the buildbot.
2018-11-08 00:23:45 -05:00
bunnei
0e05a9d58f
Merge pull request #1658 from ogniK5377/holdtype-style
...
Updated npad styles on holdtype switches
2018-11-07 20:59:01 -08:00
David
581406af18
svcBreak now dumps information from the debug buffer passed ( #1646 )
...
* svcBreak now dumps information from the debug buffer passed
info1 and info2 seem to somtimes hold an address to a buffer, this is usually 4 bytes or the size of the int and contains an error code. There's other circumstances where it can be something different so we hexdump these to examine them at a later date.
* Addressed comments
2018-11-07 20:43:54 -08:00
bunnei
481d8716e0
Merge pull request #1655 from ogniK5377/shantae
...
Implement acc:TrySelectUserWithoutInteraction
2018-11-07 20:41:06 -08:00
FernandoS27
d347623d6f
Correct issue where texturelod could not be applied to 2darrayshadow
2018-11-07 21:48:45 -04:00
David Marcec
40db288a2a
Renamed CheckIfOperationChanged to OnDockedModeChanged
2018-11-08 12:12:00 +11:00
FernandoS27
ad2f47b579
Implement 3 coordinate array in TEXS instruction
2018-11-07 17:04:30 -04:00
David Marcec
a9c25ab9e4
Updated npad styles on holdtype switches
...
Fixes input for megaman
2018-11-08 01:07:14 +11:00
David Marcec
fd1ef25257
Fixups
2018-11-07 20:12:27 +11:00
bunnei
81ff9e2473
Merge pull request #1630 from bunnei/fix-mapbufferex
...
memory_manager: Do not MapBufferEx over already in use memory.
2018-11-07 00:14:36 -08:00
bunnei
74bce4d68f
Merge pull request #1635 from Tinob/master
...
Implement multi-target viewports and blending
2018-11-07 00:11:49 -08:00
David Marcec
41e99d8880
Ability to switch between docked and undocked mode in-game
...
Started implementation of the AM message queue mainly used in state getters. Added the ability to switch docked mode whilst in game without stopping emulation. Also removed some things which shouldn't be labelled as stubs as they're implemented correctly
2018-11-07 18:01:33 +11:00
David Marcec
ad45d68871
fixed spelling error
2018-11-07 12:04:43 +11:00
David Marcec
49cb4fa37b
Added missing log
2018-11-07 11:46:04 +11:00
David Marcec
92fcc6d15a
Implement acc:TrySelectUserWithoutInteraction
...
Needed for Shantae - Half-Genie Hero - Ultimate Edition!
2018-11-07 11:45:01 +11:00
Markus Wick
359db6a673
gl_rasterizer: Skip VAO binding if the state is clean.
2018-11-06 22:31:33 +01:00
Markus Wick
0590dd2971
gl_rasterizer: Split VAO and VB setup functions.
2018-11-06 22:31:33 +01:00
greggameplayer
d3b9599b2d
Merge branch 'master' into Texture2DArray
2018-11-06 19:05:57 +01:00
Markus Wick
2c87f10267
gl_rasterizer_cache: Add profiles for Copy and Blit.
...
They were missed, and Copy is very high in profile here. It doesn't block the GPU,
but it stalls the driver thread. So with our bad GL instructions, this might block quite a while.
2018-11-06 17:45:32 +01:00
Markus Wick
7e59e907ef
gl_resource_manager: Profile creation and deletion.
2018-11-06 17:45:32 +01:00
Markus Wick
80e4dbdce7
gl_stream_buffer: Profile orphaning of stream buffer.
...
This serialize to the driver thread and so it may block for a while.
So if it is in the benchmark, we get noticed if it happens too often.
2018-11-06 17:45:32 +01:00
Markus Wick
2ba4d878e5
microprofile: Drop ReleaseActiveBuffer scope.
...
This was created with the unfinished resampling PR in mind.
As the resampling is now on the audio thread, we don't need to care about this here any more.
2018-11-06 17:45:32 +01:00
Frederic Laing
d34d0bfc87
configure_system: Fix compiler warning
2018-11-06 16:38:10 +01:00
Frederic Laing
6c8b788d32
yuzu/main: Fix compiler warning
2018-11-06 15:22:24 +01:00
Markus Wick
54df9fe29e
gl_resource_manager: Split implementations in .cpp file.
...
Those implementations are quite costly, so there is no need to inline them to the caller.
Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them.
2018-11-06 14:40:39 +01:00
Frederic Laing
ba2cdcdc5a
Implement SetMemoryPermission
2018-11-06 10:21:01 +01:00
bunnei
cdb19e71fe
Merge pull request #1616 from FernandoS27/cube-array
...
Implement Cube Arrays
2018-11-05 15:28:48 -05:00
bunnei
722e7c05de
Merge pull request #1633 from ogniK5377/reload-input
...
Fixed HID crash when launching more than 1 game & signaled styleset change event
2018-11-05 00:21:27 -05:00
bunnei
e10483a878
Merge pull request #1441 from CarlKenner/DebuggerLog
...
logging: Add DebuggerBackend for logging to Visual Studio
2018-11-05 00:19:59 -05:00
bunnei
acdc770cfb
Merge pull request #1639 from DarkLordZach/open-yuzu-folder
...
qt: Add help option to open yuzu folder
2018-11-05 00:19:15 -05:00
Rodolfo Bogado
19038db489
Add support to color mask to avoid issues in blending caused by wrong values in the alpha channel in some render targets.
2018-11-05 00:24:19 -03:00
Rodolfo Bogado
145ae36963
Implement multi-target viewports and blending
2018-11-04 20:49:48 -03:00
bunnei
38c1c500ab
Merge pull request #1625 from FernandoS27/astc
...
Implement ASTC Textures 5x5 and fix a bunch of ASTC texture problems
2018-11-04 18:47:26 -05:00
Mat M
d46e0acb3c
Merge pull request #1645 from dharmin/master
...
Fix quickstart link
2018-11-04 18:05:33 -05:00
Dharmin K Shah
b2647dba33
Fix quickstart link
2018-11-05 00:36:49 +05:30
Frederic Laing
1c4365d928
Fix typo in BufferTransformFlags
2018-11-04 16:56:10 +01:00
Zach Hilman
52e7e8eed3
game_list: Only reload game list after relevant settings changed
...
Prevents unnecessary reloads on every configuration operation.
2018-11-03 20:38:39 -04:00
Zach Hilman
0080a8da58
sm: Implement RegisterService and UnregisterService
...
These are needed by Edizon to boot. They are used to see if a user is using SX OS, as SX OS registers a custom service called 'tx' and attempting to register a service of the same name lets the application know if it is present.
2018-11-03 20:02:18 -04:00
Zach Hilman
97187b7ef6
qt: Add help option to open yuzu folder
...
Opens a new file manager window at the UserDir.
2018-11-03 12:48:34 -04:00
Frederic Laing
ab7472345b
Stubbed SetMemoryPermission
2018-11-03 16:01:34 +01:00
greggameplayer
9249fadb9e
correct syntax
2018-11-02 14:28:28 +01:00
greggameplayer
cb8e4a4633
Merge branch 'master' into Texture2DArray
2018-11-02 14:26:32 +01:00
David Marcec
03c26d3406
Fixed incorrect hwopus assert
2018-11-02 15:23:38 +11:00
David Marcec
0bc323bafb
Fixed HID crash when launching more than 1 game & signaled syleset change event
...
This should fix crashes when launching multiple games in yuzu
2018-11-02 12:35:49 +11:00
Zach Hilman
2d2ef05d8c
game_list: Make add-ons column optional
...
As the add-ons column takes the most processing time out of any (as it needs to search registration for updates/dlc, patch control NCAs, search for mods, etc.), an option was added to disable it. This does not affect the application of add-ons. In large game collections, this decreases game list refresh time by as much as 70%.
2018-11-01 20:27:12 -04:00
Zach Hilman
8f183a47dd
filesystem: Cache RegisteredCacheUnion instead of constructing on demand
...
Prevents unnecessary re-reads of the metadata and unnecessary temporary objects.
2018-11-01 20:24:32 -04:00
Zach Hilman
97d425c304
file_sys: Use common KeyManager in NCA container types
...
Creates a single KeyManager for the entire container and then passes it into the NCA constructor, eliminating several unnecessary KeyManager reads.
2018-11-01 20:23:38 -04:00
Zach Hilman
e20db909ee
content_archive: Add optional KeyManager parameter to constructor
...
Allows resuing a common KeyManager when a large amount of NCAs are handled by the same class. Should the parameter not be provided, a new KeyManager will be constructed, as was the default behavior prior to this.
2018-11-01 20:22:29 -04:00
FernandoS27
60a184455c
Fix ASTC Decompressor to support depth parameter
2018-11-01 19:22:12 -04:00
bunnei
1069eced84
Merge pull request #1615 from lioncash/input
...
configure_system: Contrain profile usernames to 32 characters
2018-11-01 19:10:26 -04:00
bunnei
4aa9779ae1
memory_manager: Do not MapBufferEx over already in use memory.
...
- This fixes rendering when changing areas in Super Mario Odyssey.
2018-11-01 18:57:59 -04:00
bunnei
cc1fe93297
Merge pull request #1623 from Tinob/master
...
Improve OpenGL state handling
2018-11-01 15:53:33 -04:00
FernandoS27
aee93f98f9
Fix ASTC formats
2018-11-01 13:08:19 -04:00
FernandoS27
31930a3334
Implemented ASTC 5x5
2018-11-01 13:06:24 -04:00
FernandoS27
678c18aa5c
Implement Cube Arrays
2018-11-01 11:56:19 -04:00
bunnei
9afcbba8e4
Merge pull request #1527 from FernandoS27/assert-flow
...
Assert Control Flow Instructions using Control Codes
2018-11-01 00:34:56 -04:00
bunnei
de0ab806df
maxwell_3d: Restructure macro upload to use a single macro code memory.
...
- Fixes an issue where macros could be skipped.
- Fixes rendering of distant objects in Super Mario Odyssey.
2018-10-31 23:29:21 -04:00
bunnei
d08457f879
Merge pull request #1604 from FearlessTobi/port-4369
...
Port citra-emu/citra#4369 : "compatdb: Use a seperate endpoint for testcase submission"
2018-10-31 22:37:07 -04:00
bunnei
86e70cf302
Merge pull request #1528 from FernandoS27/assert-control-codes
...
Assert Control Codes Generation on Shader Instructions
2018-10-31 22:34:18 -04:00
bunnei
0b33d38e9b
Merge pull request #1614 from ReinUsesLisp/surface-params
...
video_core: Move surface declarations out of gl_rasterizer_cache
2018-10-31 22:31:02 -04:00
Lioncash
a6830e61b8
configure_system: Contrain profile usernames to 32 characters
...
Previously, we would let a user enter an unbounded name and then
silently truncate away characters that went over the 32-character limit.
This is kind of bad from the UX point of view, because we're essentially
not doing what the user intended in certain scenarios.
Instead, we clamp it to 32 characters and make that visually apparent in
the dialog box to provide a name for a user.
2018-10-31 02:05:00 -04:00
greggameplayer
9ae972ab4e
Implement SurfaceTarget Texture2DArray
...
( needed by Mario+Rabbids Kingdom Battle )
2018-10-31 04:29:15 +01:00
Rodolfo Bogado
aca218aea0
Improve OpenGL state handling
2018-10-30 21:19:04 -03:00
Lioncash
9b9c586dff
service/usb: Update IPdSession's function table
...
Updated based off information on SwitchBrew.
2018-10-30 15:23:49 -04:00
ReinUsesLisp
76754f5705
video_core: Move surface declarations out of gl_rasterizer_cache
2018-10-30 16:07:20 -03:00
FernandoS27
5bb80ab009
Assert Control Codes Generation
2018-10-30 13:37:55 -04:00
bunnei
da5fcbf501
Merge pull request #1624 from lioncash/boost
...
general: Remove unused boost inclusions where applicable
2018-10-30 13:13:39 -04:00
bunnei
c31412c433
Merge pull request #1595 from FreddyFunk/cast
...
configure_system: Fix compiler warning
2018-10-30 00:27:41 -04:00
Lioncash
352b56367c
general: Remove unused boost inclusions where applicable
...
Cleans up unused includes and trims off some dependencies on externals.
2018-10-30 00:09:46 -04:00
Frederic L
7a5eda5914
global: Use std::optional instead of boost::optional ( #1578 )
...
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
2018-10-30 00:03:25 -04:00
bunnei
adf26ae668
Merge pull request #1621 from lioncash/ipc
...
hle_ipc: Make GetDomainMessageHeader return a regular pointer
2018-10-29 23:55:59 -04:00
Lioncash
6383653a8d
hle_ipc: Add member function for querying the existence of a domain header
...
Gets rid of the need to call the getter and then check for null.
2018-10-29 23:28:04 -04:00
Lioncash
0cc347462d
hle_ipc: Make GetDomainMessageHeader return a regular pointer
...
Nothing requires the shared owner ship here, so we can just return a
plain pointer.
2018-10-29 23:18:25 -04:00
bunnei
938e45eb83
Merge pull request #1611 from lioncash/const
...
core: Add missing const variants of getters for the System class
2018-10-29 22:48:59 -04:00
bunnei
c5a849212f
Merge pull request #1580 from FernandoS27/mm-impl
...
Implemented Mipmaps
2018-10-29 22:34:00 -04:00
bunnei
f1cb425d92
Merge pull request #1617 from FearlessTobi/fix-stretch-delay
...
time_stretch: Switch to values of Citra
2018-10-29 19:09:30 -04:00
Zach Hilman
bdaa76c0db
ns: Implement command 400: GetApplicationControlData
...
Returns the raw NACP bytes and the raw icon bytes into a title-provided buffer. Pulls from Registration Cache for control data, returning all zeros should it not exist.
2018-10-29 16:20:16 -04:00
Zach Hilman
1c0226815d
patch_manager: Add support for dumping decompressed NSOs
...
When enabled in settings, PatchNSO will dump the unmodified NSO that it was passed to a file named <build id>.nso in the dump root for the current title ID.
2018-10-29 16:10:16 -04:00
Zach Hilman
48eb3742b9
settings: Add setting to control NSO dumping
...
Also adds UI option in Debug > Dump section, with the idea later things to be dumped (i.e. other game data or textures, etc) will use the same group box.
2018-10-29 16:09:08 -04:00
Zach Hilman
9078bb9854
bis_factory: Add getter for mod dump root for a title ID
...
Equates to yuzu_dir/dump/<title id>/
2018-10-29 16:08:03 -04:00
Zach Hilman
5ee19add1b
fsp_srv: Implement ISaveDataInfoReader
...
An object to read SaveDataInfo objects, which describe a unique save on the system. This implementation iterates through all the directories in the save data space and uses the paths to reconstruct the metadata.
2018-10-29 13:54:39 -04:00
Zach Hilman
2e8177f0c9
fsp_srv: Implement command 61: OpenSaveDataInfoReaderBySaveDataSpaceId
...
Needed by Checkpoint. Returns an object that can iterate through all savedata on the system.
2018-10-29 13:54:39 -04:00
Zach Hilman
df264d2ccb
savedata_factory: Expose accessors for SaveDataSpace
2018-10-29 13:54:38 -04:00
Zach Hilman
f2f679bf3f
loader/nro: Call RegisterRomFS from Load
...
Allows NRO homebrew to use the RomFS in the ASET section.
2018-10-29 13:54:38 -04:00
Zach Hilman
b04e39107f
control_metadata: Add GetRawBytes function to NACP
...
Returns the raw bytes of the NACP file. Needed for GetApplicationControlData which returns the raw, unprocessed NACP to the game.
2018-10-29 13:54:38 -04:00
bunnei
0270906dbf
Merge pull request #1613 from ReinUsesLisp/gl-utils
...
video_core: Move OpenGL specific utils to its renderer
2018-10-29 13:22:14 -04:00
fearlessTobi
655694253a
time_stretch: Switch to values of Citra
2018-10-29 14:49:36 +01:00
bunnei
5d7167dfca
Merge pull request #1610 from slashiee/dxt1-alpha
...
renderer_opengl: Enable alpha channel for DXT1 texture format
2018-10-28 21:29:43 -04:00
ReinUsesLisp
80cbd81276
video_core: Move OpenGL specific utils to its renderer
2018-10-28 22:22:30 -03:00
Rodolfo Bogado
e8b565b239
renderer_opengl: Correct bpp value for ASTC_2D_8X5_SRGB
2018-10-28 20:52:57 -03:00
FernandoS27
3aa8b644a9
Assert Control Flow Instructions using Control Codes
2018-10-28 19:16:41 -04:00
FernandoS27
dde3094058
Fixed black textures, pixelation and we no longer require to auto-generate mipmaps
2018-10-28 19:00:49 -04:00
FernandoS27
f0e902a7d6
Fixed mipmap block autosizing algorithm
2018-10-28 19:00:05 -04:00
FernandoS27
87f8181405
Fixed Invalid Image size and Mipmap calculation
2018-10-28 19:00:04 -04:00
FernandoS27
f4432b5d0c
Fixed Block Resizing algorithm and Clang Format
2018-10-28 19:00:03 -04:00
FernandoS27
258f0f5c31
Implement Mip Filter
2018-10-28 19:00:01 -04:00
FernandoS27
dc85e3bff1
Zero out memory region of recreated surface before flushing
2018-10-28 19:00:00 -04:00
FernandoS27
bbf3b2da0c
Implement Mipmaps
2018-10-28 18:59:59 -04:00
Lioncash
a973a049b7
core: Make System references const where applicable
2018-10-28 17:45:29 -04:00
Lioncash
b77f571d20
core: Add missing const variants of getters for the System class
...
Many of the Current<Thing> getters (as well as a few others) were
missing const qualified variants, which makes it a pain to retrieve
certain things from const qualified references to System.
2018-10-28 17:44:58 -04:00
Michael
635d1e5651
Enable alpha channel for DXT1 texture format
2018-10-28 14:11:04 -07:00
Frederic Laing
f50f065c31
configure_system: Fix compiler warning
2018-10-28 21:13:09 +01:00
Tobias
351d5a2227
Correct bpp value for ASTC_2D_8X5
2018-10-28 19:49:10 +01:00
bunnei
aa1cf608ed
Merge pull request #1601 from FernandoS27/shader-precision
...
Improved Shader accuracy on Vertex and Geometry Shaders.
2018-10-28 13:06:21 -04:00
FernandoS27
e5ca097e32
Refactor precise usage and add FMNMX, MUFU, FMUL32 and FADD332
2018-10-28 11:38:40 -04:00
fearlessTobi
585b6a6a50
compatdb: Use a seperate endpoint for testcase submission
2018-10-28 13:23:02 +01:00
bunnei
2239d47112
Merge pull request #1593 from lioncash/svc
...
svc: Implement svcGetInfo command 0xF0000002
2018-10-28 04:38:48 -04:00
Frederic L
72d10ce66c
file_sys/patch_manager: Remove unnecessary if-statements ( #1586 )
...
* remove unnecessary if-statements
* Addressed feedback
2018-10-28 02:30:29 -04:00
bunnei
0d449b77e2
Merge pull request #1598 from DeeJayBro/delete-directory
...
service/filesystem: Implemented DeleteDirectory & DeleteDirectoryRecursive
2018-10-28 02:29:52 -04:00
bunnei
6f620b2441
Merge pull request #1600 from DarkLordZach/nsp-secondary-loader-fix
...
loader/nsp: Move secondary loader initialization to constructor
2018-10-28 02:29:14 -04:00
Rodolfo Bogado
0287b2be6d
Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support
2018-10-28 01:13:55 -03:00
bunnei
a9d60c6103
Merge pull request #1602 from DarkLordZach/key-derivation-isxdigit
...
key_manager: Use isxdigit instead of isdigit when reading key file
2018-10-27 23:54:48 -04:00
Zach Hilman
1fa31cf74d
key_manager: Use isxdigit instead of isdigit when reading key file
...
Crypto revisions are hex numbers and this function only checks if the string is valid for stoul in base 16, so it should be isxdigit.
2018-10-27 21:56:10 -04:00
bunnei
8d89e88d2c
Merge pull request #1597 from lioncash/error
...
configure_system: Indicate when filesystem operations fail
2018-10-27 21:09:31 -04:00
bunnei
d63f5acb15
Merge pull request #1594 from FreddyFunk/static-cast
...
gl_rasterizer_cache: Fix compiler warning
2018-10-27 21:09:06 -04:00
FernandoS27
d8d557df86
Improved Shader accuracy on Vertex and Geometry Shaders with FFMA, FMUL and FADD
2018-10-27 20:09:26 -04:00
bunnei
a9dc34ea5c
Merge pull request #1596 from FearlessTobi/port-4367
...
Port citra-emu/citra#4367 : "cubeb_sink: ignore null-name device when selecting"
2018-10-27 13:26:24 -04:00
bunnei
ed95ce6bb7
Merge pull request #1592 from bunnei/prim-restart
...
gl_rasterizer: Implement primitive restart.
2018-10-27 13:25:00 -04:00
FernandoS27
705300992e
Implement Default Block Height for each format
2018-10-27 10:17:39 -04:00
Zach Hilman
7c70746ec4
loader/nsp: Move secondary loader initialization to constructor
...
Prevents nullptr bug when trying to dump the RomFS of an NSP resulting from secondary_loader not being initialized.
2018-10-27 10:16:29 -04:00
Frederic Laing
0bf24d310e
gl_rasterizer_cache: Fix compiler warning
2018-10-27 13:06:26 +02:00
DeeJayBro
3b1e4c0995
service/filesystem: Add DirectoryDelete & DirectoryDeleteRecursively
2018-10-27 11:56:39 +02:00
Lioncash
9024cbb5b8
configure_system: Make GetIcon() return the scaled 64x64 icon
...
Avoids the need to put the scaling parameters all over the place for the
common case. The only other time scaling is done is to generate the
smaller 48x48 image, so this is fine.
2018-10-27 01:05:56 -04:00
Lioncash
85ed0af84e
configure_system: Move entry formatting for the user account list entries to its own function
...
Avoids the need to duplicate this all over the place, and makes it
translator-friendly across the board.
2018-10-27 01:05:56 -04:00
Lioncash
8eaf857d06
configure_system: Display errors to the user if file operations fail when setting user images
...
We should display an error to the user if setting a user image for an
account fails, rather than continuing onwards.
2018-10-27 01:05:50 -04:00
Weiyi Wang
12c365b549
cubeb_sink: ignore null-name device when selecting
...
We already ignore them on listing devices. We should do the same when selecting devices. This fix a crash when opening a specific device while there is a null device in the list
2018-10-27 00:43:04 +02:00
Lioncash
7de8e36343
svc: Localize the GetInfo enum class to the function itself
...
Nothing from this enum is intended to be used outside of this function.
2018-10-26 12:49:14 -04:00
Lioncash
6594853eb1
svc: Implement svcGetInfo command 0xF0000002
...
This retrieves:
if (curr_thread == handle_thread) {
result = total_thread_ticks + (hardware_tick_count - last_context_switch_ticks);
} else if (curr_thread == handle_thread && sub_id == current_core_index) {
result = hardware_tick_count - last_context_switch_ticks;
}
2018-10-26 12:49:11 -04:00
bunnei
58444a0376
gl_rasterizer: Implement primitive restart.
2018-10-26 00:42:57 -04:00
bunnei
d278f25bda
Merge pull request #1533 from FernandoS27/lmem
...
Implemented Shader Local Memory
2018-10-26 00:16:25 -04:00
bunnei
72e6b31a07
Merge pull request #1430 from DarkLordZach/remove-promote-dir
...
vfs: Remove InterpretAsDirectory and related functions
2018-10-26 00:15:34 -04:00
bunnei
1f98dc30ea
Merge pull request #1591 from bunnei/depth-range
...
gl_rasterizer: Implement depth range.
2018-10-26 00:12:20 -04:00
bunnei
949d9a7136
maxwell_3d: Add code for initializing register defaults.
2018-10-25 23:42:39 -04:00
bunnei
debabf1fa6
Merge pull request #1569 from lioncash/amiibo
...
yuzu/main: Notify user of loading errors with Amiibo data
2018-10-25 22:10:08 -04:00
bunnei
476b9f8fc5
Merge pull request #1587 from lioncash/private
...
configure_system: Minor cleanup-related changes
2018-10-25 22:08:06 -04:00
bunnei
8cea598158
gl_rasterizer: Implement depth range.
2018-10-25 21:53:24 -04:00
bunnei
cebce2a93a
ldr: Partially implement LoadNro.
...
- This is an incomplete implementation. It was tested with Super Mario Party.
2018-10-25 18:03:54 -04:00
bunnei
c2049aa4e5
process: LoadModule should clear JIT instruction cache.
2018-10-25 18:03:54 -04:00
bunnei
a609b6907a
Kernel/Memory: Added a function to first a suitable guest address at which to allocate a region of a given size.
2018-10-25 18:03:54 -04:00
bunnei
ef7b2237d9
nro: Make LoadNro method accessible outside of apploader code.
2018-10-25 18:03:54 -04:00
Lioncash
85285b09b0
configure_system: Make the file selector text translatable
...
This should be localizable, since it's user-facing text.
2018-10-25 17:27:30 -04:00
Lioncash
5172354e29
configure_system: Make GetAccountUsername() an internal function
...
We can just make the function accept an arbitrary ProfileManager
reference and operate on that instead of tying the function to the class
itself. This allows us to keep the function internal to the cpp file and
removes the need to forward declare the UUID struct.
2018-10-25 17:27:25 -04:00
Lioncash
bf7da804c5
configure_system: Default initialize member variables
...
These should be initialized to deterministic values so it's easier to
catch improper behavior, as it'll always be reproducable, instead of
performing uninitialized reads.
2018-10-25 16:52:23 -04:00
Lioncash
8806e69f59
configure_system: Simplify UUID generation call in AddUser()
...
This is a static function so we can just perform an assignment directly.
2018-10-25 16:50:07 -04:00
Lioncash
a6addb5332
configure_system: Amend function casing
2018-10-25 16:47:09 -04:00
Lioncash
2347e1b8c5
configure_system: Add missing override specifier on the destructor
2018-10-25 16:45:13 -04:00
Lioncash
3c63cecb96
configure_system: Make public slots private
...
These are only used within this class, so we can make them private to
keep their use contained. This also gets rid of the pre-Qt5 'slot'
identifier, since Qt 5's connection syntax doesn't require a function to
be declared a slot anymore.
2018-10-25 16:43:44 -04:00
Zach Hilman
9a87ece837
ips_layer: Use rle_size instead of data_size in RLE patch application
...
Prevents a potential bug when using RLE records in an IPS patch.
2018-10-25 14:23:56 -04:00
bunnei
2bc2b32662
Merge pull request #1579 from lioncash/usb
...
service/usb: Update service function tables
2018-10-25 12:22:57 -04:00
bunnei
0634aee267
Merge pull request #1576 from lioncash/acc-warn
...
service/acc: Silence compiler truncation warnings
2018-10-25 12:22:10 -04:00
bunnei
c94db0e071
Merge pull request #1577 from lioncash/err
...
kernel/error: Amend error return code values
2018-10-25 01:10:26 -04:00
bunnei
f7a173de6c
Merge pull request #1524 from FernandoS27/layers-fix
...
rasterizer: Fix Layered Textures Loading and Cubemaps
2018-10-25 00:29:18 -04:00
bunnei
b43cfe6c02
Merge pull request #1575 from lioncash/qstring
...
game_list_worker: Use QString's formatting instead of fmt in FormatPatchNameVersions()
2018-10-24 19:39:43 -04:00
Lioncash
fbbb58b226
service/usb: Update service function tables
...
Updated based off the information provided by Hexkyz on Switchbrew.
2018-10-24 19:07:55 -04:00
Lioncash
1e3b139cd7
service/acc: Move fallback image to file scope
...
This is just flat data, so it doesn't really need to be in the function
itself. This also allows deduplicating the constant for the backup size
in GetImageSize().
2018-10-24 18:22:24 -04:00
Lioncash
6f00628564
service/acc: Silence compiler warnings
...
Silences compiler warnings related to truncation. This also introduces a
small helper function to perform the clamping of the image size.
2018-10-24 18:22:24 -04:00
Lioncash
3ec90dc6ef
service/acc: Early return in failure case in LoadImage()
...
Allows unindenting the other branch's code.
2018-10-24 18:22:20 -04:00
bunnei
9aa5c1894e
Merge pull request #1570 from lioncash/optional
...
profile_manager: Use std::optional instead of boost::optional
2018-10-24 18:11:03 -04:00
bunnei
3a6e76e9b5
Merge pull request #1558 from lioncash/ptr
...
yuzu/configuration/config: Use a std::unique_ptr for qt_config instead of a raw pointer
2018-10-24 18:07:14 -04:00
FernandoS27
ca142f35c0
Implemented LD_L and ST_L
2018-10-24 17:51:53 -04:00
FernandoS27
abefe29398
Implement Shader Local Memory
2018-10-24 17:50:43 -04:00
bunnei
29f748a658
Merge pull request #1565 from lioncash/audio
...
time_stretch: Remove unused m_channel_count member variable
2018-10-24 17:39:53 -04:00
bunnei
69b35d7615
Merge pull request #1554 from FernandoS27/pointsize
...
Implement PointSize Output Attribute.
2018-10-24 17:38:38 -04:00
bunnei
b723390ab1
Merge pull request #1571 from lioncash/debug-translate
...
graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function
2018-10-24 17:37:18 -04:00
bunnei
ce2403d975
Merge pull request #1564 from lioncash/npad
...
npad: Remove unused controller variable from OnInit()
2018-10-24 17:36:55 -04:00
bunnei
d9590d7dfa
Merge pull request #1568 from lioncash/dir
...
game_list: Use QFileInfo instead of common's file functions
2018-10-24 17:13:51 -04:00
bunnei
2694b43d3a
Merge pull request #1567 from lioncash/translate
...
game_list: Make game list column headers translatable
2018-10-24 17:13:08 -04:00
bunnei
e6e17a3fc6
Merge pull request #1566 from lioncash/str
...
bootmanager: Use QStringLiteral instead of std::string to represent the window title.
2018-10-24 17:12:53 -04:00
bunnei
ddff188c65
Merge pull request #1563 from lioncash/frame
...
perf_stats: Remove unused variable within DoFrameLimiting()
2018-10-24 16:29:16 -04:00
bunnei
d14ba122e2
Merge pull request #1562 from lioncash/aoc
...
aoc_u: Make use of previously-unused CheckAOCTitleIDMatchesBase() function
2018-10-24 16:28:56 -04:00
bunnei
2eff8336f4
Merge pull request #1560 from lioncash/unused
...
maxwell_3d/decoders: Remove unused variables
2018-10-24 16:28:38 -04:00
bunnei
cdd499c261
Merge pull request #1561 from lioncash/fs
...
file_sys: Remove unused variables
2018-10-24 16:28:17 -04:00
bunnei
e65f5e4d66
Merge pull request #1559 from lioncash/log
...
logging/backend: Add missing services to the log filters
2018-10-24 16:28:01 -04:00
Lioncash
1fb4bebb63
kernel/errors: Remove now-unused, unnecessary, error codes
...
Now that we've gotten the innaccurate error codes out of the way, we can
finally toss away a bunch of these, trimming down the error codes to
ones that are actually used and knocking out two TODO comments.
2018-10-24 14:58:37 -04:00
Lioncash
239dfea34a
kernel/shared_memory: Return ERR_INVALID_MEMORY_PERMISSIONS instead of ERR_INVALID_COMBINATION
...
This is more consistent with what the kernel does.
2018-10-24 14:54:36 -04:00
Lioncash
474bc29208
kernel/server_port: Simplify emptiness check within ShouldWait()
2018-10-24 14:24:36 -04:00
Lioncash
b703aba622
kernel/server_port: Change error case return value in Accept() to ERR_NOT_FOUND
...
This is what the kernel does in this instance.
2018-10-24 14:23:38 -04:00
Lioncash
afb7e5cc05
kernel/error: Remove leftover 3DS error codes
...
These are now entirely unused and can be removed.
2018-10-24 14:21:37 -04:00
Lioncash
fcf8f53a63
kernel/svc: Amend returned error code for invalid priorities in CreateThread
...
Like with the previous change, the kernel doesn't return NOT_AUTHORIZED
here. It returns INVALID_THREAD_PRIORITY.
2018-10-24 14:11:11 -04:00
Lioncash
77328b0f19
kernel/svc: Move and correct returned error code for invalid thread priorities in SetThreadPriority()
...
All priority checks are supposed to occur before checking the validity
of the thread handle, we're also not supposed to return
ERR_NOT_AUTHORIZED here.
2018-10-24 14:10:48 -04:00
Lioncash
c7c346a15d
kernel/error: Add error code for invalid pointers
...
The kernel appears to return 0xE601 for this situation. Particularly in
svcWaitSynchronization, svcReplyAndReceive, and svcGetThreadContext
2018-10-24 13:41:32 -04:00
Lioncash
6df09f5b76
kernel/error: Add error code for closed sessions
...
The kernel appears to return 0xF601 for this case.
2018-10-24 13:38:39 -04:00
Lioncash
1edf8660bc
game_list_worker: Use QString's formatting instead of fmt in FormatPatchNameVersions()
...
Using fmt here requires unnecessary string conversions back into
QString. Instead, we can just use QString's formatting and get the end
result of the formatting operation in the proper type.
2018-10-24 11:27:35 -04:00
Lioncash
4a31f99a02
profile_manager: Use std::optional instead of boost::optional
...
Now that we can actually use std::optional on macOS, we don't need to
continue using boost::optional here.
2018-10-24 11:06:52 -04:00
Lioncash
030847d5fa
graphic_breakpoints: Correct translation of strings in BreakpointModel's data() function
...
tr() will not function properly on static/global data like this, as the
object is only ever constructed once, so the strings won't translate if
the language is changed without restarting the program, which is
undesirable. Instead we can just turn the map into a plain old function
that maps the values to their equivalent strings. This is also lessens
the memory allocated, since it's only allocating memory for the strings
themselves, and not an encompassing map as well.
2018-10-24 11:01:23 -04:00
Lioncash
bed2d6c425
yuzu/main: Notify user of loading errors with Amiibo data
...
We shouldn't silently continue if loading failed, since the general
assumption is that no messages showing up implicitly indicates success.
2018-10-24 10:39:31 -04:00
Mat M
77e705a8fa
Merge pull request #1468 from DarkLordZach/profile-manager-ui
...
qt: Add UI to manage emulated user profiles
2018-10-24 10:10:29 -04:00
Zach Hilman
e7ac42677b
configure_system: Clear current username before overwriting
...
Prevents bug where old username would remain if the new username was shorter in length.
2018-10-24 09:25:20 -04:00
Lioncash
a1c85b8c55
game_list: Use QFileInfo instead of common's file functions
...
We can just use the facilities that Qt provides instead of pulling in
stuff from common. While we're at it, we can also simplify the nearby
logging statement's argument by just calling .toStdString()
2018-10-24 08:40:22 -04:00
Lioncash
47f081d513
game_list: Make game list column headers translatable
...
These are user-facing strings, so they should be marked as translatable
2018-10-24 08:20:35 -04:00
Lioncash
2cbc284c2b
bootmanager: Use QStringLiteral instead of std::string to represent the window title
...
This gets rid of an unnecessary type conversion. We can just use the
regular QStringLiteral to already format the string as the type
setWindowTitle accepts instead of converting from a std::string
instance.
2018-10-24 08:14:26 -04:00
Lioncash
6d27614994
time_stretch: Remove unused m_channel_count member variable
...
This is only stored to, but never read from.
2018-10-24 00:46:17 -04:00
Lioncash
93596d03ec
npad: Remove unused controller variable from OnInit()
...
This also gets rid of variable shadowing related to the lambda parameter
a little bit below this code as well.
2018-10-24 00:38:03 -04:00
Lioncash
7c9f7aeacc
perf_stats: Remove unused variable within DoFrameLimiting()
...
This hasn't been used since ba8ff096fd
2018-10-24 00:33:26 -04:00
Lioncash
6949f73149
yuzu/configuration/config: Use a std::unique_ptr for qt_config instead of a raw pointer
...
Same behavior, less code.
2018-10-24 00:24:02 -04:00
Lioncash
a3d1ede25f
aoc_u: Make use of previously-unused CheckAOCTitleIDMatchesBase() function
...
We can just call the function instead of duplicating the code here. This
also prevents an unused function warning.
We also don't need to take the lambda capture by reference. It's just a
u64 value, so by value is fine here.
2018-10-24 00:13:08 -04:00
Lioncash
c7c594a6b8
vfs: Handle failure of file reading within VfsRawCopy()
...
Also gets rid of an unused variable.
2018-10-24 00:01:32 -04:00
Lioncash
c6529688fc
key_manager: Remove unused variable in DeriveBase()
2018-10-24 00:00:12 -04:00
Lioncash
257b7bbfee
decoders: Remove unused variable within SwizzledData()
2018-10-23 23:51:13 -04:00
Lioncash
a97cdb5eb4
maxwell_3d: Remove unused variable within ProcessQueryGet()
2018-10-23 23:50:16 -04:00
Lioncash
f80b80b922
logging/backend: Add missing services to the log filters
...
Just a few overlooked services.
2018-10-23 22:35:59 -04:00
Lioncash
6f5bede402
yuzu/configuration/config: Reorganize member variable and function layout
...
Makes the class layout consistent with the others.
2018-10-23 21:46:49 -04:00
bunnei
a94e5d9e68
Merge pull request #1551 from ogniK5377/improved-svcbreak
...
Added break types to svcBreak
2018-10-23 19:56:42 -04:00
Zach Hilman
bfad41b0c1
profile_manager: Create save data if it doesn't exist on use
2018-10-23 19:31:28 -04:00
Zach Hilman
45f2a2fe29
acc: Fix account UUID duplication error
2018-10-23 19:31:28 -04:00
Zach Hilman
e408bbceed
configure_system: Clear selection after user delete
2018-10-23 19:31:28 -04:00
Zach Hilman
702622b8f1
profile_manager: Load user icons, names, and UUIDs from system save
2018-10-23 19:31:28 -04:00
Zach Hilman
19c5cf9c63
acc: Load user images from config dir
2018-10-23 19:31:28 -04:00
Zach Hilman
466960c8ab
qt: Allow user to select emu user on open save data
2018-10-23 19:31:28 -04:00
Zach Hilman
b2a8209c5b
qt: Add Profile Manager UI to system settings
2018-10-23 19:31:28 -04:00
Zach Hilman
d3fbf45705
am: Pass current user UUID to launch parameters
2018-10-23 19:31:28 -04:00
Zach Hilman
aeffd4b436
profile_manager: Load users from emulator settings
2018-10-23 19:31:28 -04:00
Zach Hilman
e7e3d5898e
settings: Add users and current_user settings and remove username
2018-10-23 19:31:28 -04:00
David
50e4e81fd3
Added Amiibo support ( #1390 )
...
* Fixed conflict with nfp
* Few fixups for nfc
* Conflict 2
* Fixed AttachAvailabilityChangeEvent
* Conflict 3
* Fixed byte padding
* Refactored amiibo to not reside in "System"
* Removed remaining references of nfc from system
* used enum for Nfc GetStateOld
* Added missing newline
* Moved file operations to front end
* Conflict 4
* Amiibos now use structs and added mutexes
* Removed amiibo_path
2018-10-23 19:28:17 -04:00
bunnei
5edb2403c2
Merge pull request #1515 from DarkLordZach/dlc-lfs
...
patch_manager: Add support for LayeredFS on DLC RomFS
2018-10-23 19:26:57 -04:00
bunnei
fc9d8afead
Merge pull request #1542 from lioncash/project
...
CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
2018-10-23 18:44:08 -04:00
bunnei
a5106fb9f5
Merge pull request #1553 from lioncash/mem
...
common: Remove memory_util.h/.cpp
2018-10-23 18:43:45 -04:00
bunnei
e61a62066a
Merge pull request #1540 from lioncash/handle
...
kernel/process: Make the handle table per-process
2018-10-23 18:43:11 -04:00
FernandoS27
ed8ca608a0
Implement PointSize
2018-10-23 15:08:00 -04:00
FernandoS27
e0ea2f5f6e
Fixed Layered Textures Loading and Cubemaps
2018-10-23 14:27:36 -04:00
Lioncash
1291f3f820
common: Remove memory_util.cpp/.h
...
Everything from here is completely unused and also written with the
notion of supporting 32-bit architecture variants in mind. Given the
Switch itself is on a 64-bit architecture, we won't be supporting 32-bit
architectures. If we need specific allocation functions in the future,
it's likely more worthwhile to new functions for that purpose.
2018-10-23 12:21:34 -04:00
bunnei
e7e209d900
Merge pull request #1552 from FearlessTobi/port-4336
...
Port citra-emu/citra#4336 : "Only redefine some 64-bit file operation for MSVC"
2018-10-23 10:23:41 -04:00
bunnei
5716496239
Merge pull request #1519 from ReinUsesLisp/vsetp
...
gl_shader_decompiler: Implement VSETP
2018-10-23 10:22:37 -04:00
bunnei
0f3d8c2574
Merge pull request #1539 from lioncash/dma
...
maxwell_dma: Silence compilation warnings
2018-10-23 10:22:12 -04:00
bunnei
75d807788c
Merge pull request #1470 from FernandoS27/alpha_testing
...
Implemented Alpha Test using Shader Emulation
2018-10-23 10:21:30 -04:00
Weiyi Wang
2ff2732a78
only redefine 64 bit file operation for MSVC
...
MinGW provides POSIX functions
2018-10-23 15:11:18 +02:00
David Marcec
38cdb6744d
Added assertion failed, reworked logging levels
2018-10-23 15:17:13 +11:00
ReinUsesLisp
7d6dca0d0a
gl_shader_decompiler: Implement VSETP
2018-10-23 01:07:20 -03:00
ReinUsesLisp
5dfb43531c
gl_shader_decompiler: Abstract VMAD into a video subset
2018-10-23 01:07:20 -03:00
David Marcec
8042731da9
Added break types to svcBreak
...
There seems to be more such as type 1, and 2. Unsure what these currently are but when a game hits them we can investigate and add the rest
2018-10-23 15:03:59 +11:00
bunnei
848a49112a
Merge pull request #1512 from ReinUsesLisp/brk
...
gl_shader_decompiler: Implement PBK and BRK
2018-10-23 00:01:38 -04:00
bunnei
496d155d7b
Merge pull request #1550 from FernandoS27/fmul32
...
Added Saturation to FMUL32I
2018-10-22 23:58:09 -04:00
bunnei
40c63073a9
Merge pull request #1543 from lioncash/target
...
CMakeLists: Use target_compile_definitions instead of add_definitions to define YUZU_ENABLE_COMPATIBILITY_REPORTING
2018-10-22 22:50:10 -04:00
bunnei
4cccfb4190
Merge pull request #1537 from lioncash/shader
...
gl_shader_decompiler: Minor changes
2018-10-22 22:49:49 -04:00
FernandoS27
259da93567
Added Saturation to FMUL32I
2018-10-22 20:22:15 -04:00
FernandoS27
8e1239fbc5
Assert that multiple render targets are not set while alpha testing
2018-10-22 15:35:45 -04:00
bunnei
ff6b2d4574
Merge pull request #1545 from DarkLordZach/psm
...
psm: Add psm service and stub commands 0 and 1
2018-10-22 15:27:05 -04:00
FernandoS27
59a004f915
Use standard UBO and fix/stylize the code
2018-10-22 15:07:33 -04:00
FernandoS27
17315cee16
Cache uniform locations and restructure the implementation
2018-10-22 15:07:32 -04:00
FernandoS27
bcb5b924fd
Remove SyncAlphaTest and clang format
2018-10-22 15:07:31 -04:00
FernandoS27
7b39107e3a
Added Alpha Func
2018-10-22 15:07:30 -04:00
FernandoS27
aa620c14af
Implemented Alpha Testing
2018-10-22 15:07:30 -04:00
bunnei
65df593951
Merge pull request #1541 from lioncash/define
...
web_service/CMakeLists: Make the CPPHTTPLIB_OPENSSL_SUPPORT constrained to the web_service library only
2018-10-22 13:02:16 -04:00
bunnei
d9923b0dbc
Merge pull request #1538 from lioncash/query
...
svc: Fix vma boundary check in svcQueryMemory
2018-10-22 12:55:36 -04:00
bunnei
1226a5706e
Merge pull request #1547 from FernandoS27/fix-fset
...
Fixed FSETP and FSET
2018-10-22 12:53:47 -04:00
FernandoS27
5c5b4e8e7d
Fixed FSETP and FSET
2018-10-22 11:31:17 -04:00
bunnei
fcad3a734d
Merge pull request #1546 from lioncash/svc-again
...
service: Update service function tables
2018-10-22 11:06:55 -04:00
bunnei
38fa3aae73
Merge pull request #1548 from FernandoS27/fix-vao
...
Fixed VAOs Float types only returning GL_FLOAT
2018-10-22 10:58:47 -04:00
FernandoS27
e2416bbd1f
Fixed VAOs Float types only returning GL_FLOAT in cases that they had to return GL_HALF_FLOAT
2018-10-22 09:27:00 -04:00
Zach Hilman
314a948373
psm: Stub GetChargerType
...
Used by LovePotion Lua Homebrew. Stubbed as connected to official Nintendo Switch dock.
2018-10-21 22:03:25 -04:00
bunnei
12fa570d49
Merge pull request #1544 from DarkLordZach/reinitialize-keys-tools
...
qt: Move Reinitialize Keys to Tools menu
2018-10-21 21:49:11 -04:00
Lioncash
ca5a93167e
service: Add the basic skeleton for the NPNS services
2018-10-21 17:11:05 -04:00
Lioncash
981faea4d6
hid: Update service function table for hidbus
...
Updated based off information provided by Switchbrew.
2018-10-21 16:51:46 -04:00
Lioncash
5ea4cfd499
am: Add the basic skeleton for the tcap service
...
Added based off information provided by Switchbrew.
2018-10-21 16:50:17 -04:00
Lioncash
edb1c36a87
am: Update service function tables
...
Updated based off information from Switchbrew
2018-10-21 16:40:20 -04:00
Lioncash
ae7f55947e
prepo: Update service function table.
...
Also introduces the new prepo:a2 service.
Updated based off information provided by Switchbrew.
2018-10-21 16:22:10 -04:00
Lioncash
a806c78a1a
lbl: Update service function table names
...
Updated based off information provided by Switchbrew.
2018-10-21 16:15:32 -04:00
bunnei
f034121620
Merge pull request #1531 from ogniK5377/hid-fixes
...
Added auto controller switching to supported controllers and single joycon button rotation
2018-10-20 21:47:15 -04:00
Zach Hilman
a279d80a19
qt: Move Reinitialize Keys to Tools menu
2018-10-20 18:04:28 -04:00
Zach Hilman
10a2d20e26
psm: Stub GetBatteryChargePercentage
...
Used by LovePotion Lua Homebrew. Stubbed to return 100% charge.
2018-10-20 18:01:11 -04:00
Zach Hilman
3b8c0f8885
service: Add skeleton for psm service
...
Seems to be the power controller. Listed in switchbrew under the category PTM services.
2018-10-20 18:01:07 -04:00
Lioncash
c8beb665dc
CMakeLists: Use PROJECT_SOURCE_DIR instead of CMAKE_SOURCE_DIR
...
This is more localized to what we want to enforce directory-wise with
the project. CMAKE_SOURCE_DIR indicates the root of the source tree, but
this would cause the wrong behavior if someone included yuzu as part of
a larger buildsystem (for whatever reason). Instead, we want to use the
directory where the "project(yuzu)" command was declared as the root
path reference.
2018-10-20 17:36:31 -04:00
Lioncash
98a27b1ec7
CMakeLists: Use target_compile_definitions instead of add_definitions to define YUZU_ENABLE_COMPATIBILITY_REPORTING
...
Keeps the definition constrained to the yuzu target and prevents
polluting anything else in the same directory (should that ever happen).
It also keeps it consistent with how the USE_DISCORD_PRESENCE definition
is introduced below it.
2018-10-20 17:28:29 -04:00
Lioncash
adb9eda105
web_service/CMakeLists: Make the CPPHTTPLIB_OPENSSL_SUPPORT constrained to the web_service library only
...
Given we link in httplib privately, we can also make the definition
enabling OpenSSL support private as well. Prevents leaking a definition
into other libraries that link with this one, like the core library.
2018-10-20 16:59:10 -04:00
Lioncash
90a981a03a
kernel/process: Make the handle table per-process
...
In the kernel, there isn't a singular handle table that everything gets
tossed into or used, rather, each process gets its own handle table that
it uses. This currently isn't an issue for us, since we only execute one
process at the moment, but we may as well get this out of the way so
it's not a headache later on.
2018-10-20 16:38:32 -04:00
Lioncash
c1e5525fc6
engines/maxwell_*: Use nested namespace specifiers where applicable
...
These three source files are the only ones within the engines directory
that don't use nested namespaces. We may as well change these over to
keep things consistent.
2018-10-20 15:58:09 -04:00
Lioncash
d53c73adaa
maxwell_dma: Make variables const where applicable within HandleCopy()
...
These are never modified, so we can make that assumption explicit.
2018-10-20 15:56:01 -04:00
Lioncash
dd1ee39426
maxwell_dma: Make FlushAndInvalidate's size parameter a u64
...
This prevents truncation warnings at the lambda's usage sites.
2018-10-20 15:54:45 -04:00
Lioncash
08e574eec4
maxwell_dma: Remove unused variables in HandleCopy()
...
These pointer variables are never used, so we can get rid of them.
2018-10-20 15:53:24 -04:00
Lioncash
896c0f61a0
svc: Fix vma boundary check in svcQueryMemory
...
This should be comparing against the queried process' vma_map, not the
current process'. The only reason this hasn't become an issue yet is we
currently only handle one process being active at any time.
2018-10-20 14:56:51 -04:00
Lioncash
8a86c8d48b
gl_shader_decompiler: Allow std::move to function in SetPredicate
...
If the variable being moved is const, then std::move will always perform
a copy (since it can't actually move the data).
2018-10-20 14:25:15 -04:00
Lioncash
381baf783d
gl_shader_decompiler: Get rid of variable shadowing warnings
...
A variable with the same name was previously declared in an outer scope.
2018-10-20 14:22:37 -04:00
Lioncash
61ef8af1e2
gl_shader_decompiler: Fix a few comment typos
2018-10-20 14:19:28 -04:00
ReinUsesLisp
3ec795d95e
gl_shader_decompiler: Move position varying declaration back to gl_shader_gen
...
The intention of declaring them in gl_shader_decompiler was to be able
to use blocks to implement geometry shaders. But that wasn't needed in
the end and it caused issues when both vertex stages were being used,
resulting in a redeclaration of "position".
2018-10-20 02:19:30 -03:00
David Marcec
a03600ba28
Added auto controller switching to supported controllers and single joycon button rotation
...
This is a subset of the better-hid-2 changes, this fixes input in various games which don't support dual joycons. This pr will search for the next best controller which is supported by the current game
2018-10-20 15:07:18 +11:00
bunnei
b1f8bff7db
Merge pull request #1501 from ReinUsesLisp/half-float
...
gl_shader_decompiler: Implement H* instructions
2018-10-19 23:47:19 -04:00
bunnei
60317e6306
Merge pull request #1520 from lioncash/san
...
svc: Add missing sanitizing checks for MapSharedMemory/UnmapSharedMemory
2018-10-19 22:58:57 -04:00
bunnei
4849569565
Merge pull request #1517 from bunnei/dma
...
GPU/DMA: Flush the source region and invalidate the destination region when doing a DMA transfer.
2018-10-19 22:58:30 -04:00
bunnei
bf66930fb9
Merge pull request #1526 from lioncash/svc-id
...
service: Update function tables
2018-10-19 22:53:26 -04:00
bunnei
52b25e0fb9
Merge pull request #1530 from DarkLordZach/aoc-8
...
aoc_u: Stub GetAddOnContentListChangedEvent
2018-10-19 22:53:00 -04:00
bunnei
298ebf444f
Merge pull request #1516 from lioncash/hid
...
hid: Minor cleanup-related changes
2018-10-19 22:52:31 -04:00
Zach Hilman
7e0d2fc994
aoc_u: Stub GetAddOnContentListChangedEvent
...
This event signals the game when new DLC is purchased from the eShop while the game is running. Since, for the forseeable future, yuzu will not have this ability, it seems safe to stub with a dummy event that will never fire. This is needed to boot Sonic Mania Plus (update v1.04).
2018-10-19 21:21:37 -04:00
Zach Hilman
0aef2b9c26
crypto: Use compressed sizes in offset calculation for KIP decompression
...
Fixes a fatal crash on start when deriving keys.
2018-10-19 18:37:58 -04:00
Zach Hilman
a25d79cfaa
vfs: Remove InterpretAsDirectory and related functions
...
When writing VFS, it initally seemed useful to include a function to in-place convert container files into directories in one homogenous directory structure, but re-evaluating it now there have been plenty of chances to use it and there has always been a better way. Removing as it is unused and likely will not be used.
2018-10-19 14:02:07 -04:00
David Marcec
7a7dad05c0
Stubbed home blocking
...
Needed by arms due to new hid rework
2018-10-20 00:01:10 +11:00
Lioncash
1833498617
es: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:12:28 -04:00
Lioncash
a653be3510
audio: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:09:12 -04:00
Lioncash
2b9fd23058
omm: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 04:04:59 -04:00
Lioncash
4f52800822
nifm: Update service function tables
...
Updated based off information provided by switchbrew.
2018-10-19 04:00:41 -04:00
Lioncash
f6c5a48dd1
hid: Update service function tables
...
Updated based off information provided by Switchbrew.
2018-10-19 03:59:15 -04:00
Lioncash
d0cda7fe40
nim: Add the basic skeleton of the nim:eca service
...
Added based off information provided by Switchbrew
2018-10-19 03:46:18 -04:00
Lioncash
d16bafc99d
ns: Update service function table
...
Updated based off information provided by Switchbrew.
2018-10-19 03:41:38 -04:00
Lioncash
a056b284cf
set_cal: Update service function table
...
Updated based on information from Switchbrew.
2018-10-19 03:26:56 -04:00
bunnei
7e665c2721
GPU: Improved implementation of maxwell DMA (Subv).
2018-10-18 22:41:53 -04:00
bunnei
bcde71d4d9
decoders: Introduce functions for un/swizzling subrects.
2018-10-18 22:41:43 -04:00
bunnei
a5d853a9f8
GPU: Invalidate destination address of kepler_memory writes.
2018-10-18 22:41:13 -04:00
bunnei
6b333d862b
fermi_2d: Add support for more accurate surface copies.
2018-10-18 22:41:12 -04:00
bunnei
fdd82b754a
Merge pull request #1523 from lioncash/lock
...
svc: Add missing error checks in svcArbitrateLock/svcArbitrateUnlock
2018-10-18 21:50:45 -04:00
bunnei
7f152f2273
Merge pull request #1511 from lioncash/content
...
content_archive: Minor reorganization changes
2018-10-18 21:48:09 -04:00
bunnei
e5d428cf1e
Merge pull request #1521 from ogniK5377/imp-mmu
...
Used better names for mm:u and fixed a bad stub
2018-10-18 21:46:59 -04:00
Lioncash
4b5ae8dbaa
svc: Check for word alignment of addresses within svcArbitrateLock/svcArbitrateUnlock
...
The kernel itself checks whether or not the provided addresses are word
aligned before continuing, so we should be doing the same.
2018-10-18 13:01:29 -04:00
Lioncash
541e9624eb
common: Add function for checking word alignment to alignment.h
...
This will be used in a following change to svcArbitrateLock() and
svcArbitrateUnlock()
2018-10-18 12:58:27 -04:00
Lioncash
d27f4a4928
common: Move Is4KBAligned() to alignment.h
...
Aligning on 4KB pages isn't a Switch-specific thing, so this can be
moved to common so it can be used with other things as well.
2018-10-18 12:57:02 -04:00
Lioncash
f109615be0
core: Remove unnecessary assert in ArmInterface()
...
CpuCore already does this sort of checking, so we can just call that
instead of duplicating the assertions.
2018-10-18 12:07:25 -04:00
bunnei
d4ff4152ad
Merge pull request #1510 from lioncash/xci
...
XCI: Add function for checking the existence of the program NCA
2018-10-18 11:51:47 -04:00
bunnei
6acd8d166a
Merge pull request #1505 from FernandoS27/tex-3d
...
Implemented 3D Textures
2018-10-18 11:50:42 -04:00
David Marcec
98c7a6d622
Used better names for mm:u and fixed bad stub
...
InitializeWithId needs to return an id which is a u32 which should be a non zero value
2018-10-19 01:09:34 +11:00
Lioncash
33830aa65a
svc: Add missing sanitizing checks for MapSharedMemory/UnmapSharedMemory
...
Now that the changes clarifying the address spaces has been merged, we
can wrap the checks that the kernel performs when mapping shared memory
(and other forms of memory) into its own helper function and then use
those within MapSharedMemory and UnmapSharedMemory to complete the
sanitizing checks that are supposed to be done.
2018-10-18 02:01:21 -04:00
Lioncash
452aa30cb7
hid/controller: Remove unused header inclusions
...
swap.h only needs to be present in the header for the type aliases and
definitions, it's not actually needed in the cpp files though. input.h
is just unused entirely in xpad.h
2018-10-17 20:52:45 -04:00
Lioncash
7f52dc1790
hid/controller/npad: Remove unused dump_idx member variable
...
Given it's unused, we may as well toss it.
2018-10-17 20:52:45 -04:00
Lioncash
7eb2328d8e
hid/controller/npad: Remove unnecessary semicolon from the closing brace of LedPattern's constructor
2018-10-17 20:52:45 -04:00
Lioncash
929ed59f1f
hid/controller/npad: Remove #pragma once from the cpp file
...
This is only useful in headers.
2018-10-17 20:52:45 -04:00
Lioncash
aeda743446
hid/controller/npad: Move npad_id_list into the cpp file
...
This is just a lookup table, and since it's private, there's nothing
really stateful about it, so we can just move it into the cpp file.
2018-10-17 20:52:45 -04:00
Lioncash
aeca224890
hid/controller/npad: Remove unnecessary const from void return type
...
This literally does nothing.
2018-10-17 20:52:45 -04:00
Lioncash
46202e984e
hid/controller: Default the destructors of all controller types in the cpp file
...
These classes are non-trivial and are definitely going to be changed in
the future, so we default these to prevent issues with forward
declarations, and to keep the compiler from inlining tear-down code.
2018-10-17 20:52:43 -04:00
Lioncash
119b47f366
controller_base: Default the base class constructor and destructor in the cpp file
...
The destructor doesn't need to be a pure-virtual function.
2018-10-17 20:51:54 -04:00
ReinUsesLisp
41fb25349a
gl_shader_decompiler: Implement PBK and BRK
2018-10-17 21:30:45 -03:00
bunnei
7dee60d7d2
Merge pull request #1444 from ogniK5377/better-hid
...
"Better Hid" Rework Part 1
2018-10-17 20:25:17 -04:00
bunnei
77e2d68df7
Merge pull request #1489 from FernandoS27/fix-tlds
...
shader_decompiler: Fix TLDS
2018-10-17 18:58:38 -04:00
FernandoS27
caaa9914fd
Clang format and other fixes
2018-10-17 18:52:11 -04:00
FernandoS27
cb9fdc7a26
Implement Reinterpret Surface, to accurately blit 3D textures
2018-10-17 18:52:10 -04:00
FernandoS27
dbc34db6ce
Implement GetInRange in the Rasterizer Cache
2018-10-17 18:52:10 -04:00
FernandoS27
fd9e2d0073
Implement 3D Textures
2018-10-17 18:52:08 -04:00
bunnei
f912a82a8e
Merge pull request #1497 from bunnei/flush-framebuffers
...
Implement flushing in the rasterizer cache
2018-10-17 18:40:34 -04:00
bunnei
6e8752881c
Merge pull request #1498 from lioncash/aslr
...
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
2018-10-17 18:31:51 -04:00
bunnei
86dcf2942b
Merge pull request #1496 from FernandoS27/tex-array
...
Implement Arrays on Tex Instruction
2018-10-17 18:30:44 -04:00
Zach Hilman
9d0fb0f815
qt: Add support for dumping a DLC Data RomFS
2018-10-17 18:27:29 -04:00
bunnei
afe22d8405
Merge pull request #1509 from DarkLordZach/device-save-data
...
savedata_factory: Add DeviceSaveData and fix TemporaryStorage
2018-10-17 18:22:05 -04:00
bunnei
648b55c6b9
gl_rasterizer_cache: Remove unnecessary block_depth=1 on Flush.
2018-10-17 18:20:15 -04:00
bunnei
2a035a1f6f
gl_rasterizer_cache: Remove unnecessary temporary buffer with unswizzle.
2018-10-17 18:19:35 -04:00
Zach Hilman
59044862a9
registered_cache: Deduplicate results of ListEntry and ListEntryFilter
...
Prevents a Entry from appearing in the list twice if the user has it installed in two places (e.g. User NAND and SDMC)
2018-10-17 14:04:18 -04:00
David Marcec
8144fa42bd
Using dual joycons as the default controller
...
Reason for the change is to allow both docked and undocked mode to work
2018-10-18 00:11:47 +11:00
Zach Hilman
780c21ab2d
fsp_srv: Apply patches to Data storage in OpenDataStorageByDataId
2018-10-17 09:04:20 -04:00
Zach Hilman
d8273c3857
patch_manager: Add support for using LayeredFS with Data
2018-10-17 09:03:56 -04:00
bunnei
43b9494a0f
gl_rasterizer_cache: Use AccurateCopySurface for use_accurate_gpu_emulation.
2018-10-16 17:20:49 -04:00
bunnei
ee7c2dbf5a
config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation.
...
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
2018-10-16 17:02:29 -04:00
bunnei
91602de7f2
rasterizer_cache: Refactor to support in-order flushing.
2018-10-16 16:51:53 -04:00
Lioncash
871350ae35
content_archive: Simpify assignment of bktr_base_romfs in the constructor
...
std::move doesn't actually dereference the data, so it doesn't matter
whether or not the type is null.
2018-10-16 13:22:31 -04:00
Lioncash
441b5b97bd
content_archive: Make IsValidNCA() an internally linked function
...
This is only ever used within the cpp file, so it can just be an
internal function.
2018-10-16 13:22:31 -04:00
Lioncash
53e77ffbfe
content_archive: Simplify rights ID check
...
This is the same as using std::any_of with an inverted predicate.
2018-10-16 13:22:31 -04:00
Lioncash
d6604fa765
content_archive: Split loading into separate functions
...
The constructor alone is pretty large, the reading code should be split
into its consistuent parts to make it easier to understand it without
having to build a mental model of a 300+ line function.
2018-10-16 13:22:28 -04:00
Lioncash
4783ad54de
content_archive: Pass and take NCASectionHeader instance by reference
...
Each header is 512 bytes in size, which is kind of an excessive amount
to copy all the time when it's possible to avoid doing so.
2018-10-16 12:08:17 -04:00
Lioncash
73e1e929a2
XCI: Add function for checking the existence of the program NCA
...
The only reason the getter existed was to check whether or not the
program NCA was null. Instead, we can just provide a function to query
for the existence of it, instead of exposing it entirely.
2018-10-16 11:36:58 -04:00
bunnei
0e59291310
gl_rasterizer_cache: Refactor to only call GetRegionEnd on surface creation.
2018-10-16 11:31:02 -04:00
bunnei
949d7832fa
gl_rasterizer_cache: Only flush when use_accurate_framebuffers is enabled.
2018-10-16 11:31:02 -04:00
bunnei
5f79ba04bd
gl_rasterizer_cache: Separate guest and host surface size managment.
2018-10-16 11:31:01 -04:00
bunnei
58be4dff79
gl_rasterizer_cache: Rename GetGLBytesPerPixel to GetBytesPerPixel.
...
- This does not really have anything to do with OpenGL.
2018-10-16 11:31:01 -04:00
bunnei
cf7b46c101
gl_rasterizer_cache: Remove unused FlushSurface method.
2018-10-16 11:31:01 -04:00
bunnei
3afdfd7bfa
gl_rasterizer: Implement flushing.
2018-10-16 11:31:01 -04:00
bunnei
b4e29ccb81
gl_rasterizer_cache: Remove usage of Memory::Read/Write functions.
...
- These cannot be used within the cache, as they change cache state.
2018-10-16 11:31:00 -04:00
bunnei
4e9683e9d5
gl_rasterizer_cache: Clamp cached surface size to mapped GPU region size.
2018-10-16 11:31:00 -04:00
bunnei
37575eae65
memory_manager: Add a method for querying the end of a mapped GPU region.
2018-10-16 11:31:00 -04:00
bunnei
0be7e82289
rasterizer_cache: Reintroduce method for flushing.
2018-10-16 11:31:00 -04:00
bunnei
9b929e934b
gl_rasterizer_cache: Reintroduce code for handling swizzle and flush to guest RAM.
2018-10-16 11:30:59 -04:00
bunnei
78f2a6a9e1
Merge pull request #1443 from DarkLordZach/lower-loader-logs-1
...
content_archive/patch_manager: Lower log levels to eliminate some unnecessary logs
2018-10-16 11:26:54 -04:00
David
92d8ad3770
Implement VI ConvertScalingMode ( #1475 )
...
* Implement VI ConvertScalingMode
* Fixed push enum
* Scale mode now uses Nintendo scale mode as an enum as well
2018-10-16 11:25:42 -04:00
bunnei
88b8383da2
Merge pull request #1502 from lioncash/unique
...
core: Convert shared_ptr instances into unique_ptr instances where applicable for System and Cpu
2018-10-16 11:21:42 -04:00
Zach Hilman
9d4e6176eb
savedata_factory: Add TemporaryStorage SaveDataSpaceId
...
Required for TemporaryStorage saves (in addition to SaveDataType)
2018-10-16 10:20:04 -04:00
Zach Hilman
74890cf2da
savedata_factory: Add support for DeviceSaveData
...
Uses the same path as SaveData except with UID 0. Adds a warning if UID is not 0.
2018-10-16 10:19:21 -04:00
Lioncash
39ae73b356
file_sys/registered_cache: Use unique_ptr and regular pointers instead of shared_ptrs where applicable
...
The data retrieved in these cases are ultimately chiefly owned by either
the RegisteredCache instance itself, or the filesystem factories. Both
these should live throughout the use of their contained data. If they
don't, it should be considered an interface/design issue, and using
shared_ptr instances here would mask that, as the data would always be
prolonged after the main owner's lifetime ended.
This makes the lifetime of the data explicit and makes it harder to
accidentally create cyclic references. It also makes the interface
slightly more flexible than the previous API, as a shared_ptr can be
created from a unique_ptr, but not the other way around, so this allows
for that use-case if it ever becomes necessary in some form.
2018-10-16 09:38:52 -04:00
bunnei
548958bcaf
Merge pull request #1473 from lioncash/cmake
...
web_service: Make linkage of web_service-related externals and the library private
2018-10-15 21:33:32 -04:00
bunnei
870c18b078
Merge pull request #1487 from lioncash/maybe-unused
...
yuzu/main: Apply the [[maybe_unused]] attribute to the parameter of SetDiscordEnabled
2018-10-15 21:33:14 -04:00
Lioncash
76fc8b59b2
file_sys/control_metadata: Get rid of magic constants
...
These are just the size of the data being passed in, so we can specify
that via the size() member function.
2018-10-15 20:11:44 -04:00
bunnei
9b21fbd1eb
Merge pull request #1494 from DarkLordZach/aoc-signature-fixes
...
aoc: Fix various bugs in current AOC implementation
2018-10-15 18:34:02 -04:00
bunnei
50e6205c21
Merge pull request #1499 from lioncash/nro
...
nro/nso: Minor error handling changes
2018-10-15 17:48:36 -04:00
bunnei
7665411317
Merge pull request #1500 from DarkLordZach/key-derivation-6.0.0
...
crypto: Various crypto fixes for quickstart guide
2018-10-15 17:48:13 -04:00
Lioncash
bed872ed38
nso: Return an optional address from LoadModule
...
If a malformed NSO is attempted to be loaded, we shouldn't continue
onwards. We should be reporting an error and bailing out.
2018-10-15 17:02:11 -04:00
ReinUsesLisp
936c36a514
shader_bytecode: Add Control Code enum 0xf
...
Control Code 0xf means to unconditionally execute the instruction. This
value is passed to most BRA, EXIT and SYNC instructions (among others)
but this may not always be the case.
2018-10-15 15:36:47 -03:00
ReinUsesLisp
b461342a84
gl_shader_decompiler: Fixup style inconsistencies
2018-10-15 15:35:26 -03:00
ReinUsesLisp
27916764b1
gl_rasterizer: Silence implicit cast warning in glBindBufferRange
2018-10-15 15:26:50 -03:00
Lioncash
5484742fda
core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrs
2018-10-15 14:15:56 -04:00
Lioncash
59f872a8e0
core: Make the live Cpu instances unique_ptrs instead of shared_ptrs
...
There's no need for shared ownership here, as the only owning class
instance of those Cpu instances is the System class itself. We can also
make the thread_to_cpu map use regular pointers instead of shared_ptrs,
given that the Cpu instances will always outlive the cases where they're
used with that map.
2018-10-15 14:15:56 -04:00
Lioncash
aeadbfa790
core: Make the exclusive monitor a unique_ptr instead of a shared_ptr
...
Like the barrier, this is owned entirely by the System and will always
outlive the encompassing state, so shared ownership semantics aren't
necessary here.
2018-10-15 14:15:50 -04:00
Lioncash
c34efbbd60
core: Make CPUBarrier a unique_ptr instead of a shared_ptr
...
This will always outlive the Cpu instances, since it's destroyed after
we destroy the Cpu instances on shutdown, so there's no need for shared
ownership semantics here.
2018-10-15 09:11:47 -04:00
ReinUsesLisp
6312eec5ef
gl_shader_decompiler: Implement HSET2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
4fc8ad67bf
gl_shader_decompiler: Implement HSETP2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
3d65aa4caf
gl_shader_decompiler: Implement HFMA2 instructions
2018-10-15 02:55:51 -03:00
ReinUsesLisp
d93cdc2750
gl_shader_decompiler: Implement HADD2_IMM and HMUL2_IMM
2018-10-15 02:07:16 -03:00
ReinUsesLisp
d46e2a6e7a
gl_shader_decompiler: Implement non-immediate HADD2 and HMUL2 instructions
2018-10-15 02:04:31 -03:00
ReinUsesLisp
08d751d882
gl_shader_decompiler: Setup base for half float unpacking and setting
2018-10-15 01:58:30 -03:00
Zach Hilman
720d36ca71
crypto: Various crypto fixes for quickstart guide
2018-10-14 21:57:52 -04:00
Lioncash
bb9cf8a127
nso: Make LoadModule take a VfsFile by const reference
2018-10-14 20:38:19 -04:00
Lioncash
0732786ddc
nro: Make LoadNro take a VfsFile by const reference
...
This function doesn't need to care about ownership semantics, so we can
just pass it a reference to the file itself, rather than a
std::shared_ptr alias.
2018-10-14 20:24:18 -04:00
Lioncash
90f8474fc1
svc: Clarify enum values for AddressSpaceBaseAddr and AddressSpaceSize in svcGetInfo()
...
So, one thing that's puzzled me is why the kernel seemed to *not* use
the direct code address ranges in some cases for some service functions.
For example, in svcMapMemory, the full address space width is compared
against for validity, but for svcMapSharedMemory, it compares against
0xFFE00000, 0xFF8000000, and 0x7FF8000000 as upper bounds, and uses
either 0x200000 or 0x8000000 as the lower-bounds as the beginning of the
compared range. Coincidentally, these exact same values are also used in
svcGetInfo, and also when initializing the user address space, so this
is actually retrieving the ASLR extents, not the extents of the address
space in general.
2018-10-14 20:11:16 -04:00
Zach Hilman
5737441374
aoc: Read DLC base title ID from RegisteredCache
...
Falls back to title ID + 0x1000, which is what HOS does.
2018-10-14 18:58:14 -04:00
bunnei
b3cca34f50
Merge pull request #1486 from lioncash/file
...
key_manager/partition_data_manager: Minor changes
2018-10-14 14:46:47 -04:00
bunnei
3203193a67
Merge pull request #1490 from lioncash/boot
...
yuzu/main: Simplify OnMenuLoadFile()
2018-10-14 14:44:49 -04:00
bunnei
14286f70f0
Merge pull request #1488 from Hexagon12/astc-types
...
video_core: Added ASTC 5x4; 8x5 types
2018-10-14 14:44:24 -04:00
bunnei
0d2ba0a320
Merge pull request #1491 from lioncash/reference
...
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem by reference
2018-10-14 14:42:57 -04:00
bunnei
b82bbfba77
Merge pull request #1480 from FernandoS27/neue-swizzle
...
Introduce 3D Swizzle seamlessly
2018-10-14 14:42:38 -04:00
bunnei
2f8ca32020
Merge pull request #1492 from lioncash/proc
...
svc: Implement svcGetProcessInfo
2018-10-14 14:37:58 -04:00
FernandoS27
1d6559fbd3
Implement Arrays on Tex Instruction
2018-10-14 13:31:02 -04:00
David Marcec
92fae7e1ab
Stop all threads on svcBreak
...
This should help diagnose crashes easier and prevent many users thinking that a game is still running when in fact it's just an audio thread still running(this is typically not killed when svcBreak is hit since the game expects us to do this)
2018-10-14 18:14:51 +11:00
Zach Hilman
7e2096db8a
aoc: Return size in ListAddOnContent
2018-10-13 22:52:54 -04:00
FernandoS27
d880b77698
Fix TLDS
2018-10-13 22:14:25 -04:00
FernandoS27
331ce2942c
Shorten the implementation of 3D swizzle to only 3 functions
2018-10-13 20:58:00 -04:00
Lioncash
1c7a7ed79b
svc: Implement svcGetProcessInfo
...
A fairly basic service function, which only appears to currently support
retrieving the process state. This also alters the ProcessStatus enum to
contain all of the values that a kernel process seems to be able of
reporting with regards to state.
2018-10-13 17:00:43 -04:00
FernandoS27
1ff20d8538
Fix a Crash on Zelda BotW and Splatoon 2, and simplified LoadGLBuffer
2018-10-13 16:11:11 -04:00
FernandoS27
e0ca938b22
Propagate depth and depth_block on modules using decoders
2018-10-13 15:25:18 -04:00
FernandoS27
d4ae43f9c1
Remove old Swizzle algorithms and use 3d Swizzle
2018-10-13 15:25:17 -04:00
FernandoS27
4d959c6bdc
Implement Precise 3D Swizzle
2018-10-13 15:25:16 -04:00
FernandoS27
736db284d2
Implement Fast 3D Swizzle
2018-10-13 15:25:15 -04:00
Lioncash
0149162dba
filesystem: Make CreateFactories() and InstallInterface() take a VfsFilesystem instance by reference
...
Neither of these functions alter the ownership of the provided pointer,
so we can simply make the parameters a reference rather than a direct
shared pointer alias. This way we also disallow passing incorrect memory values like
nullptr.
2018-10-13 11:36:35 -04:00
Lioncash
a4c57436fc
yuzu/main: Simplify OnMenuLoadFile()
...
We can utilize QStringList's join() function to perform all of the
appending in a single function call.
While we're at it, make the extension list a single translatable string
and add a disambiguation comment to explain to translators what %1
actually is.
2018-10-13 10:35:18 -04:00
Lioncash
53a0221484
yuzu/main: Apply the [[maybe_unused]] attribute to the parameter of SetDiscordEnabled()
...
Depending on whether or not USE_DISCORD_PRESENCE is defined, the "state"
parameter can be used or unused. If USE_DISCORD_PRESENCE is not defined,
the parameter will be considered unused, which can lead to compiler
warnings. So, we can explicitly mark it with [[maybe_unused]] to inform
the compiler that this is intentional.
2018-10-13 10:10:29 -04:00
Hexagon12
cbf723896f
Added ASTC 5x4; 8x5
2018-10-13 17:10:26 +03:00
Lioncash
6467b01de2
partition_data_manager: Reserve and insert data within output vector in DecryptPackage2()
...
We can just reserve the memory then perform successive insertions
instead of needing to use memcpy. This also avoids the need to zero out
the output vector's memory before performing the insertions.
We can also std::move the output std::vector into the destination so
that we don't need to make a completely new copy of the vector, getting
rid of an unnecessary allocation.
Additionally, we can use iterators to determine the beginning and end
ranges of the std::vector instances that comprise the output vector, as
the end of one range just becomes the beginning for the next successive
range, and since std::vector's iterator constructor copies data within
the range [begin, end), this is more straightforward and gets rid of the
need to have an offset variable that keeps getting incremented to
determine where to do the next std::memcpy.
2018-10-13 09:50:08 -04:00
Lioncash
781fd7983c
partition_data_manager: Remove unused std::map instance within DecryptPackage2()
...
Aside from emplacing elements into the map, the map itself is never
actually queried for contained data.
2018-10-13 09:27:12 -04:00
Lioncash
e0c76226ad
partition_data_manager: Take package2_keys by const reference
...
These are only ever read from, so we don't need to make a copy of all
the keys here.
2018-10-13 09:24:41 -04:00
Lioncash
3d9df49619
partition_data_manager: Move IV data to where it's needed in DecryptPackage2()
...
Given it's only used in one spot and has a fairly generic name, we can
just specify it directly in the function call. This also the benefit of
automatically moving it.
2018-10-13 09:20:21 -04:00
Lioncash
bc2196bb09
partition_data_manager: Remove commented out code
...
Commented out code shouldn't be left in without a reason indicating why
in a comment.
2018-10-13 09:17:02 -04:00
Lioncash
6da2ed4232
key_manager/partition_data_manager: Silence truncation compiler warnings
2018-10-13 09:13:19 -04:00
Lioncash
f56a8da46a
partition_data_manager: Dehardcode array bounds
...
Instead, we can make it part of the type and make named variables for
them, so they only require one definition (and if they ever change for
whatever reason, they only need to be changed in one spot).
2018-10-13 08:52:37 -04:00
Lioncash
d257a3b56c
partition_data_manager: Take VirtualFile by const reference in constructor
...
Given the VirtualFile instance isn't stored into the class as a data
member, or written to, this can just be turned into a const reference,
as the constructor doesn't need to make a copy of it.
2018-10-13 08:39:05 -04:00
Lioncash
e96d69c328
partition_data_manager: Amend constructor initializer list order
...
Orders the members in the exact order they would be initialized. This
also prevents compiler warnings about this sort of thing.
2018-10-13 08:36:26 -04:00
Lioncash
aaca7543f0
partition_data_manager: Remove unused includes
...
Gets unused includes out of the headers and moves them into the cpp file
if they're used there instead.
2018-10-13 08:33:49 -04:00
Lioncash
06898263f6
key_manager: Use std::vector's insert() instead of std::copy with a back_inserter
...
If the data is unconditionally being appended to the back of a
std::vector, we can just directly insert it there without the need to
insert all of the elements one-by-one with a std::back_inserter.
2018-10-13 08:29:35 -04:00
Lioncash
e70c08b543
key_manager: Brace long conditional body
...
If a conditional (or it's body) travels more than one line, it should be
braced.
2018-10-13 08:24:21 -04:00
Lioncash
ef5639bfbb
key_manager: Don't assume file seeks and reads will always succeed
...
Given the filesystem should always be assumed to be volatile, we should
check and bail out if a seek operation isn't successful. This'll prevent
potentially writing/returning garbage data from the function in rare
cases.
This also allows removing a check to see if an offset is within the
bounds of a file before perfoming a seek operation. If a seek is
attempted beyond the end of a file, it will fail, so this essentially
combines two checks into one in one place.
2018-10-13 08:24:18 -04:00
Lioncash
82ea1cf35a
key_manager: Remove unnecessary seek in DeriveSDSeed()
...
Given the file is opened a few lines above and no operations are done,
other than check if the file is in a valid state, the read/write pointer
will always be at the beginning of the file.
2018-10-13 08:08:44 -04:00
Zach Hilman
f61379f8d2
patch_manager: Move non-Program RomFS patch log to Debug
...
Normal Program-type patches will still be logged to aid in debugging, but for others (mainly Control), it was moved to Debug.
2018-10-12 23:27:19 -04:00
Zach Hilman
90c07e0d33
content_archive: Move get key log to Trace level
...
Avoids printing live keys in the general log.
2018-10-12 23:25:59 -04:00
bunnei
1584fb6b38
Merge pull request #1409 from DarkLordZach/key-derivation
...
crypto: Add support for full key derivation
2018-10-12 22:55:49 -04:00
bunnei
c2aa4293ec
Merge pull request #1483 from lioncash/codeset
...
kernel/process: Make CodeSet a regular non-inherited object
2018-10-12 22:52:12 -04:00
bunnei
38b027aa81
Merge pull request #1484 from FernandoS27/calculate-size
...
Implemented helper function to correctly calculate a texture's size
2018-10-12 21:12:53 -04:00
bunnei
ffcda6c08e
Merge pull request #1481 from lioncash/typo
...
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
2018-10-12 20:46:55 -04:00
FernandoS27
97b6405a17
Implemented helper function to correctly calculate a texture's size
2018-10-12 14:21:53 -04:00
bunnei
2946d4bdbe
Merge pull request #1467 from ogniK5377/svcbreak-type-fix
...
Fixed incorrect types for svcBreak
2018-10-12 12:08:08 -04:00
Lioncash
1abed2f4c4
kernel/process: Make CodeSet a regular non-inherited object
...
These only exist to ferry data into a Process instance and end up going
out of scope quite early. Because of this, we can just make it a plain
struct for holding things and just std::move it into the relevant
function. There's no need to make this inherit from the kernel's Object
type.
2018-10-12 12:07:32 -04:00
bunnei
0f7ab3e21a
Merge pull request #1478 from ogniK5377/remap-invalidhandle-remap
...
Passing an invalid nmap handle to Remap should throw an error
2018-10-12 12:07:14 -04:00
bunnei
f9d03b1d41
Merge pull request #1482 from lioncash/init
...
thread: Remove unnecessary memset from ResetThreadContext()
2018-10-12 12:06:51 -04:00
bunnei
dc328440c8
Merge pull request #1479 from ogniK5377/nmap-revamped
...
Added error codes for nvmap
2018-10-12 12:06:22 -04:00
Lioncash
b492d43e63
thread: Remove unnecessary memset from ResetThreadContext()
...
Regular value initialization is adequate here for zeroing out data. It
also has the benefit of not invoking undefined behavior if a non-trivial
type is ever added to the struct for whatever reason.
2018-10-12 10:57:31 -04:00
David Marcec
4d2de6564f
Returned an error before processing other remaps
2018-10-12 17:10:41 +11:00
David Marcec
c55b5de0fb
Made the minimum alignment more clear
2018-10-12 17:06:46 +11:00
Lioncash
4ccf30dfaa
svc: Fix typos in sanitizing checks for MapMemory/UnmapMemory
2018-10-12 01:48:26 -04:00
David Marcec
98b760c645
Wip
2018-10-12 16:28:00 +11:00
bunnei
9bf409f275
Merge pull request #1474 from ogniK5377/hwopus-decodeinterleavedwithperformance
...
HwOpus, Implemented DecodeInterleavedWithPerformance
2018-10-11 16:52:13 -04:00
bunnei
3fd26b7147
Merge pull request #1472 from lioncash/san
...
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
2018-10-11 16:51:41 -04:00
bunnei
bc293e1751
Merge pull request #1476 from bunnei/fix-unmap-flush
...
nvhost_as_gpu: Flush/invalidate CPU VAddr on UnmapBuffer.
2018-10-11 16:51:28 -04:00
David Marcec
85b0d9a7be
Dynamically decide handheld variant based on supported npad id priority
...
Kirby input still doesn't work, should fix a lot of other games
2018-10-12 02:56:49 +11:00
David Marcec
c7763603ef
Added error codes for nvmap
2018-10-11 23:06:34 +11:00
David Marcec
5dd538cace
Passing an invalid nmap handle to Remap should throw an error
...
Added error for invalid nmap handles
2018-10-11 20:32:21 +11:00
ReinUsesLisp
17290a4416
gl_shader_decompiler: Implement VMAD
2018-10-11 04:15:10 -03:00
bunnei
bf795edac4
nvhost_as_gpu: Flush CPU VAddr on UnmapBuffer.
2018-10-11 00:19:36 -04:00
Lioncash
28ec921d0d
core/CMakeLists: Make all web_service-related libraries private
...
Now that all external dependencies are hidden, we can remove
json-headers from the publically linked libraries, as the use of this
library is now completely hidden from external users of the web_service
library. We can also make the web_services library private as well,
considering it's not a requirement. If a library needs to link in
web_service, it should be done explicitly -- not via indirect linking.
2018-10-10 22:29:39 -04:00
Lioncash
183a664405
web_backend: Make Client use the PImpl idiom
...
Like with TelemetryJson, we can make the implementation details private
and avoid the need to expose httplib to external libraries that need to
use the Client class.
2018-10-10 22:29:35 -04:00
David Marcec
fa10905e1e
HwOpus, Implemented DecodeInterleavedWithPerformance
...
Used by sonic ages
2018-10-11 13:06:56 +11:00
bunnei
6d82c4adf9
Merge pull request #1458 from FernandoS27/fix-render-target-block-settings
...
Fixed block height settings for RenderTargets and Depth Buffers
2018-10-10 21:24:07 -04:00
Lioncash
a7725d354c
telemetry_json: Use the PImpl idiom to avoid unnecessary dependency exposure
...
Users of the web_service library shouldn't need to care about an
external library like json.h. However, given it's exposed in our
interface, this requires that other libraries publicly link in the JSON
library. We can do better.
By using the PImpl idiom, we can hide this dependency in the cpp file
and remove the need to link that library in altogether.
2018-10-10 21:10:36 -04:00
Lioncash
c422f146ee
telemetry_json: Add missing override specifier to the destructor of TelemetryJson
2018-10-10 21:00:39 -04:00
Lioncash
881bb2295d
telemetry_json: Take std::string parameters by value
...
Taking them by const reference isn't advisable here, because it means
the std::move calls were doing nothing and we were always copying the
std::string instances.
2018-10-10 20:59:28 -04:00
Lioncash
a34e5e51d8
telemetry_json: Remove unnecessary includes
...
Removes unused includes. Also rectifies a missing <chrono> include.
2018-10-10 20:57:31 -04:00
Lioncash
6e6ce2ce39
core/CMakeLists: Use target_compile_definitions instead of add_definitions for specifying ENABLE_WEB_SERVICE
...
Avoids introducing the definition to the whole directory space and
localizes it to being added to the library that needs it.
2018-10-10 20:54:02 -04:00
Lioncash
72e9cb523e
svc: Add missing address range sanitizing checks to MapMemory/UnmapMemory
...
This adds the missing address range checking that the service functions
do before attempting to map or unmap memory. Given that both service
functions perform the same set of checks in the same order, we can wrap
these into a function and just call it from both functions, which
deduplicates a little bit of code.
2018-10-10 20:30:49 -04:00
bunnei
03ec936ca0
Merge pull request #1460 from FernandoS27/scissor_test
...
Implemented Scissor Testing
2018-10-10 12:04:10 -04:00
bunnei
ee1b204749
Merge pull request #1425 from ReinUsesLisp/geometry-shaders
...
gl_shader_decompiler: Implement geometry shaders
2018-10-10 11:51:29 -04:00
David Marcec
9e924f2ef2
Added BeginPermitVibrationSession and EndPermitVibrationSession
...
Used by Mario Party
2018-10-11 00:58:47 +11:00
David Marcec
3d75c9cd7a
Added GetLedPattern and HandheldVariant
...
HandheldVariant is for specific games which expect handheld controllers to be at position 8(kirby), however this doesn't fix all games as some games require handhelds to be at position 0(snipperclips)
2018-10-10 21:38:43 +11:00
Lioncash
5c0408596f
kernel/thread: Use a regular pointer for the owner/current process
...
There's no real need to use a shared pointer in these cases, and only
makes object management more fragile in terms of how easy it would be to
introduce cycles. Instead, just do the simple thing of using a regular
pointer. Much of this is just a hold-over from citra anyways.
It also doesn't make sense from a behavioral point of view for a
process' thread to prolong the lifetime of the process itself (the
process is supposed to own the thread, not the other way around).
2018-10-10 02:04:55 -04:00
David Marcec
46cdeb4549
Kirby expects handheld controllers to be at position 8
2018-10-10 14:21:56 +11:00
bunnei
5461b21c7a
Merge pull request #1461 from lioncash/warn
...
ips_layer: Silence truncation and conversion warnings
2018-10-09 22:30:01 -04:00
bunnei
3ac874c32e
Merge pull request #1464 from lioncash/unique
...
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
2018-10-09 22:29:39 -04:00
FernandoS27
5f4ee6f0c8
Add memory Layout to Render Targets and Depth Buffers
2018-10-09 22:28:19 -04:00
David Marcec
f43815af5d
Added the ability to "disconnect" individual npads
...
Fixes arms
2018-10-10 13:15:39 +11:00
David Marcec
b79c294c02
Removed unneeded forward declarations
2018-10-10 13:15:37 +11:00
David Marcec
5857aea94e
Addressed changes for better hid
2018-10-10 13:15:37 +11:00
David Marcec
56f35ab262
"Better Hid" rework part 1
2018-10-10 13:15:35 +11:00
David Marcec
2db37ddea9
Changed all casts in svc_wrap.h to be static_cast instead
2018-10-10 12:49:08 +11:00
David Marcec
09b6dda8f0
Use a better name than "dont_kill_application"
...
signal_debugger seems like a more fitting name
2018-10-10 12:27:44 +11:00
David Marcec
a4412c8e22
Fixed incorrect types for svcBreak
...
svcBreak reason should be a u32, not a u64.
2018-10-10 12:23:50 +11:00
FernandoS27
af653906d0
Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depth
2018-10-09 21:14:32 -04:00
bunnei
bc6939beaa
Merge pull request #1466 from lioncash/unused
...
gl_shader_decompiler: Remove unused variables in TMML's implementation
2018-10-09 19:03:06 -04:00
bunnei
0b3d4db98b
Merge pull request #1463 from FearlessTobi/port-4310
...
Port citra-emu/citra#4310 : "Handle touch input"
2018-10-09 19:02:41 -04:00
bunnei
fe16905de1
Merge pull request #1459 from ogniK5377/break
...
svcBreak, Signalling to the debugger should not kill execution
2018-10-09 16:57:37 -04:00
bunnei
89939be9e6
Merge pull request #1465 from lioncash/telemetry
...
telemetry_session: Minor miscellaneous changes
2018-10-09 16:56:56 -04:00
bunnei
141a0d9386
Merge pull request #1462 from lioncash/move
...
ips_layer: Minor miscellaneous changes
2018-10-09 16:56:32 -04:00
bunnei
6aab309e41
Merge pull request #1455 from ogniK5377/smo-softlockfix
...
Fixed smo softlock due to incorrect effect state updating
2018-10-09 16:56:11 -04:00
Lioncash
6e27c5d4d1
gl_shader_decompiler: Remove unused variables in TMML's implementation
...
Given "y" isn't always used, but "x" is, we can rearrange this to avoid
unused variable warnings by changing the names of op_a and op_b
2018-10-09 15:44:37 -04:00
Lioncash
e3b4d31f4e
telemetry_session: Remove doxygen comment for a non-existent parameter
...
There's no "func" parameter, so this can just be removed.
2018-10-09 14:52:10 -04:00
Lioncash
8aa4889e76
telemetry_session: Add missing includes
...
Prevents potential compilation issues in the future by including missing
headers for certain functions and types.
2018-10-09 14:51:39 -04:00
Lioncash
1964f4bbb3
telemetry_session: Remove unimplemented FinalizeAsyncJob prototype
...
This isn't implemented anywhere, so it can just be removed.
2018-10-09 14:46:31 -04:00
Lioncash
8723cc8798
telemetry_session: Use a std::array in GenerateTelemetryId()
...
We don't need to potentially heap-allocate a std::string instance here,
given the data is known ahead of time. We can just place it within an
array and pass this to the mbedtls functions.
2018-10-09 14:46:26 -04:00
Lioncash
6636f3ff47
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
...
Neither of these functions require the use of shared ownership of the
returned pointer. This makes it more difficult to create reference
cycles with, and makes the interface more generic, as std::shared_ptr
instances can be created from a std::unique_ptr, but the vice-versa
isn't possible. This also alters relevant functions to take NCA
arguments by const reference rather than a const reference to a
std::shared_ptr. These functions don't alter the ownership of the memory
used by the NCA instance, so we can make the interface more generic by
not assuming anything about the type of smart pointer the NCA is
contained within and make it the caller's responsibility to ensure the
supplied NCA is valid.
2018-10-09 14:38:03 -04:00
NeatNit
4f24343f32
implemented touch in Qt and SDL
...
change TouchToPixelPos to return std::pair<int, int>
static_cast (SDL)
various minor style and code improvements
style - PascalCase for function names
made touch events private
const pointer arg in touch events
make TouchToPixelPos a const member function
did I do this right?
braces on barely-multiline if
remove question comment (confirmed in Discord)
fixed consts
remove unused parameter from TouchEndEvent
DRY - High-DPI scaled touch put in separate function
also fixes a bug where if you start touching (with either mouse or touchscreen) and drag the mouse to the LEFT of the emulator window, the touch point jumps to the RIGHT side of the touchscreen; draggin to above the window would make it jump to the bottom.
implicit conversion from QPoint to QPointF, apparently
I have no idea what const even means but I'll put it here anyway
remove unused or used-once variables
make touch scaling functions const, and put their implementations together
removed unused FingerID parameters
QTouchEvent forward declaration; add comment to TouchBegin that was lost in an edit
better DRY in SDL
To do -> TODO(NeatNit)
remove unused include
2018-10-09 20:26:57 +02:00
Lioncash
465175cdf5
ips_layer: Avoid constructing std::vector instances where not necessary
...
We can just compare the existing std::vector instance with a constexpr
std::array containing the desired match. This is lighter resource-wise,
as we don't need to allocate on the heap.
2018-10-09 14:10:22 -04:00
Lioncash
9ff743bc0a
ips_layer: Remove unnecessary explicit std::pair constructor in std::array
...
Makes the layout of the array consistent, by making all elements match,
instead of special-casing the first one.
2018-10-09 14:10:22 -04:00
Lioncash
f7d2889fb4
ips_layer: Add missing includes
...
Adds missing includes to prevent potential compilation issues in the
future. Also moves the definition of a struct into the cpp file, so that
some includes don't need to be introduced within the header.
2018-10-09 14:10:13 -04:00
Lioncash
93ac8d0fea
ips_layer: std::move data within PatchIPS() and Apply()
...
We don't need to make a copy of the read data, so we can std::move it
into the make_shared call here.
2018-10-09 14:06:44 -04:00
Lioncash
567e818440
ips_layer: Silence truncation and conversion warnings
...
Makes type conversions explicit to avoid compiler warnings.
2018-10-09 13:18:23 -04:00
FernandoS27
be97fc884d
Implement Scissor Test
2018-10-08 21:36:23 -04:00
David Marcec
f5631e78d1
Added bitfield instead of manually checking if the bit is set
2018-10-09 12:11:14 +11:00
FernandoS27
30ff42b8cc
Assert Scissor tests
2018-10-08 20:49:36 -04:00
David Marcec
a47c1c77e6
EffectOutStatus padding is now in hex
2018-10-09 11:20:54 +11:00
David Marcec
af3ba94b2a
Actual kill execution when the bit isn't set, not the other way around
2018-10-09 11:14:48 +11:00
David Marcec
c50f66a8eb
svcBreak, Signalling to the debugger should not kill execution
...
When loading NROs, svcBreak is called to signal to the debugger that a new "module" is loaded. As no debugger is technically attached we shouldn't be killing the programs execution.
2018-10-09 11:10:30 +11:00
bunnei
561d79e034
Merge pull request #1423 from DarkLordZach/romfs-file-exts
...
fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS
2018-10-08 12:31:27 -04:00
bunnei
6b48ba5271
Merge pull request #1424 from DarkLordZach/ips-witch
...
ips_layer: Add support for IPSwitch executable patches
2018-10-08 12:30:33 -04:00
bunnei
fd891ee9c0
Merge pull request #1456 from ogniK5377/aoc-u-fixups
...
Fixed assertion due to CountAddOnContent & Casting warnings
2018-10-08 01:21:05 -04:00
bunnei
3f1f82a8c4
Merge pull request #1457 from ogniK5377/unmap-buffer
...
Unmapping an unmapped buffer should succeed
2018-10-08 01:20:18 -04:00
David Marcec
c5c184246d
Unmapping an unmapped buffer should succeed
...
Hardware tests show that trying to unmap an unmapped buffer already should always succeed. Hardware test was tested up to 32 iterations of attempting to unmap
2018-10-08 13:26:48 +11:00
ReinUsesLisp
7c2d6ef210
gl_shader_decompiler: Move position varying location from 15 to 0 and apply an offset
2018-10-07 17:36:00 -03:00
ReinUsesLisp
ee4d538850
gl_shader_decompiler: Implement geometry shaders
2018-10-07 17:36:00 -03:00
ReinUsesLisp
4d0c682468
video_core: Allow LabelGLObject to use extra info on any object
2018-10-07 17:27:49 -03:00
Zach Hilman
f945e9767c
nso/nro: Use default allocation size for arg_data
2018-10-07 14:32:33 -04:00
Zach Hilman
081f5c1dbf
cmd: Support passing game arguments from command line
...
Uses -p (--program) and following string as args.
2018-10-07 14:32:32 -04:00
Zach Hilman
8bbc12b9c2
qt: Add UI option to configure arguments
2018-10-07 14:32:06 -04:00
Zach Hilman
95dff555a4
settings: Add program_args string setting
2018-10-07 14:32:05 -04:00
Zach Hilman
e09505ff61
nso/nro: Add NSO arguments structure to data section
...
Only added if arguments string is non-empty and a pass is requested by loader.
2018-10-07 14:30:15 -04:00
Zach Hilman
3ec054643e
partition_data_manager: Rename system files for hekate
...
x
2018-10-07 13:16:23 -04:00
Zach Hilman
8f958b89e7
qt: Add rederive keyset menu option
2018-10-07 13:16:04 -04:00
Zach Hilman
3edafc6802
qt: Add key derivation progress bar on initial setup
2018-10-07 13:15:11 -04:00
Zach Hilman
29dc6f4519
crypto: Add PartitionDataManager
...
Keeps track of system files for key derivation
2018-10-07 13:15:11 -04:00
Zach Hilman
4aad010f7a
key_manager: Add support for loading keys from partition data
2018-10-07 13:15:11 -04:00
Zach Hilman
d041d6231c
key_manager: Add ETicket key derivation
...
Derives titlekeys
2018-10-07 13:15:11 -04:00
Zach Hilman
a57aac5772
key_manager: Add base key derivation
...
Derives master keys, game encryption keys, and package1/2 keys
2018-10-07 13:15:11 -04:00
Zach Hilman
d7398283e3
key_manager: Add BIS key getter
2018-10-07 13:15:11 -04:00
Zach Hilman
d6a0d5d432
key_manager: Add support for more keys
...
TSEC, SBK, BIS, and other Sources for proper derivation
2018-10-07 13:15:11 -04:00
Zach Hilman
c79d2ca6cf
key_manager: Add keyblob support
2018-10-07 13:15:11 -04:00
Zach Hilman
e4602748d6
key_manager: Add support for crypto revisions past 04
2018-10-07 13:15:11 -04:00
Zach Hilman
9e34303fb9
key_manager: Add support for comments in keyfiles
2018-10-07 13:15:11 -04:00
Zach Hilman
1fa6ee4723
vfs: Move forward declarations to separate file
2018-10-07 13:15:11 -04:00
Zach Hilman
ce05df0a6d
key_manager: Add support for console-specific keyfile
2018-10-07 13:15:11 -04:00
Zach Hilman
721632fe66
key_manager: Rename KEK to Kek
2018-10-07 13:15:11 -04:00
David Marcec
fa3f3cd07f
Fixed assertion due to CountAddOnContent
...
Word count should be 3 since we're pushing a result code and a u32.
Also fixed up compiler warnings due to casting
2018-10-08 00:25:46 +11:00
bunnei
6e4d2e672d
Merge pull request #1396 from DarkLordZach/packed-updates
...
loader: Add support for packed updates
2018-10-06 23:58:24 -04:00
David Marcec
ceef334c1c
Fixups for softlock
2018-10-07 14:25:39 +11:00
David Marcec
2534af040e
Fixed missing return
...
Softlock explanation:
after effects are initialized in smo, nothing actually changes the state. It expects the state to always be initialized. With the previous testing, updating the states much like how we handle the memory pools continue to have the softlock(which is why I said it probably wasn't effects) after further examination it seems like effects need to be initialized but the state remains unchanged until further notice. For now, assertions are added for the aux buffers to see if they update, unable to check as I haven't gotten smo to actually update them yet.
2018-10-07 14:19:55 +11:00
bunnei
2c0b0ad50d
Merge pull request #1446 from bunnei/fast_fermi_copy
...
gl_rasterizer: Implement accelerated Fermi2D copies.
2018-10-06 23:18:52 -04:00
bunnei
1cc5e6e9bc
Merge pull request #1437 from FernandoS27/tex-mode2
...
Implemented Depth Compare, Shadow Samplers and Texture Processing Modes for TEXS and TLDS
2018-10-06 23:14:27 -04:00
David Marcec
2de52e3af6
Fixed smo softlock
2018-10-07 14:14:09 +11:00
bunnei
6f420a40cf
Merge pull request #1453 from FearlessTobi/port-4311
...
Port citra-emu/citra#4311 : "Remove "#" in the version number"
2018-10-06 23:12:58 -04:00
bunnei
44a3baf410
Merge pull request #1451 from FearlessTobi/port-4140
...
Port citra-emu/citra#4140 : "misc input tab improvements"
2018-10-06 23:11:32 -04:00
Carl Kenner
f5f6292810
logging: Add DebuggerBackend for logging to Visual Studio
2018-10-07 13:24:04 +10:30
bunnei
450c0a5adf
Merge pull request #1448 from ogniK5377/frontend-access
...
Ported #4296 from citra
2018-10-06 22:25:29 -04:00
Mat M
72a804b149
Merge pull request #1454 from ReinUsesLisp/fixup-draw
...
gl_rasterizer: Fixup undefined behaviour in SetupDraw
2018-10-06 22:24:08 -04:00
ReinUsesLisp
0ecd181cca
gl_rasterizer: Fixup undefined behaviour in SetupDraw
2018-10-06 23:22:48 -03:00
bunnei
2fbb20b2b5
yuzu/yuzu_cmd: Add checks for required extension ARB_copy_image.
2018-10-06 12:06:40 -04:00
FernandoS27
752faff2bc
Implemented Depth Compare and Shadow Samplers
2018-10-06 11:27:54 -04:00
fearlessTobi
8e6311bfd2
Remove "#" in the version number
...
So that people can stop using it in issue/pr comments and randomly link some other issue/pr unintentionally.
2018-10-06 15:51:37 +02:00
zhupengfei
690f326613
citra_qt/configuration: misc input tab improvements
...
* Added a context menu on the buttons including Clear & Restore Default
* Allow clearing (unsetting) inputs. Added a Clear All button
* Allow restoring a single input to default (instead of all)
2018-10-06 15:43:49 +02:00
David Marcec
612ce89eca
Added forward define for ServerPort
2018-10-06 17:47:33 +10:00
bunnei
9aec85d39c
fermi_2d: Implement simple copies with AccelerateSurfaceCopy.
2018-10-06 03:20:04 -04:00
bunnei
011cf77796
gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies.
2018-10-06 03:20:04 -04:00
bunnei
749aef3dd0
gl_rasterizer_cache: Implement a simpler surface copy using glCopyImageSubData.
2018-10-06 03:20:04 -04:00
Lioncash
efd956e6ff
qt: Update telemetry links
...
These were pointing to a non-existent webpage.
2018-10-06 03:16:39 -04:00
David Marcec
f84b9ed4e8
Ported #4296 from citra
...
This will allow us to easily remove the use of "NFC" in "System"
2018-10-06 16:49:01 +10:00
bunnei
b8b90ce6e6
Merge pull request #1332 from FearlessTobi/port-web-backend
...
Port web_service from Citra
2018-10-06 02:43:09 -04:00
Lioncash
6ddf8f34db
kernel/mutex: Amend behavior of TransferMutexOwnership()
...
This was the result of a typo accidentally introduced in
e51d715700
. This restores the previous
correct behavior.
The behavior with the reference was incorrect and would cause some games
to fail to boot.
2018-10-06 01:13:02 -04:00
bunnei
e6ee31a8e9
Merge pull request #1440 from lioncash/array
...
ui_settings: Place definition of the theme array within the cpp file
2018-10-05 22:54:01 -04:00
bunnei
d3bfb102d8
Merge pull request #1438 from ReinUsesLisp/quads
...
gl_rasterizer: Implement quads topology
2018-10-05 22:53:22 -04:00
balika011
1a5d6de0d4
thread: Make the scheduler pointer a regular pointer
...
Conceptually, it doesn't make sense for a thread to be able to persist
the lifetime of a scheduler. A scheduler should be taking care of the
threads; the threads should not be taking care of the scheduler.
If the threads outlive the scheduler (or we simply don't actually
terminate/shutdown the threads), then it should be considered a bug
that we need to fix.
Attributing this to balika011, as they opened #1317 to attempt to fix
this in a similar way, but my refactoring of the kernel code caused
quite a few conflicts.
2018-10-05 14:53:01 -04:00
bunnei
e51d715700
Merge pull request #1439 from lioncash/thread
...
kernel/thread: Make all instance variables private
2018-10-05 13:41:54 -04:00
bunnei
fe292573de
Merge pull request #1442 from lioncash/format
...
text_formatter: Avoid unnecessary string temporary creation in PrintMessage()
2018-10-05 10:48:58 -04:00
Zach Hilman
38c2ac95af
romfs_factory: Extract packed update setter to new function
2018-10-05 08:53:51 -04:00
Zach Hilman
5acaeb04c4
patch_manager: Add support for NSP packed updates
...
Reads as Update (NSP) in add-ons
2018-10-05 08:48:44 -04:00
Zach Hilman
cf7aba4817
game_list: Add XCI update versioning to game list
2018-10-05 08:47:55 -04:00
Zach Hilman
d79d4fd764
patch_manager: Add support for packed updates
...
Will prefer any installed update over the packed version.
2018-10-05 08:47:24 -04:00
Zach Hilman
5045748829
loader: Add getter for packed update
...
Reads the update included with the game if it has one and adds the new ErrorNoPackedUpdate status.
2018-10-05 08:46:31 -04:00
Zach Hilman
e948fbf5d0
loader: Add ReadRomFSIVFCOffset to NSP, XCI, and NAX loaders
...
Fixes errors with certain updates
2018-10-05 08:46:31 -04:00
Lioncash
6f16826260
text_formatter: Avoid unnecessary string temporary creation in PrintMessage()
...
operator+ for std::string creates an entirely new string, which is kind
of unnecessary here if we just want to append a null terminator to the
existing one.
Reduces the total amount of potential allocations that need to be done
in the logging path.
2018-10-04 23:55:53 -04:00
Zach Hilman
d0e6b93695
patch_manager: Avoid romfs_ext requirement for patching
2018-10-04 14:09:11 -04:00
Zach Hilman
c1e069c066
fsmitm_romfsbuild: Extract stubs and IPS to romfs_ext dir
2018-10-04 12:29:20 -04:00
Zach Hilman
bc4bec8a60
fsmitm_romfsbuild: Add support for stubbing and IPS patches in LFS
2018-10-04 12:29:14 -04:00
Zach Hilman
110d578470
ips_layer: Fix inaccuracies with comments and flags
...
Specifically bugs/crashes that arise when putting them in positions that are legal but not typical, such as midline, between patch data, or between patch records.
2018-10-04 12:23:27 -04:00
Zach Hilman
70bd2bb1d3
ips_layer: Deduplicate resource usage
2018-10-04 11:34:36 -04:00
Zach Hilman
9669cdb710
ips_layer: Add support for escape sequences and midline comments
...
More accurately follows IPSwitch specification.
2018-10-04 11:34:30 -04:00
Zach Hilman
8886f2e55e
patch_manager: Add support for IPSwitch format patches
2018-10-04 11:34:06 -04:00
Zach Hilman
306739c2c4
ips_layer: Add IPSwitchCompiler to process IPSwitch format
2018-10-04 11:32:10 -04:00
Zach Hilman
f62227aa95
hex_util: Add HexVectorToString and HexStringToVector
...
Converts between bytes and strings when the size is not known at compile time.
2018-10-04 11:32:04 -04:00
Lioncash
30dfd89126
ui_settings: Place definition of the theme array within the cpp file
...
Placing the array wholesale into the header places a copy of the whole
array into every translation unit that uses the data, which is wasteful.
Particularly given that this array is referenced from three different
translation units.
This also changes the array to contain pairs of const char*, rather than
QString instances. This way, the string data is able to be fixed into
the read-only segment of the program, as well as eliminate static
constructors/heap allocation immediately on program start.
2018-10-04 09:43:51 -04:00
bunnei
f85f2b3728
Merge pull request #1415 from DarkLordZach/ips
...
file_sys: Add support for loading IPS patches
2018-10-04 09:42:37 -04:00
Lioncash
baed7e1fba
kernel/thread: Make all instance variables private
...
Many of the member variables of the thread class aren't even used
outside of the class itself, so there's no need to make those variables
public. This change follows in the steps of the previous changes that
made other kernel types' members private.
The main motivation behind this is that the Thread class will likely
change in the future as emulation becomes more accurate, and letting
random bits of the emulator access data members of the Thread class
directly makes it a pain to shuffle around and/or modify internals.
Having all data members public like this also makes it difficult to
reason about certain bits of behavior without first verifying what parts
of the core actually use them.
Everything being public also generally follows the tendency for changes
to be introduced in completely different translation units that would
otherwise be better introduced as an addition to the Thread class'
public interface.
2018-10-04 00:14:15 -04:00
ReinUsesLisp
3e2380327a
gl_rasterizer: Implement quads topology
2018-10-04 00:03:44 -03:00
bunnei
cf3a6dd4a1
Merge pull request #1434 from DarkLordZach/dlc-edge-case
...
aoc_u: Fix edge case with DLC that causes breaks
2018-10-03 21:39:23 -04:00
bunnei
af672d8abf
Merge pull request #1428 from lioncash/qt
...
configure_graphics: Make functions internally linked where applicable
2018-10-03 21:38:29 -04:00
bunnei
839dbd9710
Merge pull request #1431 from lioncash/audio
...
configure_audio: Minor cleanup-related changes
2018-10-03 19:14:22 -04:00
bunnei
39f08e551d
Merge pull request #1433 from lioncash/fs
...
services/fsp_srv: Amend service function table
2018-10-03 19:13:57 -04:00
bunnei
5ae5610c13
Merge pull request #1429 from lioncash/translate
...
configure_input: Make analog mapping strings translatable
2018-10-03 19:13:20 -04:00
bunnei
15b2e2ec13
Merge pull request #1436 from lioncash/view
...
submission_package: Cleanup and bug fixes
2018-10-03 19:05:19 -04:00
bunnei
e7e347a828
Merge pull request #1432 from lioncash/lbl
...
service/lbl: Update service function table
2018-10-03 18:45:15 -04:00
bunnei
137d43fa2f
Merge pull request #1426 from FearlessTobi/port-4253
...
Port citra-emu/citra#4253 : "common/string_util cleanup"
2018-10-03 18:44:51 -04:00
bunnei
8679934693
Merge pull request #1435 from lioncash/xci
...
card_image: Ensure program_nca_status is always initialized
2018-10-03 18:44:28 -04:00
FernandoS27
f664437ae8
Implemented Texture Processing Modes in TEXS and TLDS
2018-10-03 08:41:12 -04:00
Lioncash
024eec02a5
submission_package: Avoid dangling std::string_view within SetTicketKeys()
...
GetName() returns a std::string by value, not by reference, so after the
std::string_view is constructed, it's not well defined to actually
execute any member functions of std::string_view that attempt to access
the data, as the std::string has already been destroyed. Instead, we can
just use a std::string and erase the last four characters.
2018-10-03 02:13:51 -04:00
Lioncash
dade709f63
submission_package: Correct location of null check within SetTicketKeys()
...
If a ticket file was ever a null pointer, we'd cause a null pointer
dereference, as we were calling GetExtension() on the pointer instance.
2018-10-03 02:06:30 -04:00
Lioncash
02841052aa
submission_package: Use std::string's rfind() when looking for the extension in InitializeExeFSAndRomFS()
...
When searching for a file extension, it's generally preferable to begin
the search at the end of the string rather than the beginning, as the
whole string isn't going to be walked just to check for something at the
end of it.
2018-10-03 01:51:01 -04:00
Lioncash
37ee05f7c0
submission_package: Ensure the 'extracted' member variable is always initialized
...
If an error occurs when constructing the PartitionFilesystem instance,
the constructor would be exited early, which wouldn't initialize the
extracted data member, making it possible for other code to perform an
uninitialized read by calling the public IsExtractedType() member
function. This prevents that.
2018-10-03 01:47:34 -04:00
Lioncash
ccf0a9cb38
submission_package: Move ExeFS and RomFS initialization to its own function
...
Like the other two bits of factored out code, this can also be put
within its own function. We can also modify the code so that it accepts
a const reference to a std::vector of files, this way, we can
deduplicate the file retrieval.
Now the constructor for NSP isn't a combination of multiple behaviors in
one spot. It's nice and separate.
2018-10-03 01:46:07 -04:00
Lioncash
fd312abedd
submission_package: Move NCA reading code to its own function
...
This too, is completely separate behavior from what is in the
constructor, so we can move this to its own isolated function to keep
everything self-contained.
2018-10-03 01:35:41 -04:00
Lioncash
4f18d35888
submission_package: Move ticket key setting to its own function
...
This behavior is entirely independent of the surrounding code, so it can
be put in its own function to keep the behavior separate.
2018-10-03 01:20:57 -04:00
Lioncash
0d83f8f255
submission_package: Invert conditionals within NSP's constructor to reduce nesting
...
We can use early continues here to reduce the amount of nesting.
2018-10-03 01:11:16 -04:00
Lioncash
cf463a9b67
card_image: Ensure program_nca_status is always initialized
...
If any of the error paths before the NCA retrieval are taken, it'll
result in program_nca_status being left in an inconsistent state. So we
initialize it by default with a value indicating an error.
2018-10-02 23:16:05 -04:00
Zach Hilman
9aaf1c0df8
aoc_u: Fix edge case with DLC that causes breaks
...
In some games (Splatoon 2 and Splatoon 2 Splatfest World Premiere, notably), pass offset=0 and count=2047 into the ListAddOnContent method which should return all DLCs for the current title. The (presumably) intended behavior is to successfully return a empty array but because of a < v. <= in an if statement, a failure error code was returned causing these games to svcBreak. This fixes that if statement.
2018-10-02 21:56:32 -04:00
Lioncash
cba78dc70a
services/fsp_srv: Amend service function table
...
Adds new functions that have been given names to the table. Information
is based off what is provided on Switchbrew.
2018-10-02 21:34:33 -04:00
Lioncash
d80dd2b812
service/lbl: Update service function table
...
Amends the lbl service table to include new names of functions that were
added to Switchbrew.
2018-10-02 21:15:59 -04:00
Lioncash
61b144bbf3
configure_input: Make analog mapping strings translatable
...
These strings are user-facing, so they should be specified as
translatable with tr().
2018-10-02 20:28:45 -04:00
Lioncash
1c7c798e9e
configure_audio: Move combo box index setting to their own functions
...
Keeps the individual behaviors in their own functions, and cleanly
separate. We can also do a little better by converting the relevant IDs
within the core to a QString only once, instead of converting every
string into a std::string.
2018-10-02 20:24:30 -04:00
Lioncash
57e47bae32
configure_audio: Use QString::fromStdString() for converting audio device names
...
This ensures that the proper codec will always be used no matter what.
It also avoids relying on ASCII conversions.
2018-10-02 19:50:51 -04:00
Lioncash
226dc914b3
configure_audio: Add disambiguation comment for the volume percentage string
...
Disambiguates what the string represents to help translators more easily
understand what it is that they're translating. While we're at it, we
can move the code to its own function, so that we don't need to specify
the same string twice.
2018-10-02 19:45:12 -04:00
Lioncash
8f5e2a2b83
configure_graphics: Make functions internally linked where applicable
...
These aren't used outside of this translation unit, so they can be
internally linked.
2018-10-02 19:24:43 -04:00
Zach Hilman
215b65fe75
nso: Optimize loading of IPS patches
...
Avoid resource-heavy classes and remove quasi-duplicated code.
2018-10-02 17:03:38 -04:00
Weiyi Wang
fdb35760a7
string_util: unify UTF8<->UTF16 conversion to codecvt
2018-10-02 16:10:34 +02:00
Weiyi Wang
bfe84f06f2
string_util: remove TString conversion for windows
...
First of all they are foundamentally broken. As our convention is that std::string is always UTF-8, these functions assume that the multi-byte character version of TString (std::string) from windows is also in UTF-8, which is almost always wrong. We are not going to build multi-byte character build, and even if we do, this dirty work should be handled by frontend framework early.
2018-10-02 16:10:20 +02:00
Weiyi Wang
a4595bb939
string_util: remove ShiftJIS/CP1252 conversion function
...
We always use unicode internally. Any dirty work of conversion with other codec should be handled by frontend framework (Qt). Further more, ShiftJIS/CP1252 are not special (they are not code set used by 3ds, or any guest/host dependencies we have), so there is no reason to specifically include them
2018-10-02 16:10:01 +02:00
fearlessTobi
e4daf4bee5
Review comments - part 5
2018-10-02 16:04:10 +02:00
fearlessTobi
ac06105dfe
Review comments -part 4
2018-10-02 15:30:49 +02:00
fearlessTobi
aa48468862
Review comments - part 3
2018-10-02 15:30:48 +02:00
Weiyi Wang
62f9409ba3
web_backend: protect jwt cache with a mutex
2018-10-02 15:30:48 +02:00
fearlessTobi
120d8f3bf7
Address more review comments
2018-10-02 15:30:48 +02:00
fearlessTobi
b4ace6ec6f
Address a bunch of review comments
2018-10-02 15:30:48 +02:00
fearlessTobi
4d139943f2
Port web_service from Citra
2018-10-02 15:30:48 +02:00
Zach Hilman
6d441828e6
deconstructed_rom_directory: Force NSO loader to patch NSOs
2018-10-01 16:02:50 -04:00
Zach Hilman
003b44822a
nso: Add framework to support patching of uncompressed NSOs
2018-10-01 16:02:50 -04:00
Zach Hilman
42fb4e82d3
patch_manager: Add PatchNSO function
...
While PatchExeFS operated on the entire directory, this function operates on the uncompressed NSO. Avoids copying decompression code to PatchManager.
2018-10-01 16:02:50 -04:00
Zach Hilman
4c2a94fa94
patch_manager: Use strings for patch type instead of enum
2018-10-01 16:02:50 -04:00
Zach Hilman
21b2411c44
file_sys: Implement function to apply IPS patches
2018-10-01 16:01:46 -04:00
Zach Hilman
3c9e70fefa
nso: Replace NSOHeader padding bytes with build ID
2018-10-01 16:01:46 -04:00
bunnei
bd14f397ce
Merge pull request #1407 from DarkLordZach/dlc
...
aoc_u: Implement functions and add support for DLC loading
2018-10-01 15:56:39 -04:00
ReinUsesLisp
1835911425
gl_rasterizer: Fixup unassigned point sizes
2018-10-01 01:18:24 -03:00
bunnei
bc679c9b8c
Merge pull request #1330 from raven02/tlds
...
TLDS: Add 1D sampler
2018-09-30 21:53:38 -04:00
bunnei
8391048a83
Merge pull request #1322 from bunnei/tex-cubemap
...
gl_rasterizer_cache: Implement cubemap textures.
2018-09-30 21:19:00 -04:00
bunnei
decc319634
Merge pull request #1403 from DarkLordZach/install-sysnand
...
qt: Install System TitleTypes to System NAND
2018-09-30 21:08:44 -04:00
Zach Hilman
f72046099a
aoc_u: Extract AccumulateAOCTitleIDs to separate function
2018-09-30 21:07:22 -04:00
Zach Hilman
7d86a008e2
aoc_u: Implement GetAddOnContentBaseId
...
Command #5
2018-09-30 21:01:35 -04:00
Zach Hilman
62225ae050
aoc_u: Implement Count, List and Prepare AddOnContent
...
Commands #2 , #3 , and #7
2018-09-30 21:01:35 -04:00
Zach Hilman
aa0c82e405
romfs_factory: Read from all locations with StorageId None
...
Previous behavior was to assert. Seems to mirror expected game behavior.
2018-09-30 21:01:35 -04:00
Zach Hilman
32fc31fb13
patch_manager: Add DLC recognition to PatchManager
2018-09-30 21:01:35 -04:00
bunnei
8f2ad3a66d
Merge pull request #1338 from raven02/service_vi
...
Implement ISystemDisplayService::GetDisplayMode
2018-09-30 15:39:54 -04:00
bunnei
df3799a008
gl_rasterizer_cache: Fixes to how we do render to cubemap.
...
- Fixes issues with Splatoon 2.
2018-09-30 15:10:14 -04:00
bunnei
29782273ec
gl_rasterizer_cache: Add check for array rendering to cubemap texture.
2018-09-30 14:31:58 -04:00
bunnei
f543b43fd0
gl_rasterizer_cache: Implement render to cubemap.
2018-09-30 14:31:58 -04:00
bunnei
15cc729ebd
gl_shader_decompiler: TEXS: Implement TextureType::TextureCube.
2018-09-30 14:31:58 -04:00
bunnei
ed2e0e85c9
gl_rasterizer_cache: Add support for SurfaceTarget::TextureCubemap.
2018-09-30 14:31:58 -04:00
bunnei
871580dcd8
gl_rasterizer_cache: Implement LoadGLBuffer for Texture2DArray.
2018-09-30 14:31:57 -04:00
bunnei
a9aa1db552
gl_rasterizer_cache: Update BlitTextures to support non-Texture2D ColorTexture surfaces.
2018-09-30 14:31:57 -04:00
bunnei
2e1cdde994
gl_rasterizer_cache: Track texture target and depth in the cache.
2018-09-30 14:31:57 -04:00
bunnei
fefb003b23
gl_rasterizer_cache: Workaround for Texture2D -> Texture2DArray scenario.
2018-09-30 14:31:56 -04:00
bunnei
ce452049d3
gl_rasterizer_cache: Keep track of surface 2D size separately from total size.
2018-09-30 14:31:56 -04:00
raven02
b92b4bbeaf
Fix trailing whitespace
2018-09-30 23:51:10 +08:00
Lioncash
541c550753
kernel/svc: Implement svcGetThreadContext()
...
Now that we have all of the rearranging and proper structure sizes in
place, it's fairly trivial to implement svcGetThreadContext(). In the
64-bit case we can more or less just write out the context as is, minus
some minor value sanitizing. In the 32-bit case we'll need to clear out
the registers that wouldn't normally be accessible from a 32-bit
AArch32 exectuable (or process).
2018-09-30 05:29:40 -04:00
Lioncash
dccfe193a9
kernel/process: Add a data member to determine if a process is 64-bit or not.
...
This will be necessary for the implementation of svcGetThreadContext(),
as the kernel checks whether or not the process that owns the thread
that has it context being retrieved is a 64-bit or 32-bit process.
If the process is 32-bit, then the upper 15 general-purpose registers
and upper 16 vector registers are cleared to zero (as AArch32 only has
15 GPRs and 16 128-bit vector registers. not 31 general-purpose
registers and 32 128-bit vector registers like AArch64).
2018-09-30 05:29:40 -04:00
Lioncash
cf9d6c6f52
kernel/process: Make data member variables private
...
Makes the public interface consistent in terms of how accesses are done
on a process object. It also makes it slightly nicer to reason about the
logic of the process class, as we don't want to expose everything to
external code.
2018-09-30 02:30:01 -04:00
Lioncash
16145e2f21
arm_interface: Add missing fpsr/tpidr members to the ThreadContext struct
...
Internally within the kernel, it also includes a member variable for the
floating-point status register, and TPIDR, so we should do the same here to match
it.
While we're at it, also fix up the size of the struct and add a static
assertion to ensure it always stays the correct size.
2018-09-30 02:29:57 -04:00
raven02
4092907687
Implement ISystemDisplayService::GetDisplayMode
2018-09-30 10:04:03 +08:00
Lioncash
a63e6f9dfd
loader: Make the Load() function take a process as a regular reference, not a SharedPtr
...
A process should never require being reference counted in this
situation. If the handle to a process is freed before this function is
called, it's definitely a bug with our lifetime management, so we can
put the requirement in place for the API that the process must be a
valid instance.
2018-09-29 16:00:03 -04:00
bunnei
97c0ac3545
Merge pull request #1412 from lioncash/move
...
kernel/object: Remove unnecessary std::move from DynamicObjectCast()
2018-09-29 11:58:58 -04:00
bunnei
fe5962e073
Merge pull request #1411 from ReinUsesLisp/point-size
...
video_core: Implement point_size and add point state sync
2018-09-29 11:58:39 -04:00
bunnei
8d8366b602
Merge pull request #1406 from ReinUsesLisp/multibind-samplers
...
gl_state: Pack sampler bindings into a single ARB_multi_bind
2018-09-29 10:55:45 -04:00
bunnei
f7b69d61f2
Merge pull request #1395 from lioncash/vm
...
process/vm_manager: Initial modifications to load NPDM metadata
2018-09-29 10:54:39 -04:00
Lioncash
f4c24d0832
kernel/object: Remove unnecessary std::move from DynamicObjectCast()
...
boost::static_pointer_cast for boost::intrusive_ptr (what SharedPtr is),
takes its parameter by const reference. Given that, it means that this
std::move doesn't actually do anything other than obscure what the
function's actual behavior is, so we can remove this. To clarify, this
would only do something if the parameter was either taking its argument
by value, by non-const ref, or by rvalue-reference.
2018-09-28 02:17:57 -04:00
ReinUsesLisp
e3e51d3ddb
video_core: Implement point_size and add point state sync
2018-09-28 02:13:29 -03:00
ReinUsesLisp
b8f1506aa5
gl_state: Pack sampler bindings into a single ARB_multi_bind
2018-09-28 02:04:22 -03:00
bunnei
f7da74d18e
Merge pull request #1360 from FearlessTobi/port-3979
...
Port citra-emu/citra#3979 game_list: move SearchField to game_list_p.h and fix untranslated text
2018-09-27 17:09:11 -04:00
bunnei
fc2419e441
Merge pull request #1394 from lioncash/stream
...
stream: Preserve enum class type in GetState()
2018-09-27 17:05:03 -04:00
Mat M
29ff84ea99
Merge pull request #1389 from PhiBabin/valgrind
...
FPCR register was uninitialized at start up
2018-09-27 15:23:03 -04:00
bunnei
62048edc15
Merge pull request #1377 from FernandoS27/faster-swizzle
...
Improved Fast Swizzle and Legacy Swizzle
2018-09-27 10:00:04 -04:00
Zach Hilman
70e86248fd
qt: Install System TitleTypes to System NAND
...
Fixes an issue where installed system archive NCAs would be installed to user NAND and not recognized by games.
2018-09-27 09:20:06 -04:00
Lioncash
861580f6d2
fsmitm_romfsbuild: std::move std::vector instances in Build()
...
Avoids making copies of large std::vector instances where it's trivially
avoidable to do so.
2018-09-26 17:35:44 -04:00
Lioncash
7ecdaaf189
fsmitm_romfsbuild: Replace manual value aligning with Common::AlignUp()
...
Theres no need to do explicit bitwise arithmetic here, when we have a
function that does this with a more descriptive name.
2018-09-26 17:35:21 -04:00
bunnei
c0445006af
Merge pull request #1399 from lioncash/sched
...
kernel/scheduler: Take ARM_Interface instances by reference
2018-09-26 16:17:18 -04:00
bunnei
efcb83fb41
Merge pull request #1400 from lioncash/header
...
service: Add missing headers inclusions where applicable
2018-09-26 16:11:19 -04:00
bunnei
cc866d1384
Merge pull request #1402 from ReinUsesLisp/asserts
...
video_core: Add asserts for CS, TFB and alpha testing
2018-09-26 16:10:55 -04:00
Lioncash
11104b4883
patch_manager: Invert conditionals within ApplyLayeredFS()
...
Avoids the need to nest code quite a bit by early-exiting in error
cases.
2018-09-25 20:09:23 -04:00
ReinUsesLisp
ab65fde9f4
video_core: Add asserts for CS, TFB and alpha testing
...
Add asserts for compute shader dispatching, transform feedback being
enabled and alpha testing. These have in common that they'll probably break
rendering without logging.
2018-09-25 21:07:00 -03:00
Lioncash
e3b2ef9170
vfs_vector: Amend initializer list order in VectorVfsFile's constructor initializer list
...
Orders the initializer list members to be in the same order that they
would be initialized in. Avoids compiler warnings.
2018-09-25 20:06:21 -04:00
Lioncash
4654f89618
fsmitm_romfsbuild: Avoid type truncation warnings
...
Cast where explicitly necessary and in other cases we can simply modify
the algorithm to accomodate larger data.
2018-09-25 20:06:21 -04:00
Lioncash
91b56c4928
fsmitm_romfsbuild: Remove unnecessary constructors and initializers for RomFSBuildFileContext and RomFSBuildDirectoryContext
...
There's no need to duplicate in-class initializers with a constructor
initializer list. std::strings also initialize to empty by default.
2018-09-25 20:06:21 -04:00
Lioncash
1f92cbc059
fsmitm_romfsbuild: Remove unnecessary loops in Build()
...
The std::vector instances are already initially allocated with all
entries having these values, there's no need to loop through and fill
them with it again when they aren't modified.
2018-09-25 20:06:21 -04:00
Lioncash
fa9e0f9c8b
fsmitm_romfsbuild: Make auto variable into a std::size_t variable within Build()
...
auto x = 0;
auto-deduces x to be an int. This is undesirable when working with
unsigned values. It also causes sign conversion warnings. Instead, we
can make it a proper unsigned value with the correct width that the
following expressions operate on.
2018-09-25 20:06:21 -04:00
Lioncash
f646ca874d
yuzu/main: Resolve precedence bug within CalculateRomFSEntrySize()
...
Ternary operators have a lower precedence than arithmetic operators, so
what was actually occurring here is "return (out + full) ? x : y" which most
definitely isn't intended, given we calculate out recursively above. We
were essentially doing a lot of work for nothing.
2018-09-25 20:06:21 -04:00
Lioncash
cbb146069a
yuzu/main: Move functions stored into static std::function instances out of OnGameListDumpRomFS()
...
This can cause warnings about static constructors, and is also not ideal
performance-wise due to the indirection through std::function. This also
keeps the behavior itself separate from the surrounding code, which can
make it nicer to read, due to the size of the code.
2018-09-25 20:06:21 -04:00
Lioncash
57616f9758
vfs/etc: Append std:: to size_t usages
...
Given we just recently had a patch backport this from citra, let's try
and keep the convention uniform.
2018-09-25 20:06:21 -04:00
Lioncash
28bef31ea8
vfs_concat/vfs_layered: Remove friend declarations from ConcatenatedVfsFile
...
Given these are only added to the class to allow those functions to
access the private constructor, it's a better approach to just make them
static functions in the interface, to make the dependency explicit.
2018-09-25 20:06:01 -04:00
Lioncash
14e2df5610
vfs_static: Remove template byte parameter from StaticVfsFile
...
This converts it into a regular constructor parameter. There's no need
to make this a template parameter on the class when it functions
perfectly well as a constructor argument.
This also reduces the amount of code bloat produced by the compiler, as
it doesn't need to generate the same code for multiple different
instantiations of the same class type, but with a different fill value.
2018-09-25 17:40:53 -04:00
Lioncash
e42bb5e003
service: Add missing headers inclusions where applicable
...
Gets rid of a few indirect inclusions.
2018-09-25 17:14:38 -04:00
bunnei
7b81e1e525
Merge pull request #1365 from DarkLordZach/lfs
...
file_sys: Add support for LayeredFS mods
2018-09-25 16:59:44 -04:00
Lioncash
598e4d2f6c
core_cpu: Make arm_interface instances a std::unique_ptr
...
This is only exposed by reference, so we can just make it a unique
pointer to get rid of the need to also use reference counting for the
pointer.
2018-09-25 16:04:56 -04:00
Lioncash
a58eefa7e4
kernel/scheduler: Take ARM_Interface instance by reference in the constructor
...
It doesn't make sense to allow a scheduler to be constructed around a
null pointer.
2018-09-25 16:00:17 -04:00
bunnei
b67c1fdf38
Merge pull request #1393 from tech4me/svc
...
svc: Updated svc names
2018-09-25 10:47:12 -04:00
Lioncash
83377113bf
memory: Dehardcode the use of fixed memory range constants
...
The locations of these can actually vary depending on the address space
layout, so we shouldn't be using these when determining where to map
memory or be using them as offsets for calculations. This keeps all the
memory ranges flexible and malleable based off of the virtual memory
manager instance state.
2018-09-24 22:16:03 -04:00
Lioncash
6c6f95d071
svc: Report correct memory-related values within some of the cases in svcGetInfo()
...
Previously, these were reporting hardcoded values, but given the regions
can change depending on the requested address spaces, these need to
report the values that the memory manager contains.
2018-09-24 22:16:03 -04:00
Lioncash
7fd598636e
memory: Dehardcode the use of a 36-bit address space
...
Given games can also request a 32-bit or 39-bit address space, we
shouldn't be hardcoding the address space range as 36-bit.
2018-09-24 22:15:53 -04:00
Lioncash
75603b005b
process/vm_manager: Amend API to allow reading parameters from NPDM metadata
...
Rather than hard-code the address range to be 36-bit, we can derive the
parameters from supplied NPDM metadata if the supplied exectuable
supports it. This is the bare minimum necessary for this to be possible.
The following commits will rework the memory code further to adjust to
this.
2018-09-24 17:24:50 -04:00
David
367c52ff0d
Implemented fatal:u properly ( #1347 )
...
* Implemented fatal:u properly
fatal:u now is properly implemented with all the ipc cmds. Error reports/Crash reports are also now implemented for fatal:u. Crash reports save to yuzu/logs/crash_reports/
The register dump is currently known as sysmodules send all zeros. If there are any non zero values for the "registers" or the unknown values, let me know!
* Fatal:U fixups
* Made fatal:u execution break more clear
* Fatal fixups
2018-09-23 22:34:11 -04:00
David
2513e086ab
Stubbed IRS ( #1349 )
...
* Stubbed IRS
Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly.
* Added IRS to logging backend
* Forward declared shared memory for irs
2018-09-23 22:33:29 -04:00
bunnei
f2c1fd08f9
Merge pull request #1354 from ogniK5377/ssl-version
...
Corrected SSL::SetInterfaceVersion
2018-09-23 22:32:14 -04:00
Zach Hilman
b3c2ec362b
fsmitm: Cleanup and modernize fsmitm port
2018-09-23 21:50:20 -04:00
Lioncash
2f6a611311
stream: Preserve enum class type in GetState()
...
Preserves the meaning/type-safetiness of the stream state instead of
making it an opaque u32. This makes it usable for other things outside
of the service HLE context.
2018-09-23 20:03:38 -04:00
tech4me
d42424ace0
svc: Updated svc names
2018-09-23 17:03:38 -07:00
David
9f3fc067bf
Added glObjectLabels for renderdoc for textures and shader programs ( #1384 )
...
* Added glObjectLabels for renderdoc for textures and shader programs
* Changed hardcoded "Texture" name to reflect the texture type instead
* Removed string initialize
2018-09-23 17:55:41 -04:00
bunnei
6b05f71b67
Merge pull request #1387 from FearlessTobi/port-4245
...
Port citra-emu/citra#4245 : "common/thread: remove YieldCPU()"
2018-09-23 17:51:53 -04:00
bunnei
d373a65d26
Merge pull request #1391 from ogniK5377/GetAudioRendererState
...
Added audren:u#GetAudioRendererState
2018-09-23 16:25:12 -04:00
greggameplayer
b91e2d55f3
correct BC6H
2018-09-23 19:17:22 +02:00
David Marcec
c461188f51
Added audren:u#GetAudioRendererState
2018-09-23 22:32:01 +10:00
Philippe Babin
fb6bc2c495
FPCR register was uninitialized at start up
2018-09-22 21:17:43 -04:00
bunnei
93fea4e179
Merge pull request #1378 from lioncash/thread
...
process: Make a few member variables private where applicable
2018-09-22 19:46:53 -04:00
Weiyi Wang
e0ce07aa7d
common/thread: remove YieldCPU()
...
simply use the standard library yield()
2018-09-22 23:27:42 +02:00
bunnei
fb9f273e90
Merge pull request #1380 from lioncash/const
...
shader_bytecode: Make operator== and operator!= of IpaMode const qualified
2018-09-22 01:37:36 -04:00
bunnei
73eea61614
Merge pull request #1382 from lioncash/inc
...
gl_state: Remove unused type alias
2018-09-22 01:36:21 -04:00
bunnei
0246db9ea2
Merge pull request #1376 from Subv/timestretch_trace
...
Logging: Change the TimeStretch::Process log from debug to trace level.
2018-09-22 01:30:28 -04:00
bunnei
2d5f51bb9b
Merge pull request #1381 from valentinvanelslande/patch-1
...
yuzu_cmd: fix sd card directory set to nand directory
2018-09-22 01:29:28 -04:00
Zach Hilman
4f183123f5
game_list: Add Qt SmoothTransformation to picture scaling
2018-09-21 21:34:46 -04:00
Zach Hilman
ba0873d33c
qt: Add UI elements for LayeredFS and related tools
2018-09-21 19:53:33 -04:00
Zach Hilman
050547b801
romfs: Implement CreateRomFS
2018-09-21 19:53:33 -04:00
Zach Hilman
6eada3c57d
file_sys: Port Atmosphere-NX fs_mitm implementation
2018-09-21 19:53:33 -04:00
Zach Hilman
940a711caf
filesystem: Add LayeredFS VFS directory getter
2018-09-21 19:53:33 -04:00
Zach Hilman
50a470eab8
bis_factory: Add mod directory VFS getter
2018-09-21 19:53:33 -04:00
Zach Hilman
16188acb50
patch_manager: Add LayeredFS mods support
2018-09-21 19:53:33 -04:00
Zach Hilman
44fdac334c
vfs_concat: Rewrite and fix ConcatenatedVfsFile
2018-09-21 19:53:33 -04:00
Zach Hilman
3e5c3d0f16
vfs_layered: Add LayeredVfsDirectory
...
Reads multiple dirs through as if a waterfall.
2018-09-21 19:53:05 -04:00
Zach Hilman
b52343a428
vfs_vector: Add VectorVfsFile
...
Maps a vector into the VFS interface.
2018-09-21 19:53:05 -04:00
Zach Hilman
c65d4d119f
vfs_static: Add StaticVfsFile
...
Always returns the template argument byte for all reads. Doesn't support writes.
2018-09-21 19:53:05 -04:00
Zach Hilman
f68e324672
vfs: Add and rewite VfsRawCopy functions
2018-09-21 19:53:05 -04:00
Zach Hilman
d6cbb3a3e0
vfs: Add GetEntries method
...
Maps name string to directory or file.
2018-09-21 19:53:05 -04:00
Zach Hilman
bd8db3f7f8
common_paths: Add Load and Dump dirs
2018-09-21 19:53:05 -04:00
Lioncash
90746c33c7
gl_state: Remove unused type alias
...
This isn't used anywhere within the header, so we can remove it, along
with the include that was previously necessary. This also uncovers an
indirect include in the cpp file for the assertion macros.
2018-09-21 18:22:43 -04:00
Valentin Vanelslande
19d9b0778a
Update config.cpp
2018-09-21 16:16:51 -05:00
Lioncash
a8f5fd787f
shader_bytecode: Lay out the Ipa-related enums better
...
This is more consistent with the surrounding enums.
2018-09-21 16:17:31 -04:00
Lioncash
272517cf7e
shader_bytecode: Make operator== and operator!= of IpaMode const qualified
...
These don't affect the state of the struct and can be const member
functions.
2018-09-21 16:17:27 -04:00
bunnei
4f186de069
Merge pull request #1379 from lioncash/bitwise
...
gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()
2018-09-21 14:02:00 -04:00
zhupengfei
44228ee3ed
game_list: move SearchField to game_list_p.h and fix untranslated text
...
I have tested and made sure the text is translatable, but this would require a translation update to take effect.
2018-09-21 18:47:41 +02:00
FernandoS27
57b44200a2
Reverse stride align restriction on FastSwizzle due to lost performance
2018-09-21 12:09:59 -04:00
FernandoS27
d2dd1289bd
Join both Swizzle methods within one interface function
2018-09-21 11:42:34 -04:00
FernandoS27
41c6c4593a
Standarized Legacy Swizzle to look alike FastSwizzle and use a Swizzling Table instead
2018-09-21 11:34:54 -04:00
FernandoS27
f020319a45
Remove same output bpp restriction on FastSwizzle
2018-09-21 11:10:44 -04:00
FernandoS27
68aaa83836
Improved Legacy Swizzler to be better documented and work better
2018-09-21 10:57:12 -04:00
Lioncash
ba02dd9ebc
gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()
...
This was very likely intended to be a logical OR based off the
conditioning and testing of inversion in one case.
Even if this was intentional, this is the kind of non-obvious thing one
should be clarifying with a comment.
2018-09-21 07:59:03 -04:00
Lioncash
48b2eda492
svc: Move most process termination code to its own function within Process
...
Reduces the use of Process class members externally and keeps most code
related to tearing down a process with the rest of the process code.
2018-09-21 06:07:41 -04:00
Lioncash
acfc801d14
thread/process: Move TLS slot marking/freeing to the process class
...
Allows making several members of the process class private, it also
avoids going through Core::CurrentProcess() just to retrieve the owning
process.
2018-09-21 03:50:12 -04:00
David
1db1e013e0
Added support for uncompressed NSOs ( #1374 )
...
* Added support for uncompressed NSOs
* Moved compressed section check to NsoHeader
2018-09-21 00:39:30 -04:00
bunnei
000da01c1d
Merge pull request #1337 from DarkLordZach/create-fs-cmd
...
yuzu-cmd: Add filesystem service initializer call
2018-09-20 23:36:11 -04:00
bunnei
0285ddfbd4
Merge pull request #1372 from lioncash/thread
...
kernel/thread: Use owner_process when setting the page table in SetupMainThread()
2018-09-20 23:35:29 -04:00
bunnei
072053ab95
Merge pull request #1371 from lioncash/fwd-arm
...
arm_interface: Replace kernel vm_manager include with a forward declaration
2018-09-20 23:35:06 -04:00
bunnei
a373dddbd9
Merge pull request #1375 from Subv/gl_clear
...
RasterizerGL: Use the correct framebuffer when clearing via the CLEAR_BUFFERS register.
2018-09-20 23:34:39 -04:00
Subv
8ba21e28cf
Logging: Change the TimeStretch::Process log from debug to trace level.
...
This function is called too many times and makes the debug logging basically unusable due to the spam.
2018-09-20 22:33:54 -05:00
Subv
9cd5c61fcf
RasterizerGL: Use the correct framebuffer when clearing via the CLEAR_BUFFERS register.
...
Previously we were clearing the default backbuffer framebuffer.
Found thanks to a Piglit test :)
2018-09-20 22:31:53 -05:00
bunnei
c1c59617ad
Merge pull request #1364 from lioncash/content
...
file-sys: Default heavy-weight class destructors in the cpp file
2018-09-20 23:31:31 -04:00
bunnei
cf97d00eb6
Merge pull request #1367 from lioncash/plural
...
game_list: Handle plurals within setFilterResult() better
2018-09-20 23:30:32 -04:00
bunnei
b0b57c21e6
Merge pull request #1368 from ogniK5377/nifm-fix
...
Added IRequest::Submit
2018-09-20 23:30:11 -04:00
bunnei
a0db7e2cf9
Merge pull request #1352 from lioncash/sharing
...
ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing
2018-09-20 23:29:10 -04:00
FernandoS27
bf2f2a715f
Improved fast swizzle and removed restrictions to it
2018-09-20 23:06:53 -04:00
David Marcec
b918925bd5
Revert GetRequestState
...
Even though setting this value to 3 is more correct. We break more games than we fix due to missing implementations. We should keep this as 0 for the time being
2018-09-21 12:15:49 +10:00
Lioncash
05aa4aa01a
kernel/thread: Use owner_process when setting the page table in SetupMainThread()
...
The owning process of a thread is required to exist before the thread,
so we can enforce this API-wise by using a reference. We can also avoid
the reliance on the system instance by using that parameter to access
the page table that needs to be set.
2018-09-20 21:10:00 -04:00
Lioncash
9b8fc2b689
arm_interface: Replace kernel vm_manager include with a forward declaration
...
Avoids an unnecessary inclusion and also uncovers three places where
indirect inclusions were relied upon, which allows us to also resolve
those.
2018-09-20 19:35:36 -04:00
Mat M
f237265187
Merge pull request #1370 from Hedges/GDBClean
...
Correct endianness of BRK
2018-09-20 17:25:56 -04:00
Mat M
1e35d8fa8f
Merge pull request #1362 from MerryMage/dynarmic
...
externals: Update dynarmic to 171d116
2018-09-20 17:22:42 -04:00
Jarek Syrylak
74f966404d
Correct endianness of BKPT
2018-09-20 22:03:57 +01:00
MerryMage
ef31487624
arm_dynarmic: Halt when BRK encountered
2018-09-20 19:12:42 +01:00
David Marcec
3f49725a51
Fixed submit
2018-09-21 00:51:13 +10:00
David Marcec
cfc9fe4460
Added IRequest::Submit
...
This fixes updated versions of SMO. Currently unable to test as I don't have an updated version
2018-09-21 00:47:30 +10:00
bunnei
8fe9572271
Merge pull request #1358 from DarkLordZach/temp-storage
...
savedata_factory: Add TemporaryStorage SaveDataType
2018-09-20 10:13:38 -04:00
bunnei
0931a711de
Merge pull request #1363 from lioncash/control
...
control_metadata: Move language name array definition to the cpp file
2018-09-20 10:13:23 -04:00
bunnei
b02a1e38fa
Merge pull request #1361 from lioncash/nax
...
xts_archive/nax: Minor interface changes
2018-09-20 10:13:10 -04:00
Lioncash
e980e90d6e
game_list: Handle plurals within setFilterResult() better
...
Qt provides an overload of tr() that operates on quantities in relation
to pluralization. This also allows the translation to adapt based on the
target language rules better.
For example, the previous code would result in an incorrect translation
for the French language (which doesn't use the pluralized version of
"result" in the case of a total of zero. While in English it's
correct to use the pluralized version of "result", that is, "results"
---
For example:
English: "0 results"
French: "0 résultat" (uses the singular form)
In French, the noun being counted is singular if the quantity is 0 or 1.
In English, on the other hand, if the noun being counted has a quantity
of 0 or N > 1, then the noun is pluralized.
---
For another example in a language that has different counting methods
than the above, consider English and Irish. Irish has a special form of
of a grammatical number called a dual. Which alters how a word is
written when N of something is 2. This won't appear in this case with a
direct number "2", but it would change if we ever used "Two" to refer to
two of something. For example:
English: "Zero results"
Irish: "Toradh ar bith"
English: "One result"
Irish: "Toradh amháin"
English: "Two results"
Irish: "Dhá thorthaí" <- Dual case
Which is an important distinction to make between singular and plural,
because in other situations, "two" on its own would be written as "dó"
in Irish. There's also a few other cases where the order the words are
placed *and* whether or not the plural or singular variant of the word
is used *and* whether or not the word is placed after or between a set
of numbers can vary. Counting in Irish also differs depending on whether or not
you're counting things (like above) or counting people, in which case an
entirely different set of numbers are used.
It's not important for this case, but it's provided as an example as to why one
should never assume the placement of values in text will be like that of
English or other languages. Some languages have very different ways to
represent counting, and breaking up the translated string like this
isn't advisable because it makes it extremely difficult to get right
depending on what language a translator is translating text into due to
the ambiguity of the strings being presented for translation.
In this case a translator would see three fragmented strings on
Transifex (and not necessarily grouped beside one another, but even
then, it would still be annoying to decipher):
- "of"
- "result"
- "results"
There is no way a translator is going to know what those sets of words
are actually used for unless they look at the code to see what is being
done with them (which they shouldn't have to do).
2018-09-20 01:35:50 -04:00
David Marcec
583137709f
Removed unneeded event clear
2018-09-20 15:16:08 +10:00
David Marcec
335e9d18ae
Implemented NTC & IEnsureNetworkClockAvailabilityService
...
Needed because of the recent nim fixes
2018-09-20 15:14:07 +10:00
Lioncash
05ef9dfc10
file-sys: Default heavy-weight class destructors in the cpp file
...
Several classes have a lot of non-trivial members within them, or don't
but likely should have the destructor defaulted in the cpp file for
future-proofing/being more friendly to forward declarations.
Leaving the destructor unspecified allows the compiler to inline the
destruction code all over the place, which is generally undesirable from
a code bloat perspective.
2018-09-19 19:34:08 -04:00
Lioncash
3146502a12
control_metadata: Remove unnecessary else within GetLanguageEntry()
...
There's no need to indent the code here, given the if case contains a
return statement at the end of it.
2018-09-19 19:02:06 -04:00
Lioncash
05d49962b6
control_metadata: Move language name array definition to the cpp file
...
This was used in two different translation units
(deconstructed_rom_directory and patch_manager). This means we'd be
pointlessly duplicating the whole array twice due to it being defined
within the header.
2018-09-19 18:57:26 -04:00
MerryMage
3b4a158230
arm_dynarmic: Support BKPT instruction
2018-09-19 21:00:38 +01:00
Lioncash
2e5f0e5024
xts_archive: Remove unused variables from CalculateHMAC256()
...
These variables aren't used, which still has an impact, as std::vector
cannot be optimized away by the compiler (it's constructor and
destructor are both non-trivial), so this was just wasting memory.
2018-09-19 14:23:13 -04:00
Lioncash
2752183883
xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptr
...
std::shared_ptr isn't strictly necessary here and is only ever used in
contexts where the object doesn't depend on being shared. This also
makes the interface more flexible, as it's possible to create a
std::shared_ptr from a std::unique_ptr (std::shared_ptr has a
constructor that accepts a std::unique_ptr), but not the other way
around.
2018-09-19 14:22:37 -04:00
Lioncash
45195a51a7
nax: Avoid re-parsing NAX data with GetFileType()
...
An instance of the NAX apploader already has an existing NAX instance in
memory. Calling directly into IdentifyType() directly would re-parse the
whole file again into yet another NAX instance, only to toss it away
again.
This gets rid of unnecessary/redundant file parsing and allocations.
2018-09-19 14:22:37 -04:00
Lioncash
c8c4105659
nax: Avoid unnecessary calls to AsNCA() in IdentifyType()
...
AsNCA() allocates an NCA instance every time it's called. In the current
manner it's used, it's quite inefficient as it's making a redundant
allocation.
We can just amend the order of the conditionals to make it easier to
just call it once.
2018-09-19 14:22:37 -04:00
Lioncash
f272261c21
xts_archive: Ensure NAX's type member is always initialized
...
Ensures that the member always has a deterministic value.
2018-09-19 14:22:37 -04:00
Lioncash
92a98a8b19
xts_archive: Amend initializer order of NAX's constructor
...
Orders the initializer list in the same order the members would be
initialized. Avoids compiler warnings.
2018-09-19 14:22:30 -04:00
David
0432af5ad1
Reworked incorrect nifm stubs ( #1355 )
...
* Reworked incorrect nifm stubs
Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do.
Any 0 client id is considered an invalid client id.
GetRequestState 0 is considered invalid.
* Fixups for nifm
2018-09-19 11:59:01 -04:00
bunnei
52fb86c65c
Merge pull request #1356 from degasus/hotfix
...
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
2018-09-19 11:58:22 -04:00
bunnei
8dff92c5f6
Merge pull request #1359 from ogniK5377/nes
...
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
2018-09-19 10:01:36 -04:00
David Marcec
cbc7ad8f6d
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
...
With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
2018-09-19 23:25:00 +10:00
Zach Hilman
9bba103791
yuzu-cmd: Add call to CreateFactories
...
Ensures all relevant filesystem objects are initialized and eliminates a crash related to the RegisteredCache.
2018-09-19 09:09:11 -04:00
Zach Hilman
dfaea55be5
savedata_factory: Add TemporaryStorage SaveDataType
...
Seems to be used by NSO NES Emulator
2018-09-19 09:06:22 -04:00
raven02
c8f9bbbf85
Merge branch 'master' into tlds
2018-09-19 19:53:11 +08:00
Markus Wick
f465e4aaf2
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
...
We uploaded the wrong data before. So the offset on the host GPU pointer may work for the first vertices, the last ones run out bounds.
Let's just offset the upload instead.
2018-09-19 09:22:30 +02:00
David Marcec
d06f4cfc63
Corrected SSL::SetInterfaceVersion
...
Should be a single u32
2018-09-19 16:46:11 +10:00
David Marcec
08819ec70a
Removed MakeBuilder as it's not needed anymore
2018-09-19 15:13:56 +10:00
David Marcec
6a0612f2bf
Removed the use of rp.MakeBuilder
...
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-19 15:09:59 +10:00
Lioncash
ab6dfa4fa5
ring_buffer: Use std::atomic_size_t in a static assert
...
Avoids the need to repeat "std::" twice
2018-09-18 23:36:04 -04:00
Lioncash
c51f8563a6
ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing
...
MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html )
which defines two new constants within the <new> header, std::hardware_destructive_interference_size
and std::hardware_constructive_interference_size.
std::hardware_destructive_interference_size defines the minimum
recommended offset between two concurrently-accessed objects to avoid
performance degradation due to contention introduced by the
implementation (with the lower-bound being at least alignof(max_align_t)).
In other words, the minimum offset between objects necessary to avoid
false-sharing.
std::hardware_constructive_interference_size on the other hand defines
the maximum recommended size of contiguous memory occupied by two
objects accessed wth temporal locality by concurrent threads (also
defined to be at least alignof(max_align_t)). In other words the maximum
size to promote true-sharing.
So we can simply use this facility to determine the ideal alignment
size. Unfortunately, only MSVC supports this right now, so we need to
enclose it within an ifdef for the time being.
2018-09-18 23:35:57 -04:00
bunnei
b33ce787b7
Merge pull request #1348 from ogniK5377/GetImageSize
...
Implemented IProfile::GetImageSize
2018-09-18 22:15:18 -04:00
bunnei
d85130d7be
Merge pull request #1319 from lioncash/audio
...
audio_core: Replace includes with forward declarations where applicable.
2018-09-18 22:14:26 -04:00
bunnei
c9942fe46e
Merge pull request #1351 from ogniK5377/GetDefaultDisplayResolution
...
Implemented GetDefaultDisplayResolution
2018-09-18 22:13:28 -04:00
bunnei
bf957d5345
Merge pull request #1341 from lioncash/dependency
...
core/core_cpu: Replace exclusive monitor include with forward declaration
2018-09-18 22:13:05 -04:00
bunnei
c768535463
Merge pull request #1346 from lioncash/svc
...
svc_wrap: Convert the PARAM macro into a function
2018-09-18 22:12:47 -04:00
bunnei
e9abbcae85
Merge pull request #1350 from ogniK5377/Six-Axis-Stub
...
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-18 22:12:12 -04:00
bunnei
bd88d4108f
Merge pull request #1342 from lioncash/trunc
...
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
2018-09-18 22:11:48 -04:00
bunnei
0284cbe7ec
Merge pull request #1279 from FernandoS27/csetp
...
shader_decompiler: Implemented (Partialy) Control Codes and CSETP
2018-09-18 22:10:48 -04:00
bunnei
6415f81bb8
Merge pull request #1299 from FernandoS27/texture-sanatize
...
shader_decompiler: Asserts for Texture Instructions
2018-09-18 22:10:09 -04:00
Philippe Babin
9155c8daeb
Invalid default value of username in yuzu_cmd ( #1334 )
...
* Fix bug where default username value for yuzu_cmd create an userprofile with uninitialize data as username
* Fix format
* Apply code review changes
* Remove nullptr check
2018-09-18 19:58:28 -04:00
bunnei
733c47623b
Merge pull request #1343 from lioncash/mutex
...
kernel/svc: Handle invalid address cases within svcArbitrateLock() and svcArbitrateUnlock()
2018-09-18 14:25:00 -04:00
bunnei
c2cf784376
Merge pull request #1344 from lioncash/arm
...
arm_interface: Remove ARM11-isms from the CPU interface
2018-09-18 14:24:20 -04:00
bunnei
c7a4bf5074
Merge pull request #1345 from lioncash/write
...
arm_dynarmic: Correct ExclusiveWrite128()'s operation
2018-09-18 14:23:57 -04:00
David Marcec
de9604d63e
Added ActivateGesture
2018-09-19 01:13:58 +10:00
David Marcec
1a2d33eeb4
Implemented GetDefaultDisplayResolution
2018-09-19 01:10:16 +10:00
David Marcec
a8b1c7763b
Added StopSixAxisSensor
2018-09-19 00:56:02 +10:00
David Marcec
717889e93c
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-19 00:52:20 +10:00
David Marcec
528e5cee67
Implemented GetImageSize
2018-09-19 00:16:52 +10:00
Lioncash
f85ab0a123
svc_wrap: Convert the PARAM macro into a function
...
This can just be a regular function, getting rid of the need to also
explicitly undef the define at the end of the file. Given FuncReturn()
was already converted into a function, it's #undef can also be removed.
2018-09-18 04:27:38 -04:00
Lioncash
ead2a4eeb4
arm_dynarmic: Correct ExclusiveWrite128()'s operation
...
Previously the second half of the value being written would overwrite
the first half. Thankfully this wasn't a bug that was being encountered,
as the function is currently unused.
2018-09-18 03:56:32 -04:00
Lioncash
b51e7e0288
arm_interface: Remove ARM11-isms from the CPU interface
...
This modifies the CPU interface to more accurately match an
AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods
don't even make sense to keep around for this interface, as Adv Simd is
used, rather than the VFP in the primary execution state. This is
essentially a modernization change that should have occurred from the
get-go.
2018-09-18 03:20:04 -04:00
Lioncash
71b48cb00f
kernel/mutex: Replace ResultCode construction for invalid addresses with the named variant
...
We already have a ResultCode constant for the case of an invalid
address, so we can just use it instead of re-rolling that ResultCode
type.
2018-09-17 23:27:53 -04:00
Lioncash
b6867602ca
kernel/svc: Handle error cases for svcArbitrateLock() and svcArbitrateUnlock()
...
The kernel does the equivalent of the following check before proceeding:
if (address + 0x8000000000 < 0x7FFFE00000) {
return ERR_INVALID_MEMORY_STATE;
}
which is essentially what our IsKernelVirtualAddress() function does. So
we should also be checking for this.
The kernel also checks if the given input addresses are 4-byte aligned,
however our Mutex::TryAcquire() and Mutex::Release() functions already
handle this, so we don't need to add code for this case.
2018-09-17 23:27:53 -04:00
FernandoS27
567a5524b9
Implemented Internal Flags
2018-09-17 20:50:54 -04:00
Lioncash
9a8dbba1e5
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
...
These are internally stored as u64 values, so using u32 here causes
truncation warnings. Instead, we can just use u64 and preserve the bit
width.
2018-09-17 19:25:55 -04:00
bunnei
fafc80d72e
Merge pull request #1290 from FernandoS27/shader-header
...
Implemented (Partialy) Shader Header
2018-09-17 18:53:14 -04:00
Lioncash
4a84986bc3
core/core_cpu: Replace exclusive monitor include with forward declaration
...
We don't need to include this as a dependency within the header. A
regular forward declaration will suffice here.
2018-09-17 18:16:55 -04:00
FernandoS27
e4bb759c4b
Implemented I2I.CC on the NEU control code, used by SMO
2018-09-17 17:42:46 -04:00
FernandoS27
e2ac8fb36d
Implemented CSETP
2018-09-17 17:42:44 -04:00
FernandoS27
aac77bbd18
Implemented Control Codes
2018-09-17 17:42:43 -04:00
Lioncash
f7308a6c25
time_stretch: Remove unused <array> include
...
This isn't used within this header and isn't necessary.
2018-09-17 15:08:34 -04:00
Lioncash
2fd124bc93
stream: Replace includes with forward declarations where applicable
...
Avoids propagating includes in headers where it's not necessary to do
so.
2018-09-17 15:08:34 -04:00
Lioncash
1adbcd54fe
audio_renderer: Replace includes with forward declarations where applicable
...
Avoids including unnecessary headers within the audio_renderer.h header,
lessening the likelihood of needing to rebuild source files including
this header if they ever change.
Given std::vector allows forward declaring contained types, we can move
VoiceState to the cpp file and hide the implementation entirely.
2018-09-17 15:08:30 -04:00
FernandoS27
31e52113b3
Added asserts for texture misc modes to texture instructions
2018-09-17 12:56:36 -04:00
FernandoS27
55a4756766
Added texture misc modes to texture instructions
2018-09-17 12:51:05 -04:00
bunnei
a94b623dfb
Merge pull request #1311 from FernandoS27/fast-swizzle
...
Optimized Texture Swizzling
2018-09-17 12:39:34 -04:00
bunnei
2c9c0d70a3
Merge pull request #1312 from lioncash/fwd
...
service/vi: Replace includes with forward declarations where applicable
2018-09-17 12:32:28 -04:00
bunnei
2bfb9fd0e6
Merge pull request #1313 from lioncash/error
...
kernel/errors: Amend error code for ERR_NOT_FOUND
2018-09-17 12:28:40 -04:00
bunnei
692e7cee4f
Merge pull request #1314 from lioncash/cast
...
audio_core/time_stretch: Silence truncation warnings in Process()
2018-09-17 12:28:19 -04:00
bunnei
27fe8159c5
Merge pull request #1316 from lioncash/shadow
...
gl_shader_decompiler: Get rid of variable shadowing within LEA instructions
2018-09-17 12:27:35 -04:00
bunnei
fc46183e03
Merge pull request #1318 from lioncash/errors-sm
...
services/sm: Amend error code constants
2018-09-17 12:27:01 -04:00
bunnei
59beb540ae
Merge pull request #1321 from lioncash/audio-shadow
...
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
2018-09-17 12:26:29 -04:00
raven02
b91f7d5d67
Add 1D sampler for TLDS - TexelFetch (Mario Rabbids)
2018-09-17 23:25:18 +08:00
bunnei
e6367ab955
Merge pull request #1315 from lioncash/size
...
kernel/svc: Handle a few error cases within memory-related functions
2018-09-17 10:11:26 -04:00
bunnei
3476ba2aee
Merge pull request #1320 from lioncash/name
...
cubeb_sink: Correct context name in ListCubebSinkDevices()
2018-09-17 10:10:33 -04:00
bunnei
e561afdcd5
Merge pull request #1328 from FearlessTobi/port-4192
...
Port #4192 from Citra: "svc: change unknown to thread in CreateThread"
2018-09-17 09:56:48 -04:00
bunnei
e7af0f69da
Merge pull request #1327 from FearlessTobi/port-4171
...
Port #4171 from Citra: "Tests: Remove glad test OS X work-around"
2018-09-17 09:54:31 -04:00
bunnei
076add4ccd
Merge pull request #1326 from FearlessTobi/port-4182
...
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-17 09:51:47 -04:00
bunnei
3be048e50a
Merge pull request #1329 from raven02/bgr5a1u
...
Implement RenderTargetFormat::BGR5A1_UNORM
2018-09-17 09:49:00 -04:00
bunnei
e833301e4c
Merge pull request #1335 from lioncash/copy
...
game_list_p: Take map iterator contents by const reference
2018-09-17 09:47:54 -04:00
bunnei
08af788a57
Merge pull request #1336 from lioncash/antialias
...
yuzu/util: Antialias game list compatibility pixmaps
2018-09-17 09:47:34 -04:00
Lioncash
9dbe9d4291
yuzu/util: Antialias game list compatibility pixmaps
...
We pass a hint to the QPainter instance that we want anti-aliasing on
the compatibility icons, which prevents the circles from looking fairly
jagged, and actually makes them look circular.
2018-09-17 06:01:14 -04:00
Lioncash
13930f0c33
game_list_p: Amend typo in GameListItemCompat's constructor parameter
...
Adds a missing 'i' character that was missing in compatibility.
2018-09-17 05:31:30 -04:00
Lioncash
51b5619079
game_list_p: Take map iterator contents by const reference
...
We don't need to copy the whole struct in this instance, we can just
utilize a reference instead.
2018-09-17 05:30:11 -04:00
raven02
2845348608
Implement ASTC_2D_8X8 (Bayonetta 2)
2018-09-17 01:04:27 +08:00
bunnei
ba480ea2fb
Merge pull request #1273 from Subv/ld_sizes
...
Shaders: Implemented multiple-word loads and stores to and from attribute memory.
2018-09-15 15:27:12 -04:00
bunnei
daee15b058
Merge pull request #1271 from Subv/kepler_engine
...
GPU: Basic implementation of the Kepler Inline Memory engine (p2mf).
2018-09-15 13:27:07 -04:00
raven02
0019a36b41
Implement RenderTargetFormat::BGR5A1_UNORM (Pokken Tournament DX)
2018-09-16 00:21:42 +08:00
Subv
c878a819d7
Shaders: Implemented multiple-word loads and stores to and from attribute memory.
...
This seems to be an optimization performed by nouveau.
2018-09-15 11:21:21 -05:00
Valentin Vanelslande
54ddb37b3c
Port # #4192 from Citra: "svc: change unknown to thread in CreateThread"
2018-09-15 15:28:35 +02:00
Yuri Kunde Schlesner
3bd8563f2d
Tests: Remove glad test OS X work-around
2018-09-15 15:24:11 +02:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
FernandoS27
f8e994354f
Optimized Texture Swizzling
2018-09-14 12:45:49 -04:00
Lioncash
fc669a97d4
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
...
The parameter of the lambda was shadowing the variable that was being
assigned to.
2018-09-14 12:20:51 -04:00
Lioncash
b5218d9986
cubeb_sink: Correct context name in ListCubebSinkDevices()
...
This ain't Citra.
2018-09-14 12:18:09 -04:00
Lioncash
da64da367b
services/sm: Amend error code constants
...
Courtesy of @ogniK5377.
This also moves them into the cpp file and limits the visibility to
where they're directly used. It also gets rid of unused or duplicate
error codes.
2018-09-14 01:44:02 -04:00
Lioncash
4f8756edd0
kernel/svc: Sanitize creation of shared memory via svcCreateSharedMemory()
...
The kernel caps the size limit of shared memory to 8589930496 bytes (or
(1GB - 512 bytes) * 8), so approximately 8GB, where every GB has a 512
byte sector taken off of it.
It also ensures the shared memory is created with either read or
read/write permissions for both permission types passed in, allowing the
remote permissions to also be set as "don't care".
2018-09-13 23:07:27 -04:00
Lioncash
accd1f17e4
kernel/svc: Sanitize addresses, permissions, and sizes within svcMapSharedMemory() and svcUnmapSharedMemory()
...
Part of the checking done by the kernel is to check if the given
address and size are 4KB aligned, as well as checking if the size isn't
zero. It also only allows mapping shared memory as readable or
read/write, but nothing else, and so we shouldn't allow mapping as
anything else either.
2018-09-13 23:07:23 -04:00
Lioncash
ae128f0375
gl_shader_decompiler: Get rid of variable shadowing within LEA instructions
...
These variables are already defined within an outer scope.
2018-09-13 21:53:23 -04:00
Lioncash
496c67fd73
kernel/svc: Sanitize addresses and sizes within svcMapMemory() and svcUnmapMemory()
...
The kernel checks if the addresses and given size is 4KB aligned before
continuing onwards to map the memory.
2018-09-13 21:34:54 -04:00
Lioncash
7bd2faad9a
kernel/svc: Sanitize heap sizes within svcSetHeapSize()
...
The kernel checks if the given size is a multiple of 2MB and <= to 4GB
before going ahead and attempting to allocate that much memory.
2018-09-13 21:34:48 -04:00
bunnei
df5a44a40b
Merge pull request #1310 from lioncash/kernel-ns
...
kernel/thread: Include thread-related enums within the kernel namespace
2018-09-13 19:50:47 -04:00
bunnei
fb65076b0f
Merge pull request #1309 from lioncash/nested
...
service: Use nested namespace specifiers where applicable
2018-09-13 19:50:11 -04:00
Lioncash
9969a5db1e
audio_core/time_stretch: Silence truncation warnings in Process()
...
The SoundTouch API only accepts uint amount of samples.
2018-09-13 19:50:01 -04:00
bunnei
3ef134a092
Merge pull request #1307 from lioncash/pl
...
services/pl_u: Add missing Korean font to the fallback case for shared fonts
2018-09-13 19:49:39 -04:00
Lioncash
50a5d09d32
kernel/errors: Amend error code for ERR_NOT_FOUND
...
This is the value returned by the kernel for svcConnectToNamedPort() if
the named port cannot be found.
2018-09-13 17:12:01 -04:00
Lioncash
0258b444ef
service/vi: Replace includes with forward declarations where applicable
2018-09-13 16:55:47 -04:00
Lioncash
2ea45fe75b
kernel/thread: Include thread-related enums within the kernel namespace
...
Previously, these were sitting outside of the Kernel namespace, which
doesn't really make sense, given they're related to the Thread class
which is within the Kernel namespace.
2018-09-13 16:05:57 -04:00
Lioncash
a0e51d8b98
service: Use nested namespace specifiers where applicable
...
There were a few places where nested namespace specifiers weren't being
used where they could be within the service code. This amends that to
make the namespacing a tiny bit more compact.
2018-09-13 15:52:55 -04:00
Valentin Vanelslande
2ec9fbc2d4
ipc: minor fix
2018-09-13 11:59:23 -05:00
ReinUsesLisp
a42376dfad
Use ARB_multi_bind for uniform buffers ( #1287 )
...
* gl_rasterizer: use ARB_multi_bind for uniform buffers
* address feedback
2018-09-12 20:27:43 -04:00
Lioncash
ce97d8ef6c
services/pl_u: Add missing Korean font to the fallback case for shared fonts
...
Previously this wasn't using the Korean font at all.
2018-09-12 19:23:51 -04:00
bunnei
60899b80f0
Merge pull request #1298 from lioncash/view
...
audio_core/sink_details: Change std::string parameter into std::string_view
2018-09-12 18:24:57 -04:00
bunnei
938aa5779c
Merge pull request #1302 from lioncash/config
...
yuzu/configure_gamelist: Mark combo-box strings as translatable
2018-09-12 18:24:11 -04:00
bunnei
926dd41587
Merge pull request #1163 from FearlessTobi/add-audio-stretching
...
audio_core: Add audio stretching support
2018-09-12 18:23:54 -04:00
bunnei
4a43fb7e1d
gl_rasterizer_cache: B5G6R5U should use GL_RGB8 as an internal format.
...
- Fixes a regression with Sonic Mania with ARB_texture_storage.
2018-09-12 18:09:31 -04:00
bunnei
d9e21eebe8
Merge pull request #1297 from lioncash/pl
...
pl_u: Eliminate mutable file-scope state
2018-09-12 16:03:53 -04:00
bunnei
cc50857460
Merge pull request #1263 from FernandoS27/tex-mode
...
shader_decompiler: Implemented (Partially) Texture Processing Modes
2018-09-12 16:03:34 -04:00
Subv
bb5eb4f20a
GPU: Basic implementation of the Kepler Inline Memory engine (p2mf).
...
This engine writes data from a FIFO register into the configured address.
2018-09-12 13:57:08 -05:00
MerryMage
957ddab679
audio_core: Flush stream when not playing anything
2018-09-12 18:09:14 +01:00
FernandoS27
a99d9db32f
Implemented Texture Processing Modes
2018-09-12 12:28:22 -04:00
bunnei
79217f9870
Merge pull request #1303 from lioncash/error
...
kernel/errors: Amend invalid thread priority and invalid processor ID error codes
2018-09-12 12:14:51 -04:00
Lioncash
fbe462099b
svc: Return ERR_INVALID_PROCESSOR_ID in CreateThread() if an invalid processor ID is given
...
This is what the kernel does for an out-of-range processor ID.
2018-09-12 05:20:02 -04:00
Lioncash
3c5c292592
kernel/errors: Correct error codes for invalid thread priority and invalid processor ID
2018-09-12 05:19:57 -04:00
Lioncash
9b3bc0b282
svc: Do nothing if svcOutputDebugString() is given a length of zero
...
While unlikely, it does avoid constructing a std::string and
unnecessarily calling into the memory code if a game or executable
decides to be really silly about their logging.
2018-09-12 04:51:44 -04:00
Lioncash
04d723baf9
svc: Correct parameter type for OutputDebugString()
...
This should be a u64 to represent size.
2018-09-12 04:49:11 -04:00
Lioncash
e89c22c147
yuzu/configure_gamelist: Make combo box strings translatable
...
Given these are shown to the user, they should be translatable.
While we're at it, also set up the dialog to automatically retranslate
the dialog along with the combo boxes if it receives a LanguageChange
event.
2018-09-12 02:34:53 -04:00
Lioncash
a9b953e6d4
yuzu/configure_gamelist: Use std::array instead of std::vector for translatable strings
...
We don't need to use an allocating container for these, given we know
the fixed amount of strings being used. This is just a waste of memory.
2018-09-12 01:20:04 -04:00
Lioncash
3a2567c97c
yuzu/configure_gamelist: Move combo box initializtion to their own functions
...
Keeps the individual initialization of the combo boxes logically separate.
We also shouldn't be dumping this sort of thing in the constructor
directly.
2018-09-12 01:07:34 -04:00
bunnei
475222a496
Merge pull request #1296 from lioncash/prepo
...
service/prepo: Move class into the cpp file
2018-09-11 23:15:07 -04:00
bunnei
3ee4fa557f
Merge pull request #1301 from lioncash/qt
...
game_list: Resolve variable shadowing within LoadCompatibilityList()
2018-09-11 23:13:54 -04:00
bunnei
c245150439
Merge pull request #1300 from lioncash/audio
...
service/audio: Replace includes with forward declarations where applicable
2018-09-11 23:13:29 -04:00
bunnei
89825766ee
Merge pull request #1278 from tech4me/bg-color-fix
...
Port Citra #4047 & #4052 : add change background color support
2018-09-11 23:13:11 -04:00
bunnei
522a11a11f
Merge pull request #1295 from bunnei/accurate-copies
...
gl_rasterizer_cache: Improve accuracy of caching and copies.
2018-09-11 23:12:15 -04:00
bunnei
4a9acc87f9
Merge pull request #1294 from degasus/optimizations
...
gl_rasterizer: Use ARB_texture_storage.
2018-09-11 23:11:36 -04:00
bunnei
7bb226f22d
gl_rasterizer_cache: Always blit on recreate, regardless of format.
...
- Fixes several rendering issues with Super Mario Odyssey.
2018-09-11 22:54:46 -04:00
Lioncash
0e61e8362f
game_list: Resolve variable shadowing within LoadCompatibilityList()
...
"value" is already a used variable name within the outermost ranged-for
loop, so this variable was shadowing the outer one. This isn't a bug,
but it will get rid of a -Wshadow warning.
2018-09-11 22:34:09 -04:00
Lioncash
7fe10dea3e
game_list: Use QJsonValueRef() within LoadCompatibilityList()
...
This way, we aren't constructing unnecessary QJsonValue instances.
2018-09-11 22:28:35 -04:00
Lioncash
c243bc09d4
service/audio: Replace includes with forward declarations where applicable
...
A few headers were including other headers when a forward declaration
can be used instead, allowing the include to be moved to the cpp file.
2018-09-11 21:54:33 -04:00
Lioncash
bad035e9a3
audio_core/sink_details: Change std::string parameter into std::string_view
...
The given string is only ever used for lookup and comparison, so we can
just utilize a non-owning view to string data here
2018-09-11 21:36:12 -04:00
Lioncash
c061e27155
pl_u: Eliminate mutable file-scope state
...
Converts the PL_U internals to use the PImpl idiom and makes the state
part of the Impl struct, eliminating mutable global/file state.
2018-09-11 21:24:19 -04:00
Lioncash
325c259fc5
service/prepo: Move class into the cpp file
...
This doesn't need to be exposed within the header and be kept in the
translation unit, eliminating the need to include anything within the
header.
2018-09-11 20:49:01 -04:00
bunnei
cdddd71d08
gl_shader_cache: Remove cache_width/cache_height.
...
- This was once an optimization, but we no longer need it with the cache reserve.
- This is also inaccurate.
2018-09-11 20:12:29 -04:00
Markus Wick
3e973bc4c6
gl_rasterizer: Use ARB_texture_storage.
...
It allows us to use texture views and it reduces the overhead within the GPU driver.
But it disallows us to reallocate the texture, but we don't do so anyways.
In the end, it is the new way to allocate textures, so there is no need to use the old way.
2018-09-11 22:18:46 +02:00
FernandoS27
5c676dc884
Implemented LEA and PSET
2018-09-11 12:50:52 -04:00
FernandoS27
3f0922715a
Implemented encodings for LEA and PSET
2018-09-11 12:50:25 -04:00
FernandoS27
2b48cfd44b
Replace old FragmentHeader for the new Header
2018-09-11 12:48:19 -04:00
FernandoS27
e926757c8f
Implemented (Partialy) Shader Header
2018-09-11 12:34:27 -04:00
bunnei
1470b85af9
Merge pull request #1291 from lioncash/default
...
hle/service: Default constructors and destructors in the cpp file where applicable
2018-09-11 11:42:05 -04:00
bunnei
2f0ff4d25b
Merge pull request #1292 from ogniK5377/renderdoc-fix
...
Fixed renderdoc input/output textures not working due to multiple render targets
2018-09-11 11:38:13 -04:00
Lioncash
46ba1bc40f
externals: Place font data within cpp files
...
This places the font data within cpp files, which mitigates the
possibility of the font data being duplicated within the binary if it's
referred to in more than one translation unit in the future. It also
stores the data within a std::array, which is more flexible when it
comes to operating with the standard library.
Furthermore, it makes the data arrays const. This is what we want, as it
allows the compiler to store the data within the read-only segment. As
it is, having several large sections of mutable data like this just
leaves spots in memory that we can accidentally write to (via accidental
overruns, what have you) and actually have it work. This ensures the
font data remains the same no matter what.
2018-09-11 04:25:33 -04:00
Lioncash
6ac955a0b4
hle/service: Default constructors and destructors in the cpp file where applicable
...
When a destructor isn't defaulted into a cpp file, it can cause the use
of forward declarations to seemingly fail to compile for non-obvious
reasons. It also allows inlining of the construction/destruction logic
all over the place where a constructor or destructor is invoked, which
can lead to code bloat. This isn't so much a worry here, given the
services won't be created and destroyed frequently.
The cause of the above mentioned non-obvious errors can be demonstrated
as follows:
------- Demonstrative example, if you know how the described error happens, skip forwards -------
Assume we have the following in the header, which we'll call "thing.h":
\#include <memory>
// Forward declaration. For example purposes, assume the definition
// of Object is in some header named "object.h"
class Object;
class Thing {
public:
// assume no constructors or destructors are specified here,
// or the constructors/destructors are defined as:
//
// Thing() = default;
// ~Thing() = default;
//
// ... Some interface member functions would be defined here
private:
std::shared_ptr<Object> obj;
};
If this header is included in a cpp file, (which we'll call "main.cpp"),
this will result in a compilation error, because even though no
destructor is specified, the destructor will still need to be generated by
the compiler because std::shared_ptr's destructor is *not* trivial (in
other words, it does something other than nothing), as std::shared_ptr's
destructor needs to do two things:
1. Decrement the shared reference count of the object being pointed to,
and if the reference count decrements to zero,
2. Free the Object instance's memory (aka deallocate the memory it's
pointing to).
And so the compiler generates the code for the destructor doing this inside main.cpp.
Now, keep in mind, the Object forward declaration is not a complete type. All it
does is tell the compiler "a type named Object exists" and allows us to
use the name in certain situations to avoid a header dependency. So the
compiler needs to generate destruction code for Object, but the compiler
doesn't know *how* to destruct it. A forward declaration doesn't tell
the compiler anything about Object's constructor or destructor. So, the
compiler will issue an error in this case because it's undefined
behavior to try and deallocate (or construct) an incomplete type and
std::shared_ptr and std::unique_ptr make sure this isn't the case
internally.
Now, if we had defaulted the destructor in "thing.cpp", where we also
include "object.h", this would never be an issue, as the destructor
would only have its code generated in one place, and it would be in a
place where the full class definition of Object would be visible to the
compiler.
---------------------- End example ----------------------------
Given these service classes are more than certainly going to change in
the future, this defaults the constructors and destructors into the
relevant cpp files to make the construction and destruction of all of
the services consistent and unlikely to run into cases where forward
declarations are indirectly causing compilation errors. It also has the
plus of avoiding the need to rebuild several services if destruction
logic changes, since it would only be necessary to recompile the single
cpp file.
2018-09-10 23:55:31 -04:00
David Marcec
4c3bd33be2
Fixed renderdoc input/output textures not working due to render targets
2018-09-11 13:31:20 +10:00
Tobias
3bac3051fc
Use open-source shared fonts if no dumped file is available ( #1269 )
...
* Add open-source shared fonts
* Address review comments
2018-09-10 21:31:01 -04:00
Tobias
804115b2a4
Port #4141 from citra: Joystick hotplug support ( #1275 )
...
* Joystick hotplug support (#4141 )
* use SDL_PollEvent instead of SDL_JoystickUpdate
Register hot plugged controller by GUID if they were configured in a previous session
* Move SDL_PollEvent into its own thread
* Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call
* Fix that joystick_list gets cleared after SDL_Quit
* Add VirtualJoystick for InputDevices thats never nullptr
* fixup! Add VirtualJoystick for InputDevices thats never nullptr
* fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr
* Remove SDL_GameController, make SDL_Joystick* unique_ptr
* fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr
* Adressed feedback; fixed handling of same guid reconnects
* fixup! Adressed feedback; fixed handling of same guid reconnects
* merge the two joystick_lists into one
* make SDLJoystick a member of VirtualJoystick
* fixup! make SDLJoystick a member of VirtualJoystick
* fixup! make SDLJoystick a member of VirtualJoystick
* fixup! fixup! make SDLJoystick a member of VirtualJoystick
* SDLJoystick: Addressed review comments
* Address one missed review comment
2018-09-10 21:29:59 -04:00
bunnei
d6e8e16a66
Merge pull request #1286 from bunnei/multi-clear
...
gl_rasterizer: Implement clear for non-zero render targets.
2018-09-10 20:30:14 -04:00
bunnei
12445b476d
Merge pull request #1285 from bunnei/depth-fix
...
gl_rasterizer_cache: Only use depth for applicable texture formats.
2018-09-10 20:28:40 -04:00
bunnei
d884e805c5
Merge pull request #1284 from bunnei/bgra8_srgb
...
gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
2018-09-10 20:28:00 -04:00
James Rowe
4bea6657ef
Merge pull request #1288 from MysticExile/remove-multicore
...
Remove the multi-core option from the UI
2018-09-10 16:30:45 -06:00
Markus Wick
c1b8cd9058
video_core: Refactor command_processor.
...
Inline the WriteReg helper as it is called ~20k times per frame.
2018-09-10 22:06:16 +02:00
Markus Wick
0cfb0bacb2
video_core: Move command buffer loop.
...
This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList.
2018-09-10 22:06:13 +02:00
MysticExile
d2f788762a
Remove multicore configure_general.ui
2018-09-10 22:04:21 +02:00
MysticExile
17f8059fea
remove multicore in configure_general.cpp
2018-09-10 22:03:23 +02:00
Markus Wick
c560043581
rasterizer: Drop unused handler.
...
This virtual function is called in a very hot spot, and it does nothing.
If this kind of feature is required, please be more specific and add callbacks
in the switch statement within Maxwell3D::WriteReg. There is no point in having
another switch statement within the rasterizer.
2018-09-10 22:03:10 +02:00
bunnei
4c0b1cc1ae
gl_rasterizer_cache: Only use depth for applicable texture formats.
...
- Fixes an issue with Octopath Traveler leaving stale data here.
2018-09-10 00:50:38 -04:00
bunnei
035e6bd407
gl_rasterizer: Implement clear for non-zero render targets.
...
- Several misc. changes to ConfigureFramebuffers in support of this.
2018-09-10 00:41:20 -04:00
bunnei
1c34498368
gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
...
- Used by Octopath Traveler (with multiple render targets).
2018-09-10 00:37:52 -04:00
bunnei
49b15af054
gl_rasterizer: Implement multiple color attachments.
2018-09-09 22:48:28 -04:00
bunnei
f9e468d891
Merge pull request #1258 from tgsm/fix-sdl-logging
...
yuzu-cmd: fix SDL logging
2018-09-09 22:34:23 -04:00
bunnei
7ddd5b765d
Merge pull request #1282 from lioncash/compat
...
yuzu: Move compatibility list specifics to their own source files
2018-09-09 22:32:53 -04:00
bunnei
50c191439d
Merge pull request #1276 from FearlessTobi/fix-stupid-stub
...
hid: Implement ReloadInputDevices
2018-09-09 22:31:04 -04:00
bunnei
3b8a0bc146
Merge pull request #1283 from lioncash/unused
...
service: Remove unused g_kernel_named_ports variable
2018-09-09 22:30:39 -04:00
Lioncash
136040ee15
service: Remove unused g_kernel_named_ports variable
...
With the named port functionality all migrated over to the kernel,
there's no need to keep this around anymore.
2018-09-09 22:10:54 -04:00
bunnei
e58855c7a4
Merge pull request #1268 from FernandoS27/tmml
...
shader_decompiler: Implemented TMML
2018-09-09 21:39:39 -04:00
FernandoS27
00131e752d
Implemented TMML
2018-09-09 20:46:31 -04:00
bunnei
223ddb2008
Merge pull request #1272 from Subv/dma_2d
...
GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
2018-09-09 19:53:17 -04:00
bunnei
fcf81147e7
Merge pull request #1280 from zero334/improvements
...
video_core: fixed arithmetic overflow warnings & improved code style
2018-09-09 19:51:46 -04:00
Lioncash
73a2d71f44
game_list: Make CompatibilityList parameter of NavigateToGamedbEntryRequested() a const reference
...
The compatibility list isn't modified within any of the slots connected
to this signal, so we can make it const to enforce immutability.
2018-09-09 19:46:07 -04:00
Lioncash
bd8065295c
yuzu: Move compatibility list specifics to their own source files
...
Lets us keep the generic portions of the compatibility list code
together, and allows us to introduce a type alias that makes it so we
don't need to type out a very long type declaration anymore, making the
immediate readability of some code better.
2018-09-09 19:45:25 -04:00
FernandoS27
073a21ac0b
Implemented TXQ dimension query type, used by SMO.
2018-09-09 11:59:01 -04:00
Patrick Elsässer
64e45b04e0
video_core: fixed arithmetic overflow warnings & improved code style
...
- Fixed all warnings, for renderer_opengl items, which were indicating a
possible incorrect behavior from integral promotion rules and types
larger than those in which arithmetic is typically performed.
- Added const for variables where possible and meaningful.
- Added constexpr where possible.
2018-09-09 17:51:43 +02:00
MerryMage
55af5bda55
cubeb_sink: Downsample arbitrary number of channels
2018-09-09 09:51:46 +01:00
tech4me
3dcedb36b4
Port Citra #4047 & #4052 : add change background color support
2018-09-08 17:00:21 -07:00
fearlessTobi
500e81429a
hid: Implement ReloadInputDevices
2018-09-09 00:57:41 +02:00
FernandoS27
82a313a14c
Change name of TEXQ to TXQ, in order to match NVIDIA's naming
2018-09-08 18:08:57 -04:00
Subv
fdb199290b
GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
...
When not set, this tells the GPU to only use the X size when performing a DMA copy.
This is only implemented for linear->linear and tiled->tiled copies. Conversion copies still retain the assert.
This bit is unset by some games for various purposes, and by nouveau when copying the vertex buffers.
2018-09-08 16:02:16 -05:00
bunnei
af074ee422
Merge pull request #1256 from bunnei/tex-target-support
...
Initial support for non-2D textures
2018-09-08 16:14:46 -04:00
bunnei
deff28d3c0
Merge pull request #1265 from zhaowenlan1779/patch-1
...
yuzu: fix title bar display
2018-09-08 16:03:25 -04:00
MerryMage
1aa195a9c0
cubeb_sink: Perform audio stretching
2018-09-08 18:56:38 +01:00
MerryMage
e51bd49f87
audio_core: Add audio stretcher
2018-09-08 18:56:38 +01:00
MerryMage
7e697ab7ff
cubeb_sink: Hold last available value instead of writing zeros
...
This reduces clicking in output audio should we underrun.
2018-09-08 18:56:38 +01:00
MerryMage
6d9dd1dc6d
cubeb_sink: Use RingBuffer
2018-09-08 18:56:38 +01:00
MerryMage
112351d557
common: Implement a ring buffer
2018-09-08 18:56:38 +01:00
fearlessTobi
a6efff8b02
Add audio stretching support
2018-09-08 18:26:23 +01:00
MerryMage
a76f0d5d06
audio_renderer: Rename AudioOut instance to audio_out
2018-09-08 16:50:12 +01:00
Pengfei Zhu
4048b54ef7
yuzu: fix title bar display
...
Previously the version number got hidden after starting a game.
2018-09-08 19:10:50 +08:00
bunnei
9cd79c25ed
Merge pull request #1246 from degasus/instanced_rendering
...
gl_rasterizer: Use baseInstance instead of moving the buffer points.
2018-09-08 04:49:24 -04:00
bunnei
2515d2433b
Merge pull request #1259 from lioncash/relocate
...
yuzu: Move GameListWorker to its own source files
2018-09-08 04:10:11 -04:00
bunnei
8b08cb925b
gl_rasterizer: Use baseInstance instead of moving the buffer points.
...
This hopefully helps our cache not to redundant upload the vertex buffer.
# Conflicts:
# src/video_core/renderer_opengl/gl_rasterizer.cpp
2018-09-08 04:05:56 -04:00
tgsm
975226e7ff
yuzu-cmd: fix SDL logging
2018-09-08 03:12:47 -04:00
Patrick Elsässer
a8974f0556
video_core: Arithmetic overflow warning fix for gl_rasterizer ( #1262 )
...
* video_core: Arithmetic overflow fix for gl_rasterizer
- Fixed warnings, which were indicating incorrect behavior from integral
promotion rules and types larger than those in which arithmetic is
typically performed.
- Added const for variables where possible and meaningful.
* Changed the casts from C to C++ style
Changed the C-style casts to C++ casts as proposed.
Took also care about signed / unsigned behaviour.
2018-09-08 02:59:59 -04:00
bunnei
23ae7cf9db
gl_rasterizer_cache: Improve accuracy of RecreateSurface for non-2D textures.
2018-09-08 02:53:39 -04:00
bunnei
fdd5c97a14
maxwell_3d: Remove assert that no longer applies.
2018-09-08 02:53:39 -04:00
bunnei
f165a85398
gl_rasterizer_cache: Partially implement several non-2D texture types.
2018-09-08 02:53:38 -04:00
bunnei
0731383124
gl_shader_decompiler: Partially implement several non-2D texture types (Subv).
2018-09-08 02:53:38 -04:00
bunnei
05f6f59ffb
gl_rasterizer: Implement texture wrap mode p.
2018-09-08 02:53:38 -04:00
bunnei
ce8291f6c5
gl_rasterizer_cache: Track texture depth.
2018-09-08 02:53:38 -04:00
bunnei
9dccf7e1fa
gl_rasterizer_cache: Remove impl. of FlushGLBuffer.
...
- Will not work for non-2d textures, and was not used anyways.
2018-09-08 02:53:37 -04:00
bunnei
030676b95d
gl_rasterizer_cache: Keep track of texture type per surface.
2018-09-08 02:53:37 -04:00
bunnei
a439f7b6e1
gl_rasterizer_cache: Remove unused DownloadGLTexture.
2018-09-08 02:53:37 -04:00
bunnei
b56e5edafc
gl_state: Keep track of texture target.
2018-09-08 02:53:37 -04:00
bunnei
460ebc8187
Merge pull request #1257 from lioncash/process
...
core: Migrate current_process pointer to the kernel
2018-09-07 22:34:05 -04:00
Lioncash
564b7fdc9c
yuzu: Move GameListWorker to its own source files
...
This has gotten sufficiently large enough to warrant moving it to its
own source files. Especially given it dumps the file_sys headers around
code that doesn't use it for the most part.
This'll also make it easier to introduce a type alias for the
compatibility list, so a large unordered_map type declaration doesn't
need to be specified all the time (we don't want to propagate the
game_list_p.h include via the main game_list.h header).
2018-09-07 16:25:28 -04:00
CaptV0rt3x
9382414b20
For SDL Frontend
2018-09-07 11:57:05 +05:30
CaptV0rt3x
e3af341d5b
Better Title Bar Display
2018-09-07 11:54:51 +05:30
Lioncash
3f17fe7133
core: Migrate current_process pointer to the kernel
...
Given we now have the kernel as a class, it doesn't make sense to keep
the current process pointer within the System class, as processes are
related to the kernel.
This also gets rid of a subtle case where memory wouldn't be freed on
core shutdown, as the current_process pointer would never be reset,
causing the pointed to contents to continue to live.
2018-09-06 20:52:58 -04:00
bunnei
a164b413fa
Merge pull request #1250 from lioncash/file-sys
...
file_sys/{nca_patch, patch_manager}: Amend unnecessary/missing includes.
2018-09-06 19:20:09 -04:00
bunnei
9273c02427
Merge pull request #1249 from FearlessTobi/disable-vsync
...
frontend: Set swap interval to 0
2018-09-06 19:20:01 -04:00
bunnei
b89dda2b98
Merge pull request #1251 from lioncash/core-inc
...
core/core: Remove unnecessary sm/controller include
2018-09-06 19:19:51 -04:00
bunnei
9947c6ad59
Merge pull request #1252 from lioncash/header
...
video_core/CMakeLists: Add missing gl_buffer_cache.h
2018-09-06 19:19:43 -04:00
bunnei
9b50dca2bb
Merge pull request #1253 from lioncash/explicit
...
video_core/gl_buffer_cache: Minor tidying changes
2018-09-06 19:19:35 -04:00
bunnei
009a2cc9cc
Merge pull request #1255 from bunnei/minor-opt
...
gl_rasterizer: Call state.Apply only once on SetupShaders.
2018-09-06 19:19:16 -04:00
bunnei
820f646458
gl_rasterizer: Call state.Apply only once on SetupShaders.
2018-09-06 17:41:53 -04:00
bunnei
948f6c0738
gl_shader_decompiler: Implement saturate mode for IPA.
2018-09-06 17:40:03 -04:00
Lioncash
ddcdbce067
gl_buffer_cache: Default initialize member variables
...
Ensures that the cache always has a deterministic initial state.
2018-09-06 15:07:15 -04:00
Lioncash
8d685a29bc
gl_buffer_cache: Make GetHandle() a const member function
...
GetHandle() internally calls GetHandle() on the stream_buffer instance,
which is a const member function, so this can be made const as well.
2018-09-06 15:07:15 -04:00
Lioncash
14230fe2af
gl_buffer_cache: Remove unnecessary includes
2018-09-06 15:05:52 -04:00
Lioncash
68296d9474
gl_buffer_cache: Make constructor explicit
...
Implicit conversions during construction isn't desirable here.
2018-09-06 14:54:49 -04:00
Lioncash
8f4e09ba07
video_core/CMakeLists: Add missing gl_buffer_cache.h
...
Without this, the header file won't show up by default within IDEs such
as Visual Studio.
2018-09-06 14:49:51 -04:00
Lioncash
56ab608044
core/core: Remove unnecessary sm/controller include
...
The only reason this include was necessary, was because the constructor
wasn't defaulted in the cpp file and the compiler would inline it
wherever it was used. However, given Controller is forward declared, all
those inlined constructors would see an incomplete type, causing a
compilation failure. So, we just place the constructor in the cpp file,
where it can see the complete type definition, allowing us to remove
this include.
2018-09-06 14:38:39 -04:00
Lioncash
54724fe918
file_sys/nca_patch: Amend constructor initializer list order
...
Orders the elements in the initializer list in the order they're
specified in the class. This prevents compiler warnings about
initialization order.
2018-09-06 14:00:11 -04:00
Lioncash
b155b3ef81
file_sys/nca_patch: Remove unnecessary includes
...
romfs.h doesn't need to be included in the header, the only real
dependency here is common's swap.h that needs to be included.
2018-09-06 13:58:53 -04:00
Lioncash
a859a35ec8
file_sys/patch_manager: Add missing includes
...
These includes were previously being satisfied indirectly.
2018-09-06 13:53:23 -04:00
fearlessTobi
742f895f8b
frontend: Set swap interval to 0
2018-09-06 18:57:51 +02:00
Markus Wick
a781042700
gl_shader_gen: Initialize position.
...
IMO the old code is fine, but nvidia raises shader compiler warnings.
Trivial fix through...
2018-09-06 13:37:50 +02:00
bunnei
77554ac773
Merge pull request #1243 from degasus/VAO_cache
...
gl_rasterizer: Implement a VAO cache.
2018-09-05 22:50:52 -04:00
bunnei
6f09c5b128
Merge pull request #1244 from FernandoS27/ipa
...
shader_decompiler: Implemented IPA Properly (Stage 1)
2018-09-05 21:20:40 -04:00
FernandoS27
e63b229f4a
Implemented IPA Properly
2018-09-05 20:15:47 -04:00
bunnei
94f193af65
Merge pull request #1242 from lioncash/file-sys
...
file_sys/submission_package: Replace includes with forward declarations where applicable
2018-09-05 18:53:32 -04:00
bunnei
a6ae765410
Merge pull request #1179 from DarkLordZach/bktr
...
file_sys: Add support for BKTR format (Game Updates)
2018-09-05 18:06:11 -04:00
Markus Wick
7f15306f78
gl_rasterizer: Skip TODO log.
...
This is called ~3k times per frame in SMO ingame.
My laptop spends ~3ms per frame on allocating and freeing this string.
Let's just stop printing this kind of redundant information.
2018-09-05 20:20:20 +02:00
Lioncash
6bd6beee20
file_sys/submission_package: Correct constructor initialization list order
...
Orders the elements in the sequence to match the order in which they'll
actually be initialized in.
2018-09-05 13:44:42 -04:00
Markus Wick
d3ad9469a1
gl_rasterizer: Implement a VAO cache.
...
This patch caches VAO objects instead of re-emiting all pointers per draw call.
Configuring this pointers is known as a fast task, but it yields too many GL
calls. So for better performance, just bind the VAO instead of 16 pointers.
2018-09-05 18:46:35 +02:00
Lioncash
c0b7ed8b58
file_sys/submission_package: Replace includes with forward declarations where applicable
2018-09-05 12:08:04 -04:00
Markus Wick
50a806ea67
renderer_opengl: Implement a buffer cache.
...
The idea of this cache is to avoid redundant uploads. So we are going
to cache the uploaded buffers within the stream_buffer and just reuse
the old pointers.
The next step is to implement a VBO cache on GPU memory, but for now,
I want to check the overhead of the cache management. Fetching the
buffer over PCI-E should be quite fast.
2018-09-05 08:03:50 +02:00
bunnei
a1ef02c3e6
Merge pull request #1240 from degasus/optimizations
...
gl_shader_cache: Use an u32 for the binding point cache.
2018-09-04 18:20:14 -04:00
Zach Hilman
c913136eb2
bktr: Fix bucket overlap error
2018-09-04 17:01:54 -04:00
Zach Hilman
7d5d781b20
drd: Parse title ID from program metadata
2018-09-04 16:25:30 -04:00
Zach Hilman
23a16c1720
patch_manager: Centralize Control-type NCA parsing
2018-09-04 16:25:10 -04:00
Zach Hilman
92e26df00f
nsp: Fix error masking issue with XCI files
...
Now display correct error instead of catch-all MissingProgramNCA
2018-09-04 16:24:24 -04:00
Zach Hilman
c91b60a421
game_list: Fix version display on non-NAND titles
2018-09-04 16:24:02 -04:00
Zach Hilman
cbd517d8cc
bktr: Add logging on successful patch
2018-09-04 16:24:02 -04:00
Zach Hilman
2814ca3624
game_list: Use friendly game versions
...
Mainly, from control.nacp metadata instead of cnmt metadata
2018-09-04 16:24:02 -04:00
Zach Hilman
a6e75cd45b
bktr: Implement IVFC offset shifting
...
Fixes base game read errors
2018-09-04 16:24:02 -04:00
Zach Hilman
9664ce255d
bktr: Fix missing includes and optimize style
2018-09-04 16:24:02 -04:00
Zach Hilman
f92b3512e0
main: Make game updates installable
2018-09-04 16:24:02 -04:00
Zach Hilman
8e150c46b9
game_list: Display patch names and versions on list
2018-09-04 16:24:02 -04:00
Zach Hilman
f5e03b9173
loader: Add BKTR-specific error messages and codes
2018-09-04 16:23:44 -04:00
Zach Hilman
08fcb4694f
loader: Ignore patches on NRO and DRD
2018-09-04 16:23:15 -04:00
Zach Hilman
97bf83bc56
patch_manager: Add usages of patches to ExeFS
2018-09-04 16:23:15 -04:00
Zach Hilman
8e900a301a
file_sys: Add class to manage game patches
...
Right now only includes Updates, but should eventually contain all of the other patches we need.
2018-09-04 16:22:25 -04:00
Zach Hilman
54e7ddb93a
file_sys: Add BKTR patching mechanism
2018-09-04 16:22:25 -04:00
Zach Hilman
1efe5a76b1
content_archive: Add BKTR header parsing to NCA
2018-09-04 16:22:25 -04:00
Zach Hilman
9951f6d054
registration: Add RegisteredCacheUnion
...
Aggregates multiple caches into one interface
2018-09-04 16:21:40 -04:00
Zach Hilman
d2caf4af7d
game_list: Use RegisteredCacheUnion for installed
...
Reduces code
2018-09-04 16:21:40 -04:00
Zach Hilman
99fbcb3bf2
aes_util: Fix error involving reads of less than 0x10
...
Issues with block size are fixed by making all reads minimum length of 0x10
2018-09-04 16:21:40 -04:00
Markus Wick
99a71580c4
gl_shader_cache: Use an u32 for the binding point cache.
...
The std::string generation with its malloc and free requirement
was a noticeable overhead. Also switch to an ordered_map to
avoid the std::hash call. As those maps usually have a size of
two elements, the lookup time shall not matter.
2018-09-04 21:04:41 +02:00
Zach Hilman
87be4bc283
main: Only show DRD deprecation warning once
2018-09-04 14:44:48 -04:00
Zach Hilman
e973cceadd
control_metadata: Use alternate language names if AmericanEnglish isn't available
2018-09-04 14:30:03 -04:00
Zach Hilman
23d2c50479
card_image: Add program title ID getter
2018-09-04 14:29:19 -04:00
Zach Hilman
1280061725
qt: Add deprecation warnings for DRD format
2018-09-04 14:29:19 -04:00
Zach Hilman
8974771334
registration: Fix NSP installation errors
2018-09-04 14:29:19 -04:00
Zach Hilman
e4e55d064e
nsp: Comply with style and performance guidelines
2018-09-04 14:29:19 -04:00
Zach Hilman
58473309a0
qt: Add UI support for NSP files
2018-09-04 14:28:41 -04:00
Zach Hilman
f7eaea424d
registration: Add support for installing NSP files
2018-09-04 14:28:41 -04:00
Zach Hilman
d7518cf6e0
loader: Add AppLoader for NSP files
2018-09-04 14:27:33 -04:00
Zach Hilman
5c8aff984e
card_image: Parse XCI secure partition with NSP
...
Eliminated duplicate code and adds support for Rev1+ carts
2018-09-04 14:27:33 -04:00
Zach Hilman
93703431e2
file_sys: Add Nintendo Submission Package (NSP)
2018-09-04 14:25:54 -04:00
Zach Hilman
a040929c90
drd: Load title ID from program metadata
...
Previously only loaded from control metadata
2018-09-04 14:25:54 -04:00
Zach Hilman
b555311438
loader: Add NSP file type and NSP-specific errors
2018-09-04 14:25:54 -04:00
Zach Hilman
d770c60205
key_manager: Avoid autogeneration if key exists
2018-09-04 14:25:54 -04:00
bunnei
dda4b5e89e
Merge pull request #1238 from lioncash/explicit
...
common/logging: Minor changes
2018-09-04 12:18:00 -04:00
bunnei
9a07e9f805
Merge pull request #1237 from degasus/optimizations
...
Optimizations
2018-09-04 12:16:06 -04:00
bunnei
ed37b68fb5
Merge pull request #1223 from DarkLordZach/custom-nand-sd-dirs
...
file_sys: Allow for custom NAND/SD directories
2018-09-04 11:54:22 -04:00
bunnei
26e96d16d0
Merge pull request #1232 from lioncash/copy
...
gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
2018-09-04 11:52:25 -04:00
bunnei
8ec1e16867
Merge pull request #1235 from lioncash/forward-decl
...
file_sys: Replace includes with forward declarations where applicable
2018-09-04 11:51:54 -04:00
bunnei
5a29b358aa
Merge pull request #1236 from degasus/microprofile
...
Update microprofile scopes.
2018-09-04 11:50:58 -04:00
bunnei
c156ee8eb8
Merge pull request #1230 from lioncash/ssl
...
ssl: Move SSL class to cpp file
2018-09-04 11:49:22 -04:00
Lioncash
6ef84f1c4c
common/logging: Amend documentation comments
...
Multi-line doc comments still need the '<' after the ///, otherwise it's
treated as a regular comment and makes the original doc comment broken
in viewers, IDEs, etc. While we're at it, also fix some typos in the
comments.
2018-09-04 10:49:08 -04:00
Lioncash
2949d9552c
common/logging/filter: Replace C-style case with C++ static_cast
2018-09-04 10:44:36 -04:00
Lioncash
978f3a3282
common/logging/filter: Make constructor explicit
...
Implicit conversions aren't desirable here.
2018-09-04 10:43:31 -04:00
Markus Wick
dce624e3f1
core: Use a raw pointer in GetGPUDebugContext.
...
This helper is called very often. The memory ownership shall not be transfered, so just return the raw pointer.
2018-09-04 14:10:05 +02:00
Markus Wick
2081ed7db2
command_processor: Use std::array for bound_engines.
...
subchannel is a 3 bit field. So there must not be more than 8 bound engines.
And using a hashmap for up to 8 values is a bit overpowered.
2018-09-04 14:10:05 +02:00
Markus Wick
10bc725944
Update microprofile scopes.
...
Blame the subsystems which deserve the blame :)
The updated list is not complete, just the ones I've spotted on random sampling the stack trace.
2018-09-04 11:04:26 +02:00
Lioncash
a813c10e1c
file_sys: Replace includes with forward declarations where applicable
...
Cuts down on include dependencies, resulting in less files that need to
be rebuilt when certain things are changed.
2018-09-03 22:52:24 -04:00
bunnei
1c5636e690
Merge pull request #1231 from lioncash/global
...
service: Migrate global named port map to the KernelCore class
2018-09-03 21:21:12 -04:00
Zach Hilman
04397cd185
qt: Add message about not moving contents on dir change
2018-09-03 19:23:33 -04:00
Zach Hilman
1ff3318458
qt: Add UI options to change NAND/SD dirs
2018-09-03 19:23:33 -04:00
Zach Hilman
b2268f1f8d
settings: Save and load NAND/SD dirs from config
2018-09-03 19:23:33 -04:00
Lioncash
18a89931a9
gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
...
Using the getter function intended for external code here makes an
unnecessary copy of the already-accessible used_shaders vector.
2018-09-02 13:10:11 -04:00
Lioncash
a405373144
vfs_real: Forward declare IOFile
...
Eliminates the need to rebuild some source files if the file_util header
ever changes. This also uncovered some indirect inclusions, which have
also been fixed.
2018-09-02 12:38:14 -04:00
Lioncash
1242c1ec0a
service: Migrate global named port map to the KernelCore class
...
Now that we have a class representing the kernel in some capacity, we
now have a place to put the named port map, so we move it over and get
rid of another piece of global state within the core.
2018-09-02 12:35:30 -04:00
Lioncash
41cd766438
ssl: Move SSL class to cpp file
...
This isn't required to be visible to anything outside of the main source
file, and will eliminate needing to rebuild anything else including the
header if the SSL class needs to be changed in the future.
2018-09-02 11:45:26 -04:00
bunnei
325f3e0693
Merge pull request #1213 from DarkLordZach/octopath-fs
...
filesystem/maxwell_3d: Various changes to boot Project Octopath Traveller
2018-09-02 10:49:18 -04:00
bunnei
89be49d2f3
Merge pull request #1215 from ogniK5377/texs-nodep-assert
...
Added assert for TEXS nodep
2018-09-02 10:48:27 -04:00
bunnei
d2ade27c3f
Merge pull request #1220 from FearlessTobi/extensions-qol
...
yuzu: Display the unsupported GL extensions in the popup
2018-09-02 10:47:25 -04:00
bunnei
177c45e97d
Merge pull request #1214 from ogniK5377/ipa-assert
...
Added better asserts to IPA, Renamed IPA modes to match mesa
2018-09-02 10:44:43 -04:00
bunnei
9c206fe94d
Merge pull request #1216 from ogniK5377/ffma-assert
...
Added FFMA asserts and missing fields
2018-09-02 10:44:13 -04:00
bunnei
1ccc0457d5
Merge pull request #1218 from ogniK5377/fmul-assert
...
Added FMUL asserts
2018-09-02 10:43:48 -04:00
Lioncash
fda8f1da20
filesystem: Move dir retrieval after path checking in DeleteFile()
...
We don't need to do the lookup if the path is considered empty
currently.
2018-09-02 09:20:17 -04:00
fearlessTobi
0f453488e2
citra_qt: Display the unsupported GL extensions in the popup
2018-09-01 19:01:53 +02:00
David Marcec
60754b4728
Removed saturate assert
...
Unneeded as we already implement it
2018-09-01 19:33:32 +10:00
David Marcec
2edab4e840
Removed saturate assert
...
Saturate already implemented
2018-09-01 19:29:20 +10:00
David Marcec
2bc6abb9a1
Changed tab5980_0 default from 0 -> 1
2018-09-01 19:15:03 +10:00
David Marcec
6f8ed9508d
Added FMUL asserts
2018-09-01 19:05:10 +10:00
David Marcec
b89fc407d7
Added FFMA asserts
2018-09-01 18:45:14 +10:00
David Marcec
948bc87a59
Added assert for TEXS nodep
2018-09-01 17:00:01 +10:00
David Marcec
ad3dca7e62
Added better asserts to IPA, Renamed IPA modes to match mesa
...
IpaMode is changed to IpaInterpMode
IpaMode is suppose to be 2 bits not 3
Added IpaSampleMode
Added Saturate
Renamed modes based on
d27c791891/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp (L2530)
2018-09-01 16:34:27 +10:00
Zach Hilman
f32e28c7b8
maxwell_3d: Use CoreTiming for query timestamp
2018-08-31 23:25:18 -04:00
Zach Hilman
19d0951ae6
filesystem: Implement OpenReadOnlySaveDataFilesystem
2018-08-31 23:19:49 -04:00
Zach Hilman
7939ea18e8
filesystem: Add OpenFileSystemWithPatch
2018-08-31 23:19:23 -04:00
Lioncash
4a587b81b2
core/core: Replace includes with forward declarations where applicable
...
The follow-up to e2457418da
, which
replaces most of the includes in the core header with forward declarations.
This makes it so that if any of the headers the core header was
previously including change, then no one will need to rebuild the bulk
of the core, due to core.h being quite a prevalent inclusion.
This should make turnaround for changes much faster for developers.
2018-08-31 16:30:14 -04:00
bunnei
7f7eb29323
gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies.
2018-08-31 13:07:28 -04:00
bunnei
123c065086
gl_rasterizer_cache: Also use reserve cache for RecreateSurface.
2018-08-31 13:07:28 -04:00
bunnei
9bc71fcc5f
rasterizer_cache: Use boost::interval_map for a more accurate cache.
2018-08-31 13:07:28 -04:00
bunnei
d647d9550c
gl_renderer: Cache textures, framebuffers, and shaders based on CPU address.
2018-08-31 13:07:27 -04:00
bunnei
16d65182f9
gl_rasterizer: Fix issues with the rasterizer cache.
...
- Use a single cached page map.
- Fix calculation of ending page.
2018-08-31 13:07:27 -04:00
greggameplayer
06578e89b2
Implement BC6H_UF16 & BC6H_SF16 ( #1092 )
...
* Implement BC6H_UF16 & BC6H_SF16
Require by ARMS
* correct coding style
* correct coding style part 2
2018-08-31 12:11:19 -04:00
bunnei
f08d24e9c0
Merge pull request #1204 from lioncash/pimpl
...
core: Make the main System class use the PImpl idiom
2018-08-31 11:31:20 -04:00
bunnei
6683bf50b5
Merge pull request #1207 from degasus/hotfix
...
Report correct shader size.
2018-08-31 11:21:15 -04:00
Lioncash
e2457418da
core: Make the main System class use the PImpl idiom
...
core.h is kind of a massive header in terms what it includes within
itself. It includes VFS utilities, kernel headers, file_sys header,
ARM-related headers, etc. This means that changing anything in the
headers included by core.h essentially requires you to rebuild almost
all of core.
Instead, we can modify the System class to use the PImpl idiom, which
allows us to move all of those headers to the cpp file and forward
declare the bulk of the types that would otherwise be included, reducing
compile times. This change specifically only performs the PImpl portion.
2018-08-31 07:16:57 -04:00
Markus Wick
5be8b7a362
Report correct shader size.
...
Seems like this was an oversee in regards to 1fd979f50a
It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong.
2018-08-31 09:56:37 +02:00
Hexagon12
d626bc8c62
Added predicate comparison GreaterEqualWithNan
2018-08-31 10:40:18 +03:00
bunnei
26aaa86ece
Merge pull request #1195 from FearlessTobi/port-gamelist-compat
...
yuzu: Show game compatibility in the game list (PR ported from Citra)
2018-08-30 21:34:43 -04:00
Laku
915ab81ec2
gl_shader_decompiler: Implement POPC ( #1203 )
...
* Implement POPC
* implement invert
2018-08-30 21:32:58 -04:00
bunnei
d6accf96ff
Merge pull request #1200 from bunnei/improve-ipa
...
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-30 10:31:26 -04:00
bunnei
5094dfa081
Merge pull request #1198 from lioncash/kernel
...
kernel: Eliminate kernel global state
2018-08-30 10:02:50 -04:00
tech4me
a6dd577d02
Shaders: Implemented IADD3
2018-08-29 13:44:41 -04:00
fearlessTobi
78653f7339
Show game compatibility within yuzu
2018-08-29 15:42:53 +02:00
bunnei
b1ccd88434
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-29 00:37:29 -04:00
Lioncash
0cbcd6ec9a
kernel: Eliminate kernel global state
...
As means to pave the way for getting rid of global state within core,
This eliminates kernel global state by removing all globals. Instead
this introduces a KernelCore class which acts as a kernel instance. This
instance lives in the System class, which keeps its lifetime contained
to the lifetime of the System class.
This also forces the kernel types to actually interact with the main
kernel instance itself instead of having transient kernel state placed
all over several translation units, keeping everything together. It also
has a nice consequence of making dependencies much more explicit.
This also makes our initialization a tad bit more correct. Previously we
were creating a kernel process before the actual kernel was initialized,
which doesn't really make much sense.
The KernelCore class itself follows the PImpl idiom, which allows
keeping all the implementation details sealed away from everything else,
which forces the use of the exposed API and allows us to avoid any
unnecessary inclusions within the main kernel header.
2018-08-28 22:31:51 -04:00
bunnei
4d7e1662c8
Merge pull request #1193 from lioncash/priv
...
gpu: Make memory_manager private
2018-08-28 12:28:57 -04:00
bunnei
eb4f2d5596
Merge pull request #1192 from lioncash/unused
...
gl_rasterizer: Remove unused variables
2018-08-28 12:28:13 -04:00
bunnei
d8ba202070
Merge pull request #1191 from lioncash/noexcept
...
hle/result: Make ResultVal's move constructor as noexcept
2018-08-28 12:27:48 -04:00
bunnei
72e4499a9e
Merge pull request #1194 from lioncash/alloc
...
gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
2018-08-28 11:27:44 -04:00
Lioncash
2e7dc4cac9
gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
...
Given std::vector is a type with a non-trivial destructor, this
variable cannot be optimized away by the compiler, even if unused.
Because of that, something that was intended to be fairly lightweight,
was actually allocating 32KB and deallocating it at the end of the
function.
2018-08-28 11:20:41 -04:00
Lioncash
45fb74d262
gpu: Make memory_manager private
...
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
2018-08-28 11:11:50 -04:00
Lioncash
6771a18c6c
gl_rasterizer: Remove unused variables
2018-08-28 10:46:29 -04:00
Lioncash
f1bc62bb4c
hle/result: Make ResultVal's move constructor as noexcept
...
Many containers within the standard library provide different behaviors
based on whether or not a move constructor/assignment operator can be
guaranteed not to throw or not.
Notably, implementations will generally use std::move_if_noexcept (or an
internal implementation of it) to provide strong exception guarantees.
If a move constructor potentially throws (in other words, is not
noexcept), then certain behaviors will create copies, rather than moving
the values.
For example, consider std::vector. When a std::vector calls resize(),
there are two ways the elements can be relocated to the new block of
memory (if a reallocation happens), by copy, or by moving the existing
elements into the new block of memory. If a type does not have a
guarantee that it will not throw in the move constructor, a copy will
happen. However, if it can be guaranteed that the move constructor won't
throw, then the elements will be moved.
This just allows ResultVal to be moved instead of copied all the time if
ever used in conjunction with containers for whatever reason.
2018-08-28 09:39:50 -04:00
fearlessTobi
4a56931703
Fix two stupid errors made in #1141
2018-08-28 15:16:03 +02:00
bunnei
ffe2336136
Merge pull request #1165 from bunnei/shader-cache
...
renderer_opengl: Implement a new shader cache.
2018-08-27 20:35:58 -04:00
fearlessTobi
9a6bfc55f3
yuzu: Fix stick UI direction order
2018-08-28 00:59:21 +02:00
bunnei
a409d49bbd
Merge pull request #1177 from lioncash/err
...
kernel/error: Amend several error codes
2018-08-27 18:37:48 -04:00
bunnei
b55d8111e6
renderer_opengl: Implement a new shader cache.
2018-08-27 18:26:46 -04:00
bunnei
a0e1566dc5
gl_rasterizer_cache: Update to use RasterizerCache base class.
2018-08-27 18:26:46 -04:00
bunnei
382852418b
video_core: Add RasterizerCache class for common cache management code.
2018-08-27 18:26:45 -04:00
bunnei
2f5ed3877c
Merge pull request #1169 from Lakumakkara/sel
...
shader_bytecode: fix SEL_IMM bitstring
2018-08-27 18:24:57 -04:00
bunnei
90fd03015a
Merge pull request #1188 from lioncash/unused
...
vfs_real: Remove unused variable in CreateDirectoryRelative()
2018-08-27 18:24:23 -04:00
bunnei
2562fe4a16
Merge pull request #1170 from lioncash/ret
...
file_util: Correct return value in early exit of ReadFileToString()
2018-08-27 18:18:31 -04:00
bunnei
62edc01525
Merge pull request #1175 from lioncash/ns
...
core: Namespace all code in the arm subdirectory under the Core namespace
2018-08-27 18:17:12 -04:00
bunnei
5d2043598e
Merge pull request #1187 from lioncash/shadow
...
registered_cache: Get rid of variable shadowing in ProcessFiles()
2018-08-27 18:15:49 -04:00
Lioncash
c6024379a4
vfs_real: Remove unused variable in CreateDirectoryRelative()
2018-08-27 15:58:23 -04:00
Lioncash
d3934d7da7
registered_cache: Get rid of variable shadowing in ProcessFiles()
...
Prevents compiler warnings.
2018-08-27 15:55:56 -04:00
bunnei
887a9c5c29
Merge pull request #1128 from DarkLordZach/malformed-hex-crash
...
hex_util: Replace logic_errors with LOG_CRITICAL
2018-08-27 15:45:22 -04:00
bunnei
af59d4bff0
Merge pull request #1176 from lioncash/info
...
svc: Return process title ID if queried in GetInfo()
2018-08-27 15:44:52 -04:00
bunnei
f96ded9815
Merge pull request #1174 from lioncash/debug
...
debug_utils: Minor individual interface changes
2018-08-27 15:44:29 -04:00
bunnei
8c66a5a9a5
Merge pull request #1162 from ogniK5377/ttf-plu
...
PL:U Added SharedFonts loading via TTF
2018-08-27 15:43:10 -04:00
bunnei
34a447d24e
Merge pull request #1168 from lioncash/header
...
hid: Move core include to cpp file
2018-08-27 15:42:52 -04:00
bunnei
8d86747514
Merge pull request #1171 from lioncash/true
...
core: Remove always true conditionals in Load()
2018-08-27 15:41:58 -04:00
tech4me
d26a46feed
set: Fixed GetAvailableLanguageCodes() to follow the max_entries
...
Rightnow, in games use GetAvailableLanguageCodes(), there is a WriteBuffer() with size larger than the buffer_size. (Core Critical core\hle\kernel\hle_ipc.cpp:WriteBuffer:296: size (0000000000000088) is greater than buffer_size (0000000000000078))
0x88 = 17(languages) * 8
0x78 = 15(languages) * 8
GetAvailableLanguageCodes() can only support 15 languages.
After firmware 4.0.0 there are 17 supported language instead of 15, to enable this GetAvailableLanguageCodes2() need to be used.
So GetAvailableLanguageCodes() will be caped at 15 languages.
Reference:
http://switchbrew.org/index.php/Settings_services
2018-08-26 00:11:13 -07:00
bunnei
be2f1eabd7
Merge pull request #1173 from lioncash/batch
...
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
2018-08-25 10:59:54 -04:00
bunnei
23b86fd3ea
Merge pull request #1167 from lioncash/assert
...
gl_rasterizer: Correct assertion condition in SyncLogicOpState()
2018-08-25 10:50:59 -04:00
Lioncash
f708207ae6
kernel/error: Amend error code for ERR_MAX_CONNECTIONS_REACHED
...
We can make this error code an alias of the resource limit exceeded
error code, allowing us to get rid of the lingering 3DS error code of
the same type.
2018-08-25 09:40:42 -04:00
Lioncash
bfb0c87b7b
kernel/error: Amend error code for ERR_PORT_NAME_TOO_LONG
...
We can treat this as an alias of TooLarge for documentation purposes.
This also lets us get rid of another lingering 3DS-related error code.
2018-08-25 09:40:29 -04:00
Lioncash
81ca46dd17
kernel/error: Add error code for the handle table being full
...
This replaces the lingering 3DS constant with the proper one, and
utilizes it within HandleTable's Create() member function.
2018-08-25 09:40:21 -04:00
Lioncash
b8be5524bc
kernel/error: Add error code for invalid memory permissions
2018-08-25 09:40:12 -04:00
Lioncash
2fd45093f2
kernel/error: Correct kernel error code for invalid combination
2018-08-25 09:40:00 -04:00
Sebastian Valle
f170159fde
Merge pull request #1166 from lioncash/typo
...
filesystem: Fix typo in log message
2018-08-25 07:19:46 -05:00
Lioncash
e81354ae38
svc: Return process title ID if queried in GetInfo()
...
We already have the variable itself set up to perform this task, so we
can just return its value from the currently executing process instead
of always stubbing it to zero.
2018-08-25 05:02:28 -04:00
Mat M
6426b0f551
Merge pull request #1094 from DarkLordZach/nax0
...
file_sys: Add support for NAX archives
2018-08-24 23:47:46 -04:00
Zach Hilman
6314a799aa
file_sys/crypto: Fix missing/unnecessary includes
2018-08-24 22:15:32 -04:00
Lioncash
43e0d865fa
core: Namespace all code in the arm subdirectory under the Core namespace
...
Gets all of these types and interfaces out of the global namespace.
2018-08-24 21:50:39 -04:00
Lioncash
c65713832c
debug_utils: Remove unused includes
...
Quite a bit of these aren't necessary directly within the debug_utils
header and can be removed or included where actually necessary.
2018-08-24 20:49:14 -04:00
Lioncash
1e6a209649
debug_utils: Make BreakpointObserver class' constructor explicit
...
Avoids implicit conversions.
2018-08-24 20:49:14 -04:00
Lioncash
b6425c0511
debug_utils: Initialize active_breakpoint member of DebugContext
...
Ensures that all class members are initialized.
2018-08-24 20:15:50 -04:00
Lioncash
20800f2df7
maxwell3d: Move FinishedPrimitiveBatch event after AcceleratedDrawBatch()
...
The start and finish events should likely not be right after one another
like this, otherwise the batch will appear to complete immediately
2018-08-24 19:58:05 -04:00
Zach Hilman
f09da5d1c9
Merge pull request #1065 from DarkLordZach/window-title
...
qt: Add filename and title id to window title while running
2018-08-24 14:34:03 -04:00
Lioncash
8492ec1669
core: Remove always true conditionals in Load()
...
These conditions are always true, since the outer conditional already
checks for these conditions.
2018-08-24 02:48:30 -04:00
Lioncash
c74b7ee204
file_util: Correct return value in early exit of ReadFileToString()
...
While still essentially being zero, we should be returning a numeric
value here, not a boolean typed value.
2018-08-24 02:20:02 -04:00
Laku
36093a3e4d
fix SEL_IMM bitstring
2018-08-24 07:18:12 +03:00
Lioncash
ec59e4a6c5
hid: Move core include to cpp file
...
This isn't required to be in the header. Instead, directly include what
this header needs and move it to the cpp file where it belongs.
2018-08-23 23:20:35 -04:00
Lioncash
8fd9eb71b4
gl_rasterizer: Correct assertion condition in SyncLogicOpState()
...
Previously the assert would always be hit, since it was the equivalent
of: array == nullptr, which is never true.
2018-08-23 23:00:54 -04:00
bunnei
018c25e123
Merge pull request #1164 from tech4me/decode_iadd3
...
Shaders: Added decodings for IADD3 instructions
2018-08-23 22:59:34 -04:00
Lioncash
f6f5c2e4d8
filesystem: Fix typo in log message
2018-08-23 22:12:31 -04:00
Tobias
165c23c848
Port #4013 from Citra: "Init logging sooner so we dont miss some logs on startup" ( #1142 )
...
* Port #4013 from Citra: "Init logging sooner so we dont miss some logs on startup"
* Fix compilation
2018-08-23 19:52:06 -04:00
Zach Hilman
d1a6dd61d1
xci: Ignore NCA files with updates in secure
2018-08-23 18:53:37 -04:00
Zach Hilman
4f18c17df7
content_archive: Add update title detection
...
This is needed because the title IDs of update NCAs will not use the update title ID. The only sure way to tell is to look for a partition with BKTR crypto.
2018-08-23 18:53:13 -04:00
David
5049ca5d8c
Added GetBootMode ( #1107 )
...
* Added GetBootMode
Used by homebrew
* Added enum for GetBootMode
2018-08-23 18:31:45 -04:00
tech4me
ba2972bc64
Shaders: Added decodings for IADD3 instructions
2018-08-23 15:46:59 -04:00
Zach Hilman
06487c2c8d
hex_util: Replace logic_errors with LOG_CRITICAL
...
Makes it so malformed hex strings do not crash the entire program.
2018-08-23 14:44:51 -04:00
Zach Hilman
67fa51ea2f
qt: Add filename and title id to window title while running
2018-08-23 14:12:56 -04:00
David Marcec
78b109d195
Addressed plu TTF changes
2018-08-24 02:18:04 +10:00
bunnei
0dce6d7008
Merge pull request #1160 from bunnei/surface-reserve
...
gl_rasterizer_cache: Several improvements
2018-08-23 12:04:37 -04:00
Zach Hilman
ccfd176382
key_manager: Eliminate indexed for loop
2018-08-23 11:53:30 -04:00
Zach Hilman
119ab308b5
key_manager: Create keys dir if it dosen't exist
...
On call to WriteKeyToFile, so that the autogenerated file can be written.
2018-08-23 11:53:30 -04:00
Zach Hilman
a7e8d10969
file_sys: Cut down on includes and copies
2018-08-23 11:53:30 -04:00
Zach Hilman
42dc856ce1
crypto: Eliminate magic constants
2018-08-23 11:53:30 -04:00
Zach Hilman
61a5b56abd
key_manager: Add support for autogenerated keys
...
Stored in a separate file than manual keys.
2018-08-23 11:53:30 -04:00
Zach Hilman
f26fc64cb4
key_manager: Add support for KEK and SD seed derivation
2018-08-23 11:53:30 -04:00
Zach Hilman
cde665c565
key_manager: Switch to boost flat_map for keys
...
Should make key gets marginally faster.
2018-08-23 11:53:30 -04:00
Zach Hilman
60b7a3b904
game_list: Add SD registration loading to game list
2018-08-23 11:53:30 -04:00
Zach Hilman
ab44192ab0
file_sys: Implement NAX containers
2018-08-23 11:53:30 -04:00
Zach Hilman
8b52d6682a
registration: Add GetEntryUnparsed methods
...
Returns the file before calling parser on it.
2018-08-23 11:53:30 -04:00
Zach Hilman
13524578b6
sdmc_factory: Add SDMC RegisteredCache getter
2018-08-23 11:53:30 -04:00
Zach Hilman
4112dd6b4e
qt: Make default row data title name and title id
...
Helps with installed games by making the title not a hexadecimal id string, instead the name.
2018-08-23 11:53:30 -04:00
Zach Hilman
bf33f80fae
vfs: Add GetOrCreateDirectoryRelative method
2018-08-23 11:52:44 -04:00
Zach Hilman
ef3768f323
filesystem: Add CreateFactories methods to fs
...
Allows frontend to create registration caches for use before a game has booted.
2018-08-23 11:52:44 -04:00
Zach Hilman
410062031b
filesystem: Add logging to registration getters
2018-08-23 11:52:44 -04:00
Zach Hilman
b247e0cab0
loader: Add new NAX-specific errors and messages
2018-08-23 11:52:44 -04:00
Zach Hilman
2164702cf7
nax: Add AppLoader_NAX and update loader to support it
2018-08-23 11:52:44 -04:00
Zach Hilman
c4845df3d4
xts_encryption_layer: Implement XTSEncryptionLayer
2018-08-23 11:52:44 -04:00
Zach Hilman
10e5356e9a
aes_util: Make XTSTranscode stricter about sizes
...
XTS with Nintendo Tweak will fail mysteriously if the sector size is not 0x4000. Upgrade the critical log to an assert to prevent undefined behavior.
2018-08-23 11:52:44 -04:00
Zach Hilman
6dd369ab88
ctr_encryption_layer: Fix bug when transcoding small data
...
Fixes a bug where data lengths of less than size 0x10 will fail or have misleading return values.
2018-08-23 11:52:44 -04:00
Zach Hilman
a9dc5a3c10
xci: Fix error masking issue
...
Prevents NCA-related errors from being masked into MissingProgramNCA or MissingKeyFile
2018-08-23 11:52:44 -04:00
bunnei
d65f079cc1
gl_rasterizer_cache: Blit when possible on RecreateSurface.
2018-08-23 11:27:01 -04:00
bunnei
fee8bdd90c
gl_rasterizer_cache: Reserve surfaces that have already been created for later use.
2018-08-23 11:27:01 -04:00
bunnei
fde2017a3f
gl_rasterizer_cache: Remove assert for RecreateSurface type.
2018-08-23 11:27:00 -04:00
bunnei
ebf5768340
gl_rasterizer_cache: Implement compressed texture copies.
2018-08-23 11:27:00 -04:00
bunnei
a4ac3bed6c
gl_rasterizer: Implement stencil test.
...
- Used by Splatoon 2.
2018-08-23 11:08:49 -04:00
bunnei
da3da6be90
gl_rasterizer: Implement partial color clear and stencil clear.
2018-08-23 11:08:48 -04:00
bunnei
2a472ff54d
maxwell_3d: Update to include additional stencil registers.
2018-08-23 11:08:47 -04:00
bunnei
c4ed0b16b1
gl_state: Update to handle stencil front/back face separately.
2018-08-23 11:08:46 -04:00
bunnei
c7f2fb2151
Merge pull request #1157 from lioncash/vec
...
gl_shader_gen: Use a std::vector to represent program code instead of std::array
2018-08-23 02:19:00 -04:00
bunnei
232b0d9d2a
Merge pull request #1156 from Lakumakkara/lop3
...
gl_shader_decompiler: Implement LOP3
2018-08-23 02:16:49 -04:00
David Marcec
eccc77a8c8
Added SharedFonts loading via TTF
...
By having the following TTF files in your yuzu sysdata directory. You can load sharedfonts via TTF files.
FontStandard.ttf
FontChineseSimplified.ttf
FontExtendedChineseSimplified.ttf
FontChineseTraditional.ttf
FontKorean.ttf
FontNintendoExtended.ttf
FontNintendoExtended2.ttf
2018-08-23 14:42:06 +10:00
literalmente-game
74e08b4800
Swap "Plus" with "Minus" on the controller GUI ( #1150 )
...
* Swap "Plus" with "Minus" on the controller GUI
Major fix /s
2018-08-22 18:47:07 -06:00
bunnei
c5ea6db02d
Merge pull request #1137 from lioncash/namespace
...
renderer_opengl: Namespace OpenGL code
2018-08-22 18:14:48 -04:00
Lioncash
12ba80a86c
gl_shader_gen: Make ShaderSetup's constructor explicit
...
Prevents implicit conversions.
2018-08-22 17:04:44 -04:00
Lioncash
1fd979f50a
gl_shader_gen: Use a std::vector to represent program code instead of std::array
...
While convenient as a std::array, it's also quite a large set of data as
well (32KB). It being an array also means data cannot be std::moved. Any
situation where the code is being set or relocated means that a full
copy of that 32KB data must be done.
If we use a std::vector we do need to allocate on the heap, however, it
does allow us to std::move the data we have within the std::vector into
another std::vector instance, eliminating the need to always copy the
program data (as std::move in this case would just transfer the pointers
and bare necessities over to the new vector instance).
2018-08-22 17:04:44 -04:00
Laku
b2ca8089ce
more fixes
2018-08-23 00:01:40 +03:00
Laku
e70a3c5a5d
fixes
2018-08-22 21:33:32 +03:00
Lioncash
dd35b4b18a
renderer_opengl: Namespace OpenGL code
...
Namespaces all OpenGL code under the OpenGL namespace.
Prevents polluting the global namespace and allows clear distinction
between other renderers' code in the future.
2018-08-22 06:14:47 -04:00
Laku
4877e6c2f6
remove debug logging
2018-08-22 11:45:28 +03:00
Laku
8e8326595f
implement lop3
2018-08-22 10:09:44 +03:00
tech4me
8ce02d85e9
config: Fixed icon size get set to 0
2018-08-21 22:36:29 -07:00
bunnei
b38d67d940
Merge pull request #1136 from tech4me/master
...
qt/main: Port part of citra(#3411 ), open savedata works
2018-08-22 01:30:08 -04:00
bunnei
cea627b0fc
Merge pull request #840 from FearlessTobi/port-3353
...
Port #3353 from Citra: "citra-qt: Add customizable speed limit target "
2018-08-22 01:19:50 -04:00
bunnei
5abf71fe65
Merge pull request #1154 from OatmealDome/topology-lines
...
maxwell_to_gl: Implement PrimitiveTopology::Lines
2018-08-22 01:08:34 -04:00
bunnei
eef0c93643
Merge pull request #1141 from FearlessTobi/port-3902
...
Port #3902 from Citra: "Add restart hotkey & menu option"
2018-08-22 01:07:59 -04:00
bunnei
125d7122ac
Merge pull request #1124 from Subv/logic_ops
...
GPU: Implemented logic ops.
2018-08-22 01:05:25 -04:00
OatmealDome
ad1220e1b3
maxwell_to_gl: Implement PrimitiveTopology::Lines
...
Used by Splatoon 2's debug menu.
2018-08-22 01:01:06 -04:00
bunnei
92b85fad70
Merge pull request #1147 from lioncash/warn
...
logging/text_formatter: Use empty braces for initializing CONSOLE_SCREEN_BUFFER_INFO instance
2018-08-22 00:37:59 -04:00
bunnei
cb8b371570
Merge pull request #1151 from bunnei/revert-4a2ee191
...
Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS …"
2018-08-22 00:37:30 -04:00
David Marcec
15cc34b93e
Added missing include for pl:u
...
Should fix any compile errors
2018-08-22 12:39:52 +10:00
David
99fc32428a
PL:U Added BFTTF loading(Loading from System NAND dumps) ( #1088 )
...
* Added bfttf loading
We can now load system bfttf fonts from system archives AND shared memory dumps. This allows people who have installed their system nand dumps to yuzu to automatically get shared font support. We also now don't hard code the offsets or the sizes of the shared fonts and it's all calculated for us now.
* Addressed plu fixups
* Style changes for plu
* Fixed logic error for plu and added more error checks.
2018-08-21 21:31:49 -04:00
bunnei
d63b1d21f1
Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions."
...
- This reverts commit 3ef4b3d4b4
.
- This commit had broken a lot of games. We really should do a full implementation of this in one change.
2018-08-21 20:07:40 -04:00
bunnei
ac68c8a605
Merge pull request #1145 from lioncash/fwd-decl
...
vfs: Replace mode.h include with forward declarations where applicable
2018-08-21 18:00:28 -04:00
bunnei
c2695aa2eb
Merge pull request #1146 from lioncash/am
...
am: Utilize std::array within PopLaunchParameter()
2018-08-21 18:00:06 -04:00
bunnei
16b83fac9b
Merge pull request #1148 from lioncash/audio-warn
...
audio_core/filter: Add explicit cast to assignment in Process()
2018-08-21 17:04:53 -04:00
Lioncash
a0e2bd85a5
shader_bytecode: Parenthesize conditional expression within GetTextureType()
...
Resolves a -Wlogical-op-parentheses warning.
2018-08-21 15:08:35 -04:00
Lioncash
29ac15d1b8
vfs: Replace mode.h include with forward declarations where applicable
...
Avoids the need to rebuild these source files if the mode header
changes.
2018-08-21 15:06:42 -04:00
Lioncash
0057a47e41
audio_core/filter: Add explicit cast to assignment in Process()
...
Previously this would cause warnings about implicit conversions to s16
from a double
2018-08-21 12:32:37 -04:00
Lioncash
5a53d75313
logging/text_formatter: Use empty braces for initializing CONSOLE_SCREEN_BUFFER_INFO instance
...
The previous form of initializing done here is a C-ism, an empty set of
braces is sufficient for initializing (and doesn't potentially cause
missing brace warnings, given the first member of the struct is a COORD
struct).
2018-08-21 11:31:05 -04:00
Lioncash
8dd9cb98ce
am: Utilize std::array within PopLaunchParameter()
...
Gets rid of the potential for C array-to-pointer decay, and also makes
pointer arithmetic to get the end of the copy range unnecessary. We can
just use std::array's begin() and end() member functions.
2018-08-21 11:03:14 -04:00
bunnei
c95c4442e9
Merge pull request #1143 from lioncash/inc
...
sdmc_factory: Remove unnecessary core include
2018-08-21 10:22:29 -04:00
bunnei
37f2ec6fc2
Merge pull request #1139 from lioncash/bitfield
...
bit_field: Convert ToBool() into explicit operator bool
2018-08-21 10:21:19 -04:00
bunnei
624239ed6b
Merge pull request #1140 from FearlessTobi/port-4056
...
Port #4056 from Citra: "Add Clear Recent Files menu action"
2018-08-21 10:20:56 -04:00
MerryMage
3f4fb4b037
perf_stats: Change MAX_LAG_TIME_US to an appropriate value
...
25us is far too small, and would result in std::this_thread::sleep_for
being called with this as a maximum value. This means that a guest
application that produces frames instantly would only be limited to
40 kHz.
25ms is a more appropriate value, as it allows for a 60 Hz refresh
rate while providing enough slack in the negative region.
2018-08-21 14:50:50 +01:00
Lioncash
bfb28c5b3f
sdmc_factory: Remove unnecessary core include
...
This doesn't require the central core header to be included, it just
needs the vfs headers.
2018-08-21 07:54:29 -04:00
fearlessTobi
f2d5b100c2
Port #3902 from Citra: "Add restart hotkey & menu option"
2018-08-21 13:24:55 +02:00
fearlessTobi
6923ecee3a
Port #4056 from Citra: "Add Clear Recent Files menu action"
2018-08-21 13:12:45 +02:00
Lioncash
36090521ce
bit_field: Convert ToBool() into explicit operator bool
...
Gets rid of a TODO that is long overdue.
2018-08-21 06:39:45 -04:00
tech4me
cc71832b19
qt/main: Port part of citra( #3411 ), open savedata works
2018-08-21 02:04:33 -07:00
bunnei
bf89a99839
Merge pull request #1123 from lioncash/screen
...
rasterizer_interface: Remove renderer-specific ScreenInfo type from AccelerateDraw() in RasterizerInterface
2018-08-21 01:18:34 -04:00
bunnei
79243b6fa0
Merge pull request #1129 from lioncash/header
...
romfs_factory, service/filesystem: Use forward declarations where applicable
2018-08-21 01:18:04 -04:00
bunnei
b0f7713fce
Merge pull request #1132 from Subv/gl_FragDepth
...
Shaders: Implement depth writing in fragment shaders.
2018-08-21 01:17:53 -04:00
bunnei
8c9abe1d41
Merge pull request #1134 from lioncash/log
...
renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and GL_DEBUG_SEVERITY_LOW logs
2018-08-21 01:17:31 -04:00
bunnei
ca58929eb0
Merge pull request #1121 from Subv/tex_reinterpret
...
Rasterizer: Use PBOs to reinterpret texture formats when games re-use the same memory.
2018-08-21 01:06:40 -04:00
Lioncash
523e4be02c
renderer_opengl: Use LOG_DEBUG for GL_DEBUG_SEVERITY_NOTIFICATION and GL_DEBUG_SEVERITY_LOW logs
...
LOG_TRACE is only enabled on debug builds which can be quite slow when
trying to debug graphics issues. Instead we can log the messages to the
debug log, which is available on both release and debug builds.
2018-08-21 00:23:09 -04:00
bunnei
fde3b1b6f2
Merge pull request #1133 from lioncash/guard
...
gl_stream_buffer: Add missing header guard
2018-08-20 23:37:55 -04:00
Lioncash
477eee3993
service/filesystem: Use forward declarations where applicable
...
Avoids the need to rebuild multiple source files if the filesystem code
headers change.
This also gets rid of a few instances of indirect inclusions being
relied upon
2018-08-20 23:28:46 -04:00
Lioncash
93a4097e9d
gl_stream_buffer: Add missing header guard
...
Prevents potential compilation errors from occuring due to multiple
inclusions
2018-08-20 23:25:08 -04:00
Subv
e3bddf8137
Shaders: Implement depth writing in fragment shaders.
...
We'll write <last color output reg + 2> to gl_FragDepth.
2018-08-20 21:57:56 -05:00
bunnei
c4ce7e456a
Merge pull request #1126 from lioncash/telem
...
telemetry_session: Don't allocate std::string instances for program lifetime in GetTelemetryId() and RegenerateTelemetryId()
2018-08-20 22:15:56 -04:00
bunnei
e33452f7e8
Merge pull request #1131 from bunnei/impl-tex3d-texcube
...
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
2018-08-20 22:15:18 -04:00
bunnei
5aaee2ff8d
Merge pull request #1106 from Subv/multiple_rendertargets
...
Shaders: Write all the enabled color outputs when a fragment shader exits.
2018-08-20 21:56:06 -04:00
bunnei
2ae88feea7
shader_bytecode: Replace some UNIMPLEMENTED logs.
2018-08-20 21:53:49 -04:00
bunnei
16db8b9d9f
gl_shader_decompiler: Implement Texture3D for TEXS.
2018-08-20 21:53:18 -04:00
bunnei
948002635f
gl_shader_decompiler: Implement TextureCube for TEX.
2018-08-20 21:53:00 -04:00
bunnei
ea99819f37
Merge pull request #1130 from Subv/tex_2d
...
Shaders: Fixed texture coordinates in TEX with Texture2D
2018-08-20 21:49:47 -04:00
Subv
eac3cf301c
Shaders: Fixed the coords in TEX with Texture2D.
...
The X and Y coordinates should be in gpr8 and gpr8+1, respectively.
This fixes the cutscene rendering in Sonic Mania.
2018-08-20 20:45:46 -05:00
Subv
fc5b489b0f
Shaders: Log and crash when using an unimplemented texture type in a texture sampling instruction.
2018-08-20 20:44:56 -05:00
bunnei
19b05c3f55
Merge pull request #1122 from lioncash/acc
...
acc/profile_manager: General cleanup
2018-08-20 20:54:34 -04:00
Lioncash
96463d0a55
romfs_factory: Remove unnecessary includes and use forward declarations where applicable
...
Avoids the need to rebuild whatever includes the romfs factory header if
the loader header ever changes. We also don't need to include the main
core header. We can instead include the headers we specifically need.
2018-08-20 20:27:00 -04:00
bunnei
dd70ddad7e
Merge pull request #1095 from DarkLordZach/sysarchives
...
filesystem: Add support for loading of system archives
2018-08-20 20:17:57 -04:00
Lioncash
b5fb246a99
telemetry_session: Don't allocate std::string instances for program lifetime in GetTelemetryId() and RegenerateTelemetryId()
...
Given these functions aren't intended to be used frequently, there's no
need to keep the std::string instances allocated for the whole lifetime
of the program. It's just a waste of memory.
2018-08-20 20:06:25 -04:00
Lioncash
609cb04f3f
acc: Replace profile_manager include with a forward declaration
...
This is only used in a shared_ptr, so we can forward declare it.
2018-08-20 19:48:57 -04:00
Lioncash
eb88fedc5d
acc: Simplify WriteBuffer call within LoadImage()
...
We have an overload of WriteBuffer that accepts containers that satisfy
the ContiguousContainer concept, which std::array does, so we only need
to pass in the array itself.
2018-08-20 19:48:57 -04:00
Lioncash
f5b132676f
acc: Correct IProfile's constructor initializer list order
...
Arranges them in the order the members would be initialized
2018-08-20 19:48:57 -04:00
Lioncash
0fcdf37917
acc: Remove unused DEFAULT_USER_ID
...
This is no longer used, so it can be removed.
2018-08-20 19:48:57 -04:00
Lioncash
350f6e0aa4
profile_manager: Use INVALID_UUID in the initializer of last_opened_user
...
Makes it a little bit more self-documenting.
2018-08-20 19:48:57 -04:00
Lioncash
9d8f19d7bf
profile_manager: Remove unnecessary memcpy in GetProfileBaseAndData()
...
Given the source and destination types are the same std::array type, we
can simply use regular assignment to perform the same behavior.
2018-08-20 19:48:57 -04:00
Lioncash
38cd4e9c61
profile_manager: Use type aliases for username data, profile data, and user arrays
...
Avoids the need to repeatedly specify the whole array type in multiple
places.
2018-08-20 19:48:57 -04:00
Lioncash
f9a26d468c
profile_manager: Take ProfileInfo by const reference where applicable
...
ProfileInfo is quite a large struct in terms of data, and we don't need
to perform a copy in these instances, so we can just pass constant
references instead.
2018-08-20 19:48:57 -04:00
Lioncash
1277556c69
profile_manager: Make array parameter to CreateNewUser a const reference
...
This doesn't modify the passed in array, so this can be a const
reference.
2018-08-20 19:48:57 -04:00
Lioncash
dfdf4a46fe
profile_manager: Remove unnecessary static
...
This can just be constexpr like the others
2018-08-20 19:48:57 -04:00
Lioncash
69dd37d874
profile_manager: Simplify UUID's two param constructor, operator==, and operator bool
...
We can use the constructor initializer list and just compare the
contained u128's together instead of comparing each element
individually. Ditto for comparing against an invalid UUID.
2018-08-20 19:48:57 -04:00
Lioncash
f13a66b963
profile_manager: Move UUID generation function to the cpp file
...
This avoids needing to dump the contents of <random> into other files
that include the profile manager header.
2018-08-20 19:48:53 -04:00
Subv
2b9eee4d1e
GPU: Implemented the logic op functionality of the GPU.
...
This will ASSERT if blending is enabled at the same time as logic ops.
2018-08-20 18:44:47 -05:00
bunnei
b1d238bbb8
Merge pull request #1064 from lioncash/telemetry
...
common/telemetry: Migrate core-independent info gathering to common
2018-08-20 19:43:17 -04:00
Subv
f24ab6d9e6
GLState: Allow enabling/disabling GL_COLOR_LOGIC_OP independently from blending.
2018-08-20 18:43:11 -05:00
Lioncash
46ef072cf9
rasterizer_interface: Remove ScreenInfo from AccelerateDraw()'s signature
...
This is an OpenGL renderer-specific data type. Given that, this type
shouldn't be used within the base interface for the rasterizer. Instead,
we can pass this information to the rasterizer via reference.
2018-08-20 19:43:05 -04:00
Subv
6bcdf37d4f
GPU: Added registers for the logicop functionality.
2018-08-20 18:42:36 -05:00
Lioncash
bc16f7f3cc
renderer_base: Make creation of the rasterizer, the responsibility of the renderers themselves
...
Given we use a base-class type within the renderer for the rasterizer
(RasterizerInterface), we want to allow renderers to perform more
complex initialization if they need to do such a thing. This makes it
important to reserve type information.
Given the OpenGL renderer is quite simple settings-wise, this is just a
simple shuffling of the initialization code. For something like Vulkan
however this might involve doing something like:
// Initialize and call rasterizer-specific function that requires
// the full type of the instance created.
auto raster = std::make_unique<VulkanRasterizer>(some, params);
raster->CallSomeVulkanRasterizerSpecificFunction();
// Assign to base class variable
rasterizer = std::move(raster)
2018-08-20 19:28:00 -04:00
fearlessTobi
ba8ff096fd
Port #3353 from Citra
2018-08-21 01:14:06 +02:00
Subv
7784ce1854
Shaders: Write all the enabled color outputs when a fragment shader exits.
...
We were only writing to the first render target before.
Note that this is only the GLSL side of the implementation, supporting multiple render targets requires more changes in the OpenGL renderer.
Dual Source blending is not implemented and stuff that uses it might not work at all.
2018-08-20 17:31:25 -05:00
Zach Hilman
e8cb6f5c9b
registration: Add Data_Unknown5 NCAContentType
2018-08-20 17:34:18 -04:00
Lioncash
9e9a4bb3a7
profile_manager: Remove unnecessary std::move in AddToProfiles() and CreateNewUser()
...
Moving a const reference isn't possible, so this just results in a copy
(and given ProfileInfo is composed of trivial types and aggregates, a
move wouldn't really do anything).
2018-08-20 17:18:31 -04:00
Subv
d7c68fbb12
Rasterizer: Reinterpret the raw texture bytes instead of blitting (and thus doing format conversion) to a new texture when a game requests an old texture address with a different format.
2018-08-20 15:20:35 -05:00
Subv
3fe77be392
Rasterizer: Don't attempt to copy over the old texture's data when doing a format reinterpretation if we're only going to clear the framebuffer.
2018-08-20 15:20:35 -05:00
bunnei
028d90eb79
Merge pull request #1104 from Subv/instanced_arrays
...
GLRasterizer: Implemented instanced vertex arrays.
2018-08-20 14:32:50 -04:00
bunnei
296e57fa0e
Merge pull request #1115 from Subv/texs_mask
...
Shaders/TEXS: Write to the correct output register when swizzling.
2018-08-20 14:31:33 -04:00
bunnei
b20ed93884
Merge pull request #1112 from Subv/sampler_types
...
Shaders: Use the correct shader type when sampling textures.
2018-08-20 14:30:45 -04:00
bunnei
185b35bfcd
Merge pull request #1117 from ogniK5377/CheckFreeCommunicationPermission
...
Added CheckFreeCommunicationPermission
2018-08-20 11:00:26 -04:00
bunnei
943771e703
Merge pull request #1017 from ogniK5377/better-account
...
New account backend to allow for future extended support
2018-08-20 10:59:15 -04:00
bunnei
ce4b77bd7d
Merge pull request #1120 from ogniK5377/rgba8-uint
...
Implemented RGBA8_UINT
2018-08-20 10:54:51 -04:00
David Marcec
23d45715dc
Implemented RGBA8_UINT
...
Needed by kirby
2018-08-20 22:26:54 +10:00
Lioncash
ffd60ee476
game_list: Avoid uninitialized variables when retrieving program ID
...
Avoids potentially leaving this variable uninitialized based off the
loader failing to retrieve the ID value.
2018-08-20 04:23:05 -04:00
David Marcec
8a88110060
Added CheckFreeCommunicationPermission
...
This fixes save files not loading in splatoon 2
2018-08-20 18:14:49 +10:00
Subv
6cf719a4ab
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19 17:09:40 -05:00
bunnei
51ddb130c5
Merge pull request #1089 from Subv/neg_bits
...
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
2018-08-19 17:01:48 -04:00
bunnei
9b17486be6
Merge pull request #1105 from Subv/convert_neg
...
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
2018-08-19 17:01:20 -04:00
bunnei
0a1d4fbc5c
Merge pull request #1113 from Subv/texs_mask
...
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
2018-08-19 17:00:59 -04:00
Subv
f7edbcd7a3
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19 14:00:12 -05:00
bunnei
b0eb580931
Merge pull request #1102 from ogniK5377/mirror-clamp-edge
...
Added WrapMode MirrorOnceClampToEdge
2018-08-19 13:59:41 -04:00
bunnei
85da529f15
Merge pull request #1101 from Subv/ssy_stack
...
Shaders: Implemented a stack for the SSY/SYNC instructions.
2018-08-19 13:58:45 -04:00
Subv
7fb406c3fc
Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.
...
It is unknown how TLD4S determines the sampler type, more research is needed.
2018-08-19 12:57:58 -05:00
Subv
3ef4b3d4b4
Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.
...
Different sampler types have their parameters in different registers.
2018-08-19 12:57:54 -05:00
Subv
73b937b190
Shader: Added bitfields for the texture type of the various sampling instructions.
2018-08-19 12:57:51 -05:00
Subv
656758fd81
Shaders: Added decodings for TLD4 and TLD4S
2018-08-19 12:57:08 -05:00
bunnei
29d4f8c2dd
Merge pull request #1109 from Subv/ldg_decode
...
Shaders: Added decodings for the LDG and STG instructions.
2018-08-19 13:31:19 -04:00
bunnei
9baf5de90c
Merge pull request #1108 from Subv/front_facing
...
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 13:21:14 -04:00
Subv
1b92ae136f
Shaders: Added decodings for the LDG and STG instructions.
2018-08-19 00:46:34 -05:00
Subv
731701a2d2
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 00:14:34 -05:00
David Marcec
706fc5d2d6
Added check to see if ARB_texture_mirror_clamp_to_edge is supported
2018-08-19 12:00:33 +10:00
Zach Hilman
27da7bc9da
filesystem: Add support for loading of system archives
2018-08-18 21:28:23 -04:00
Subv
9b1c49a9cf
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
2018-08-18 14:48:05 -05:00
Subv
e0f66c1fbf
GLRasterizer: Implemented instanced vertex arrays.
...
Before each draw call, for every enabled vertex array configured as instanced, we take the current instance id and divide it by its configured divisor, then we multiply that by the corresponding stride and increment the start address by the resulting amount. This way we can simulate the vertex array being incremented once per instance without actually using OpenGL's instancing functions.
2018-08-18 14:42:26 -05:00
Subv
8335b2f115
Shader: Implemented the predicate and mode arguments of LOP.
...
The mode can be used to set the predicate to true depending on the result of the logic operation. In some cases, this means discarding the result (writing it to register 0xFF (Zero)).
This is used by Super Mario Odyssey.
2018-08-18 14:36:37 -05:00
David Marcec
71cc482bbd
Added WrapMode MirrorOnceClampToEdge
...
Used by splatoon 2
2018-08-19 02:26:50 +10:00
Subv
ff358d97e8
Shaders: Implemented a stack for the SSY/SYNC instructions.
...
The SSY instruction pushes an address into the stack, and the SYNC instruction pops it. The current stack depth is 20, we should figure out if this is enough or not.
2018-08-18 10:48:12 -05:00
Subv
2e95ba2e9c
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
...
We should definitely audit our shader generator for more errors like this.
2018-08-18 10:22:42 -05:00
David Marcec
63dff47e22
Added predcondition GreaterThanWithNan
2018-08-18 17:49:59 +10:00
bunnei
504cff2b7a
Merge pull request #1096 from bunnei/supported-blits
...
gl_rasterizer_cache: Remove asserts for supported blits.
2018-08-17 22:41:53 -04:00
bunnei
804aebf7c7
Merge pull request #1097 from bunnei/gl-critical
...
renderer_opengl: Treat OpenGL errors as critical.
2018-08-17 10:39:13 -04:00
greggameplayer
2003771789
Implement SetIdleTimeDetectionExtension & GetIdleTimeDetectionExtension ( #1059 )
...
* Used by Mario Tennis Aces
2018-08-17 00:23:08 -04:00
bunnei
f246fd778d
Merge pull request #1090 from lioncash/ctor-assign
...
core: Delete System copy/move constructors and assignment operators
2018-08-17 00:19:55 -04:00
bunnei
1db7839f11
Merge pull request #1091 from lioncash/warning
...
qt/main: Get rid of compilation warnings
2018-08-17 00:19:05 -04:00
bunnei
224be09d66
Merge pull request #1093 from greggameplayer/GetDefaultDisplayResolutionChangeEvent
...
Implement GetDefaultDisplayResolutionChangeEvent
2018-08-17 00:18:35 -04:00
bunnei
e341d868ee
gl_rasterizer_cache: Remove asserts for supported blits.
2018-08-17 00:10:08 -04:00
bunnei
da7226442f
renderer_opengl: Treat OpenGL errors as critical.
2018-08-17 00:09:27 -04:00
bunnei
727136a9c9
Merge pull request #1019 from Subv/vertex_divisor
...
Rasterizer: Manually implemented instanced rendering.
2018-08-17 00:07:06 -04:00
bunnei
0d9b3e425e
Merge pull request #1087 from MerryMage/dynarmic
...
dynarmic: Update to 550d662
2018-08-16 18:07:11 -04:00
bunnei
ce56b8e1fa
Merge pull request #1084 from bunnei/depth
...
gl_rasterizer_cache: Treat Depth formats differently from DepthStencil.
2018-08-16 18:06:51 -04:00
greggameplayer
cef35e7c9c
correct coding style
2018-08-16 23:46:06 +02:00
greggameplayer
928e78dced
Implement GetDefaultDisplayResolutionChangeEvent
...
Require by Toki Tori and Toki Tori 2+
2018-08-16 23:25:54 +02:00
bunnei
3fd78f4d24
Merge pull request #1085 from lioncash/namespace
...
common: Namespace hex_util.h/.cpp
2018-08-16 11:54:42 -04:00
Lioncash
9791f0d590
qt/main: Unindent code in OnMenuInstallToNAND()
...
We can change this into an early-return if the filename is empty.
There's no need to include all of the code within the if statement.
2018-08-16 10:37:58 -04:00
Lioncash
2a3d7128d1
qt/main: Make installation dialog text within OnMenuInstallToNAND() translatable
...
This is user-facing text, so it should be marked as translatable by Qt.
2018-08-16 10:36:42 -04:00
Lioncash
aac807fd3a
qt/main: Get rid of compilation warnings
...
Gets rid of truncation warnings about conversion to int. While we're at
it, we can also de-hardcode the buffer size being used.
2018-08-16 10:28:06 -04:00
Lioncash
a0ce6de913
core: Delete System copy/move constructors and assignment operators
...
Prevents potentially making copies or doing silly things by accident
with the System instance, particularly given our current core is
designed (unfortunately) around one instantiable instance.
This will prevent the accidental case of:
auto instance = System::Instance();
being compiled without warning when it's supposed to be:
auto& instance = System::Instance();
2018-08-16 10:21:14 -04:00
MerryMage
94329038b6
dynarmic: Update to 550d662
...
550d662 load_store_exclusive: Define s == t state to be Constraint_NONE
0b69381 A64/translate: Allow for unpredictable behaviour to be defined
6d236d4 system: Implement MRS CNTFRQ_EL0
6cbb6fb A32/testenv: Add missing headers
6729328 externals: Update xbyak to v5.67
1812bd2 Squashed 'externals/xbyak/' changes from 2794cde7..671fc805
9a95802 externals: Document subtrees
714a840 A64: Implement SQ{ADD, SUB}, and UQ{ADD, SUB}'s vector variants
8cab459 A64: Implement UQADD/UQSUB's scalar variants
18a8151 ir: Add opcodes for unsigned saturating add and subtract
a5660ee x64/reg_alloc: Use type alias for array returned by GetArgumentInfo()
29489b5 ir/value: Use type alias CoprocessorInfo for std::array<u8, 8>
e23ba26 status_register_access: Add support for bits 0 and 1 of mask to MSR
55190bd fuzz_with_unicorn: Split utility functions into fuzz_util
23b049d A32/translate/load_store: Correct detection of writeback
7ec9f15 A32/translate: Add TranslateSingleInstruction
efeecb4 A32/ir_emitter: Bug fix: IREmitter::ExceptionRaised using incorrect opcode
08d1d19 A32/decoders: Split instruction list into include file
2d929cc tests: Refactor unicorn_emu to allow for A32 unicorn
f672368 microinstruction: Improve assert messages
7ebff50 emit_x64_vector: EmitVectorNarrow16: AVX512 implementation
edce230 emit_x64_vector: EmitVectorNarrow32: prefer pblendw to loading constant
2018-08-16 10:12:20 +01:00
bunnei
24a759de4a
Merge pull request #1075 from lioncash/include
...
loader/{nca, xci}: Remove unnecessary includes and unused member variables
2018-08-16 00:04:25 -04:00
Lioncash
b39cd70cd4
common: Namespace hex_util.h/.cpp
...
It's in the common code, so it should be under the Common namespace like
everything else.
2018-08-15 23:24:00 -04:00
bunnei
c594ec3417
Merge pull request #1005 from DarkLordZach/registered-fmt
...
file_sys: Add support for registration format
2018-08-15 23:11:58 -04:00
bunnei
89c3d6a2a3
gl_rasterizer_cache: Treat Depth formats differently from DepthStencil.
2018-08-15 21:24:04 -04:00
bunnei
c00b374e78
Merge pull request #1078 from lioncash/message
...
lm: Handle threads and modules within the logger
2018-08-15 18:53:47 -04:00
bunnei
69236e5aff
Merge pull request #1079 from lioncash/fmt
...
loader: Make ResultStatus directly compatible with fmt
2018-08-15 18:25:57 -04:00
bunnei
1dd27aff47
Merge pull request #1051 from B3n30/UnscheduleEventThreadsafe
...
Core::CoreTiming: add UnscheduleEventThreadsafe
2018-08-15 18:25:30 -04:00
bunnei
cee6a7ab55
Merge pull request #1080 from lioncash/ret
...
sm/controller: Correct return value of QueryPointerBufferSize
2018-08-15 18:25:05 -04:00
bunnei
a2fa37b499
Merge pull request #1083 from Subv/conv_neg
...
Shaders: Implemented I2F_C and F2I_C, along with the negation bits of the conversion instructions.
2018-08-15 18:24:47 -04:00
bunnei
f96de510ee
Merge pull request #1081 from lioncash/convert
...
kernel/server_session: Add IsSession() member function
2018-08-15 13:02:25 -04:00
Subv
91140f6c0a
Shader/Conversion: Implemented the negate bit in F2F and I2I instructions.
2018-08-15 09:27:43 -05:00
Subv
38592a3b5e
Shader/I2F: Implemented the negate I2F_C instruction variant.
2018-08-15 09:25:02 -05:00
Subv
40ecdda19e
Shader/F2I: Implemented the negate bit in the I2F instruction
2018-08-15 09:18:55 -05:00
Subv
5ef447cc0e
Shader/F2I: Implemented the F2I_C instruction variant.
2018-08-15 09:16:35 -05:00
Subv
11c221cc62
Shader/F2I: Implemented the negate bit in the F2I instruction.
2018-08-15 09:15:55 -05:00
bunnei
40f83fee6a
Merge pull request #1077 from bunnei/rgba16u
...
gl_rasterizer_cache: Add RGBA16U to PixelFormatFromTextureFormat.
2018-08-15 09:25:15 -04:00
Lioncash
aac5792a2b
kernel/server_session: Add IsSession() member function
...
Allows querying the inverse of IsDomain() to make things more readable.
This will likely also be usable in the event of implementing
ConvertDomainToSession().
2018-08-15 06:50:50 -04:00
Lioncash
5752454629
sm/controller: Correct return value of QueryPointerBufferSize
...
This should be returning a u16 according to Switch Brew.
2018-08-15 06:16:10 -04:00
Lioncash
87d8a9c986
loader: Make ResultStatus directly compatible with fmt
...
We can make the enum class type compatible with fmt by providing an
overload of operator<<.
While we're at it, perform proper bounds checking. If something exceeds
the array, it should be a hard fail, because it's, without a doubt, a
programmer error in this case.
2018-08-15 05:52:37 -04:00
Lioncash
0769aa594e
loader/nca: Remove unnecessary includes and member variables
2018-08-15 01:41:40 -04:00
Lioncash
c8e3f98c27
loader/xci: Remove unnecessary includes and member variables
...
Many of these aren't necessary and will cause this file to be required
to be recompiled whenever any changes to those files are made, which
lengthens compile times for no reason.
This also removes an unused metadata variable from AppLoader_XCI
2018-08-15 01:41:35 -04:00
Lioncash
b74df62959
lm: Use LOG_DEBUG for printing out trace logs
...
Using LOG_TRACE here isn't a good idea because LOG_TRACE is only enabled
when yuzu is compiled in debug mode. Debug mode is also quite slow, and
so we're potentially throwing away logging messages that can provide
value when trying to boot games.
2018-08-15 01:07:41 -04:00
Lioncash
e0b0f4eece
lm: Handle threads and modules within the logger
...
The thread field serves to indicate which thread a log is related to and
provides the length of the thread's name, so we can print that out,
ditto for modules.
Now we can know what threads are potentially spawning off logging
messages (for example Lydie & Suelle bounces between MainThread and
LoadingThread when initializing the game).
2018-08-15 01:05:50 -04:00
bunnei
b1148d269d
gl_rasterizer_cache: Cleanup some PixelFormat names and logging.
2018-08-14 23:31:45 -04:00
Subv
c5284efd4f
Rasterizer: Implemented instanced rendering.
...
We keep track of the current instance and update an uniform in the shaders to let them know which instance they are.
Instanced vertex arrays are not yet implemented.
2018-08-14 22:25:07 -05:00
bunnei
8599e1e4fc
gl_rasterizer_cache: Add RGBA16U to PixelFormatFromTextureFormat.
...
- Used by Breath of the Wild.
2018-08-14 23:18:34 -04:00
bunnei
3aad82b1a3
Merge pull request #1069 from bunnei/vtx-sz
...
maxwell_to_gl: Properly handle UnsignedInt/SignedInt sizes.
2018-08-14 23:14:44 -04:00
bunnei
2a42dea568
Merge pull request #1070 from bunnei/cbuf-sz
...
gl_rasterizer: Fix upload size for constant buffers.
2018-08-14 23:14:24 -04:00
bunnei
c8cd1785e6
Merge pull request #1071 from bunnei/fix-ldc
...
gl_shader_decompiler: Several fixes for indirect constant buffer loads.
2018-08-14 23:14:09 -04:00
bunnei
991eb4824c
Merge pull request #1068 from bunnei/g8r8s
...
gl_rasterizer_cache: Implement G8R8S format.
2018-08-14 23:13:43 -04:00
bunnei
301baaa942
Merge pull request #1067 from lioncash/init
...
emu_window: Ensure WindowConfig members are always initialized
2018-08-14 22:43:32 -04:00
bunnei
3db1b8e0cd
Merge pull request #1073 from lioncash/3ds
...
loader: Remove address mapping remnants from citra
2018-08-14 22:43:04 -04:00
bunnei
8f9c49f7ee
Merge pull request #1072 from lioncash/svc
...
kernel/svc: Log svcBreak parameters
2018-08-14 22:42:44 -04:00
bunnei
f009ed63f3
Merge pull request #1063 from lioncash/inline
...
common/xbyak_abi: Mark defined functions in header as inline
2018-08-14 22:40:23 -04:00
greggameplayer
6eda9ebbdb
Implement Z16_UNORM in PixelFormatFromTextureFormat function
...
Require by Zelda Breath Of The Wild
2018-08-15 04:14:15 +02:00
bunnei
ad7815a28d
Merge pull request #1054 from zhaowenlan1779/misc-fixup
...
common/misc: use windows.h
2018-08-14 21:47:28 -04:00
bunnei
409d2e07c2
Merge pull request #1056 from lioncash/mm
...
mm_u: Move interface class into the cpp file
2018-08-14 21:47:07 -04:00
Lioncash
96c0b81a51
loader: Remove address mapping remnants from citra
...
These mappings are leftovers from citra and don't apply to the Switch.
2018-08-14 21:37:03 -04:00
Lioncash
25d71454d1
kernel/svc: Log svcBreak parameters
...
Given if we hit here all is lost, we should probably be logging the
break reason code and associated information to distinguish between the
causes.
2018-08-14 20:54:05 -04:00
bunnei
5e66a24423
gl_shader_decompiler: Several fixes for indirect constant buffer loads.
2018-08-14 20:47:50 -04:00
bunnei
290439a6a5
gl_rasterizer: Fix upload size for constant buffers.
2018-08-14 20:44:19 -04:00
bunnei
dc876fd63a
maxwell_to_gl: Properly handle UnsignedInt/SignedInt sizes.
2018-08-14 20:43:02 -04:00
bunnei
d8fd3ef4fe
gl_rasterizer_cache: Implement G8R8S format.
...
- Used by Super Mario Odyssey.
2018-08-14 20:41:49 -04:00
Lioncash
2e715ef70d
emu_window: Ensure WindowConfig members are always initialized
...
Previously we weren't always initializing all members of the struct.
Prevents potentially wonky behavior from occurring.
2018-08-14 19:36:43 -04:00
Lioncash
60f476cd8f
common/telemetry: Migrate core-independent info gathering to common
...
Previously core itself was the library containing the code to gather
common information (build info, CPU info, and OS info), however all of
this isn't core-dependent and can be moved to the common code and use
the common interfaces. We can then just call those functions from the
core instead.
This will allow replacing our CPU detection with Xbyak's which has
better detection facilities than ours. It also keeps more
architecture-dependent code in common instead of core.
2018-08-14 18:57:46 -04:00
Lioncash
6d549abb4e
common/xbyak_abi: Mark defined functions in header as inline
...
Avoids potential One Definition Rule violations when these are used in
the future.
2018-08-14 18:29:56 -04:00
Lioncash
0ce0905380
common/xbyak: Use nested namespace specifiers where applicable
2018-08-14 18:27:27 -04:00
Lioncash
11895d54af
common: Remove unused old breakpoint source files
...
These currently aren't used and contain commented out source code that
corresponds to Dolphin's JIT. Given our CPU code is organized quite
differently, we shouldn't be keeping this around (at the moment it just
adds to compile times marginally).
2018-08-14 18:14:01 -04:00
bunnei
d1520410a3
Merge pull request #1055 from lioncash/init
...
audout_u: Correct IAudioOut initializer list order
2018-08-14 08:03:33 -04:00
bunnei
4dacb8a4b1
Merge pull request #1058 from greggameplayer/BC7U_Fix
...
Fix BC7U
2018-08-14 08:03:07 -04:00
bunnei
5b32594fbe
Merge pull request #1050 from bunnei/rgba16-unorm
...
renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM.
2018-08-14 08:02:50 -04:00
Lioncash
bc7bfd96f0
logging/backend: Use const reference to refer to log filter
...
The filter is returned via const reference, so this was making a
pointless copy of the entire filter every time a message was being
pushed into the logger instance.
2018-08-13 21:44:55 -04:00
greggameplayer
6bfcf13187
Fix BC7U
2018-08-14 02:36:00 +02:00
Mat M
309564abe3
Merge pull request #1046 from ogniK5377/missing-channels
...
Added missing channel devices
2018-08-13 19:36:26 -04:00
Lioncash
b6c47b578f
mm_u: Forward all old variants of functions to the new ones
...
Ensures both variants go through the same interface, and while we're at
it, add Finalize to provide the inverse of Initialize for consistency.
2018-08-13 18:59:10 -04:00
Lioncash
9d09d92c56
mm_u: Move implementation class into the cpp file
...
Now if changes are ever made to the behavior of the class, it doesn't
involve rebuilding everything that includes the mm_u header.
2018-08-13 18:59:07 -04:00
Lioncash
57d007e545
audout_u: Correct IAudioOut initializer list order
...
Orders elements in the precise order they'll be initialized.
2018-08-13 18:23:59 -04:00
bunnei
6e52f37d5b
renderer_opengl: Implement RenderTargetFormat::RGBA16_UNORM.
...
- Used by Breath of the Wild.
2018-08-13 18:20:07 -04:00
Zhu PengFei
59d18ef55b
common/misc: use windows.h
...
linux-mingw does not really like this.
2018-08-14 04:28:24 +08:00
bunnei
46fbf6dd92
Merge pull request #1052 from ogniK5377/xeno
...
Implement RG32UI and R32UI
2018-08-13 12:31:39 -04:00
bunnei
f19b4fab5f
Merge pull request #1033 from MerryMage/interp
...
audio_core: Interpolate
2018-08-13 12:19:59 -04:00
bunnei
875d52a81f
Merge pull request #1053 from MerryMage/rm-IsExecuting
...
arm_dynarmic: Remove IsExecuting check from PrepareReschedule
2018-08-13 12:18:51 -04:00
Mat M
9bf9c71c88
Merge pull request #1049 from bunnei/vtx-size-8
...
maxwell_to_gl: Implement VertexAttribute::Size::Size_8.
2018-08-13 11:51:21 -04:00
MerryMage
fcc5155601
arm_dynarmic: Remove IsExecuting check from PrepareReschedule
...
No longer required. HaltExecution is a no-op if it is not currently executing.
2018-08-13 13:59:01 +01:00
David Marcec
45cc022ea9
Implement RG32UI and R32UI
...
Needed for xenoblade
2018-08-13 22:55:16 +10:00
B3n30
eab35c8235
Core::CoreTiming: add UnscheduleEventThreadsafe
2018-08-13 13:56:41 +02:00
MerryMage
01d199965a
audio_renderer: samples_remaining counts frames, not samples
2018-08-13 11:26:50 +01:00
MerryMage
4b44b8b4fb
audio_core: Interpolate
2018-08-13 11:26:50 +01:00
MerryMage
56300f2928
audio_core: Implement low-pass filter
2018-08-13 11:26:50 +01:00
bunnei
e67630b51e
Merge pull request #1032 from lioncash/sanitize
...
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
2018-08-13 01:43:35 -04:00
bunnei
bd14653417
Merge pull request #1031 from lioncash/verbosity
...
card_image: Simplify return statement of GetSubdirectories()
2018-08-13 01:42:07 -04:00
bunnei
2e89719d3e
Merge pull request #1048 from lioncash/atomic
...
kernel/object: Tighten object against data races
2018-08-13 01:41:23 -04:00
bunnei
41b77c4e0a
maxwell_to_gl: Implement VertexAttribute::Size::Size_8.
...
- Used by Breath of the Wild.
2018-08-13 01:34:21 -04:00
Lioncash
3476f5b4d3
kernel/object: Tighten object against data races
...
Despite being covered by a global mutex, we should still ensure that the
class handles its reference counts properly. This avoids potential
shenanigans when it comes to data races.
Given this is the root object that drives quite a bit of the kernel
object hierarchy, ensuring we always have the correct behavior (and no
races) is a good thing.
2018-08-13 00:16:40 -04:00
bunnei
bdf17fe0cc
renderer_opengl: Implement RenderTargetFormat::RGBA16_UINT.
...
- Used by Breath of the Wild.
2018-08-13 00:06:22 -04:00
bunnei
54ef9302a2
Merge pull request #1045 from bunnei/rg8-unorm
...
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
2018-08-13 00:05:25 -04:00
David Marcec
76fad8410d
Registered missing channel devices
2018-08-13 14:03:50 +10:00
David Marcec
92492ee23b
Added missing channel devices
2018-08-13 14:00:27 +10:00
bunnei
8fe118bcaa
maxwell_to_gl: Implement PrimitiveTopology::LineStrip.
...
- Used by Breath of the Wild.
2018-08-12 23:09:32 -04:00
bunnei
c56a0e3c34
renderer_opengl: Implement RenderTargetFormat::RG8_UNORM.
...
- Used by Breath of the Wild.
2018-08-12 23:08:50 -04:00
bunnei
fecffeb0dd
Merge pull request #1043 from Subv/timing
...
Use an approximated amortized amount of ticks when advancing timing.
2018-08-12 22:31:55 -04:00
bunnei
9608f51cde
Merge pull request #1036 from lioncash/thread
...
scheduler: Make HaveReadyThreads() a const member function
2018-08-12 22:13:14 -04:00
bunnei
e4ed5bc836
Merge pull request #1042 from Subv/races
...
Fixed a bunch of race conditions when running in multicore mode.
2018-08-12 22:05:48 -04:00
bunnei
de5d431eec
Merge pull request #1041 from Subv/duplicated_mutex
...
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
2018-08-12 22:02:03 -04:00
bunnei
8da753ab81
Merge pull request #1040 from bunnei/xmad
...
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 21:56:40 -04:00
Subv
d923766042
CPU/Timing: Use an approximated amortized amount of ticks when advancing timing.
...
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast.
This lets us bypass certain hangs in some games like Breath of the Wild.
We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
2018-08-12 20:41:28 -05:00
Subv
a9877c8f65
Kernel/SVC: Don't reschedule the current core when creating a new thread.
...
The current core may have nothing to do with the core where the new thread was scheduled to run. In case it's the same core, then the following PrepareReshedule call will take care of that.
2018-08-12 20:38:37 -05:00
Subv
2e7802ad7d
Core/HLE: Make the 'reschedule_pending' flag atomic.
...
Another thread may write to this variable while the core in question is in the middle of checking for a reschedule request.
2018-08-12 18:41:12 -05:00
Subv
3a338d9286
CPU/HLE: Lock the HLE mutex before performing a reschedule.
...
Another thread might be in the middle of an SVC, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
Subv
84b542c386
Kernel/Threads: Lock the HLE mutex when executing the wakeup callback.
...
Another thread might be in the middle of a reschedule, thus altering the state of the schedulers.
2018-08-12 18:41:11 -05:00
Subv
0135b328ed
Kernel/Thread: Always use the threadsafe option when scheduling wakeups.
...
WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe.
Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want.
2018-08-12 18:40:56 -05:00
bunnei
534abf9d97
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 18:30:24 -04:00
Subv
5224cc49c4
Kernel/Mutex: Don't duplicate threads in the mutex waiter list.
...
Exit from AddMutexWaiter early if the thread is already waiting for a mutex owned by the owner thread.
This accounts for the possibility of a thread that is waiting on a condition variable being awakened twice in a row.
Also added more validation asserts.
This should fix one of the random crashes in Breath Of The Wild.
2018-08-12 16:35:27 -05:00
Lioncash
b82b093108
vfs: Make VfsFilesystem constructor explicit
...
Makes it consistent with the other VFS interfaces and prevents implicit
construction.
2018-08-12 16:55:40 -04:00
Lioncash
cf0a7cd1c1
vfs: Make type hierarchy objects classes instead of structs
...
struct should be used when the data type is very simple or otherwise has
no invariants associated with it. Given these are used to form a
hierarchy, class should be used instead.
2018-08-12 16:55:40 -04:00
bunnei
424e90f0f5
Merge pull request #1025 from ogniK5377/bad-cast
...
Fixed invalid cast in loader
2018-08-12 16:22:35 -04:00
bunnei
e12a07079e
Merge pull request #1038 from MerryMage/lock-cubeb
...
cubeb_sink: Protect queue with a mutex
2018-08-12 16:22:11 -04:00
Zach Hilman
35e4a47be0
registration: Various style and documentation improvements
...
Fix logic in RealVfsFilesystem Create methods
Remove magic numbers
Fix regex errors
2018-08-12 15:55:44 -04:00
MerryMage
fcc5ffdfdd
cubeb_sink: Protect queue with a mutex
2018-08-12 20:41:46 +01:00
bunnei
4cafc24a4e
Merge pull request #1035 from ogniK5377/audio-dev-revision-info
...
GetAudioDeviceServiceWithRevisionInfo (Used by Bloodstained: Curse of the Moon)
2018-08-12 14:56:11 -04:00
bunnei
68c44ca0ee
Merge pull request #1028 from ogniK5377/aoa
...
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
2018-08-12 13:33:08 -04:00
bunnei
e858a72a22
Merge pull request #1034 from lioncash/hid
...
hid: Stub DisconnectNpad()
2018-08-12 13:15:56 -04:00
Lioncash
e850ff63bc
scheduler: Make HaveReadyThreads() a const member function
...
This function doesn't modify instance state, so the const qualifier can
be added to it.
2018-08-12 12:55:58 -04:00
Lioncash
11470f331a
thread_queue_list: Make contains() and get_first() const member functions
...
These don't directly modify the contained data.
2018-08-12 12:54:14 -04:00
Lioncash
55c73e10a7
thread_queue_list: Convert typedef to a type alias
2018-08-12 12:47:11 -04:00
Markus Wick
0eb39922f6
gl_rasterizer: Use a shared helper to upload from CPU memory.
2018-08-12 16:10:26 +02:00
Markus Wick
0af7e93763
gl_state: Don't track constant buffer mappings.
2018-08-12 16:10:26 +02:00
Markus Wick
6ff7906ddc
gl_rasterizer: Use the stream buffer for constant buffers.
2018-08-12 16:10:26 +02:00
Markus Wick
ce722e317b
gl_rasterizer: Use the streaming buffer itself for the constant buffer.
...
Don't emut copies, especially not for data, which is used once. They just end in a huge GPU overhead.
2018-08-12 15:48:59 +02:00
Markus Wick
6f6bba3ff1
gl_rasterizer: Use a helper for aligning the buffer.
2018-08-12 15:47:35 +02:00
Markus Wick
d7298ec262
Update the stream_buffer helper from Citra.
...
Please see https://github.com/citra-emu/citra/pull/3666 for more details.
2018-08-12 15:47:35 +02:00
David Marcec
66f4f86a82
GetAudioDeviceServiceWithRevisionInfo
...
As we're not handling any anything about the revision data for GetAudioDeviceServiceWithRevisionInfo, it's currently marked as stubbed. However for games this shouldn't affect the result. Proper revision info would be more for homebrew.
2018-08-12 22:47:39 +10:00
Lioncash
63a70c253e
hid: disable clang-format around tables
...
Prevents clang-format from butchering them.
2018-08-12 05:57:33 -04:00
Lioncash
9e74d6238e
hid: Stub DisconnectNpad()
...
This is required by ARMS.
2018-08-12 05:56:28 -04:00
Lioncash
75bba25009
vfs: Use sanitized paths within MoveFile() and MoveDirectory()
...
Previously these were being unused (or partially unused). While we're at
it, use better naming to make it visibly obvious which variant of the
path is being used.
2018-08-12 04:05:01 -04:00
Lioncash
7b6519741b
card_image: Use type aliases to shorten definitions
...
We have the aliases, so we may as well use 'em.
2018-08-12 03:57:16 -04:00
Lioncash
d6a1a43854
card_image: Simplify return statement of GetSubdirectories()
...
We don't need to write out the construction long-form, we can just let
the language itself work it out off the return type.
2018-08-12 03:53:20 -04:00
bunnei
639ebb39f6
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
2018-08-12 02:22:42 -04:00
David Marcec
094f6003e0
Pushed the requested sample rate instead of our fixed sample rate
2018-08-12 14:58:36 +10:00
David Marcec
98b940052c
made ResultStatus a u16
2018-08-12 14:56:22 +10:00
David Marcec
e5ee0afe6f
Added GetAudioRendererSampleRate, GetAudioRendererSampleCount & GetAudioRendererMixBufferCount
...
GetAudioRendererSampleRate is set as a "STUB" as a game could check if the sample rate it sent and the sample rate it wants don't match. Just a thought of something which could happen so keeping it as stub for the mean time
2018-08-12 14:46:12 +10:00
bunnei
a70ad9b5bb
Merge pull request #1026 from ogniK5377/retro-city-rampage
...
Stub UpdateUserPresence
2018-08-12 00:25:57 -04:00
bunnei
c68aa65226
gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.
2018-08-12 00:06:48 -04:00
David Marcec
ecfbe7d9c8
Stub UpdateUserPresence
...
Needed for Retro City Rampage to go in game
2018-08-12 14:00:44 +10:00
David Marcec
a1fb8a331f
Fixed invalid cast in loader
...
GetMessageForResultStatus takes a u16, not a size_t.
2018-08-12 13:31:15 +10:00
Zach Hilman
6b76b77400
registration: Add support for force overwrite of installed
2018-08-11 23:01:42 -04:00
Zach Hilman
fdf27bf390
game_list: Split game list scans to multiple functions
...
Avoids unnecessary rebuilds of control data on every layer of recursion in AddFstEntriesToGameList
2018-08-11 22:50:48 -04:00
Zach Hilman
8f06a0f898
vfs_real: Add CreateFullPath to Create* operations
2018-08-11 22:50:48 -04:00
Zach Hilman
dda8ef11c7
control_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
149bda980a
romfs: Remove cyclic shared_ptr leak in romfs code
2018-08-11 22:50:48 -04:00
Zach Hilman
893447b6b0
registration: Update documentation and style
2018-08-11 22:50:48 -04:00
Zach Hilman
22bdddd6f0
nca_metadata: Remove unnecessary reference to base file
2018-08-11 22:50:48 -04:00
Zach Hilman
62e859c6c7
bis_factory: Create NAND dirs if they don't exist
2018-08-11 22:50:48 -04:00
Zach Hilman
f78a6e752f
qt: Use custom RawCopy with progress bar for installs
2018-08-11 22:50:48 -04:00
Zach Hilman
3b3c919e20
registration: Take RawCopy function as parameter
...
Instead of defaulting to VfsRawCopy
2018-08-11 22:50:48 -04:00
Zach Hilman
10812f8407
game_list: Populate control data from installed NAND
2018-08-11 22:50:48 -04:00
Zach Hilman
e5504a060d
registered_cache: Fix missing reading from yuzu_meta
2018-08-11 22:50:48 -04:00
Zach Hilman
167bfddafa
file_sys: Comply to style guidelines
2018-08-11 22:50:48 -04:00
Zach Hilman
bfb945c243
qt: Add 'Install to NAND' option to menu
...
Prompts for title type on NCA files.
2018-08-11 22:50:48 -04:00
Zach Hilman
b67e751ccb
game_list: Modify game list to scan installed titles
2018-08-11 22:50:48 -04:00
Zach Hilman
a91983b11c
file_sys: Add RegisteredCache
...
Manages NAND NCA get and install.
2018-08-11 22:50:48 -04:00
Zach Hilman
9aab787122
file_sys: Add support for parsing NCA metadata (CNMT)
2018-08-11 22:50:48 -04:00
Zach Hilman
ab8acce645
card_image: Add accessor for all NCAs in XCI
2018-08-11 22:50:48 -04:00
Zach Hilman
9b0e3556ed
vfs_real: Add CreateFullPath to CreateFile
...
Fixes bugs with calling CreateFile when the immediate directory does not exist.
2018-08-11 22:50:48 -04:00
Zach Hilman
c0257cf52f
filesystem: Add Open and Register functions for BISFactory
2018-08-11 22:50:48 -04:00
Zach Hilman
70a510bd8f
bis_factory: Add partial implementation of BISFactory
...
Creates and stores RegisteredCaches for user and system NAND, as creation of a RegisteredCache is expensive.
2018-08-11 22:50:48 -04:00
Zach Hilman
95bb1067c1
loader: Join 0* files in directory if filename is 00
...
i.e. Load the concatenated 00+01 if 01 exists as well. Needed for split NAND NCAs.
2018-08-11 22:50:48 -04:00
Zach Hilman
5b4119fa7f
loader: Recognize filename '00' as NCA
...
Needed to avoid mismatch filetype warnings on split NAND NCAs
2018-08-11 22:50:08 -04:00
Zach Hilman
42114e1df4
vfs: Add ConcatenatedVfsFile
2018-08-11 22:50:08 -04:00
Zach Hilman
a27ec24c0f
crypto: Remove hex utilities from key_manager
...
Move to hex_util.h in common
2018-08-11 22:50:08 -04:00
Zach Hilman
b70a831608
file_util: Add getter for NAND registration directory
2018-08-11 22:50:08 -04:00
Zach Hilman
10aac376d1
common: Move hex string processing to separate file
2018-08-11 22:50:08 -04:00
bunnei
a921d22545
Merge pull request #1022 from bunnei/fix-splat
...
Several Friend service fixes
2018-08-11 22:42:45 -04:00
bunnei
ee07041b3a
Merge pull request #1020 from lioncash/namespace
...
core: Namespace EmuWindow
2018-08-11 22:40:08 -04:00
bunnei
9c977d2215
Merge pull request #1021 from lioncash/warn
...
gl_rasterizer: Silence implicit truncation warning in SetupShaders()
2018-08-11 22:39:46 -04:00
bunnei
f2c7b5dcd6
Merge pull request #1024 from Subv/blend_gl
...
GPU/Maxwell3D: Implemented an alternative set of blend factors.
2018-08-11 22:39:02 -04:00
bunnei
d37da52cb3
Merge pull request #1023 from Subv/invalid_attribs
...
RasterizerGL: Ignore invalid/unset vertex attributes.
2018-08-11 22:18:40 -04:00
Subv
969326bd58
GPU/Maxwell3D: Implemented an alternative set of blend factors.
...
These are used by nouveau and some games like SMO.
2018-08-11 20:57:16 -05:00
greggameplayer
224071a652
Implement R8_UINT RenderTargetFormat & PixelFormat ( #1014 )
...
- Used by Go Vacation
2018-08-11 21:44:42 -04:00
Subv
2dad1204e8
RasterizerGL: Ignore invalid/unset vertex attributes.
...
This should make the es2gears example not crash anymore.
2018-08-11 20:36:40 -05:00
bunnei
249341d08f
friend: Stub DeclareCloseOnlinePlaySession.
...
- Used by Splatoon 2.
2018-08-11 21:34:14 -04:00
bunnei
261a4f0311
friend: Fix CreateFriendService to return an IFriendService interface.
2018-08-11 21:29:58 -04:00
bunnei
ca4bf671ce
server_session: Provide more useful information and don't crash on bad IPC request.
2018-08-11 21:15:24 -04:00
Lioncash
28e90fa0e0
gl_rasterizer: Silence implicit truncation warning in SetupShaders()
...
Previously this would warn of truncating a std::size_t to a u32. This is
safe because we'll obviously never have more than UINT32_MAX amount of
uniform buffers.
2018-08-11 20:32:03 -04:00
Lioncash
0a93b45b6a
core: Namespace EmuWindow
...
Gets the class out of the global namespace.
2018-08-11 20:20:21 -04:00
bunnei
403dfd68fc
Merge pull request #1010 from bunnei/unk-vert-attrib-shader
...
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:56:28 -04:00
bunnei
c519354506
Merge pull request #1009 from bunnei/rg8-rgba8-snorm
...
Implement render target formats RGBA8_SNORM and RG8_SNORM.
2018-08-11 19:55:41 -04:00
bunnei
0b668d5ff3
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:26:45 -04:00
bunnei
bc286c169f
Merge pull request #970 from DarkLordZach/loader-errors
...
loader: Add more descriptive errors
2018-08-11 19:25:30 -04:00
bunnei
670a2c1f80
Merge pull request #1018 from Subv/ssy_sync
...
GPU/Shader: Implemented SSY and SYNC as a set_target/jump pair.
2018-08-11 19:10:02 -04:00
bunnei
88ffa422d4
gl_rasterizer: Implement render target format RG8_SNORM.
...
- Used by Super Mario Odyssey.
2018-08-11 19:06:42 -04:00
bunnei
0471976b48
gl_rasterizer: Implement render target format RGBA8_SNORM.
...
- Used by Super Mario Odyssey.
2018-08-11 18:59:14 -04:00
Subv
c1ad973881
GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY).
2018-08-11 16:00:14 -05:00
Subv
305a05f820
GPU/Shaders: Implemented SSY and SYNC as a way to modify control flow during shader execution.
...
SSY sets the target label to jump to when the SYNC instruction is executed.
2018-08-11 15:55:11 -05:00
bunnei
d64303d185
Merge pull request #1016 from lioncash/video
...
video_core: Get rid of global variable g_toggle_framelimit_enabled
2018-08-11 14:10:55 -04:00
bunnei
b8b9f41b6b
Merge pull request #1003 from lioncash/var
...
video_core: Use variable template variants of type_traits interfaces where applicable
2018-08-11 14:08:12 -04:00
greggameplayer
dfcde52f39
Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats and more (R16_UNORM needed by Fate Extella) ( #848 )
...
* Implement R16S & R16UI & R16I RenderTargetFormats & PixelFormats
Do a separate function in order to get Bytes Per Pixel of DepthFormat
Apply the new function in gpu.h
delete unneeded white space
* correct merging error
2018-08-11 14:01:50 -04:00
David Marcec
10f494eefe
Better UUID randomness
2018-08-12 02:31:43 +10:00
David Marcec
448290bee4
Removed un-needed count from ListOpenUsers and ListAllUsers
2018-08-12 02:11:04 +10:00
David Marcec
2592e41301
Added better explanations in the profile manager
2018-08-12 01:51:31 +10:00
David Marcec
0b6f8ba51e
Code cleanup for profile manager
2018-08-12 01:34:22 +10:00
David Marcec
d0b2950434
Removed const from ProfileBase Invalidate
2018-08-12 00:41:17 +10:00
David Marcec
42431d2aa6
fixed invalid uuid bool operator
2018-08-11 21:29:10 +10:00
David Marcec
b8e70faa2d
Added GetOpenUserCount
2018-08-11 20:45:06 +10:00
David Marcec
662218e997
Removed all for loops from the profile manager
2018-08-11 20:15:59 +10:00
David Marcec
c3013c7c9c
Added missing ListAllUsers count
2018-08-11 20:06:06 +10:00
David Marcec
acff922762
If statement style change
2018-08-11 18:46:42 +10:00
David Marcec
dfea525cbe
Second round of account changes
2018-08-11 18:26:13 +10:00
David Marcec
82fa0bcea7
First round of account changes
2018-08-11 16:47:33 +10:00
David Marcec
6aa8ee6943
Refactored profile manager sharing
2018-08-11 13:17:06 +10:00
David Marcec
b76ddb7647
Merge remote-tracking branch 'origin/master' into better-account
2018-08-11 10:35:47 +10:00
David Marcec
2a3b335b15
Added IsUserRegistrationRequestPermitted
2018-08-11 10:33:11 +10:00
Lioncash
20c2928c2b
video_core; Get rid of global g_toggle_framelimit_enabled variable
...
Instead, we make a struct for renderer settings and allow the renderer
to update all of these settings, getting rid of the need for
global-scoped variables.
This also uncovered a few indirect inclusions for certain headers, which
this commit also fixes.
2018-08-10 19:00:09 -04:00
Lioncash
f380496728
renderer_base: Remove unused kFramebuffer enumeration
...
This is entirely unused and can be removed.
2018-08-10 18:31:13 -04:00
Lioncash
2e80e7480d
video_core: Remove unused Renderer enumeration
...
Currently we only have an OpenGL renderer, so this is unused in code
(and occupies the Renderer identifier in the VideoCore namespace).
2018-08-10 18:27:40 -04:00
Lioncash
8eb97706b8
qt/game_list: Resolve truncation warning within GameListItemPath's constructor
...
Silences a warning about truncating from size_t to u32
2018-08-10 18:19:44 -04:00
Lioncash
aaf671a309
gt/game_list: Use std::array in GameListItemPath's data() function
...
We don't need to use a heap-allocated std::vector here, given we
explicitly know the bounds.
2018-08-10 18:19:40 -04:00
Lioncash
be53097577
qt/game_list: Remove redundant base class constructor from initializer list
...
This is called automatically anyways.
2018-08-10 18:17:39 -04:00
bunnei
6b0bc48a42
maxwell_to_gl: Implement VertexAttribute::Size::Size_8_8.
...
- Used by Super Mario Odyssey.
2018-08-10 12:47:00 -04:00
bunnei
a5b65df9cf
maxwell_to_gl: Implement VertexAttribute::Size::Size_32_32_32.
...
- Used by Super Mario Odyssey.
2018-08-10 12:46:49 -04:00
bunnei
57626fda7b
Merge pull request #1004 from lioncash/unused
...
gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces()
2018-08-10 12:13:32 -04:00
bunnei
6313d54cef
Merge pull request #1008 from yuzu-emu/revert-697-disable-depth-cull
...
Revert "gl_state: Temporarily disable culling and depth test."
2018-08-10 12:13:09 -04:00
bunnei
2156cb3cbe
Revert "gl_state: Temporarily disable culling and depth test."
2018-08-10 10:39:46 -04:00
Zach Hilman
8069fbd37f
game_list: Reorder error checks
...
clang-format fix
2018-08-09 21:37:35 -04:00
Zach Hilman
ec3bef7b4c
loader: Add more descriptive errors
...
Full list of new errors and descriptions in core/loader/loader.h
2018-08-09 21:06:59 -04:00
Lioncash
0e1510ac29
gl_rasterizer_cache: Remove unused viewport parameter of GetFramebufferSurfaces()
2018-08-09 20:55:41 -04:00
Lioncash
b8c43b6080
video_core: Use variable template variants of type_traits interfaces where applicable
2018-08-09 20:45:48 -04:00
bunnei
3a67876252
textures: Refactor out for Texture/Depth FormatFromPixelFormat.
2018-08-09 20:36:03 -04:00
bunnei
6828c25498
Merge pull request #995 from bunnei/gl-buff-bounds
...
gl_rasterizer_cache: Add bounds checking for gl_buffer copies.
2018-08-09 20:23:30 -04:00
bunnei
5191c20b71
Merge pull request #997 from lioncash/const-func
...
core: Make function reference parameters const where applicable
2018-08-09 19:30:51 -04:00
bunnei
a91bb7080d
Merge pull request #989 from lioncash/log
...
common/logging: Add missing service log categories
2018-08-09 19:30:14 -04:00
bunnei
69cd213fac
Merge pull request #990 from lioncash/entry
...
fsp_srv: Emplace entries first when building index instead of emplacing last
2018-08-09 19:29:36 -04:00
bunnei
05c33d89a1
Merge pull request #1001 from lioncash/reserve
...
gl_shader_decompiler: Reserve element memory beforehand in BuildRegisterList()
2018-08-09 19:27:35 -04:00
bunnei
96ef22d3d0
Merge pull request #897 from DarkLordZach/vfs-accuracy-2
...
vfs: Add VfsFilesystem and fix RealVfs* implementations
2018-08-09 19:22:06 -04:00
bunnei
e8c52d4c89
gl_rasterizer_cache: Add bounds checking for gl_buffer copies.
2018-08-09 19:20:17 -04:00
bunnei
37e1ed3744
Merge pull request #991 from bunnei/ignore-mac
...
maxwell_3d: Ignore macros that have not been uploaded yet.
2018-08-09 19:16:28 -04:00
Khangaroo
75e12a33ae
Implement SNORM for BC5/DXN2 ( #998 )
...
* Implement BC5/DXN2 (#996 )
- Used by Kirby Star Allies.
* Implement BC5/DXN2 SNORM
UNORM for Kirby Star Allies
SNORM for Super Mario Odyssey
2018-08-09 19:15:32 -04:00
Lioncash
6ef027b958
gl_shader_decompiler: Reserve element memory beforehand in BuildRegisterList()
...
Avoids potentially perfoming multiple reallocations when we know the
total amount of memory we need beforehand.
2018-08-09 17:29:11 -04:00
Lioncash
59ea37daa7
gl_rasterizer_cache: Avoid iterator invalidation issues within InvalidateRegion()
...
A range-based for loop can't be used when the container being iterated
is also being erased from.
2018-08-09 15:30:20 -04:00
bunnei
0bfe974281
Merge pull request #992 from bunnei/declr-pred
...
gl_shader_decompiler: Declare predicates on use.
2018-08-09 14:36:52 -04:00
bunnei
88b18b9ba4
Merge pull request #994 from lioncash/const
...
gl_rasterizer_cache: Use std::vector::assign vs resize() then copy for the non-tiled case
2018-08-09 14:36:06 -04:00
bunnei
b125137493
Merge pull request #993 from bunnei/smo-vtx-pts
...
Implement VertexAttribute::Size::Size_16_16_16_16 and PrimitiveTopology::Points.
2018-08-09 13:28:14 -04:00
bunnei
f765a6b902
Merge pull request #984 from bunnei/rt-none
...
gl_rasterizer: Do not render when no render target is configured.
2018-08-09 13:12:28 -04:00
Khangaroo
5cb6eceecf
Implement BC5/DXN2 ( #996 )
...
- Used by Kirby Star Allies.
2018-08-09 12:57:13 -04:00
Lioncash
b46a5c42ff
buffer_queue: Make reference parameter of SetPreallocatedBuffer const
...
This is simply copied by value, so there's no need to make it a
modifiable reference.
While we're at it, make the names of the parameters match its
definition.
2018-08-09 03:08:14 -04:00
Lioncash
ff5024ee2a
hle_ipc: Make WriteToOutgoingCommandBuffer()'s reference parameter const
...
This function doesn't modify anything within the reference Thread
instance.
2018-08-09 02:51:38 -04:00
bunnei
5c908c0373
Merge pull request #988 from lioncash/color
...
common/color: Minor cleanup
2018-08-09 00:37:32 -04:00
bunnei
c333bfc193
Merge pull request #977 from bunnei/bgr565
...
gl_rasterizer_cached: Implement RenderTargetFormat::B5G6R5_UNORM.
2018-08-08 23:43:04 -04:00
Lioncash
e831b80d69
gl_rasterizer_cache: Invert conditional in LoadGLBuffer()
...
It's generally easier to follow code using conditionals that operate in
terms of the true case followed by the false case (no chance of
overlooking the exclamation mark).
2018-08-08 23:34:57 -04:00
Lioncash
434f352eb3
gl_rasterizer_cache: Use std::vector::assign in LoadGLBuffer() for the non-tiled case
...
resize() causes the vector to expand and zero out the added members to
the vector, however we can avoid this zeroing by using assign().
Given we have the pointer to the data we want to copy, we can calculate
the end pointer and directly copy the range of data without the
need to perform the resize() beforehand.
2018-08-08 23:34:58 -04:00
David Marcec
4e1471ef21
Don't add user if the uuid already exists
2018-08-09 13:30:58 +10:00
bunnei
5b1b758326
Merge pull request #987 from lioncash/vec
...
vector_math: Use variable template version of is_signed in Vec classes
2018-08-08 23:30:40 -04:00
bunnei
dfc3eed0cb
maxwell_to_gl: Implement VertexAttribute::Size::Size_16_16_16_16.
...
- Used by Super Mario Odyssey (in game).
2018-08-08 23:28:17 -04:00
bunnei
06d0b96ca9
maxwell_to_gl: Implement PrimitiveTopology::Points.
...
- Used by Super Mario Odyssey (in game).
2018-08-08 23:28:00 -04:00
bunnei
4283019aa0
gl_shader_decompiler: Declare predicates on use.
...
- Used by Super Mario Odyssey (when going in game).
2018-08-08 23:26:31 -04:00
bunnei
efe6b473c5
maxwell_3d: Ignore macros that have not been uploaded yet.
...
- Used by Super Mario Odyssey (in game).
2018-08-08 23:25:37 -04:00
Lioncash
557c466994
gl_rasterizer_cache: Make pointer const in LoadGLBuffer()
...
This is only ever read from, so we can make the data it's pointing to
const.
2018-08-08 23:14:57 -04:00
bunnei
25ba4d1b68
Merge pull request #982 from bunnei/stub-unk-63
...
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 22:28:18 -04:00
Zach Hilman
668458525e
vfs: Fix documentation
2018-08-08 21:45:04 -04:00
bunnei
2f4f4f147f
Merge pull request #986 from mailwl/acc-loadimage
...
Service/Account: stub LoadImage function
2018-08-08 21:21:06 -04:00
Zach Hilman
94cf327e77
vfs: Fix typo in VfsFilesystem docs
2018-08-08 21:18:45 -04:00
Zach Hilman
2b6128fe0b
file_util: Use enum instead of bool for specifing path behavior
2018-08-08 21:18:45 -04:00
Zach Hilman
dad2ae1ee0
loader: Remove unused IdentifyFile overload
2018-08-08 21:18:45 -04:00
Zach Hilman
656e97df16
vfs: Use RealVfsFilesystem for fs-operations in RealVfsDirectory
2018-08-08 21:18:45 -04:00
Zach Hilman
52a2e42cb9
file_sys: Add missing include in savedata_factory
2018-08-08 21:18:45 -04:00
Zach Hilman
4b471f0554
core: Port core to VfsFilesystem for file access
2018-08-08 21:18:45 -04:00
Zach Hilman
aaa8fdea52
vfs: Add unreachable assert to file permissions converter
2018-08-08 21:18:45 -04:00
Zach Hilman
2de2ec25d6
vfs: Add RealVfsFilesystem implementation
2018-08-08 21:18:45 -04:00
Zach Hilman
3f82dad1e4
file_util: Add platform-specific slash option to SanitizePath
2018-08-08 21:18:45 -04:00
Zach Hilman
3bf488ce52
vfs: Add VfsFilesystem interface and default implementation
2018-08-08 21:18:45 -04:00
Zach Hilman
b36dee364e
filesystem: Remove unnecessary if conditions
2018-08-08 21:18:45 -04:00
bunnei
ddec200290
gl_rasterizer: Do not render when no render target is configured.
...
- Used by Super Mario Odyssey.
2018-08-08 19:29:45 -04:00
bunnei
cf917a5e93
Merge pull request #976 from bunnei/shader-imm
...
gl_shader_decompiler: Let OpenGL interpret floats.
2018-08-08 19:17:01 -04:00
bunnei
9ceceb212f
Merge pull request #981 from bunnei/cbuf-corrupt
...
maxwell_3d: Use correct const buffer size and check bounds.
2018-08-08 19:16:34 -04:00
bunnei
9f48454ea9
Merge pull request #978 from bunnei/fixioctl
...
nvhost_gpu: Don't over copy IoctlSubmitGpfifo.
2018-08-08 19:16:14 -04:00
Lioncash
7353cfc781
fsp_srv: Use std::string_view's copy() function instead of strncpy()
...
Given elements inserted into a vector are zeroed out, we can just copy
MAX_LEN - 1 elements and the data will already be properly null
terminated.
2018-08-08 18:51:52 -04:00
Lioncash
4afb05d0cc
fsp_srv: Emplace entries first when building index instead of emplacing last
...
The current way were doing it would require copying a 768 character
buffer (part of the Entry struct) to the new element in the vector.
Given it's a plain array, std::move won't eliminate that.
Instead, we can emplace an instance directly into the destination buffer
and then fill it out, avoiding the need to perform any unnecessary
copies.
Given this is done in a loop, we can request the destination to allocate
all of the necessary memory ahead of time, avoiding the need to
potentially keep reallocating over and over on every few insertions into
the vector.
2018-08-08 18:51:41 -04:00
bunnei
cc2526dd51
Merge pull request #985 from bunnei/rt-r11g11b10
...
gpu: Add R11G11B10_FLOAT to RenderTargetBytesPerPixel.
2018-08-08 18:21:34 -04:00
bunnei
096b04f1a4
Merge pull request #979 from bunnei/vtx88
...
maxwell_to_gl: Implement VertexAttribute::Size::Size_8_8.
2018-08-08 18:18:50 -04:00
bunnei
756e1e6f9b
Merge pull request #975 from bunnei/am-stub
...
am: Stub SetScreenShotImageOrientation.
2018-08-08 16:46:45 -04:00
Lioncash
6e90f0bf6a
common/logging: Add missing service log categories
...
These weren't added when the services were introduced.
2018-08-08 16:46:28 -04:00
bunnei
599c011f40
Merge pull request #980 from bunnei/fix-logs
...
renderer_opengl: Use trace log in a few places.
2018-08-08 16:45:42 -04:00
Lioncash
5a9c00ea04
common/color: Remove unnecessary const qualifiers on return types
...
These are just superfluous and not necessesary
2018-08-08 16:17:41 -04:00
Lioncash
76197a4be9
common/color: Get rid of undefined behavior
...
Gets rid of type punning via reinterpret_cast within functions. Instead,
we use memcpy to transfer the contents across types.
2018-08-08 16:14:37 -04:00
Lioncash
cc9d7bbf01
vector_math: Use variable template version of is_signed in Vec classes
...
Same behavior, less code
2018-08-08 15:53:42 -04:00
bunnei
d224eb7c39
Merge pull request #966 from lioncash/modernize
...
common: Convert type traits templates over to variable template versions where applicable
2018-08-08 15:28:34 -04:00
bunnei
fd9da4232b
Merge pull request #850 from DarkLordZach/icon-meta
...
Add Icons and Metadata Support
2018-08-08 12:27:19 -04:00
bunnei
507e6ae100
Merge pull request #968 from lioncash/vec
...
vector_math: Minor cleanups
2018-08-08 12:00:13 -04:00
bunnei
448264e719
Merge pull request #958 from lioncash/nv-global
...
nvdrv: Get rid of global std::weak_ptr
2018-08-08 11:58:45 -04:00
David Marcec
e9978fd4f5
Open first user added
2018-08-09 01:37:55 +10:00
David Marcec
75169c7570
Inital pass of account backend implementation
...
This commit verified working on puyo
2018-08-09 01:09:12 +10:00
David Marcec
03d7faf583
GetProfileBase and GetProfileBaseAndData added
2018-08-08 23:41:12 +10:00
David Marcec
6f691e71bf
began initial implementation of "ProfileManager"
2018-08-08 22:26:42 +10:00
mailwl
c0d44d3b2a
Service/Account: stub LoadImage function
2018-08-08 14:42:54 +03:00
David Marcec
5f8d253ce0
Switched uuids from u128 to new UUID struct
2018-08-08 21:09:45 +10:00
bunnei
f156a45c01
Merge pull request #972 from lioncash/catch
...
externals: Update catch to 2.3.0
2018-08-08 03:00:57 -04:00
bunnei
6a5d032809
Merge pull request #965 from lioncash/unused-files
...
hle: Remove unused romfs.cpp/.h
2018-08-08 03:00:38 -04:00
bunnei
4941e3d412
Merge pull request #974 from lioncash/acc
...
acc: Add missing function table entries for GetUserCount
2018-08-08 02:56:00 -04:00
bunnei
7bf422d58c
gpu: Add R11G11B10_FLOAT to RenderTargetBytesPerPixel.
...
- Used by Super Mario Odyssey.
2018-08-08 02:42:14 -04:00
mailwl
3c498189b6
hid: fix IsSixAxisSensorAtRest() response
2018-08-08 09:36:23 +03:00
bunnei
7f0d0a93f7
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 02:35:59 -04:00
bunnei
57982df105
maxwell_3d: Use correct const buffer size and check bounds.
...
- Fixes mem corruption with Super Mario Odyssey and Pokkén Tournament DX.
2018-08-08 02:10:25 -04:00
bunnei
8c6338b6f9
renderer_opengl: Use trace log in a few places.
2018-08-08 01:53:23 -04:00
bunnei
c120ed7d18
maxwell_to_gl: Implement VertexAttribute::Size::Size_8_8.
2018-08-08 01:50:53 -04:00
bunnei
0f834e2284
nvhost_gpu: Don't over copy IoctlSubmitGpfifo.
2018-08-08 01:49:47 -04:00
bunnei
aaf8d9ac2f
gl_rasterizer_cached: Implement RenderTargetFormat::B5G6R5_UNORM.
...
- Used by Super Mario Odyssey.
2018-08-08 01:48:27 -04:00
bunnei
e542356d0c
gl_shader_decompiler: Let OpenGL interpret floats.
...
- Accuracy is lost in translation to string, e.g. with NaN.
- Needed for Super Mario Odyssey.
2018-08-08 01:45:23 -04:00
bunnei
b7fb9f2071
am: Stub SetScreenShotImageOrientation.
...
- Used by Super Mario Odyssey.
2018-08-08 00:41:35 -04:00
Lioncash
934a2b9604
acc: Add missing function table entries for GetUserCount
...
Given this is stubbed within the common module in
5ac7b84, it should be added to the other relevant tables as well.
2018-08-07 22:50:45 -04:00
bunnei
2bc296801a
acc: Stub GetUserCount. ( #973 )
...
- Used by Pokken Tournament DX.
2018-08-07 22:39:12 -04:00
bunnei
80cfd88e4e
Merge pull request #967 from lioncash/sign
...
file_util: Avoid sign-conversions in WriteArray() and ReadArray()
2018-08-07 22:37:00 -04:00
Lioncash
d378d98e26
nvdrv: Get rid of global std::weak_ptr
...
Rather than use global state, we can simply pass the instance into the
NVFlinger instance directly.
2018-08-07 21:53:05 -04:00
Lioncash
766c1a2d50
vector_math: Remove unimplemented function prototypes
2018-08-07 21:33:48 -04:00
Lioncash
5c323d96e0
vector_math: Make functions constexpr where applicable
2018-08-07 21:32:05 -04:00
Lioncash
4e3bc37791
vector_math: Convert typedefs to type aliases
2018-08-07 21:15:10 -04:00
Lioncash
a7d6efc520
common: Convert type traits templates over to variable template versions where applicable
...
Uses the C++17 inline variable variants
2018-08-07 19:34:47 -04:00
Lioncash
cd1a96f389
hle: Remove unused romfs.cpp/.h
...
These files are no longer used, so we can get rid of them.
2018-08-07 19:34:12 -04:00
Lioncash
62b0b83fd8
externals: Update catch to 2.3.0
...
Updates the library from 2.2.3 to 2.3.0
2018-08-07 19:26:13 -04:00
bunnei
4fa3511a63
Merge pull request #964 from Hexagon12/lower-logs
...
Lowered down the logging for command processor methods
2018-08-07 19:00:19 -04:00
Hexagon12
7139f05fc5
Fixed the sRGB pixel format ( #963 )
...
* Changed the sRGB pixel format return
* Add a message about SRGBA -> RGBA conversion
2018-08-07 18:59:50 -04:00
Zach Hilman
1abfd4166e
configure_gamelist: Use explicit QVariant constructor
2018-08-07 17:10:10 -04:00
bunnei
b9829a05be
Merge pull request #920 from DarkLordZach/titlekey
...
content_archive: Add support for titlekey cryptography
2018-08-07 17:01:25 -04:00
bunnei
7ed8565978
Merge pull request #957 from lioncash/event
...
nvflinger: Correct typo in name of composition event
2018-08-07 15:56:51 -04:00
bunnei
6576bc8927
Merge pull request #954 from lioncash/hid
...
services/hid: Add ActivateNpadWithRevision() to the hid function info array
2018-08-07 15:56:34 -04:00
bunnei
2d57cbaec1
Merge pull request #960 from lioncash/apm
...
service/apm: Add the apm:sys service
2018-08-07 14:57:12 -04:00
bunnei
3242e7c164
Merge pull request #950 from lioncash/hotkey
...
qt/hotkey: Get rid of global hotkey map instance
2018-08-07 14:45:45 -04:00
bunnei
573a66c23d
Merge pull request #955 from lioncash/view
...
nvflinger: Use std::string_view in OpenDisplay()
2018-08-07 14:26:51 -04:00
bunnei
97c6f984dc
Merge pull request #953 from lioncash/time
...
service/time: Amend command IDs of ToPosixTime() and ToPosixTimeWithMyRule()
2018-08-07 14:25:52 -04:00
bunnei
07595987ac
Merge pull request #959 from KAMiKAZOW/cubeb-compilation
...
Make building cubeb optional
2018-08-07 14:25:17 -04:00
bunnei
b09c4f45c7
Merge pull request #956 from lioncash/nv
...
nvdrv: Get rid of indirect inclusions
2018-08-07 14:23:32 -04:00
Lioncash
0735a0c8a1
file_util: Avoid sign-conversions in WriteArray() and ReadArray()
...
Prevents compiler warnings.
2018-08-07 13:51:37 -04:00
Hexagon12
bc6d91a103
Lowered down the logging for methods
2018-08-07 19:51:40 +03:00
bunnei
c392650e21
Merge pull request #952 from lioncash/usb
...
service: Add usb services
2018-08-07 11:27:49 -04:00
bunnei
8f73f41824
Merge pull request #949 from lioncash/priv
...
client_port: Make all data members private
2018-08-07 11:20:26 -04:00
Zach Hilman
3e81c09094
loader: Fix scope error in DeconstructedRomDirectory
2018-08-07 10:37:38 -04:00
Lioncash
12ab5a0547
service/apm: Add the apm:sys service
...
Adds the basic skeleton of the apm:sys service based off the information
on Switch Brew.
2018-08-07 10:05:26 -04:00
Lioncash
d3f64785d1
nvflinger: Correct typo in name of composition event
2018-08-07 09:03:52 -04:00
Lioncash
300ab211e8
nvdrv: Make Ioctl()'s definition match its prototype
...
The only reason this wasn't a compilation error is because we use
little-endian systems.
2018-08-07 08:57:11 -04:00
Lioncash
fa8017295b
nvdrv: Get rid of indirect inclusions
2018-08-07 08:54:50 -04:00
Lioncash
e40b0cf437
nvflinger: Get rid of indirect inclusions
2018-08-07 08:32:05 -04:00
Lioncash
7e49881b7f
nvflinger: Use std::string_view in OpenDisplay()
...
We don't need to use a std::string here, given all that's done is
comparing the character sequence against another. This allows passing
regular const char* without needing to heap allocate.
2018-08-07 08:32:06 -04:00
KAMiKAZOW
0f5c4615ae
Make building cubeb optional
2018-08-07 13:21:56 +02:00
Lioncash
890e543304
services/hid: Add ActivateNpadWithRevision() to the hid function info array
...
Updated based off the information on Switch Brew.
2018-08-07 03:23:20 -04:00
Lioncash
20c976ff2a
service/time: Amend command IDs of ToPosixTime() and ToPosixTimeWithMyRule()
...
Updates the ID of these based off the information on Switch Brew.
2018-08-07 03:18:07 -04:00
Lioncash
45bc449ff9
service: Add usb services
...
Adds basic skeleton for the usb services based off the information provided by Switch Brew.
2018-08-07 03:14:03 -04:00
Lioncash
c8f6754417
qt/hotkey: Get rid of global hotkey map instance
...
Instead, we make a proper registry class and house it within the main
window, then pass it to whatever needs access to the loaded hotkeys.
This way, we avoid a global variable, and don't need to initialize a
std::map instance before the program can do anything.
2018-08-07 02:28:17 -04:00
Zach Hilman
91cfe70301
loader: Add icon and title support to XCI
2018-08-06 23:13:42 -04:00
Zach Hilman
5927cf0e17
Use const where applicable
2018-08-06 23:06:33 -04:00
Zach Hilman
9e88f03e75
Avoid parsing RomFS to directory in NCA
2018-08-06 23:06:33 -04:00
Lioncash
da2f00ab7d
client_port: Make all data members private
...
These members don't need to be entirely exposed, we can instead expose
an API to operate on them without directly needing to mutate them
We can also guard against overflow/API misuse this way as well, given
active_sessions is an unsigned value.
2018-08-06 23:05:17 -04:00
bunnei
826b1394e8
Merge pull request #931 from DarkLordZach/nca-as-drd
...
loader: Make AppLoader_NCA rely on directory loading code
2018-08-06 22:02:41 -04:00
bunnei
0c3c91e41c
Merge pull request #947 from lioncash/encoding
...
game_list: Use QString::fromStdString() where applicable instead of c_str()
2018-08-06 22:02:01 -04:00
Hedges
e2b74f6354
GDBStub works with both Unicorn and Dynarmic now ( #941 )
...
* GDBStub works with both Unicorn and Dynarmic now
* Tidy up
2018-08-06 22:01:24 -04:00
bunnei
e218d79cc2
Merge pull request #943 from lioncash/decl
...
game_list: Join declarations and assignments in onTextChanged()
2018-08-06 22:00:49 -04:00
bunnei
75df8a3969
Merge pull request #946 from lioncash/compress
...
qt/main: Collapse if statement in UpdateRecentFiles()
2018-08-06 21:34:20 -04:00
bunnei
645d35ac32
Merge pull request #944 from lioncash/menu
...
qt: Don't show error dialog when canceling the Load Folder dialog
2018-08-06 21:33:23 -04:00
bunnei
168958f8e2
Merge pull request #942 from lioncash/default
...
qt: Minor cleanup-related changes
2018-08-06 21:32:25 -04:00
bunnei
f179e87864
Merge pull request #940 from lioncash/private
...
kernel/event: Make data members private
2018-08-06 21:31:25 -04:00
bunnei
cf82358ee6
Merge pull request #936 from bunnei/avoid-copies
...
gl_rasterizer_cache: Avoid superfluous surface copies.
2018-08-06 21:29:29 -04:00
bunnei
83ef37ca37
Merge pull request #934 from lioncash/chrono
...
core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds
2018-08-06 18:03:05 -04:00
Lioncash
96b6ad11c1
qt/main: Avoid sign conversions in UpdateRecentFiles()
...
This was intermixing signed and unsigned values when they could all just
be signed.
2018-08-06 15:42:44 -04:00
Lioncash
10d693b9c2
game_list: Remove unnecessary conversion to std::string in ValidateEntry()
...
We can just use the file interfaces that Qt provides to prevent needing
to convert to std::string.
2018-08-06 15:06:29 -04:00
Lioncash
a5ac53dd4c
game_list: Use QString::fromStdString() where applicable instead of c_str()
...
The codec used by Qt for const char* and std::string don't necessarily
have to be the same depending on locale. Therefore, we should be using
the correct functions to do the conversions.
2018-08-06 15:06:30 -04:00
Lioncash
251e92513a
game_list: Join declarations and assignments in onTextChanged()
...
There's no need to keep these separate from one another.
2018-08-06 14:35:40 -04:00
Lioncash
cf983888cc
qt/main: Collapse if statement in UpdateRecentFiles()
...
Given the function accepts a boolean, we don't need to use an if
statement here and repeat ourselves.
2018-08-06 14:32:28 -04:00
Lioncash
2b2dc00bfd
qt/main: Better file-existence checking within OnMenuRecentFile() and UpdateUITheme()
...
In OnMenuRecentFile() we don't need to construct a QFileInfo instance
just to check if a file exists, we can just use the static member
function to do that (which Qt's documentation also notes as quicker than
constructing an instance).
In UpdateUITheme(), we just want to try and open the file and check the
success of that operation. Technically speaking, between the existence
check and the open call, the file can be deleted or moved, but still
appear to succeed in code. i.e.
1. Existence check -> Returns true
2. File is moved/deleted
3. Open is called, the return value of which isn't checked
4. Nonsense behavior
This way we combine the existence check and the open into one.
2018-08-06 14:17:13 -04:00
Lioncash
d33f641912
qt: Don't show error dialog when canceling the Load Folder dialog
...
Previously, when canceling out of the Load Folder dialog, a user would
get an error dialog about the selected folder not containing a main
file, however, by canceling out of the dialog, no selection was actually
made.
2018-08-06 14:02:34 -04:00
Lioncash
9764b4ec0e
qt/game_list_p: Remove redundant base class constructor invocations
...
These occur automatically without the need to call them. While we're at
it, also std::move the QString instance into its member variable.
2018-08-06 13:42:12 -04:00
Lioncash
7846295a8f
qt: Add missing override specifiers where applicable
2018-08-06 13:29:14 -04:00
Lioncash
00a68c5eea
qt: Default destructors where applicable
...
Makes code consistent with our style of defaulting special member
functions where applicable.
2018-08-06 13:27:08 -04:00
Lioncash
2feb1a8ba6
kernel/event: Make data members private
...
Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly.
2018-08-06 12:53:02 -04:00
bunnei
1ac45342dd
Merge pull request #933 from lioncash/memory
...
memory: Correct prototype of ZeroBlock
2018-08-06 12:34:57 -04:00
mailwl
2ea0f0fd16
Service/Audio: audout_a.cpp: remove pragma once
2018-08-06 12:29:27 +03:00
bunnei
904d7eaa94
maxwell_3d: Remove outdated assert.
2018-08-05 23:57:19 -04:00
bunnei
57eb936200
gl_rasterizer_cache: Avoid superfluous surface copies.
2018-08-05 23:40:03 -04:00
bunnei
0b80bbeb95
Merge pull request #932 from lioncash/func
...
core_timing: Use transparent functors where applicable
2018-08-05 23:37:53 -04:00
bunnei
f1b93d63d1
Merge pull request #929 from lioncash/addr
...
gdbstub: Minor changes
2018-08-05 23:36:26 -04:00
bunnei
03b7ebbc08
Merge pull request #930 from lioncash/thread
...
address_arbiter: Return by value from GetThreadsWaitingOnAddress()
2018-08-05 23:35:59 -04:00
bunnei
bb21c2198a
Merge pull request #925 from bunnei/audren
...
Implement audren audio output
2018-08-05 23:35:22 -04:00
Lioncash
6c56754322
perf_stats: Correct literal used for MAX_LAG_TIME_US
...
ms is shorthand for milliseconds, not microseconds, and given there's no
comment indicating that this was intentional, it probably wasn't.
2018-08-05 22:12:58 -04:00
Lioncash
a0c3a46aa9
core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds
...
Enforces the time unit being returned and also allows using the standard
time utilities to manipulate it.
2018-08-05 22:07:30 -04:00
Lioncash
2a7a2b739b
memory: Make prototype parameter names match their definitions
...
Keeps the code consistent.
2018-08-05 21:39:09 -04:00
Lioncash
4aa31b0618
memory: Correct prototype of ZeroBlock
...
Previously, the prototype wasn't matching the definition, which has a
Processor parameter before the destination address.
2018-08-05 21:39:06 -04:00
Lioncash
2fc5c783ed
memory: Remove unnecessary const qualifiers in prototypes
...
These aren't necessary, as value-wise const only matters in the
definition.
2018-08-05 21:38:22 -04:00
Lioncash
6edd828101
core_timing: Convert typedef into a type alias
...
Makes the alias a little more readable from left-to-right.
2018-08-05 21:27:14 -04:00
Lioncash
d9815b523b
core_timing: Use transparent functors where applicable
...
Gets rid of the need to hardcode the type in multiple places. This will
now be deduced automatically, based off the elements in the container
being provided to the algorithm.
2018-08-05 21:19:24 -04:00
Zach Hilman
7f9430f7ae
loader: Make AppLoader_NCA rely on directory loading code
...
Eliminates duplicate code shared between their Load methods, after all the only difference is how the romfs is handled.
2018-08-05 18:28:15 -04:00
bunnei
c8e5c74092
Merge pull request #927 from bunnei/fix-texs
...
gl_shader_decompiler: Fix TEXS mask and dest.
2018-08-05 16:42:21 -04:00
Lioncash
00f7e584ce
gdbstub: Use type alias for breakpoint maps
...
Rather than having to type out the full std::map type signature, we can
just use a straightforward alias. While we're at it, rename
GetBreakpointList to GetBreakpointMap, which makes the name more
accurate. We can also get rid of unnecessary u64 static_casts, since
VAddr is an alias for a u64.
2018-08-05 16:41:22 -04:00
Lioncash
89c076b4b1
gdbstub: Move all file-static variables into the GDBStub namespace
...
Keeps everything under the same namespace. While we're at it, enclose
them all within an inner anonymous namespace.
2018-08-05 16:41:18 -04:00
bunnei
c0af42d6eb
Merge pull request #912 from lioncash/global-var
...
video_core: Eliminate the g_renderer global variable
2018-08-05 16:37:39 -04:00
Lioncash
7a77d0a71e
address_arbiter: Return by value from GetThreadsWaitingOnAddress()
...
In all cases the vector being supplied is empty, so we can just return
by value in these instances.
2018-08-05 16:29:17 -04:00
Lioncash
ca96f8db4e
gdbstub: Replace PAddr alias with VAddr
...
In all cases, a virtual address is being passed in, not a physical one.
2018-08-05 15:56:01 -04:00
bunnei
fd715e54a1
gl_shader_decompiler: Fix TEXS mask and dest.
2018-08-05 01:47:09 -04:00
bunnei
ce46fb27ca
Merge pull request #926 from ogniK5377/vertex-attrib-format
...
gl_rasterizer: Fix glVertexAttribFormat for integers
2018-08-05 01:38:54 -04:00
bunnei
b46df98e93
audio_core: Implement audren_u audio playback.
2018-08-04 21:54:30 -04:00
David Marcec
b96010bfa9
added braces for conditions
2018-08-05 11:36:55 +10:00
David Marcec
6d1e30e041
fix the attrib format for ints
2018-08-05 11:29:21 +10:00
bunnei
a0a605df06
Merge pull request #924 from lioncash/arp
...
service: Add arp services
2018-08-04 21:20:26 -04:00
bunnei
cd96c04339
Merge pull request #921 from lioncash/view
...
core/crypto: Minor changes
2018-08-04 21:17:10 -04:00
bunnei
1dee8ceda1
audio_core: Use s16 where possible for audio samples.
2018-08-04 18:22:58 -04:00
bunnei
f1cb3903ac
audio_core: Port codec code from Citra for ADPCM decoding.
2018-08-04 18:22:58 -04:00
Lioncash
de72956181
service: Add arp services
...
Adds the basic skeleton of the arp services based off the information
provided by Switch Brew.
2018-08-04 18:01:12 -04:00
Lioncash
df51207ed2
service: Remove redundant #pragma once directives
...
These don't do anything within .cpp files (we don't include cpp files,
so...)
2018-08-04 17:39:08 -04:00
Lioncash
0d04ee97dc
aes_util: Add static assertion to Transcode() and XTSTranscode() to ensure well-defined behavior
...
These functions should only be given trivially-copyable types.
2018-08-04 17:30:52 -04:00
Lioncash
64c8212ae1
aes_util: Make CalculateNintendoTweak() an internally linked function
...
This function doesn't directly depend on class state, so it can be
hidden entirely from the interface in the cpp file.
2018-08-04 17:30:48 -04:00
Lioncash
b25468b498
aes_util: Make Transcode() a const member function
...
This doesn't modify member state, so it can be made const.
2018-08-04 16:49:42 -04:00
Lioncash
8da651ac4d
core/crypto: Remove unnecessary includes
2018-08-04 16:44:07 -04:00
Lioncash
c1f76abfaf
key_manager: Use regular std::string instead of std::string_view
...
The benefit of std::string_view comes from the idea of avoiding copies
(essentially acting as a non-owning view), however if we're just going
to copy into a local variable immediately, there's not much benefit
gained here.
2018-08-04 16:37:30 -04:00
bunnei
02fccc0940
cubeb_sink: Support variable sample_rate and num_channels.
2018-08-04 15:30:10 -04:00
Zach Hilman
2cc962e171
content_archive: Add support for titlekey cryptography
2018-08-04 14:57:21 -04:00
bunnei
34b3f83498
audio_core: Sinks need unique names as well.
2018-08-04 14:34:12 -04:00
bunnei
9f846d3aa4
audio_core: Streams need unique names for CoreTiming.
2018-08-04 14:34:12 -04:00
bunnei
2b06301dbf
Merge pull request #849 from DarkLordZach/xci
...
XCI and Encrypted NCA Support
2018-08-04 14:33:11 -04:00
bunnei
13d6593753
Merge pull request #919 from lioncash/sign
...
gl_shader_manager: Amend sign differences in an assertion comparison in SetShaderUniformBlockBinding()
2018-08-04 14:29:59 -04:00
Lioncash
3b678b9e8e
gl_shader_manager: Invert conditional in SetShaderUniformBlockBinding()
...
This lets us indent the majority of the code and places the error case
first.
2018-08-04 02:57:11 -04:00
Lioncash
dde5dce736
gl_shader_manager: Amend sign differences in an assertion comparison in SetShaderUniformBlockBinding()
...
Ensures both operands have the same sign in the comparison.
While we're at it, we can get rid of the redundant casting of ub_size to
an int. This type will always be trivial and alias a built-in type (not
doing so would break backwards compatibility at a standard level).
2018-08-04 02:55:03 -04:00
Lioncash
2665457f4a
renderer_base: Make Rasterizer() return the rasterizer by reference
...
All calling code assumes that the rasterizer will be in a valid state,
which is a totally fine assumption. The only way the rasterizer wouldn't
be is if initialization is done incorrectly or fails, which is checked
against in System::Init().
2018-08-04 02:36:58 -04:00
Lioncash
6030c5ce41
video_core: Eliminate the g_renderer global variable
...
We move the initialization of the renderer to the core class, while
keeping the creation of it and any other specifics in video_core. This
way we can ensure that the renderer is initialized and doesn't give
unfettered access to the renderer. This also makes dependencies on types
more explicit.
For example, the GPU class doesn't need to depend on the
existence of a renderer, it only needs to care about whether or not it
has a rasterizer, but since it was accessing the global variable, it was
also making the renderer a part of its dependency chain. By adjusting
the interface, we can get rid of this dependency.
2018-08-04 02:36:57 -04:00
bunnei
762fcaf5de
Merge pull request #911 from lioncash/prototype
...
video_core: Remove unimplemented Start() function prototype
2018-08-04 02:18:38 -04:00
bunnei
b0129489ea
Merge pull request #913 from lioncash/unused-func
...
memory: Remove unused GetSpecialHandlers() function
2018-08-04 02:17:44 -04:00
bunnei
206f2e3436
Merge pull request #914 from lioncash/codeset
...
kernel/process: Use accessors instead of class members for referencing segment array
2018-08-04 02:17:25 -04:00
bunnei
d43dad001e
Merge pull request #917 from lioncash/crash
...
kernel/thread: Fix potential crashes introduced in 26de4bb5
2018-08-04 01:19:01 -04:00
Lioncash
e93fa7f2cc
kernel/thread: Fix potential crashes introduced in 26de4bb521
...
This amends cases where crashes can occur that were missed due to the
odd way the previous code was set up (using 3DS memory regions that
don't exist).
2018-08-03 23:49:10 -04:00
bunnei
29f31356d8
Merge pull request #910 from lioncash/unused
...
gl_shader_decompiler: Remove unused variable in GenerateDeclarations()
2018-08-03 15:54:11 -04:00
Lioncash
e649db8c6b
kernel/process: Use std::array where applicable
2018-08-03 14:46:30 -04:00
Lioncash
2beda7c2b3
kernel/process: Use accessors instead of class members for referencing segment array
...
Using member variables for referencing the segments array increases the
size of the class in memory for little benefit. The same behavior can be
achieved through the use of accessors that just return the relevant
segment.
2018-08-03 14:45:45 -04:00
Lioncash
59b04c0df6
memory: Remove unused GetSpecialHandlers() function
...
This is just unused code, so we may as well get rid of it.
2018-08-03 14:20:50 -04:00
bunnei
40e63ede6d
Merge pull request #908 from lioncash/memory
...
core/memory: Get rid of 3DS leftovers
2018-08-03 14:07:49 -04:00
Lioncash
b4e050e6c4
video_core: Remove unimplemented Start() function prototype
...
Given this has no definition, we can just remove it entirely.
2018-08-03 12:48:14 -04:00
Lioncash
b45e5c2399
gl_shader_decompiler: Remove unused variable in GenerateDeclarations()
...
This variable was being incremented, but we were never actually using
it.
2018-08-03 12:18:31 -04:00
Lioncash
555d76d065
gl_shader_manager: Make ProgramManager's GetCurrentProgramStage() a const member function
...
This function doesn't modify class state, so it can be made const.
2018-08-03 12:08:17 -04:00
Lioncash
26de4bb521
core/memory: Get rid of 3DS leftovers
...
Removes leftover code from citra that isn't needed.
2018-08-03 11:22:47 -04:00
David
c1d54f4aea
Added ability to change username & language code in the settings ui. Added IProfile::Get and SET::GetLanguageCode for libnx tests ( #851 )
2018-08-03 11:02:55 -04:00
bunnei
b6d61abd78
Merge pull request #895 from lioncash/sink
...
sink_details: std::move std::function instances
2018-08-03 11:00:56 -04:00
bunnei
40e78b9a89
Merge pull request #898 from lioncash/mig
...
service: Add migration services
2018-08-03 11:00:27 -04:00
bunnei
ef9433411d
Merge pull request #900 from lioncash/init
...
math_util: Always initialize members of Rectangle
2018-08-03 11:00:10 -04:00
bunnei
00ba704a7f
Merge pull request #892 from lioncash/global
...
video_core: Make global EmuWindow instance part of the base renderer …
2018-08-03 00:31:32 -04:00
bunnei
4c3c608d59
Merge pull request #894 from lioncash/object
...
kernel: Move object class to its own source files
2018-08-03 00:28:43 -04:00
bunnei
4b84d5bcec
Merge pull request #904 from lioncash/static
...
kernel/thread: Minor changes
2018-08-03 00:19:29 -04:00
bunnei
9e48ca23b2
Merge pull request #906 from lioncash/override
...
input_common: minor changes
2018-08-03 00:18:52 -04:00
bunnei
49d817134a
Merge pull request #907 from lioncash/slot
...
yuzu: Use Qt 5 signal/slots where applicable
2018-08-03 00:17:55 -04:00
bunnei
61ed68f3d0
Merge pull request #905 from lioncash/vma
...
kernel/vm_manager: Minor changes
2018-08-02 23:18:03 -04:00
bunnei
291ccf7257
Merge pull request #903 from lioncash/copy
...
vfs_vector: Minor changes
2018-08-02 23:01:19 -04:00
bunnei
52da0ce399
Merge pull request #901 from lioncash/ref
...
gl_shader_manager: Take ShaderSetup instances by const reference in UseProgrammableVertexShader() and UseProgrammableFragmentShader()
2018-08-02 23:00:56 -04:00
Lioncash
db340f6402
yuzu: Use Qt 5 signal/slots where applicable
...
Makes the signal/slot connections type-safe instead of string-based.
2018-08-02 22:18:33 -04:00
Lioncash
684fc2c320
input_common: Use std::move where applicable
...
Avoids unnecessary atomic reference count increments and decrements
2018-08-02 21:51:11 -04:00
Lioncash
29b6afb82f
input_common: Add missing override specifiers
2018-08-02 21:44:25 -04:00
bunnei
4de18e054b
Merge pull request #899 from lioncash/unused
...
hw: Remove unused files
2018-08-02 14:58:01 -04:00
bunnei
bae1822aed
Merge pull request #902 from lioncash/array
...
gl_state: Make texture_units a std::array
2018-08-02 14:57:42 -04:00
bunnei
e79e967151
Merge pull request #891 from lioncash/ns
...
service/ns: Add missing ns services
2018-08-02 14:57:24 -04:00
greggameplayer
fe64e1d38e
Implement RGB32F PixelFormat ( #886 ) (used by Go Vacation)
2018-08-02 14:56:38 -04:00
bunnei
d0bd01146e
Merge pull request #893 from lioncash/psc
...
service: Add the psc services
2018-08-02 14:53:55 -04:00
Lioncash
d94a173877
kernel/vm_manager: Convert loop into std::any_of()
2018-08-02 12:46:15 -04:00
Lioncash
c4e0c3d76c
kernel/vm_manager: Use const where applicable
...
Makes our immutable state explicit.
2018-08-02 12:21:46 -04:00
Lioncash
ce5ad45278
kernel/vm_manager: Use the VAddr type alias in CarveVMA()
...
These two variables correspond to address ranges.
2018-08-02 12:15:50 -04:00
Lioncash
6058c84b79
kernel/thread: Make GetFreeThreadLocalSlot()'s loop indices size_t
...
Avoids using a u32 to compare against a range of size_t, which can be a
source of warnings. While we're at it, compress a std::tie into a
structured binding.
2018-08-02 12:01:25 -04:00
Lioncash
fac0e42b2f
kernel/thread: Make GetFreeThreadLocalSlot() reference parameter a const reference
...
This function only reads the data being referenced, it doesn't modify
it, so we can turn the reference into a const reference.
2018-08-02 11:56:11 -04:00
Lioncash
9a50a4f2cc
kernel/thread: Make GetFreeThreadLocalSlot() internally linked
...
This function isn't used outside of this translation unit, so we can
make it internally linked.
2018-08-02 11:54:23 -04:00
Lioncash
42a4c6b79e
vfs_vector: Remove unused variable in FindAndRemoveVectorElement()
...
This wasn't being used for anything, so it can be removed.
2018-08-02 11:40:24 -04:00
Lioncash
cec9e9b811
vfs_vector: Avoid unnecessary copies where applicable
...
The lambda elements should be taken by const reference here, and we can
move the virtual directory passed to ReplaceFileWithSubdirectory()
2018-08-02 11:37:39 -04:00
Lioncash
6b32e24161
gl_state: Make texture_units a std::array
...
Gets rid of the use of a raw C array.
2018-08-02 11:19:58 -04:00
Lioncash
d92e8ab062
gl_shader_manager: Take ShaderSetup instances by const reference in UseProgrammableVertexShader() and UseProgrammableFragmentShader()
...
Avoids performing unnecessary copies of 65560 byte sized ShaderSetup
instances, considering it's only used as part of lookup and not
modified.
Given the parameters were already const, it's likely taking these
parameters by reference was intended but the ampersand was forgotten.
2018-08-02 11:09:46 -04:00
Lioncash
f2a03468b1
math_util: Always initialize members of Rectangle
...
Prevents potentially using the members uninitialized.
2018-08-02 10:47:34 -04:00
Lioncash
c6db1c390b
hw: Remove unused files
...
None of these files are used in any meaningful way. They're just
leftovers from citra. Also has the benefit of getting rid of an unused
global variable.
2018-08-02 10:23:10 -04:00
Lioncash
7469e26e5e
service: Add migration services
...
Adds the basic skeleton for the mig:usr service based off information
provided by Switch Brew.
2018-08-02 10:09:45 -04:00
Lioncash
c1c397d37c
audio_out: Use Buffer::Tag alias in GetTagsAndReleaseBuffers()'s prototype
...
This makes the Buffer::Tag usage consistent with the Stream class's
prototype of GetTagsAndReleaseBuffers().
2018-08-02 05:18:32 -04:00
Lioncash
2bc4ab3958
sink_details: Deduplicate long std::function repetition
...
We can just use type aliases to avoid needing to write the same long
type twice
2018-08-01 23:56:02 -04:00
Lioncash
89ebef6571
sink_details: std::move std::function instances
...
Given std::function is allowed to potentially allocate, these should be
std::move'd to prevent potential reallocation (should that ever happen).
2018-08-01 23:50:48 -04:00
Lioncash
bf45092c61
kernel: Move object class to its own source files
...
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
2018-08-01 23:34:42 -04:00
Lioncash
42c5171322
logging/log: Remove incorrect description in PCV doc comment
...
PCV isn't the parental control service.
2018-08-01 23:31:31 -04:00
Lioncash
5233040ab4
service: Add psc services
...
Adds the basic skeleton for the psc services based off the information
provided by Switch Brew.
2018-08-01 23:31:27 -04:00
Lioncash
0f2ac928f2
video_core: Make global EmuWindow instance part of the base renderer class
...
Makes the global a member of the RendererBase class. We also change this
to be a reference. Passing any form of null pointer to these functions
is incorrect entirely, especially given the code itself assumes that the
pointer would always be in a valid state.
This also makes it easier to follow the lifecycle of instances being
used, as we explicitly interact the renderer with the rasterizer, rather
than it just operating on a global pointer.
2018-08-01 21:40:30 -04:00
bunnei
746d7d4d28
Merge pull request #888 from lioncash/caps
...
service: Add capture services
2018-08-01 21:34:28 -04:00
bunnei
9bb8720289
Merge pull request #890 from lioncash/logger
...
lm: Amend name of ILogger
2018-08-01 21:33:11 -04:00
bunnei
16b2fd9fc8
Merge pull request #889 from lioncash/fsp
...
service/filesystem: Add fsp:ldr and fsp:pr services
2018-08-01 21:32:54 -04:00
Lioncash
48acb764a4
service/ns: Add missing ns services
...
Implements the basic skeleton of ns:am2, ns:ec, ns:rid, ns:rt, ns:su,
ns:vm, and ns:web based off the information provided by Switch Brew and
SwIPC.
2018-08-01 18:02:18 -04:00
Lioncash
f77cfab516
lm: Amend name of ILogger
...
Previously this was being registered with the name "Logger". While we're
at it, also change the name of the class to match it.
2018-08-01 17:08:44 -04:00
Lioncash
208a457909
service/filesystem: Add fsp:ldr and fsp:pr services
...
Adds the basic skeleton for the remaining fsp services based off
information provided by Switch Brew.
2018-08-01 17:01:29 -04:00
Lioncash
e39294c267
service: Add capture services
...
Adds the basic skeleton for the capture services based off information
provided by Switch Brew.
2018-08-01 16:45:51 -04:00
Lioncash
d109279543
service: Add bpc and pcv services
...
Adds the basic skeleton for the remaining pcv-related services based off
information on Switch Brew.
2018-08-01 16:13:04 -04:00
Unknown
0d8fcab136
Implement R32_FLOAT RenderTargetFormat
2018-08-01 15:31:42 +02:00
bunnei
703663d761
Merge pull request #882 from lioncash/unused
...
kernel/thread: Remove unimplemented function prototype
2018-07-31 22:25:49 -07:00
Zach Hilman
13cdf1f159
Add missing parameter to files.push_back()
2018-08-01 00:16:54 -04:00
Zach Hilman
0497bb5528
Fix merge conflicts with opus and update docs
2018-08-01 00:16:54 -04:00
Zach Hilman
187d8e215f
Use more descriptive error codes and messages
2018-08-01 00:16:54 -04:00
Zach Hilman
9d59b96ef9
Use static const instead of const static
2018-08-01 00:16:54 -04:00
Zach Hilman
a9c921a41d
Use ErrorEncrypted where applicable and fix no keys crash
2018-08-01 00:16:54 -04:00
Zach Hilman
03149d3e4a
Add missing includes and use const where applicable
2018-08-01 00:16:54 -04:00
Zach Hilman
150527ec19
Allow key loading from %YUZU_DIR%/keys in addition to ~/.switch
2018-08-01 00:16:54 -04:00
Zach Hilman
cc8234fa89
Use SHGetKnownFolderPath instead of SHGetFolderPathA
2018-08-01 00:16:54 -04:00
Zach Hilman
239a3113e4
Make XCI comply to review and style guidelines
2018-08-01 00:16:54 -04:00
Zach Hilman
22342487e8
Extract mbedtls to cpp file
2018-08-01 00:16:54 -04:00
Zach Hilman
83c3ae8be8
Add missing string.h include
2018-08-01 00:16:54 -04:00
Zach Hilman
c54a10cb4f
Update mbedtls and fix compile error
2018-08-01 00:16:54 -04:00
Zach Hilman
df5b75694f
Remove files that are not used
2018-08-01 00:16:54 -04:00
bunnei
d2ad279a32
Merge pull request #871 from bunnei/audio-config
...
audio_core: Add configuration settings.
2018-07-31 21:04:26 -07:00
Lioncash
49e198b20d
kernel/thread: Remove unimplemented function prototype
...
Given there's no implementation, we may as well remove the code
entirely.
2018-07-31 23:21:38 -04:00
bunnei
ff2c1b0a94
Merge pull request #877 from lioncash/remove
...
kernel: Remove unused object_address_table.cpp/.h
2018-07-31 20:11:39 -07:00
bunnei
98af269415
Merge pull request #880 from lioncash/audio
...
service/audio: Add missing services
2018-07-31 20:11:04 -07:00
bunnei
ca84b530a3
audio_core: Add configuration settings.
2018-07-31 22:38:42 -04:00
bunnei
f5efac3442
Merge pull request #876 from lioncash/include
...
kernel: Remove unnecessary includes
2018-07-31 19:16:05 -07:00
Lioncash
bba63b33a1
service/audio: Add missing services
...
Adds the missing audctl service, as well as the :a and :d services for
audin, audout, audrec, and audren.
2018-07-31 21:58:30 -04:00
bunnei
da07faebfe
Merge pull request #879 from lioncash/audio
...
audout_u: Remove std::move in OpenAudioOutImpl()
2018-07-31 16:49:56 -07:00
bunnei
0a2b219a31
Merge pull request #864 from FearlessTobi/port-3973
...
Port #3973 from Citra: "Remove polymorphism issue"
2018-07-31 09:34:23 -07:00
bunnei
3575c076cb
Merge pull request #869 from Subv/ubsan
...
Corrected a few error cases detected by asan/ubsan
2018-07-31 09:24:13 -07:00
bunnei
fd020ad52a
Merge pull request #875 from lioncash/fgm
...
service: Add fgm services
2018-07-31 09:23:17 -07:00
bunnei
3a2581cc7d
Merge pull request #874 from lioncash/am
...
service/am: Add missing am services
2018-07-31 09:22:56 -07:00
Lioncash
369f6e58aa
kernel: Remove unused object_address_table.cpp/.h
...
These source files were entirely unused throughout the rest of the
codebase. This also has the benefit of getting rid of a global variable
as well.
2018-07-31 11:03:08 -04:00
Lioncash
1ced7bbea5
audout_u: Remove std::move in OpenAudioOutImpl()
...
Previously the code was using the values from params further below after
it was std::moved. Thankfully, given AudoutParams is a trivially
copyable struct, the values would have simply been copied in this
instance and not invalidated to garbage values.
2018-07-31 10:24:38 -04:00
Lioncash
a2304fad16
kernel: Remove unnecessary includes
...
Removes unnecessary direct dependencies in some headers and also gets
rid of indirect dependencies that were being relied on to be included.
2018-07-31 10:15:17 -04:00
bunnei
b79362b9da
Merge pull request #870 from lioncash/init
...
arm_dynarmic: Correct initializer list order
2018-07-31 07:12:54 -07:00
Lioncash
7da8f15461
service/am: Add missing am services
...
Adds the basic skeleton for missing am services idle:sys, omm, and spsm
based off the information provided by Switch Brew.
2018-07-31 08:02:20 -04:00
Lioncash
268eeeb406
service: Add fgm services
...
Adds the basic skeleton for the fgm services based off the information
provided by Switch Brew.
2018-07-31 08:01:19 -04:00
Lioncash
f08c0520a4
arm_dynarmic: Make SetTlsAddress() prototype and definition consistent
...
Makes the definition use the same type aliases as in its prototype.
2018-07-31 07:58:26 -04:00
Lioncash
9d6aa7bff7
arm_dynarmic: Remove unnecessary qualifying of ThreadContext
...
Given the ARM_Dynarmic class inherits from ARM_Interface, we don't need
to qualify here.
2018-07-31 07:56:59 -04:00
Lioncash
444a01afa6
arm_dynarmic: Correct initializer list order
...
Amends the initializer list to be in the same order that each variable
would be initialized in. We also do this to ensure we don't use a bogus
uninitialized instance of the exclusive monitor within MakeJit()
We can also remove the jit member from the initializer list as this is
initialized by PageTableChanged()
2018-07-31 07:54:58 -04:00
Lioncash
e373027a73
service: Add the pcie service
...
Adds the basic skeleton of the pcie service based off information on
Switch Brew.
2018-07-31 06:40:21 -04:00
bunnei
bf9c62bc76
Merge pull request #855 from bunnei/cubeb
...
Audio output backend based on cubeb
2018-07-30 20:29:17 -07:00
bunnei
f437c11caf
audio_core: Implement Sink and SinkStream interfaces with cubeb.
2018-07-30 21:45:24 -04:00
bunnei
9ef227e09d
audio_core: Add interfaces for Sink and SinkStream.
2018-07-30 21:45:24 -04:00
Subv
8191273a3d
MacroInterpreter: Avoid left shifting negative values.
...
The branch target is signed, so multiply by 4 instead of left shifting by 2
2018-07-30 20:38:24 -05:00
Subv
e119e17d18
nvhost_gpu: Added checks to ensure we don't read past the end of the entries when handling a GPU command list.
2018-07-30 20:09:13 -05:00
Subv
2482aca7c3
nvhost_ctrl_gpu: Only read the input parameters if they are actually there.
...
Passing nullptr to memcpy is undefined behavior.
2018-07-30 20:08:36 -05:00
Tobias
420f8fb29e
Port #3758 from Citra ( #852 ): Add missing std::string import in text_formatter
2018-07-30 16:03:47 -07:00
bunnei
0e8a2c7222
audio_core: Misc. improvements to stream/buffer/audio_out.
2018-07-30 18:58:40 -04:00
bunnei
eaf66b4c9f
audio_core: Move to audout_u impl.
...
- This is necessary so streams are created on the same thread.
2018-07-30 18:44:16 -04:00
David
a483e5e28d
Implemented various hwopus functions ( #853 )
2018-07-30 15:42:20 -07:00
bunnei
05ee92a357
Merge pull request #861 from FearlessTobi/port-3972
...
Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code"
2018-07-30 14:13:56 -07:00
bunnei
e6b08b2209
Merge pull request #862 from FearlessTobi/port-3997
...
Port #3997 from Citra: "common/string_utils: replace boost::transform with std counterpart"
2018-07-30 14:13:34 -07:00
bunnei
884a4e1e19
Merge pull request #859 from FearlessTobi/port-3837
...
Port #3837 from Citra: "citra-qt: Add build date in about dialog"
2018-07-30 10:11:43 -07:00
Tobias
1e873eea36
Port #3769 from Citra: "Update Dark theme to latest version"
2018-07-30 10:11:17 -07:00
bunnei
45d1438530
Merge pull request #858 from lioncash/cast
...
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
2018-07-30 10:09:36 -07:00
bunnei
8b8637978d
Merge pull request #860 from FearlessTobi/port-3911
...
Port #3911 from Citra: "citra-qt: optimize settings application"
2018-07-30 10:08:55 -07:00
bunnei
a6f886418a
Merge pull request #863 from FearlessTobi/port-3913
...
Port #3913 from Citra: "citra_qt: Remove obsolete application attribute"
2018-07-30 10:08:05 -07:00
bunnei
f8094c2617
Merge pull request #865 from FearlessTobi/port-3732
...
Port #3732 from Citra: "common: Fix compilation on ARM"
2018-07-30 10:07:45 -07:00
bunnei
c5fa3560a6
Merge pull request #857 from lioncash/wlan
...
service: Add wlan services
2018-07-30 10:06:52 -07:00
bunnei
2c4bb11015
Merge pull request #856 from lioncash/btm
...
service: Add btm services
2018-07-30 10:06:34 -07:00
Hexagon12
fd797e2424
Add some HID commands ( #843 )
...
* Added some HID commands
* Addressed comments
2018-07-30 10:06:21 -07:00
Cameron Cawley
1670c4421f
Port #3732 from Citra: "common: Fix compilation on ARM"
2018-07-29 15:51:31 +02:00
B3n30
6e5f83ee24
remove polymorphism issue
2018-07-29 15:24:41 +02:00
fearlessTobi
c87f198201
Port #3913 from Citra: "citra_qt: Remove obsolete application attribute"
2018-07-29 15:13:08 +02:00
zhupengfei
ff510157d8
common/string_utils: replace boost::transform with std counterpart
...
Note: according to cppreference it is necessary to convert char to unsigned char when using std::tolower and std::toupper, otherwise the behaviour would be undefined.
2018-07-29 15:05:43 +02:00
zhupengfei
38a1113674
Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code"
2018-07-29 14:58:30 +02:00
fearlessTobi
b97739029b
Port #3911 from Citra: "Optimize settings application"
2018-07-29 14:37:18 +02:00
fearlessTobi
e8674f1f09
Port #3837 from Citra: "Add build date in about dialog"
2018-07-29 14:27:19 +02:00
Lioncash
57c4d7aa00
partition_filesystem: Remove dynamic_cast in PrintDebugInfo()
...
We shouldn't be upcasting our file instances. Given a
PartitionFilesystem is currently designed to accept any arbitrary
VfsFile instances, casting to a more specific type than that is just bad
design, and shows an interface design issue.
2018-07-29 06:16:59 -04:00
Lioncash
6ea416091e
service: Add wlan services
...
Adds the basic skeleton for the wlan services based off the information
on Switch Brew.
2018-07-28 21:54:55 -04:00
Lioncash
7ce6858086
service/btm: Add basic implementation of GetCoreImpl()
...
Based off information on SwIPC and Switch Brew.
2018-07-28 21:09:07 -04:00
Lioncash
ca7655be3a
service: Add btm services
...
Adds the skeleton for the btm services based off the information on
Switch Brew.
2018-07-28 21:09:07 -04:00
bunnei
458fdda700
Merge pull request #847 from lioncash/ncm
...
service: Add ncm services
2018-07-28 10:46:09 -07:00
bunnei
d00dcdb1be
Merge pull request #846 from lioncash/mii
...
service: Add mii services
2018-07-28 10:45:31 -07:00
bunnei
e1d66ea794
Merge pull request #842 from bunnei/audio-core
...
Initial implementation of Audio Core
2018-07-27 20:25:32 -07:00
bunnei
f1c519f2cb
audout: Implement IAudioOut interface with AudioCore.
2018-07-27 22:55:39 -04:00
bunnei
2a742229ee
core: Add AudioCore to global state.
2018-07-27 22:33:37 -04:00
bunnei
ab756fd068
audio_core: Add initial code for keeping track of audout state.
2018-07-27 22:33:31 -04:00
Zach Hilman
906d785c73
RomFS Extraction
2018-07-27 18:14:03 -04:00
Lioncash
7931cc0ceb
service: Add ncm services
...
Adds the basic skeleton for the ncm services based off information on
Switch Brew.
2018-07-27 17:38:30 -04:00
bunnei
0191a1e526
Merge pull request #845 from lioncash/nfc
...
service: Add nfc services
2018-07-27 14:29:27 -07:00
bunnei
2128ab2d21
Merge pull request #839 from FearlessTobi/actually-port-3594
...
Port #3594 from Citra: "citra_qt: Add Continue/Pause & Toggle Speed Limit hotkeys"
2018-07-27 13:06:56 -07:00
bunnei
833ebbb626
Merge pull request #844 from lioncash/lbl
...
service: Add the lbl service
2018-07-27 13:06:11 -07:00
bunnei
d2749ef0ed
Merge pull request #841 from lioncash/btdrv
...
service: Add the btdrv service
2018-07-27 13:05:36 -07:00
Lioncash
f46bfdd77d
service: Add mii services
...
Adds the skeleton for the mii services based off information provided by
Switch Brew
2018-07-27 16:01:29 -04:00
Lioncash
50dadc33e3
service/nfc: Implement Create[x]Interface functions
...
These simply return the respective interface.
2018-07-27 15:12:08 -04:00
Lioncash
04d144aa40
service: Add nfc services
...
Adds the skeleton of the nfc service based off the information provided
on Switch Brew.
2018-07-27 14:50:24 -04:00
Lioncash
ea8dd8b650
service/lbl: Implement EnableVrMode, DisableVrMode and GetVrMode
...
Implements these functions according to the information available on
Switch Brew.
2018-07-27 14:20:42 -04:00
Lioncash
c2c543e8f7
service: Add the lbl service
...
Adds the skeleton of the lbl service based off the information provided
by Switch Brew.
2018-07-27 14:20:07 -04:00
bunnei
dc4e5f9159
Merge pull request #837 from lioncash/priv
...
kernel/timer: Make data members private where applicable
2018-07-27 07:18:50 -07:00
Lioncash
f49248437e
service: Add the btdrv service
...
Adds the skeleton for the btdrv service based off the information provided by Switch Brew
2018-07-26 18:06:17 -04:00
Lioncash
1121622dc1
service/hid: Add the hidbus, hid:dbg, hid:sys, and hid:tmp services
2018-07-26 15:05:42 -04:00
Lioncash
7550c2c866
service/hid: Add the xcd:sys service
2018-07-26 15:05:42 -04:00
Lioncash
82cb5f030d
service/hid: Add irs services
2018-07-26 15:05:24 -04:00
bunnei
ec2b7cdb1d
Merge pull request #836 from FearlessTobi/port-3594
...
Port #3665 from Citra: "frontend: Log Citra version"
2018-07-26 12:04:30 -07:00
bunnei
f1fbb476df
Merge pull request #835 from FearlessTobi/port-minor-prs
...
Port #3641 and #3702 from Citra (Small changes to default_ini and gitignore)
2018-07-26 12:03:56 -07:00
bunnei
8440b814bc
Merge pull request #834 from lioncash/grc
...
service: Add the grc:c service
2018-07-26 12:03:30 -07:00
bunnei
41d7b020a8
Merge pull request #832 from lioncash/nim
...
service: Add the nim services
2018-07-26 12:02:29 -07:00
bunnei
e4191b624c
Merge pull request #831 from lioncash/ldn
...
service: Add ldn services
2018-07-26 11:52:42 -07:00
bunnei
40eb243f86
Merge pull request #830 from lioncash/socket
...
service/sockets: Add missing socket services
2018-07-26 11:51:11 -07:00
bunnei
e013fdc2b2
Merge pull request #808 from lioncash/mem-dedup
...
video_core/memory_manager: Avoid repeated unnecessary page slot lookups
2018-07-26 11:50:27 -07:00
fearlessTobi
18c2c96927
Port #3594 from Citra
2018-07-26 16:09:52 +02:00
Lioncash
b28af1f6c9
service: Add the grc:c service
...
Adds the basic skeleton for the grc:c service based off the information
provided by Switch Brew.
2018-07-26 09:53:58 -04:00
Subv
f85cff0f48
GPU: Allow using R16F as a render target format.
2018-07-26 08:52:21 -05:00
Lioncash
0cd843151f
kernel/timer: Make data members private where applicable
...
Instead, we can just expose functions that return the queryable state
instead of letting anything modify it.
2018-07-26 09:51:44 -04:00
fearlessTobi
6f05a57712
Port #3665 from Citra
2018-07-26 15:51:14 +02:00
fearlessTobi
7a2acc86e6
Port #3641 from Citra
2018-07-26 15:35:10 +02:00
Lioncash
f916611e32
service: Add the nim services
...
Adds the skeleton for the nim services based off information from Switch
Brew.
2018-07-26 02:47:06 -04:00
Lioncash
8781beaf0d
service: Add ldn services
...
Adds ldn services based off information provided by Switch Brew.
2018-07-26 01:48:06 -04:00
bunnei
57cd80c410
Merge pull request #827 from lioncash/log
...
service/lm: Minor changes
2018-07-25 22:30:43 -07:00
bunnei
31642ae2ee
Merge pull request #825 from greggameplayer/R16_G16
...
Implement R16_G16
2018-07-25 22:30:25 -07:00
Lioncash
3f5dfc4d96
service/sockets: Add ethc:c and ethc:i services
2018-07-26 01:07:21 -04:00
Lioncash
165e7645e1
service/sockets: Add missing bsdcfg socket service
2018-07-26 01:00:15 -04:00
Sebastian Valle
1958d07d7d
Merge pull request #828 from lioncash/ldr
...
service: Add ldr services
2018-07-25 23:44:13 -05:00
Sebastian Valle
8ac52c6b56
Merge pull request #826 from lioncash/erpt
...
service: Add erpt and eupld services
2018-07-25 23:43:47 -05:00
Sebastian Valle
0e05f98be2
Merge pull request #823 from lioncash/nifm
...
service/nifm: Deduplicate interface code
2018-07-25 23:43:03 -05:00
Lioncash
3fb124961e
service: Add ldr services
...
Adds the skeleton for the ldr-related services based off the information
provided on Switch Brew.
2018-07-25 23:11:03 -04:00
Lioncash
91d86df920
lm: Move LM's class declaration into the cpp file
...
This isn't used directly outside of this translation unit, so we can
hide it from external use.
2018-07-25 22:40:16 -04:00
Lioncash
6f4d3d8163
lm: Amend names of Initialize() in Logger and Initialize() in LM
...
Amends these to match the information on Switch Brew.
2018-07-25 22:39:39 -04:00
Lioncash
8650be1020
lm: Add missing function entry to Logger's function table
2018-07-25 22:26:32 -04:00
Lioncash
7458e71f24
service: Add eupld services
...
Adds the skeleton for the eupld services based off information on Switch
Brew.
2018-07-25 22:13:43 -04:00
Lioncash
821f2c03cb
service: Add the erpt services
...
Adds the basic skeleton of the erpt service based off information on
Switch Brew.
2018-07-25 22:13:39 -04:00
bunnei
b0adb9a3d9
Merge pull request #824 from lioncash/nvdrv
...
service/nvdrv: Minor changes
2018-07-25 19:02:08 -07:00
bunnei
851089b482
Merge pull request #822 from lioncash/pm
...
service: Add pm services
2018-07-25 19:01:28 -07:00
Unknown
4672a01cbf
Implement R16_G16
...
correct trailing white spaces
Delete tabs
correct placement
Add RG16F & RG16UI & RG16I & RG16S PixelFormats
Return correct data according to changes done previously
correct PixelFormat declaration
correct coding style error
correct coding style error part 2
correct RG16S Declaration error
correct alignment
2018-07-26 02:01:29 +02:00
Mat M
d245610939
Merge pull request #820 from lioncash/es
...
service: Add the es service
2018-07-25 18:51:59 -04:00
Mat M
19b5ae5a25
Merge pull request #821 from lioncash/wait
...
wait_tree: Add missing switch case for WaitTreeThread::GetText()
2018-07-25 18:45:01 -04:00
bunnei
c88382517c
Merge pull request #819 from Subv/srgb
...
GPU: Use the right texture format for sRGBA framebuffers.
2018-07-25 14:47:26 -07:00
Lioncash
f9951352f6
service/nvdrv: Take std::string in Open() by const reference
...
Avoids copies from being made, since the string is only ever used for
lookup, the data is never transfered anywhere.
Ideally, we'd use a std::string_view here, but devices is a
std::unordered_map, not a std::map, so we can't use heterogenous lookup
here.
2018-07-25 17:37:43 -04:00
Lioncash
a2cd07d094
service/nvdrv: Use std::move where applicable
...
Avoids unnecessary reference count increments and decrements.
In one case, we don't need to make a shared_ptr copy at all,
just to call a member function.
2018-07-25 17:31:08 -04:00
Lioncash
85ed42a1d2
service/nifm: Deduplicate interface code
...
Rather than having the same code for each nifm service variant, we can
centralize it on one class and get rid of a bit of extra code.
2018-07-25 17:18:41 -04:00
Lioncash
c664f8a257
service: Add pm services
...
Adds the skeleton for the process management services based off
information on Switch Brew.
2018-07-25 16:57:16 -04:00
Lioncash
2474340684
wait_tree: Add missing switch case for WaitTreeThread::GetText()
...
We were missing the enum entry for WaitIPC
2018-07-25 15:50:41 -04:00
Lioncash
4175712976
service: Add the es service
...
Adds the skeleton for the ETicket service based off the information on
Switch Brew
2018-07-25 15:36:55 -04:00
Mat M
1e4935c3a0
Merge pull request #801 from lioncash/time
...
time: Add the time:a service
2018-07-25 15:08:33 -04:00
Mat M
d3fd0351a7
Merge pull request #804 from lioncash/log
...
svc: Log parameters in SetMemoryAttribute()
2018-07-25 14:43:24 -04:00
Lioncash
3c1cb3b11e
time: Add the time:a service
...
Given we already have time:s and time:u, we should also have time:a
2018-07-25 14:42:04 -04:00
bunnei
657bd113e3
Merge pull request #803 from MerryMage/core_timing_util
...
core_timing: Split off utility functions into core_timing_util
2018-07-25 11:09:31 -07:00
bunnei
52cb5dcf0f
Merge pull request #802 from lioncash/unreach
...
wait_tree: Silence warning about all code paths not returning a value
2018-07-25 11:08:44 -07:00
bunnei
5c42cadbc9
Merge pull request #800 from lioncash/set
...
set_sys: Implement SetColorSetId()
2018-07-25 10:25:29 -07:00
Subv
c5b838aeef
GPU: Use the right texture format for sRGBA framebuffers.
2018-07-25 09:52:39 -05:00
Subv
ee8123bf13
GPU: Allow the use of Z24S8 as a texture format.
2018-07-25 09:41:24 -05:00
bunnei
0686183c3e
Merge pull request #816 from Subv/z32_s8
...
GPU: Implemented the Z32_S8_X24 depth buffer format.
2018-07-25 07:37:00 -07:00
bunnei
af787744ab
Merge pull request #815 from Subv/z32f_tex
...
GPU: Allow using Z32 as a texture format.
2018-07-25 07:33:09 -07:00
bunnei
704824d50a
Merge pull request #814 from Subv/rt_r8
...
GPU: Allow the usage of R8 as a render target format.
2018-07-25 07:32:18 -07:00
bunnei
a6ea6febc9
Merge pull request #809 from lioncash/rasterizer
...
gl_rasterizer: Minor cleanup
2018-07-24 19:31:34 -07:00
bunnei
e0106a7d68
Merge pull request #811 from Subv/code_address_assert
...
GPU: Remove the assert that required the CODE_ADDRESS to be 0.
2018-07-24 19:31:09 -07:00
Subv
daf2504d31
GPU: Implemented the Z32_S8_X24 depth buffer format.
2018-07-24 20:41:40 -05:00
Subv
f747a7e35d
GPU: Allow using Z32 as a texture format.
2018-07-24 19:54:23 -05:00
Subv
4f574201ea
GPU: Allow the usage of R8 as a render target format.
2018-07-24 19:49:36 -05:00
bunnei
340771ccd7
Merge pull request #806 from lioncash/friend
...
friend: Deduplicate interfaces
2018-07-24 17:42:16 -07:00
bunnei
5d4ad999cf
Merge pull request #810 from Subv/r16
...
GPU: Implemented the R16 and R16F texture formats.
2018-07-24 17:41:02 -07:00
bunnei
ea0bc8c002
Merge pull request #805 from lioncash/sign
...
svc: Resolve sign comparison warnings in WaitSynchronization()
2018-07-24 12:50:03 -07:00
Subv
8f2c4191ab
GPU: Remove the assert that required the CODE_ADDRESS to be 0.
...
Games usually just leave it at 0 but nouveau sets it to something else. This already works fine, the assert is useless.
2018-07-24 13:54:12 -05:00
Subv
4cc1e180ec
GPU: Implemented the R16 and R16F texture formats.
2018-07-24 13:39:16 -05:00
Lioncash
0162f8b3a7
gl_rasterizer: Replace magic number with GL_INVALID_INDEX in SetupConstBuffers()
...
This is just the named constant that OpenGL provides, so we can use that
instead of using a literal -1
2018-07-24 12:24:49 -04:00