bunnei
6e3a072cd7
Merge pull request #2833 from ReinUsesLisp/fix-stencil
...
gl_rasterizer: Fix stencil testing
2019-09-05 15:27:31 -04:00
ReinUsesLisp
a942ad52ca
gl_shader_decompiler: Implement shared memory
2019-09-05 01:40:24 -03:00
ReinUsesLisp
b66b14a64f
shader_ir: Implement LD_S
...
Loads from shared memory.
2019-09-05 01:38:37 -03:00
ReinUsesLisp
df0203dd87
shader_ir: Implement ST_S
...
This instruction writes to a memory buffer shared with threads within
the same work group. It is known as "shared" memory in GLSL.
2019-09-05 01:38:37 -03:00
David
d48d71e3ba
Merge pull request #2797 from FearlessTobi/port-4877
...
Port citra-emu/citra#4877 : "citra_qt: on osx chdir to bundle dir to allow detection of user folder"
2019-09-05 12:29:50 +10:00
David
d8e7b81dff
Merge pull request #2802 from ReinUsesLisp/hsetp2-pred
...
half_set_predicate: Fix HSETP2 predicate assignments
2019-09-05 12:26:39 +10:00
David
b7bf445a16
Merge pull request #2418 from DarkLordZach/srv-es
...
es: Implement various ticket accessor commands from IEticketService
2019-09-05 12:13:14 +10:00
FearlessTobi
c61fa7eea5
Address review comments
2019-09-05 03:40:49 +02:00
David
98c2e3a4f7
Merge pull request #2808 from FearlessTobi/port-4866
...
Port citra-emu/citra#4866 : "configure_dialog: reverse tab map to avoid logic based on user-facing/translatable text"
2019-09-05 11:02:53 +10:00
David
ea025af713
Merge pull request #2707 from DarkLordZach/oss-miimodel
...
system_archive: Add open-source reimplementation of MiiModel data
2019-09-05 10:56:32 +10:00
Lioncash
6952478449
service/am: Remove usages of global system accessors
...
Avoids the use of global accessors, removing the reliance on global
state. This also makes dependencies explicit in the interface, as
opposed to being hidden
2019-09-04 20:38:43 -04:00
FearlessTobi
ea38fab388
yuzu/configure: move speed limiter to general
...
The speed limiter being a frame limiter is an implmentation detail and can be changed in the future. What user care about is that it limit the emulation speed in genenral (not just graphics but also audio+input)
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2019-09-05 02:11:37 +02:00
Lioncash
c4cdbfdbff
kernel/vm_manager: Correct doxygen comment parameter tags for MapPhysicalMemory/UnmapPhysicalMemory
...
Corrects the parameter names within the doxygen comments so that they
resolve properly.
2019-09-04 19:58:55 -04:00
Lioncash
4ca5db278f
kernel/vm_manager: Move variables closer to usage spots in MapPhysicalMemory/UnmapPhysicalMemory
...
Narrows the scope of variables down to where they're only necessary.
2019-09-04 19:58:52 -04:00
David
814ddadeba
Merge pull request #2830 from FearlessTobi/port-4911
...
Port citra-emu/citra#4911 : "Add cancel option to analog stick configuration"
2019-09-05 09:53:44 +10:00
David
d1eeb95946
Merge pull request #2834 from Morph1984/audrenu_QueryAudioDeviceInputEvent
...
audren_u: Stub IAudioDevice::QueryAudioDeviceInputEvent
2019-09-05 09:51:50 +10:00
David
6fba18806a
Merge pull request #2836 from Morph1984/hid_vibration
...
hid: Implement PermitVibration and IsVibrationPermitted
2019-09-05 09:50:38 +10:00
David
7d4cb86b60
Merge pull request #2818 from MysticExile/fmt
...
externals: update fmt to 6.0.0
2019-09-05 09:50:17 +10:00
bunnei
ec5ac59382
Merge pull request #2801 from ReinUsesLisp/typed-decompiler
...
gl_shader_decompiler: Rework GLSL decompiler type system
2019-09-04 17:42:13 -04:00
ReinUsesLisp
5423bdebdc
gl_shader_decompiler: Fixup slow path
2019-09-04 15:03:51 -03:00
mailwl
2e2c350032
AM: Stub IApplicationFunctions::GetGpuErrorDetectedSystemEvent ( #2827 )
...
* AM: Implement IApplicationFunctions::GetGpuErrorDetectedSystemEvent
* Remove unneeded event clear
* Fix event name
2019-09-04 11:43:04 -04:00
bunnei
29cbcb694f
Merge pull request #2829 from Morph1984/audio
...
service/audio/audren_u: Stub IAudioDevice::GetAudioDeviceOutputVolume
2019-09-04 11:42:23 -04:00
fearlessTobi
d264ecdb00
configure_dialog: reverse tab map to avoid logic based on user-facing/translatable text
...
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2019-09-04 17:09:08 +02:00
Ethan
94ed7e8de1
Fix clang-format
2019-09-04 16:53:29 +02:00
fearlessTobi
3f51d3134f
Fix uisettings include
2019-09-04 16:47:33 +02:00
fearlessTobi
84b839d021
Limit the size of directory icons, fix text when icon size is none
2019-09-04 16:47:33 +02:00
fearlessTobi
8289656196
Change QList to QVector
2019-09-04 16:47:33 +02:00
fearlessTobi
56f0da852a
Separate UserNand and Sdmc directories
2019-09-04 16:47:32 +02:00
fearlessTobi
51734c36f7
Address more trivial review comments
2019-09-04 16:47:32 +02:00
fearlessTobi
5eb2368b6b
Address trivial review comments
2019-09-04 16:47:32 +02:00
fearlessTobi
890b0ce5f6
yuzu: Add support for multiple game directories
...
Ported from https://github.com/citra-emu/citra/pull/3617 .
2019-09-04 16:47:32 +02:00
Morph1984
fe122507f1
ditto
...
Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2019-09-04 10:16:22 -04:00
Morph1984
dec5cac1c1
IsVibrationEnabled() as a const member func
2019-09-04 10:15:49 -04:00
Morph1984
32f74d8a88
clang-format
2019-09-04 10:06:38 -04:00
Morph1984
bad4a8a199
Update npad.h
2019-09-04 02:43:17 -04:00
Morph1984
8e070a3c14
Update npad.cpp
2019-09-04 02:42:58 -04:00
Morph1984
d8368a564d
Update hid.h
2019-09-04 02:42:42 -04:00
Morph1984
460e77c935
Update hid.cpp
2019-09-04 02:42:22 -04:00
ReinUsesLisp
110b6c75a0
gl_rasterizer: Fix stencil testing
...
* Fix stencil dirty flags tracking when stencil is disabled
* Attach stencil on clears (previously it only attached depth)
* Attach stencil on drawing regardless of stencil testing being enabled
2019-09-04 01:59:09 -03:00
ReinUsesLisp
4f0213d0c7
Revert "Revert #2466 " and stub FirmwareCall 4
2019-09-04 01:55:45 -03:00
ReinUsesLisp
9b001821d9
shader/shift: Implement SHR wrapped and clamped variants
...
Nvidia defaults to wrapped shifts, but this is undefined behaviour on
OpenGL's spec. Explicitly mask/clamp according to what the guest shader
requires.
2019-09-04 01:55:24 -03:00
ReinUsesLisp
9ad95eb74a
maxwell_3d: Avoid moving macro_params
2019-09-04 01:55:01 -03:00
ReinUsesLisp
d8ef360e32
gl_shader_cache: Remove special casing for geometry shaders
...
Now that ProgramVariants holds the primitive topology we no longer need
to keep track of individual geometry shaders topologies.
2019-09-04 01:54:43 -03:00
ReinUsesLisp
8ce5bb378f
half_set_predicate: Fix predicate assignments
2019-09-04 01:54:23 -03:00
ReinUsesLisp
e5ce849acb
gl_device: Disable precise in fragment shaders on bugged drivers
2019-09-04 01:54:00 -03:00
ReinUsesLisp
173fd3e8f4
gl_shader_decompiler: Fixup AMD's slow path type
2019-09-04 01:54:00 -03:00
ReinUsesLisp
87151a35cf
gl_shader_decompiler: Rework GLSL decompiler type system
...
GLSL decompiler type system was broken. We converted all return values
to float except for some cases where returning we couldn't and
implicitly broke the rule of returning floats (e.g. for bools or bool
pairs).
Instead of doing this introduce class Expression that knows what type a
return value has and when a consumer wants to use the string it asks for
it with a required type, emitting a runtime error if types are
incompatible.
This has the disadvantage that there's more C++ code, but we can emit
better GLSL code that's easier to read.
2019-09-04 01:54:00 -03:00
Morph1984
add4f972c4
Add Kernel::EventPair audio_input_device_switch_event;
2019-09-03 23:50:56 -04:00
Morph1984
a8ba3efc3f
remove <f32>
...
We can remove this since its already a f32 value
2019-09-03 23:20:19 -04:00
Morph1984
9415310b14
audren_u: Stub IAudioDevice::QueryAudioDeviceInputEvent
2019-09-03 23:13:32 -04:00
David
4d3a8b193f
Merge pull request #2708 from DarkLordZach/mii-db-source-crash
...
mii: Handle logging of unknown database source
2019-09-04 13:07:10 +10:00
Morph1984
d543e28fe8
explicitly represent 1 as a float (1.0f instead of 1)
2019-09-03 23:06:32 -04:00
bunnei
0d49a1d9cd
Merge pull request #2793 from ReinUsesLisp/bgr565
...
renderer_opengl: Implement RGB565 framebuffer format
2019-09-03 22:36:32 -04:00
bunnei
3df0f440fd
Merge pull request #2812 from ReinUsesLisp/f2i-selector
...
shader_ir/conversion: Implement F2I and F2F F16 selector
2019-09-03 22:35:33 -04:00
bunnei
4ae7f81090
Merge pull request #2811 from ReinUsesLisp/fsetp-fix
...
float_set_predicate: Add missing negation bit for the second operand
2019-09-03 22:34:34 -04:00
bunnei
93263ae79c
Merge pull request #2826 from ReinUsesLisp/macro-binding
...
maxwell_3d: Fix macro binding cursor
2019-09-03 22:32:42 -04:00
bunnei
e6bbc9fafa
Merge pull request #2831 from FearlessTobi/port-4914
...
Port citra-emu/citra#4914 : "Fix to Windows sleep issues"
2019-09-03 22:32:09 -04:00
Morph1984
cadaf5aadb
Change u32 -> f32
...
Volume is a f32 value. (SwIPC describes it as a u32, but it is actually f32 as corroborated by switchbrew docs and SetAudioDeviceOutputVolume)
```cpp
const f32 volume = rp.Pop<f32>();
```
2019-09-03 22:30:20 -04:00
fearlessTobi
1dd8f2f20b
configuration/config: Add missing screenshot path read
...
I missed this in my original PR (https://github.com/yuzu-emu/yuzu/pull/1886 ).
2019-09-04 03:08:15 +02:00
fearlessTobi
3b8ad70f7e
Fix to Windows sleep issues
...
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
2019-09-03 23:00:34 +02:00
fearlessTobi
70943c1901
Add cancel option to analog stick configuration
...
Co-Authored-By: Vitor K <vitor-k@users.noreply.github.com>
2019-09-03 22:53:59 +02:00
Morph1984
37076c7419
service/audio/audren_u: Stub IAudioDevice::GetAudioDeviceOutputVolume
2019-09-03 16:05:33 -04:00
bunnei
83ac6b9f38
Merge pull request #2765 from FernandoS27/dma-fix
...
MaxwellDMA: Fixes, corrections and relaxations.
2019-09-01 13:13:05 -04:00
ReinUsesLisp
95df43ec32
maxwell_3d: Fix macro binding cursor
2019-09-01 05:01:11 -03:00
Rodrigo Locatti
598157a8c9
video_core: Silent miscellaneous warnings ( #2820 )
...
* texture_cache/surface_params: Remove unused local variable
* rasterizer_interface: Add missing documentation commentary
* maxwell_dma: Remove unused rasterizer reference
* video_core/gpu: Sort member declaration order to silent -Wreorder warning
* fermi_2d: Remove unused MemoryManager reference
* video_core: Silent unused variable warnings
* buffer_cache: Silent -Wreorder warnings
* kepler_memory: Remove unused MemoryManager reference
* gl_texture_cache: Add missing override
* buffer_cache: Add missing include
* shader/decode: Remove unused variables
2019-08-30 14:08:00 -04:00
Lioncash
ff201725ed
kernel/vm_manager: Correct behavior in failure case of UnmapPhysicalMemory()
...
If an unmapping operation fails, we shouldn't be decrementing the amount
of memory mapped and returning that the operation was successful. We
should actually be returning the error code in this case.
2019-08-29 19:29:43 -04:00
Lioncash
aed2815ba6
kernel/vm_manager: Reserve memory ahead of time for slow path in MergeAdjacentVMA
...
Avoids potentially expensive (depending on the size of the memory block)
allocations by reserving the necessary memory before performing both
insertions. This avoids scenarios where the second insert may cause a
reallocation to occur.
2019-08-29 19:29:43 -04:00
Lioncash
eb1f6e7cdd
kernel/vm_manager: std::move shared_ptr instance in MergeAdjacentVMA
...
Avoids an unnecessary atomic reference count increment and decrement.
2019-08-29 19:28:58 -04:00
Lioncash
1249e837ba
kernel/vm_manager: Deduplicate iterator creation in MergeAdjacentVMA
...
Avoids needing to read the same long sequence of code in both code
paths. Also makes it slightly nicer to read and debug, as the locals
will be able to be shown in the debugger.
2019-08-29 19:28:57 -04:00
Lioncash
bd55b99120
kernel/vm_manager: Simplify some std::vector constructor calls
...
Same behavior, one less magic constant to read.
2019-08-29 19:28:04 -04:00
Lioncash
c4fde2713d
kernel/vm_manager: Simplify some assertion messages
...
Assertions already log out the function name, so there's no need to
manually include the function name in the assertion strings.
2019-08-29 19:26:42 -04:00
ReinUsesLisp
fce2cd83d6
gl_buffer_cache: Add missing include
...
RasterizerInterface was considered an incomplete object by clang.
2019-08-29 22:02:52 +00:00
bunnei
3a50c84903
Merge pull request #2742 from ReinUsesLisp/fix-texture-buffers
...
gl_texture_cache: Miscellaneous texture buffer fixes
2019-08-29 15:59:17 -04:00
Ethan
e250a95348
accommodate for fmt update
2019-08-29 21:34:51 +02:00
bunnei
fef5a3a2dd
Merge pull request #2783 from FernandoS27/new-buffer-cache
...
Implement a New LLE Buffer Cache
2019-08-29 13:07:01 -04:00
bunnei
8d8341bb69
Merge pull request #2758 from ReinUsesLisp/packed-tid
...
shader/decode: Implement S2R Tic
2019-08-29 12:58:43 -04:00
ReinUsesLisp
6f134adf2a
shader_ir/conversion: Split int and float selector and implement F2F H1
2019-08-28 16:09:33 -03:00
ReinUsesLisp
d9ad389777
shader_ir/conversion: Implement F2I F16 Ra.H1
2019-08-27 23:40:40 -03:00
ReinUsesLisp
d490cc5285
float_set_predicate: Add missing negation bit for the second operand
2019-08-27 21:57:43 -03:00
Weiyi Wang
6bb28315fd
Guard unistd.h with MacOS only macro
...
Fix compile error on Windows caused by #4877
Weird, I thought I saw this guard during the code review...
2019-08-22 15:58:39 +02:00
B3n30
0a381a080b
citra_qt: on osx chdir to bundle dir to allow detection of user folder
2019-08-22 14:41:11 +02:00
ReinUsesLisp
67f47b2f6a
shader_ir: Implement VOTE
...
Implement VOTE using Nvidia's intrinsics. Documentation about these can
be found here
https://developer.nvidia.com/reading-between-threads-shader-intrinsics
Instead of using portable ARB instructions I opted to use Nvidia
intrinsics because these are the closest we have to how Tegra X1
hardware renders.
To stub VOTE on non-Nvidia drivers (including nouveau) this commit
simulates a GPU with a warp size of one, returning what is meaningful
for the instruction being emulated:
* anyThreadNV(value) -> value
* allThreadsNV(value) -> value
* allThreadsEqualNV(value) -> true
ballotARB, also known as "uint64_t(activeThreadsNV())", emits
VOTE.ANY Rd, PT, PT;
on nouveau's compiler. This doesn't match exactly to Nvidia's code
VOTE.ALL Rd, PT, PT;
Which is emulated with activeThreadsNV() by this commit. In theory this
shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
(set to PT on those cases) and not the registers.
2019-08-21 14:50:38 -03:00
Fernando Sahmkow
e1f3d5114f
Buffer Cache: Adress Feedback.
2019-08-21 12:14:27 -04:00
Fernando Sahmkow
cf08eba948
Buffer_Cache: Implement flushing.
2019-08-21 12:14:26 -04:00
Fernando Sahmkow
51e03c738a
Buffer_Cache: Implement barriers.
2019-08-21 12:14:25 -04:00
Fernando Sahmkow
4d5e3ee41c
Buffer_Cache: Optimize and track written areas.
2019-08-21 12:14:25 -04:00
Fernando Sahmkow
2ecf0de665
BufferCache: Rework mapping caching.
2019-08-21 12:14:24 -04:00
Fernando Sahmkow
6bdc557f72
Buffer_Cache: Fixes and optimizations.
2019-08-21 12:14:23 -04:00
Fernando Sahmkow
8098f3ba58
Video_Core: Implement a new Buffer Cache
2019-08-21 12:14:22 -04:00
bunnei
46fb3bfd15
Merge pull request #2748 from FernandoS27/align-memory
...
VM_Manager: Align allocated host physical memory to 256bytes
2019-08-21 12:10:10 -04:00
bunnei
2cb395b62d
Merge pull request #2769 from FernandoS27/commands-flush
...
GPU: Flush commands on every dma pusher step.
2019-08-21 10:29:56 -04:00
bunnei
fa6d0cef75
Merge pull request #2777 from ReinUsesLisp/hsetp2-fe3h-fix
...
half_set_predicate: Fix HSETP2_C constant buffer offset
2019-08-21 10:29:17 -04:00
bunnei
0d754d7a75
Merge pull request #2753 from FernandoS27/float-convert
...
Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.
2019-08-21 10:27:57 -04:00
bunnei
8fa1acd285
Merge pull request #2773 from lioncash/test-unused
...
yuzu-tester/yuzu: Remove unused variable
2019-08-21 10:27:29 -04:00
ReinUsesLisp
73e1bc3348
renderer_opengl: Implement RGB565 framebuffer format
2019-08-21 02:28:31 -03:00
ReinUsesLisp
c970b5bb4f
renderer_opengl: Use block linear swizzling for CPU framebuffers
2019-08-21 02:17:14 -03:00
ReinUsesLisp
0a9f3a7a43
renderer_opengl: Use VideoCore pixel format
2019-08-21 02:16:40 -03:00
ReinUsesLisp
d762e37a18
gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfig
2019-08-21 01:55:25 -03:00
bunnei
79992d99d3
Merge pull request #2747 from lioncash/audio
...
service/audren_u: Unstub ListAudioDeviceName
2019-08-18 09:08:25 -04:00
bunnei
6f772b4b9a
Merge pull request #2778 from ReinUsesLisp/nop
...
shader_ir: Implement NOP
2019-08-18 08:51:34 -04:00
bunnei
eb15b1c5ac
Merge pull request #2768 from ReinUsesLisp/hsetp2-fix
...
decode/half_set_predicate: Fix predicates
2019-08-18 08:50:54 -04:00
James Rowe
8795e9bee8
Fixup! #2772 missed this one file
2019-08-16 21:24:17 -06:00
James Rowe
baef0f7e5e
Merge pull request #2766 from FearlessTobi/port-4849
...
Port citra-emu/citra#4849 : "Qt: Fixed behaviour of buttons by connecting functors to correct signals"
2019-08-16 19:39:05 -06:00
James Rowe
329c5eb0b2
Merge pull request #2772 from lioncash/ui
...
yuzu/CMakeLists: Remove qt5_wrap_ui macro usage
2019-08-16 19:37:35 -06:00
Lioncash
7c15a53048
yuzu/CMakeLists: Remove qt5_wrap_ui macro usage
...
We can simply enable CMAKE_AUTOUIC and let CMake take care of handling
the UI code generation for targets.
As part of letting CMake automatically handle the header file parsing,
we must not name includes with "ui_*" unless they're related to the
output of the Qt UIC compiler. Because of this, we need to rename
ui_settings, given it would conflict with this restriction.
2019-08-09 17:54:08 -04:00
ReinUsesLisp
b6272eb8e2
shader_ir: Implement NOP
2019-08-04 03:02:55 -03:00
ReinUsesLisp
48e8b1ab74
half_set_predicate: Fix HSETP2_C constant buffer offset
2019-08-04 02:50:55 -03:00
Silent
70c839c55d
Qt: Fixed behaviour of buttons by connecting functors to correct signals
...
Following screens got fixes:
- Configure/Debug
- Configure/Input
2019-08-02 04:09:38 +02:00
Lioncash
c899be460b
yuzu-tester/yuzu: Correct format string
...
Prevents an invalid formatting exception from being thrown.
2019-07-29 20:55:48 -04:00
Lioncash
e664a1b940
yuzu-tester/yuzu: Remove unused variable
...
Gets rid of a compilation warning.
2019-07-29 20:50:33 -04:00
Fernando Sahmkow
e82d641357
GPU: Flush commands on every dma pusher step.
...
This commit ensures that the host gpu is constantly fed with commands to
work with, while the guest gpu keeps producing the rest of the commands.
This reduces syncing time between host and guest gpu.
2019-07-26 16:54:22 -04:00
bunnei
6b8b59ee75
Merge pull request #2592 from FernandoS27/sync1
...
Implement GPU Synchronization Mechanisms & Correct NVFlinger
2019-07-26 14:26:44 -04:00
ReinUsesLisp
5188570517
decode/half_set_predicate: Fix predicates
2019-07-26 00:12:38 -03:00
Fernando Sahmkow
f1adfe6591
MaxwellDMA: Fixes, corrections and relaxations.
...
This commit fixes offsets on Linear -> Tiled copies, corrects z pos
fortiled->linear copies, corrects bytes_per_pixel calculation in tiled
-> linear copies and relaxes some limitations set by latest dma fixes
refactors.
2019-07-25 20:41:42 -04:00
bunnei
5d731e30a7
Merge pull request #2739 from lioncash/cflow
...
video_core/control_flow: Minor changes/warning cleanup
2019-07-25 13:04:56 -04:00
bunnei
7b61ad4c05
Merge pull request #2737 from FernandoS27/track-fix
...
Shader_Ir: Correct tracking to track from right to left
2019-07-25 12:41:52 -04:00
bunnei
6b4babed89
Merge pull request #2689 from lioncash/tl
...
yuzu/main: Make error messages within OnCoreError more localization-friendly
2019-07-25 12:35:07 -04:00
bunnei
6904a38621
Merge pull request #2743 from FernandoS27/surpress-assert
...
Downgrade and suppress a series of GPU asserts and debug messages.
2019-07-25 12:34:36 -04:00
bunnei
8ae3b5f4de
Merge pull request #2704 from FernandoS27/conditional
...
maxwell3d: Implement Conditional Rendering
2019-07-24 17:07:57 -04:00
ReinUsesLisp
11138d67ad
shader/decode: Implement S2R Tic
2019-07-22 16:16:10 -03:00
bunnei
92195406c7
Merge pull request #2734 from ReinUsesLisp/compute-shaders
...
gl_rasterizer: Implement compute shaders
2019-07-22 11:12:55 -04:00
bunnei
03445ce112
Merge pull request #2735 from FernandoS27/pipeline-rework
...
Rework Dirty Flags in GPU Pipeline, Optimize CBData and Redo Clearing mechanism
2019-07-21 00:59:52 -04:00
Fernando Sahmkow
9a0fa90be2
Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.
...
This commit takes care of implementing the F16 Variants of the
conversion instructions and makes sure conversions are done.
2019-07-20 17:38:25 -04:00
Fernando Sahmkow
57e6c1fac3
Maxwell3D: Reorganize and address feedback
2019-07-20 10:18:35 -04:00
Fernando Sahmkow
9a4a346b3f
Shader_Ir: Change Debug Asserts for Log Warnings
2019-07-19 22:15:34 -04:00
Fernando Sahmkow
5f6d1644c4
Common/Alignment: Add noexcept where required.
2019-07-19 21:49:54 -04:00
ReinUsesLisp
2f76aafca9
shader/half_set_predicate: Fix HSETP2 implementation
2019-07-19 22:21:22 -03:00
ReinUsesLisp
edc43b2509
shader/half_set_predicate: Implement missing HSETP2 variants
2019-07-19 22:20:47 -03:00
Fernando Sahmkow
5581a0d296
Kernel: Address Feedback
2019-07-19 11:28:57 -04:00
Fernando Sahmkow
f478fa3a7f
Common: Correct alignment allocator to work on C++14 or higher.
2019-07-19 11:11:42 -04:00
Fernando Sahmkow
5bce8f62ac
VM_Manager: Align allocated memory to 256bytes
...
This commit ensures that all backing memory allocated for the Guest CPU
is aligned to 256 bytes. This due to how gpu memory works and the heavy
constraints it has in the alignment of physical memory.
2019-07-19 10:06:08 -04:00
Lioncash
873a3e1144
service/audren_u: Handle audio USB output revision queries in ListAudioDeviceName()
...
Audio devices use the supplied revision information in order to
determine if USB audio output is able to be supported. In this case, we
can only really handle using this revision information in
ListAudioDeviceName(), where it checks if USB audio output is supported
before supplying it as a device name.
A few other scenarios exist where the revision info is checked, such as:
- Early exiting from SetAudioDeviceOutputVolume if USB audio is
attempted to be set when that device is unsupported.
- Early exiting and returning 0.0f in GetAudioDeviceOutputVolume when
USB output volume is queried and it's an unsupported device.
- Falling back to AHUB headphones in GetActiveAudioDeviceName when the
device type is USB output, but is unsupported based off the revision
info.
In order for these changes to also be implemented, a few other changes
to the interface need to be made.
Given we now properly handle everything about ListAudioDeviceName(), we
no longer need to describe it as a stubbed function.
2019-07-19 07:55:27 -04:00
Lioncash
cb8212d8b5
service/audren_u: Move revision testing code out of AudRenU
...
The revision querying facilities are used by more than just audren. e.g.
audio devices can use this to test whether or not USB audio output is
supported.
This will be used within the following change.
2019-07-19 07:55:23 -04:00
Lioncash
b8c8916ab8
service/audio: Remove global system accessors
...
Trims out the lingering reliance on global state out of the audio code.
2019-07-19 07:29:36 -04:00
Lioncash
b5db7b0100
service/audren_u: Remove unnecessary return value from GetActiveAudioDeviceName()
...
This service function only ever returns a result and nothing more.
2019-07-19 06:57:31 -04:00
Lioncash
9532e5e262
service/audren_u: Report proper device names
...
AudioDevice and AudioInterface aren't valid device names on the Switch.
We should also be returning consistent names in
GetActiveAudioDeviceName().
While we're at it, we can also handle proper name output in
ListAudioDeviceName, by returning all the available devices on the
Switch.
2019-07-19 06:57:30 -04:00
Lioncash
2f1921b8f4
video_core/control_flow: Provide operator!= for types with operator==
...
Provides operational symmetry for the respective structures.
2019-07-18 21:03:31 -04:00
Lioncash
e792178598
video_core/control_flow: Prevent sign conversion in TryGetBlock()
...
The return value is a u32, not an s32, so this would result in an
implicit signedness conversion.
2019-07-18 21:03:31 -04:00
Lioncash
c3dd5c7667
video_core/control_flow: Remove unnecessary BlockStack copy constructor
...
This is the default behavior of the copy constructor, so it doesn't need
to be specified.
While we're at it we can make the other non-default constructor
explicit.
2019-07-18 21:03:30 -04:00
Lioncash
095259a135
video_core/control_flow: Use std::move where applicable
...
Results in less work being done where avoidable.
2019-07-18 21:03:30 -04:00
Lioncash
0d287d3551
video_core/control_flow: Use the prefix variant of operator++ for iterators
...
Same thing, but potentially allows a standard library implementation to
pick a more efficient codepath.
2019-07-18 21:03:30 -04:00
Lioncash
da307b1c61
video_core/control_flow: Use empty() member function for checking emptiness
...
It's what it's there for.
2019-07-18 21:03:30 -04:00
Lioncash
f6250ef163
video_core: Resolve -Wreorder warnings
...
Ensures that the constructor members are always initialized in the order
that they're declared in.
2019-07-18 21:03:30 -04:00
Lioncash
fcc59b55f7
video_core/control_flow: Make program_size for ScanFlow() a std::size_t
...
Prevents a truncation warning from occurring with MSVC. Also the
internal data structures already treat it as a size_t, so this is just a
discrepancy in the interface.
2019-07-18 21:03:29 -04:00
Lioncash
1bad7650ec
video_core/control_flow: Place all internally linked types/functions within an anonymous namespace
...
Previously, quite a few functions were being linked with external
linkage.
2019-07-18 21:03:29 -04:00
Lioncash
78f54de493
video_core/shader/decode: Prevent sign-conversion warnings
...
Makes it explicit that the conversions here are intentional.
2019-07-18 21:03:29 -04:00
bunnei
a0571bcccd
Merge pull request #2687 from lioncash/tls-process
...
kernel/process: Allocate the process' TLS region during initialization
2019-07-18 13:53:04 -04:00
bunnei
e49fae981f
Merge pull request #2738 from lioncash/shader-ir
...
shader-ir: Minor cleanup-related changes
2019-07-18 13:52:01 -04:00
Fernando Sahmkow
3e0f5631c3
Shader_Ir: correct clang format
2019-07-18 10:09:26 -04:00
Fernando Sahmkow
d6e1af6f23
GPU: Add missing puller methods.
...
This adds some missing puller methods. We don't assert them as these are
nop operations for us.
2019-07-18 08:54:42 -04:00
Fernando Sahmkow
62486dfb4f
MaxwellDMA/KeplerCopy: Downgrade DMA log message to Trace.
...
This log was just to know which games used DMA. It's no longer
important.
2019-07-18 08:31:38 -04:00
Fernando Sahmkow
57a372439d
Gl_Texture_Cache: Remove assert on component type in GetFormatTuple
...
Textures can have different components types in different orders. This
assert was completely inprecise and the effectiveness of such is better
handled by case and within the texture cache.
2019-07-18 08:20:31 -04:00
Fernando Sahmkow
a13b47f080
Shader_Ir: Downgrade precision and rounding asserts to debug asserts.
...
This commit reduces the sevirity of asserts for FP precision and
rounding as this are well known and have little to no consequences in
gpu's accuracy.
2019-07-18 08:17:19 -04:00
ReinUsesLisp
f63034708f
gl_shader_decompiler: Rename bufferImage to imageBuffer
...
The online OpenGL documentation is wrong. The type definition is
imageBuffer.
2019-07-18 01:16:44 -03:00
ReinUsesLisp
bf4cca9510
gl_shader_cache: Fix newline on buffer preprocessor definitions
2019-07-18 01:16:15 -03:00
ReinUsesLisp
93a5cdecbb
textures: Fix texture buffer size calculation
2019-07-18 01:07:08 -03:00
ReinUsesLisp
67843df9f6
gl_texture_cache: Do not set texture parameters to buffers
2019-07-18 01:06:26 -03:00
ReinUsesLisp
4f332abb1a
gl_texture_cache: Add missing break in CreateTexture
2019-07-18 01:04:18 -03:00
Fernando Sahmkow
27caf7f25f
Kernel: Downgrade WaitForAddress and SignalToAddress messages to Trace.
...
This messages were originally set as warnning since few games used these
svcs and it was needed for debugging. This is no longer the case.
2019-07-17 22:05:47 -04:00
Fernando Sahmkow
c9690e912e
GL_State: Feedback and fixes
2019-07-17 17:29:56 -04:00
Fernando Sahmkow
527a77ec0a
Maxwell3D: Address Feedback
2019-07-17 17:29:55 -04:00
Fernando Sahmkow
ca50a64db8
Texture_Cache: Rebase Fixes
2019-07-17 17:29:54 -04:00
Fernando Sahmkow
2f716f52d9
GL_Rasterizer: Corrections to Clearing.
2019-07-17 17:29:54 -04:00
Fernando Sahmkow
8dd4797e00
Maxwell3D: Correct marking dirtiness on CB upload
2019-07-17 17:29:53 -04:00
Fernando Sahmkow
0d34a53c44
GL_Rasterizer: Rework RenderTarget/DepthBuffer clearing
2019-07-17 17:29:52 -04:00
Fernando Sahmkow
89cc60554a
Maxwell3D: Implement State Dirty Flags.
2019-07-17 17:29:51 -04:00
Fernando Sahmkow
24bf7e4de0
Maxwell3D: Rework CBData Upload
2019-07-17 17:29:50 -04:00
Fernando Sahmkow
7c50842226
Maxwell3D: Rework the dirty system to be more consistant and scaleable
2019-07-17 17:29:49 -04:00
Fernando Sahmkow
67d869b53a
maxwell3d: Implement Conditional Rendering
...
Conditional Rendering takes care of conditionaly clearing or drawing
depending on a set of queries. This PR implements the query checks to
stablish if things can be rendered or not.
2019-07-17 17:13:19 -04:00
Fernando Sahmkow
a1abc0fd31
Merge pull request #2740 from lioncash/bra
...
shader/decode/other: Correct branch indirect argument within BRA handling
2019-07-17 14:25:08 -04:00
Rodrigo Locatti
d877208914
Merge pull request #2726 from lioncash/access
...
core: Remove CurrentArmInterface() global accessor
2019-07-17 03:42:16 -03:00
Lioncash
41e2ad0f26
shader_ir: std::move Node instance where applicable
...
These are std::shared_ptr instances underneath the hood, which means
copying them isn't as cheap as a regular pointer. Particularly so on
weakly-ordered systems.
This avoids atomic reference count increments and decrements where they
aren't necessary for the core set of operations.
2019-07-16 19:49:23 -04:00
Lioncash
4d02d971de
shader_ir: Rename Get/SetTemporal to Get/SetTemporary
...
This is more accurate in terms of describing what the functions are
actually doing. Temporal relates to time, not the setting of a temporary
itself.
2019-07-16 19:47:43 -04:00
Lioncash
40a74b1546
shader_ir: Remove unused includes
...
Removes unnecessary header dependencies.
2019-07-16 19:47:42 -04:00
Fernando Sahmkow
88fddaca00
Shader_Ir: Correct tracking to track from right to left
2019-07-16 15:06:59 -04:00
Fernando Sahmkow
52f9840512
Merge pull request #2565 from ReinUsesLisp/track-indirect
...
shader/track: Track indirect buffers
2019-07-16 14:58:35 -04:00
Lioncash
778d8fedfa
shader/decode/other: Correct branch indirect argument within BRA handling
...
This appears to have been a copy/paste error introduced within
d5d4cc30ec
2019-07-16 12:20:45 -04:00
ReinUsesLisp
1498ef807d
gl_shader_cache: Fix clang-format issues
2019-07-15 20:33:51 -03:00
ReinUsesLisp
1a98408a9e
gl_shader_decompiler: Stub local memory size
2019-07-15 17:38:25 -03:00
ReinUsesLisp
eb8f2307e1
gl_shader_cache: Address review commentaries
2019-07-15 17:38:25 -03:00
ReinUsesLisp
4ee96c8498
gl_shader_cache: Address CI issues
2019-07-15 17:38:25 -03:00
ReinUsesLisp
37a3fdc6c6
gl_rasterizer: Implement compute shaders
2019-07-15 17:38:25 -03:00
Fernando Sahmkow
e221290cb7
Merge pull request #2695 from ReinUsesLisp/layer-viewport
...
gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders
2019-07-15 16:28:07 -04:00
bunnei
9009501845
Merge pull request #2705 from FernandoS27/tex-cache-fixes
...
GPU: Fixes to Texture Cache and Include Microprofiles for GL State/BufferCopy/Macro Interpreter
2019-07-14 22:44:36 -04:00
ReinUsesLisp
a54be6ef96
shader: Allow tracking of indirect buffers without variable offset
...
While changing this code, simplify tracking code to allow returning
the base address node, this way callers don't have to manually rebuild
it on each invocation.
2019-07-14 22:36:44 -03:00
bunnei
8298de49b0
Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cache
...
buffer_cache: Implement a generic buffer cache and its OpenGL backend
2019-07-14 19:03:43 -04:00
Fernando Sahmkow
03e55c48d6
Texture_Cache: Address Feedback
2019-07-14 17:42:39 -04:00
Fernando Sahmkow
3cf8851567
Texture_Cache: Remove some unprecise fallback case and clang format
2019-07-14 12:00:32 -04:00
Fernando Sahmkow
5e7b10ec49
Texture_Cache: Force Framebuffer reset if an active render target is unregistered.
2019-07-14 12:00:31 -04:00
Fernando Sahmkow
09d818732f
GPU: Add a microprofile for macro interpreter
2019-07-14 12:00:30 -04:00
Fernando Sahmkow
ec05f185a3
GL_State: Add a microprofile timer to OpenGL state.
2019-07-14 12:00:30 -04:00
Fernando Sahmkow
9109a3f925
Gl_Texture_Cache: Measure Buffer Copy Times
2019-07-14 12:00:29 -04:00
Fernando Sahmkow
c9c7b13f76
Texture_Cache: Correct Linear Structural Match.
2019-07-14 12:00:28 -04:00
Fernando Sahmkow
474c698422
Merge pull request #2690 from SciresM/physmem_fixes
...
Implement MapPhysicalMemory/UnmapPhysicalMemory
2019-07-14 09:16:46 -04:00
Fernando Sahmkow
43662e376e
Merge pull request #2692 from ReinUsesLisp/tlds-f16
...
shader/texture: Add F16 support for TLDS
2019-07-14 08:44:38 -04:00
Lioncash
102801e196
core: Remove CurrentArmInterface() global accessor
...
Replaces the final usage of the global accessor function and removes it.
Removes one more enabler of global state.
2019-07-12 21:48:49 -04:00
David Marcec
88565f46b6
Clang format
2019-07-13 01:49:32 +10:00
David Marcec
a5e5b9e9c7
Addressed issues
2019-07-13 01:35:40 +10:00
David Marcec
00c7dc08de
"AudioRenderer" thread should have a unique name
...
Creating multiple "AudioRenderer" threads cause the previous thread to be overwritten. The thread will name be renamed to AudioRenderer-InstanceX, where X is the current instance number.
2019-07-13 01:22:08 +10:00
Michael Scire
5ff046b9c6
Remove unicorn mappings/unmappings
2019-07-11 15:12:33 -07:00
bunnei
41d14bcdc5
Merge pull request #2609 from FernandoS27/new-scan
...
Implement a New Shader Scanner, Decompile Flow Stack and implement BRX BRA.CC
2019-07-11 17:36:23 -04:00
ReinUsesLisp
9f111492cb
gl_shader_decompiler: Fix gl_PointSize redeclaration
2019-07-11 16:10:59 -03:00
bunnei
4679f23b21
Merge pull request #2717 from SciresM/unmirror_memory
...
Restore memory perms on svcUnmapMemory/UnloadNro
2019-07-11 14:57:20 -04:00
bunnei
60108f87a3
Merge pull request #2723 from lioncash/mem
...
core/arm: Remove obsolete Unicorn memory mapping
2019-07-11 14:56:26 -04:00
Lioncash
96e1a55219
service/am: Implement IsAutoSleepDisabled
...
This simply queries whether or not auto-sleep facilities are disabled
and has no special handling. It's a basic getter function.
2019-07-11 13:34:55 -04:00
Lioncash
89e1a5848a
service/am: Implement SetAutoSleepDisabled
...
Provides a basic implementation of SetAutoSleepDisabled. Until idle
handling is implemented, this is about the best we can do.
In the meantime, provide a rough documenting of specifics that occur
when this function is called on actual hardware.
2019-07-11 13:09:03 -04:00
Lioncash
66cfba50ed
yuzu: Remove setting for using Unicorn
...
The JIT is mature enough that this setting can be removed, falling back
to Unicorn only on unsupported architectures. Any missing features from
Unicorn (of which there are extremely few), are mostly
developer-oriented, which most users don't care about.
Features should be coordinated with the JIT, not the interpreter,
anyhow.
2019-07-11 05:59:13 -04:00
Lioncash
6b4fd5ccad
core/arm: Remove obsolete Unicorn memory mapping
...
This was initially necessary when AArch64 JIT emulation was in its
infancy and all memory-related instructions weren't implemented.
Given the JIT now has all of these facilities implemented, we can remove
these functions from the CPU interface.
2019-07-11 05:35:46 -04:00
Michael Scire
902cad78ee
Restore memory perms on svcUnmapMemory/UnloadNro
...
Prior to PR, Yuzu did not restore memory to RW-
on unmap of mirrored memory or unloading of NRO.
(In fact, in the NRO case, the memory was unmapped
instead of reprotected to --- on Load, so it was
actually lost entirely...)
This PR addresses that, and restores memory to RW-
as it should.
This fixes a crash in Super Smash Bros when creating
a World of Light save for the first time, and possibly
other games/circumstances.
2019-07-11 01:38:28 -07:00
ReinUsesLisp
faa74c08fb
gl_shader_decompiler: Fix conditional usage of GL_ARB_shader_viewport_layer_array
2019-07-11 04:27:00 -03:00
bunnei
17a30da7a1
Merge pull request #2697 from lioncash/doc
...
gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()
2019-07-10 16:38:09 -04:00
bunnei
809e04bfac
Merge pull request #2686 from ReinUsesLisp/vk-scheduler
...
vk_scheduler: Drop execution context in favor of views
2019-07-10 16:35:48 -04:00
bunnei
552d647663
Merge pull request #2700 from ogniK5377/GetFriendList
...
IFriendService::GetFriendList
2019-07-10 16:29:48 -04:00
bunnei
08a4eb9ef3
Merge pull request #2611 from DarkLordZach/pm-info-cmd
...
pm: Implement various pm commands for finding process and title IDs
2019-07-10 16:28:29 -04:00
bunnei
ee2acf4240
Merge pull request #2650 from DarkLordZach/mii-iface-ver
...
mii: Implement IDatabaseService SetInterfaceVersion
2019-07-10 16:26:23 -04:00
bunnei
18dc68b259
Merge pull request #2691 from lioncash/override
...
video_core: Add missing override specifiers
2019-07-10 16:25:43 -04:00
Zach Hilman
f458590c85
system_archive: Add open-source reimplementation of MiiModel data
2019-07-10 07:21:36 -04:00
Zach Hilman
e88efc046f
mii: Handle logging of unknown database source
2019-07-10 07:07:24 -04:00
Fernando Sahmkow
3533ee4697
shader_ir: Add comments on missing instruction.
...
Also shows Nvidia's address space on comments.
2019-07-09 17:15:45 -04:00
Michael Scire
ab4a2b5699
prefer system reference over global accessor
2019-07-09 08:11:35 -07:00
Fernando Sahmkow
5f0c400d43
shader_ir: limit explorastion to best known program size.
2019-07-09 08:14:43 -04:00
Fernando Sahmkow
22f04d827f
control_flow: Correct block breaking algorithm.
2019-07-09 08:14:43 -04:00
Fernando Sahmkow
e56ebe9d99
control_flow: Assert shaders bigger than limit.
2019-07-09 08:14:42 -04:00
Fernando Sahmkow
848229a9ea
control_flow: Address feedback.
2019-07-09 08:14:42 -04:00
Fernando Sahmkow
cf3a7c0761
shader_ir: Correct parsing of scheduling instructions and correct sizing
2019-07-09 08:14:41 -04:00
Fernando Sahmkow
0164b108ab
shader_ir: Correct max sizing
2019-07-09 08:14:40 -04:00
Fernando Sahmkow
be5e508cce
shader_ir: Remove unnecessary constructors and use optional for ScanFlow result
2019-07-09 08:14:40 -04:00
Fernando Sahmkow
d996ab2d77
shader_ir: Corrections, documenting and asserting control_flow
2019-07-09 08:14:39 -04:00
Fernando Sahmkow
82efa35683
shader_ir: Unify blocks in decompiled shaders.
2019-07-09 08:14:39 -04:00
Fernando Sahmkow
d7b3d3a823
shader_ir: Decompile Flow Stack
2019-07-09 08:14:38 -04:00
Fernando Sahmkow
92be9d01aa
shader_ir: propagate shader size to the IR
2019-07-09 08:14:37 -04:00
Fernando Sahmkow
d5d4cc30ec
shader_ir: Implement BRX & BRA.CC
2019-07-09 08:14:37 -04:00
Fernando Sahmkow
fc89b55635
shader_ir: Remove the old scanner.
2019-07-09 08:14:36 -04:00
Fernando Sahmkow
48e75bade4
shader_ir: Implement a new shader scanner
2019-07-09 08:14:36 -04:00
David Marcec
127b0dfc77
IFriendService::GetFriendList
...
We don't have any friends implemented in Yuzu yet so it doesn't make sense to return any friends. For now we'll be returning 0 friends however the information provided will allow a proper implementation of this cmd when needed.
2019-07-09 18:20:58 +10:00
Lioncash
5bbae92473
gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()
...
must_reconfigure isn't a parameter for this function any more, so it can
be replaced with current_state.
While we're at it, we can make the parameters of the declaration match
the same name as the ones in the definition.
2019-07-09 02:08:15 -04:00
Michael Scire
4e57de9e0b
Prevent merging of device mapped memory blocks.
...
This sets the DeviceMapped attribute for GPU-mapped memory blocks,
and prevents merging device mapped blocks. This prevents memory
mapped from the gpu from having its backing address changed by
block coalesce.
2019-07-08 22:52:05 -07:00
Zach Hilman
2b3756d167
Merge pull request #2661 from ogniK5377/audren-loop
...
audren: Only manage wave buffers with a size
2019-07-08 09:35:42 -04:00
Zach Hilman
4a0439e97a
Merge pull request #2657 from ogniK5377/npad-assignments
...
hid:StartLrAssignmentMode, hid:StopLrAssignmentMode, hid:SwapNpadAssignment
2019-07-08 09:35:19 -04:00
David Marcec
cdd7c41b36
addressed issues
2019-07-08 14:51:40 +10:00
David Marcec
3b243f1b3e
addressed issue
2019-07-08 14:49:16 +10:00
bunnei
c8db8fa033
Merge pull request #2651 from DarkLordZach/apm-boost-mode-1
...
apm: Initial implementation of performance config and boost mode
2019-07-07 21:40:30 -04:00
bunnei
28c3099b5e
Merge pull request #2642 from DarkLordZach/fsp-log-2
...
fsp-srv: Implement Access Logging Functionality
2019-07-07 21:39:40 -04:00
Zach Hilman
fe150ae0a4
key_manager: Convert Ticket union to std::variant
2019-07-07 21:38:33 -04:00
Zach Hilman
51374d2489
es: Populate/synthesize tickets on construction
2019-07-07 21:38:33 -04:00
Zach Hilman
7b86f1b7f8
key_manager: Add structure for Ticket parsing
2019-07-07 21:38:33 -04:00
Zach Hilman
f48746b485
es: Implement ETicket GetPersonalizedTicketData (17)
...
Copies the raw personal ticket data into the buffer provided.
2019-07-07 21:38:33 -04:00
Zach Hilman
1558181ac8
es: Implement ETicket GetCommonTicketData (16)
...
Copies the raw common ticket data for the specified rights ID into the buffer provided.
2019-07-07 21:38:33 -04:00
Zach Hilman
b5863d70bb
es: Implement ETicket GetPersonalizedTicketSize (15)
...
Returns the size of the buffer needed to hold the personal ticket associated with the rights ID.
2019-07-07 21:38:33 -04:00
Zach Hilman
40e9ecb944
es: Implement ETicket GetCommonTicketSize (14)
...
Returns the size of the buffer needed to hold the common ticket associated with the rights ID.
2019-07-07 21:38:33 -04:00
Zach Hilman
b7bc1ca0a4
es: Implement ETicket ListPersonalizedTicket (12)
...
Returns an application-specific number of entries of personal tickets, starting at offset 0.
2019-07-07 21:38:33 -04:00
Zach Hilman
d096722c60
es: Implement ETicket ListCommonTicket (11)
...
Returns an application specified count of entries of common tickets, starting at offset 0.
2019-07-07 21:38:33 -04:00
Zach Hilman
df8800b719
es: Implement ETicket CountPersonalizedTicket (10)
...
Returns the number of personalized (console/user-unique) tickets in the KeyManager.
2019-07-07 21:38:33 -04:00
Zach Hilman
59df34708d
es: Implement ETicket CountCommonTicket (9)
...
Returns the number of common (non-console-unique) tickets in the KeyManager.
2019-07-07 21:38:33 -04:00
Zach Hilman
0ec000ec39
es: Implement ETicket GetTitleKey (8)
...
Takes a rights ID as input and returns the associated title key, if it exists.
2019-07-07 21:38:33 -04:00
Zach Hilman
73ceeea0e4
es: Implement ETicket ImportTicket (1)
...
Takes a ticket and certificate and installs it to the KeyManager.
2019-07-07 21:38:33 -04:00
Zach Hilman
2092bde879
key_manager: Add accessors/helpers for ticket management
2019-07-07 21:38:33 -04:00
Zach Hilman
a315a7d8ed
key_manager: Add equality operator for RSAKeyPair
2019-07-07 21:38:33 -04:00
ReinUsesLisp
a650406899
gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders
...
This commit implements gl_ViewportIndex and gl_Layer in vertex and
geometry shaders. In the case it's used in a vertex shader, it requires
ARB_shader_viewport_layer_array. This extension is available on AMD and
Nvidia devices (mesa and proprietary drivers), but not available on
Intel on any platform. At the moment of writing this description I don't
know if this is a hardware limitation or a driver limitation.
In the case that ARB_shader_viewport_layer_array is not available,
writes to these registers on a vertex shader are ignored, with the
appropriate logging.
2019-07-07 20:42:55 -03:00
Michael Scire
0e2ec7457a
Remove unused member function declaration
2019-07-07 13:02:41 -07:00
Michael Scire
4ce2cda054
physmem: add helpers, cleanup logic.
2019-07-07 12:55:30 -07:00
Tobias
d15f1f4e9e
Delete decode_integer_set.cpp
2019-07-07 21:40:33 +02:00
Michael Scire
1a0bbd14e7
clang-format fixes
2019-07-07 12:08:29 -07:00
ReinUsesLisp
48d485d6df
shader/texture: Add F16 support for TLDS
2019-07-07 16:05:56 -03:00
Michael Scire
e0659e3793
address review commentary
2019-07-07 11:48:11 -07:00
Michael Scire
6a33b060b7
Implement MapPhysicalMemory/UnmapPhysicalMemory
...
This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu,
which can be used to map memory at a desired address by games since
3.0.0.
It also properly parses SystemResourceSize from NPDM, and makes
information available via svcGetInfo.
This is needed for games like Super Smash Bros. and Diablo 3 -- this
PR's implementation does not run into the "ASCII reads" issue mentioned
in the comments of #2626 , which was caused by the following bugs in
Yuzu's memory management that this PR also addresses:
* Yuzu's memory coalescing does not properly merge blocks. This results
in a polluted address space/svcQueryMemory results that would be
impossible to replicate on hardware, which can lead to game code making
the wrong assumptions about memory layout.
* This implements better merging for AllocatedMemoryBlocks.
* Yuzu's implementation of svcMirrorMemory unprotected the entire
virtual memory range containing the range being mirrored. This could
lead to games attempting to map data at that unprotected
range/attempting to access that range after yuzu improperly unmapped
it.
* This PR fixes it by simply calling ReprotectRange instead of
Reprotect.
2019-07-07 11:45:53 -07:00
Lioncash
5e5e939ef2
kernel/process: Allocate the process' TLS region during initialization
...
Prior to execution within a process beginning, the process establishes
its own TLS region for uses (as far as I can tell) related to exception
handling.
Now that TLS creation was decoupled from threads themselves, we can add
this behavior to our Process class. This is also good, as it allows us
to remove a stub within svcGetInfo, namely querying the address of that
region.
2019-07-07 14:08:28 -04:00
Lioncash
edd1ab0311
kernel/process: Move main thread stack allocation to its own function
...
Keeps this particular set of behavior isolated to its own function.
2019-07-07 14:08:25 -04:00
Lioncash
873b1cee22
vk_sampler_cache: Remove unused includes
...
These are no longer used within this header, so they can be removed.
2019-07-07 13:40:36 -04:00
Lioncash
85a4cb423d
video_core: Add missing override specifiers
2019-07-07 13:38:39 -04:00
Lioncash
f9d0248484
yuzu/main: Make error messages within OnCoreError more localization-friendly
...
Previously, a translated string was being appended onto another string
in a manner that doesn't allow the translator to control where the
appended text is placed. This can be a nuisance for languages where
grammar and text ordering differs from English.
We now append the strings via the format strings themselves, which
allows translators to reorder where the text will be placed.
2019-07-07 11:02:05 -04:00
ReinUsesLisp
a7192b9512
vk_scheduler: Drop execution context in favor of views
...
Instead of passing by copy an execution context through out the whole
Vulkan call hierarchy, use a command buffer view and fence view
approach.
This internally dereferences the command buffer or fence forcing the
user to be unable to use an outdated version of it on normal usage.
It is still possible to keep store an outdated if it is casted to
VKFence& or vk::CommandBuffer.
While changing this file, add an extra parameter for Flush and Finish to
allow releasing the fence from this calls.
2019-07-07 03:30:22 -03:00
Zach Hilman
67e5cb8b21
mii: Implement IDatabaseService SetInterfaceVersion
...
Appears to set a member variable used to affect the API that games access, and the method used to store data.
2019-07-06 21:39:12 -04:00
Zach Hilman
fcf404c244
Merge pull request #2674 from lioncash/reporter
...
core/reporter: Minor changes
2019-07-06 21:26:40 -04:00
Zach Hilman
1d1a584a6b
Merge pull request #2677 from lioncash/assert
...
kernel/vm_manager: Handle stack/TLS IO region placement a little better
2019-07-06 21:25:27 -04:00
Michael Scire
ce79a125cc
clang-format fixes
2019-07-06 13:52:05 -07:00
Michael Scire
597e3aadf0
am: Implement GetAccumulatedSuspendedTickValue
2019-07-06 12:13:34 -07:00
Lioncash
47070b5fb4
memory: Remove unused includes
...
These aren't used within the central memory management code, so they can
be removed.
2019-07-06 02:24:34 -04:00
Lioncash
38c9502a30
memory: Remove unused PageTable forward declaration
...
This isn't used by anything in the header file, so it can be removed.
2019-07-06 02:24:34 -04:00
Lioncash
fa5791150c
kernel/vm_manager: Rename 'new map' to 'stack'
...
Provides a more accurate name for the memory region and also
disambiguates between the map and new map regions of memory, making it
easier to understand.
2019-07-06 02:24:30 -04:00
ReinUsesLisp
56d7606d2c
buffer_cache: Avoid [[nodiscard]] to make clang-format happy
2019-07-06 01:17:05 -03:00
ReinUsesLisp
09c775cb05
buffer_cache: Try to fix MinGW build
2019-07-06 01:14:05 -03:00
ReinUsesLisp
cb2a4bffd0
gl_rasterizer: Fix nullptr dereference on disabled buffers
2019-07-06 00:37:56 -03:00
ReinUsesLisp
e6d37e10db
gl_rasterizer: Minor style changes
2019-07-06 00:37:55 -03:00
ReinUsesLisp
3a1fafb474
gl_rasterizer: Fix vertex and index data invalidations
2019-07-06 00:37:55 -03:00
ReinUsesLisp
32b4a2e093
gl_buffer_cache: Implement with generic buffer cache
2019-07-06 00:37:55 -03:00
ReinUsesLisp
d3ae5ce80c
buffer_cache: Implement a generic buffer cache
...
Implements a templated class with a similar approach to our current
generic texture cache. It is designed to be compatible with Vulkan and
OpenGL,
2019-07-06 00:37:55 -03:00
ReinUsesLisp
b5fe7c096f
gl_buffer_cache: Remove global system getters
2019-07-06 00:37:55 -03:00
ReinUsesLisp
e9d8c0bdcf
gl_device: Query SSBO alignment
2019-07-06 00:37:55 -03:00
ReinUsesLisp
9499333493
gl_buffer_cache: Implement flushing
2019-07-06 00:37:55 -03:00
ReinUsesLisp
5b82a1bea0
gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cache
2019-07-06 00:37:55 -03:00
ReinUsesLisp
a5cfe7d0b1
gl_buffer_cache: Rework to support internalized buffers
2019-07-06 00:37:55 -03:00
ReinUsesLisp
1b416d78b9
gl_buffer_cache: Store in CachedBufferEntry the used buffer handle
2019-07-06 00:37:55 -03:00
ReinUsesLisp
450b4911ed
gl_buffer_cache: Return used buffer from Upload function
2019-07-06 00:37:55 -03:00
ReinUsesLisp
388d7506dd
gl_rasterizer: Add some commentaries
2019-07-06 00:37:55 -03:00
ReinUsesLisp
39b1990db1
gl_rasterizer: Make DrawParameters rasterizer instance const
2019-07-06 00:37:55 -03:00
ReinUsesLisp
2dfe9aa51e
gl_rasterizer: Move index buffer uploading to its own method
2019-07-06 00:37:55 -03:00
Lioncash
c208d57f96
kernel/vm_manager: Handle stack/TLS IO region placement better
...
Handles the placement of the stack a little nicer compared to the
previous code, which was off in a few ways. e.g.
The stack (new map) region, shouldn't be the width of the entire address
space if the size of the region calculation ends up being zero. It
should be placed at the same location as the TLS IO region and also have
the same size.
In the event the TLS IO region contains a size of zero, we should also
be doing the same thing. This fixes our memory layout a little bit and
also resolves some cases where assertions can trigger due to the memory
layout being incorrect.
2019-07-05 21:57:31 -04:00
Lioncash
d360b7465f
core/reporter: Allow moves into SaveToFile()
...
Taking the json instance as a constant reference, makes all moves into
the parameter non-functional, resulting in copies. Taking it by value
allows moves to function.
2019-07-05 17:45:34 -04:00
Lioncash
770387fadb
core/reporter: Add missing includes and forward declarations
...
Adds missing inclusions to prevent potential compilation issues.
2019-07-05 17:45:24 -04:00