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