Lioncash
563a540dfd
core: Resolve -Wreorder warnings
...
Ensures the initialization order matches the actual order that the class
member variables will be initialized in.
2020-05-01 23:32:46 -04:00
Lioncash
a32ad7f1f2
soc_u: Prevent undefined behavior with CTRPollFD
...
This class is memcpy-ed and memcpy has the requirement that data passed
to it must be trivially copyable, otherwise the behavior is undefined.
This is trivial to resolve as BitField was made trivially copyable a
while ago, so this explicit copy assignment operator isn't necessary.
2020-05-01 22:30:10 -04:00
Pengfei Zhu
e212dc3a1f
Merge pull request #5297 from lioncash/missing
...
gl_rasterizer: Amend missing return value in branch in SetupGeometryShader()
2020-05-02 08:07:49 +08:00
Pengfei Zhu
70a43be714
Merge pull request #5306 from lioncash/view2
...
file-sys: Make use of std::string_view where applicable
2020-05-02 08:07:10 +08:00
Pengfei Zhu
8e7abecf7e
Merge pull request #5307 from lioncash/guard
...
file_sys/seed_db: Add missing include guard
2020-05-02 08:04:58 +08:00
Pengfei Zhu
5a008a74fa
Merge pull request #5304 from lioncash/layered
...
layered_fs: Mark functions as static where applicable
2020-05-02 08:02:35 +08:00
Pengfei Zhu
6907568034
Merge pull request #5309 from lioncash/dtor
...
applets: Make destructors virtual where applicable
2020-05-02 08:02:14 +08:00
Pengfei Zhu
59984df603
Merge pull request #5308 from lioncash/rsa
...
core/hw/rsa: Minor cleanup
2020-05-02 08:01:58 +08:00
Pengfei Zhu
4d7487bd34
Merge pull request #5298 from lioncash/unused
...
gl_rasterizer: Silence various compilation warnings
2020-05-01 23:34:36 +08:00
Pengfei Zhu
037c857bd6
Merge pull request #5303 from lioncash/namespace
...
service/ir: Remove erroneous forward declaration
2020-05-01 23:04:01 +08:00
Pengfei Zhu
017f0c469e
Merge pull request #5301 from lioncash/chunk
...
common: Remove chunk_file.h
2020-05-01 23:02:47 +08:00
Pengfei Zhu
6a0636d631
Merge pull request #5296 from lioncash/flatten
...
gl_rasterizer_cache: Flatten LoadCustomTexture()
2020-05-01 23:01:47 +08:00
Pengfei Zhu
2eacb11c53
Merge pull request #5292 from lioncash/alloc
...
gl_shader_manager: Eliminate variable shadowing
2020-05-01 22:57:55 +08:00
Pengfei Zhu
1bb9a71a01
Merge pull request #5291 from lioncash/trunc
...
renderer_opengl: Resolve compiler truncation warnings
2020-05-01 22:56:46 +08:00
Lioncash
89eeb64854
applets/swkbd: Make destructor virtual
...
Prevents undefined behavior when destroying a derived class through a
base class pointer.
2020-05-01 10:44:31 -04:00
Lioncash
aeb6a037ed
applets/mii_selector: Make destructor virtual
...
Prevents undefined behavior when destroying derived classes through a
base class pointer.
2020-05-01 10:42:57 -04:00
Lioncash
3ab0701192
core/hw/rsa: Make GetSignature() a const member function
...
This doesn't directly modify instance state, so it can be made const.
2020-05-01 10:17:43 -04:00
Ben
fd1b254635
Merge pull request #5290 from lioncash/shader
...
gl_shader_gen: Minor interface cleanup
2020-05-01 16:16:25 +02:00
Lioncash
c55e81b946
core/hw/rsa: Make operator bool explicit
...
Prevents error-prone implicit conversions to bool from occurring.
2020-05-01 10:14:50 -04:00
Lioncash
75bac1e514
core/hw/rsa: Take std::vector instances by value
...
Allows us to std::move them and allow calling code to eliminate copies
from occurring entirely.
2020-05-01 10:14:07 -04:00
Lioncash
98385b75d6
file_sys/seed_db: Add missing include guard
...
Prevents any potential inclusion errors from occurring.
2020-05-01 09:59:58 -04:00
Lioncash
10a32c94b6
title_metadata: Take std::vector by const reference in Load()
...
This isn't modified in the implementation, so this can be a const
reference to eliminate an unnecessary heap reallocation.
2020-05-01 09:53:44 -04:00
Lioncash
147073a5a0
file-sys: Make use of std::string_view where applicable
...
Same behavior, but makes the interface more flexible and allows
non-std::string instances to be used with it.
2020-05-01 09:49:36 -04:00
Lioncash
37a6ea72e5
layered_fs: Mark functions as static where applicable
...
Makes them internally linked and prevents potential
-Wmissing-declaration warnings.
2020-05-01 09:35:59 -04:00
Lioncash
9cff314abb
service/ir: Remove erroneous forward declaration
...
This can be removed as it's not used. Even if it were however, it would
be an incorrect forward declaration, as ServiceManager exists within the
Service::SM namespace, not the top-level SM namespace.
2020-05-01 08:54:27 -04:00
Lioncash
246cea229c
common: Remove chunk_file.h
...
This is part of Dolphin's serialization code, which isn't used and
probably never will be, considering that savestates are implemented with
boost.
2020-05-01 08:23:59 -04:00
Lioncash
763778e6c0
gl_rasterizer: Make const on references consistent
...
Applies const to auto& instances that would actually resolve to a const
reference for readability and explicitness.
2020-05-01 06:19:20 -04:00
Lioncash
437453d32b
gl_rasterizer: Amend missing return value in branch in SetupGeometryShader()
...
Previously undefined behavior was being invoked in the case that
geometry shaders weren't supported.
2020-05-01 06:10:32 -04:00
Lioncash
81768bf0c2
gl_rasterizer: Resolve truncation warnings
2020-05-01 06:08:20 -04:00
Lioncash
df97021f55
gl_rasterizer: Make use of std::string_view in IsVendorAmd()
...
Same behavior, no heap allocation.
strings returned from glGetString() are guaranteed to be static strings,
so this is safe to do. They're also guaranteed to be null-terminated.
2020-05-01 05:57:25 -04:00
Lioncash
de140a5870
gl_rasterizer: Default destructor in the cpp file
2020-05-01 05:53:40 -04:00
Lioncash
ea08178dde
gl_rasterizer: Remove unused emu_window variable in RasterizerOpenGL
...
Silences an unused private variable warning.
2020-05-01 05:52:48 -04:00
Lioncash
59a614a70f
gl_rasterizer_cache: Remove unnecessary reference parameter in LoadCustomTexture()
...
This is only ever used in a self-referential manner, so we can make use
of the texture info member directly.
2020-05-01 05:42:35 -04:00
Lioncash
e342f36e02
gl_rasterizer_cache: Flatten LoadCustomTexture()
...
Makes the control flow much nicer to follow, as we don't store to a
local before returning anymore.
2020-05-01 05:33:47 -04:00
Mat M
85d37c9994
gl_shader_disk: Make use of std::nullopt where applicable ( #5293 )
...
Some implementations can use the std::nullopt_t constructor of
std::optional to avoid needing to completely zero out the internal
buffer of the optional and instead only set the validity byte within it.
e.g. Consider the following function:
std::optional<std::vector<ShaderDiskCacheRaw>> fn() {
return {};
}
With libc++ this will result in the following code generation on x86-64:
Fn():
mov rax, rdi
vxorps xmm0, xmm0, xmm0
vmovups ymmword ptr [rdi], ymm0
vzeroupper
ret
With libstdc++, we also get the similar equivalent:
Fn():
vpxor xmm0, xmm0, xmm0
mov rax, rdi
vmovdqu XMMWORD PTR [rdi], xmm0
vmovdqu XMMWORD PTR [rdi+16], xmm0
ret
If we change this function to return std::nullopt instead, then this
simplifies both the code gen from libc++ and libstdc++ down to:
Fn():
mov BYTE PTR [rdi+24], 0
mov rax, rdi
ret
Given how little of a change is necessary to result in better code
generation, this is essentially a "free" very minor optimization.
2020-04-30 22:42:32 -05:00
Lioncash
f20120e5a7
gl_shader_gen: Mark hash implementations as noexcept
...
These shouldn't throw at all, so we can mark the interface as such.
2020-04-30 22:57:36 -04:00
Lioncash
ca4f7266c0
gl_shader_manager: Remove unused variable within LoadDiskCache()
2020-04-30 22:48:57 -04:00
Lioncash
138539c9a0
gl_shader_manager: Eliminate variable shadowing
...
Resolves a few -Wshadow warnings.
2020-04-30 22:46:58 -04:00
Lioncash
2d83b39532
gl_shader_manager: Avoid unnecessary std::vector copy in LoadDiskCache()
...
Same behavior, but without an unnecessary reallocation.
2020-04-30 22:43:03 -04:00
Lioncash
e118cb1e0b
renderer_opengl: Resolve compiler truncation warnings
...
Resolves numerous truncation warnings on MSVC.
2020-04-30 22:26:14 -04:00
Lioncash
d23ffe9b42
gl_shader_gen: Mark PicaVSConfig reference parameter as const
...
This isn't mutated whatsoever, so this can be marked const.
2020-04-30 22:07:25 -04:00
FearlessTobi
7f8151b9b9
savedata_archive: Make GetFreeBytes return a more accurate value
...
Previously, we were returning a value that was way too big, causing an integer overflow in Fractured Souls.
According to wwylele, the biggest oberserved save size for 3DS is 1MB, so this new value should leave plenty of room, even if games use a bigger size.
2020-04-29 05:42:40 +02:00
Mat M
98fe5f82c5
memory: Make getter functions const qualified where applicable ( #5251 )
...
Many of these functions are capable of being used within const contexts,
so we can apply the const qualifier in some cases and add const based
overloads for others, which makes the interface a little bit more
flexible and const-correct.
2020-04-28 14:43:52 -05:00
Mat M
96832a2c82
core/memory: Make use of std::move in Entry::operator= ( #5233 )
...
* core/memory: Amend unusual return value of operator=
operator= usually returns a reference to this. Given there's no comment
explaining why void was used, this can be assumed to be an oversight.
* core/memory: Make use of std::move in Entry::operator=
Same behavior, minus the need for an atomic reference count increment
and decrement (since MemoryRef contains a std::shared_ptr).
2020-04-28 14:39:02 -05:00
Ben
9dc0f38ffd
Merge pull request #5241 from lioncash/pica
...
pica_state: Make use of std::array where applicable
2020-04-28 09:01:41 +02:00
Marshall Mohror
8a0b0c2fc7
texture_filters: update ScaleForce ( #5270 )
...
* texture_filters: update ScaleForce
* texture_filters: optimize scale_force
* texture_filters/scale_force: optimize final offset calculation
2020-04-27 23:50:47 -05:00
Lioncash
41b7df4a32
command_processor: Resolve undefined behavior type punning
...
We can use std::memcpy to achieve the same behavior without undefined
behavior. Once Citra moves to C++20 we can convert this over to
std::bit_cast.
2020-04-27 15:35:21 -04:00
Lioncash
5ac4636a14
pica_state: Make use of std::array
...
Same behavior, stronger typing.
2020-04-27 15:35:18 -04:00
Ben
ed304e2877
Merge pull request #5179 from vitor-k/reenable-hidapi
...
Reenable hidapi for SDL2.0.12 and up
2020-04-27 16:35:51 +02:00
badda71
f18aef0579
add program counter in unmapped memory access log messages ( #5149 )
...
* add program counter in unmapped memory access log messages
2020-04-27 16:31:34 +02:00
Mat M
bc14f485c4
gl_shader_disk_cache: std::move entries in LoadTransferable() ( #5249 )
2020-04-24 17:49:54 +02:00
Pengfei Zhu
77ffe37c46
Merge pull request #5247 from lioncash/copy3
...
swrasterizer/proctex: Take regs by const reference
2020-04-24 22:07:03 +08:00
Ben
39463f1f6d
ArmInterface: return ref instead of copy for GetTimer ( #5227 )
...
* ArmInterface: return ref instead of copy for GetTimer
* ArmInterface: add const ref GetTimer
* ArmInterface: return raw pointer instead of shared_ptr in GetTimer
* remove more unnecessary shared_ptr usage
* Fix save states
* fix unit tests
2020-04-22 07:44:58 +02:00
xperia64
38c3c9c74b
Add sample rate field to AAC decoder ( #5195 )
...
* Add sample rate field to AAC decoder
* Fix TODO comment
* Remove unneeded conversion
2020-04-21 20:34:50 -05:00
Mat M
8b43dff849
gl_shader_gen: Convert file-scope std::string into a std::string_view ( #5263 )
...
Same behavior, no heap allocations at program start up
2020-04-21 20:31:58 -05:00
Marshall Mohror
db5b8b9c88
video_core: reduce string allocations in shader decompiler ( #5261 )
...
* video_core: reduce string allocations in shader decompiler
* use append for indentation instead of resize
Co-authored-by: Mat M. <mathew1800@gmail.com>
2020-04-20 22:08:58 -05:00
Mat M
b82d4315fe
custom_tex_cache: Remove reliance on the global system instance ( #5252 )
...
Removes direct usages of Core::System::GetInstance() and instead passes
the direct necessities through the interface.
2020-04-20 21:50:16 -05:00
Hamish Milne
6783289909
CR actions
2020-04-20 16:30:49 +01:00
Hamish Milne
55c9162d02
Clean up the Callback (don't store a shared_ptr to parent)
2020-04-20 16:29:50 +01:00
Hamish Milne
d5a962cb81
Fix savestates compatibility ( #5256 )
...
* Fix savestates compatibility
2020-04-20 16:21:37 +02:00
Sebastian Valle
3597921ec5
Merge pull request #5235 from lioncash/move
...
ipc_helpers: Make PushStaticBuffer take std::vector by value
2020-04-19 21:51:52 -05:00
Sebastian Valle
bcc80d0871
Merge pull request #5243 from lioncash/move2
...
geometry_pipeline: std::move vertex handler in SetVertexHandler()
2020-04-19 21:48:48 -05:00
Sebastian Valle
1469ad339c
Merge pull request #5244 from lioncash/move3
...
gl_shader_manager: std::move std::string where applicable
2020-04-19 21:48:15 -05:00
Sebastian Valle
acf18ce4dd
Merge pull request #5245 from lioncash/guard
...
video_core: Add missing header guards
2020-04-19 21:47:45 -05:00
Sebastian Valle
df92b37bbf
Merge pull request #5248 from lioncash/view
...
post_processing_opengl: Make use of std::string_view with GetPostProcessingShaderCode()
2020-04-19 21:46:48 -05:00
Ben
0f72dd6d85
Merge pull request #5250 from lioncash/build
...
core/memory: Fix #5246
2020-04-19 19:39:32 +02:00
Ben
ca722f1bb1
Merge pull request #5242 from lioncash/noexcept
...
gl_resource_manager: Make use of noexcept on move assignment and move constructors
2020-04-19 16:56:24 +02:00
Ben
362956a69b
Merge pull request #5240 from lioncash/primitive
...
primitive_assembly: Minor changes
2020-04-19 16:55:56 +02:00
Ben
1856752b61
Merge pull request #5203 from Subv/apt_title_allowed
...
Services/APT: Implemented the IsTitleAllowed function.
2020-04-19 16:50:47 +02:00
Ben
08dddbac4c
Merge pull request #5239 from lioncash/fwd
...
video_core: Amend misplaced forward declarations
2020-04-19 12:12:22 +02:00
Ben
182aa1e39d
Merge pull request #5238 from lioncash/return
...
kernel/shared_page: Silence missing return warning in GetInitTime()
2020-04-19 11:31:45 +02:00
Mat M
8014c67faa
service: Resolve trivially avoidable copies ( #5237 )
...
* am/am: Avoid redundant copy in GetProgramInfoFromCia()
We can just use a reference to the title metadata. Avoids copying
several data entries and std::vector instances that don't need to be
copied.
* hle/service: Avoid redundant copying of std::string
GetUserPath() returns the path as a reference, so we can make use of
said reference to avoid making copies.
2020-04-19 09:24:37 +02:00
Mat M
e54b640e0b
nwm/nwm_uds: Avoid copying all elements in channel_data map where applicable ( #5236 )
...
By using a reference here, we avoid copying every single element in the
map, each of which contains a std::share_ptr and std::deque containing
std::vectors.
2020-04-19 07:57:57 +02:00
Lioncash
99eedced4a
core/memory: Fix #5246
...
We can simplify the overload sent to be less confusing (and
error-prone), while also unbreaking 32-bit builds.
2020-04-19 01:56:03 -04:00
Lioncash
623cc926ed
post_processing_opengl: Make use of std::string_view with GetPostProcessingShaderCode()
...
Same behavior, but doesn't result in an allocating copy of the passed in
string. Particularly given the string is only compared against other
existing strings.
2020-04-18 22:27:44 -04:00
Lioncash
e2533e8edb
swrasterizer/proctex: Take regs and state by const reference
...
Avoids unnecessarily copying 512 bytes and 3584 bytes upon every
invocation.
2020-04-18 22:16:05 -04:00
Lioncash
82b55b763c
swrasterizer/proctex: Make CombineAndMap() internally linked
...
This isn't used outside of this source file, so it can be marked
internally linked.
2020-04-18 22:09:36 -04:00
Lioncash
7a3d4d7642
video_core: Add missing header guards
...
Ensures errors related to multiple inclusions never happen.
2020-04-18 22:06:37 -04:00
Lioncash
c72d9b806b
gl_shader_manager: std::move std::string where applicable
...
Prevents unnecessary copies from occurring. In the case of ShaderCache,
we can just remove the parameter, given it's unused.
2020-04-18 21:40:21 -04:00
Lioncash
12d4c835db
geometry_pipeline: std::move vertex handler in SetVertexHandler()
...
std::function is allowed to internally allocate, so this prevents
potential reallocations from occurring, should that case ever happen.
2020-04-18 21:26:47 -04:00
Lioncash
12279b22cc
gl_resource_manager: Make use of noexcept on move assignment and move constructors
...
Several standard constructors generally check if objects can be moved in
a non-throwing manner (usually via std::move_if_noexcept) to preserve
its exception guarantees. This means that if these were used with
certain containers any reallocations internally would cause resource
churn, as copies would be necessary instead of moves.
This way, if they're every used in that manner, the right behavior is
always performed.
2020-04-18 21:12:03 -04:00
Lioncash
2cefd16850
primitive_assembly: Mark constructor explicit
...
Prevents any implicit constructions from occurring, given the
constructor isn't a converting constructor.
2020-04-18 20:42:39 -04:00
Lioncash
59bb84b86c
primitive_assembly: Take triangle_handler by reference
...
Avoids copying the std::function when we don't need to. Particularly
given the std::function isn't actually stored anywhere, so there's no
need to move it.
2020-04-18 20:40:45 -04:00
Lioncash
e38e79e27e
primitive_assembly: Make use of std::array where applicable
...
Same behavior, minus any potential implicit array to pointer decay.
2020-04-18 20:39:07 -04:00
Lioncash
dd2a86bed1
video_core: Amend misplaced forward declarations
...
ShaderProgramManager was placed within the wrong namespace. Backend
simply isn't necessary, so it can be removed.
2020-04-18 20:12:22 -04:00
Lioncash
f7ad004fb0
kernel/shared_page: Silence missing return warning in GetInitTime()
...
We can use UNREACHABLE_MSG to indicate that this path isn't intended to
be reached, as it would indicate a wrong enum value.
2020-04-18 19:48:54 -04:00
Lioncash
7eabcdf1c3
apt/applet_manager: std::move parameter in GlanceParameter()
...
Same behavior, minus a redundant copy.
2020-04-18 19:22:03 -04:00
Lioncash
a6e37b48e9
ipc_helpers: Make PushStaticBuffer take std::vector by value
...
Allows interfaces to move the vector into the calls, avoiding any
reallocations.
Many existing call sites already std::move into the parameter, expecting
a move to occur. Only a few remain where this wasn't already
being done, which we can convert over.
2020-04-18 19:17:11 -04:00
Lioncash
8b22c80ba2
core/memory: Resolve sign conversion in serialize()
...
auto i = 0 deduces to an int, which was being compared with a size_t
within the loop condition.
2020-04-18 18:50:40 -04:00
Hamish Milne
397bd1bb73
Fix MIC_U serialization and timing ( #5223 )
...
* Fix MIC_U serialization and timing
* Better sample rate conversion
* Actually should be every 15 samples
* Reduce rounding errors
2020-04-18 20:52:56 +02:00
Sebastian Valle
75c9784239
Services/APT: Implemented the GetCaptureInfo function. ( #5194 )
...
This one is similar to the ReceiveCaptureBufferInfo function except it doesn't clear the capture buffer, according to 3dbrew.
This function is used by the Home Menu
2020-04-18 20:48:09 +02:00
Hamish Milne
c5a3bf9728
Fix clang format
2020-04-18 15:14:01 +01:00
Hamish Milne
1fb3c9f08c
Fix Address Arbiter serialization
2020-04-18 15:10:54 +01:00
B3n30
922a5f738a
fix typo; updated comment about apples bad driver
2020-04-18 15:55:19 +02:00
B3n30
1e54f27cde
Add flag to disable seperable shaders for osx Intel GPUs. Default is false
2020-04-18 13:37:58 +02:00
Subv
07f49e588e
Services/APT: Implemented the IsTitleAllowed function.
...
The Home Menu uses this to determine whether it is allowed to launch an app (call StartApplication)
This is a no-op for us, we allow any and all titles to be launched. The official APT module holds a list of some forbidden titles like some versions of IronFall and Flipnote Studio 3D.
2020-04-18 00:26:08 -05:00
Pengfei Zhu
8967b403b9
Merge pull request #5196 from Subv/apt_sys_menu_arg
...
Services/APT: Implemented the Store/LoadSysMenuArg functions.
2020-04-18 13:24:10 +08:00
Pengfei Zhu
47829ee095
Merge pull request #5213 from Subv/fs_resource
...
Services/FS: Stubbed GetSdmcArchiveResource and GetNandArchiveResource.
2020-04-18 13:22:21 +08:00
Ben Russell
fb941c56d8
common/file_util: Allow access to files on network shares
...
On Windows, network shares use paths like \\server\share\file which were
being broken by FileUtil::SanitizePath() removing double slashes.
Changed the code in SanitizePath to permit a double-backslash if it
occurs at the start of a filepath (on Windows only).
2020-04-18 04:36:12 +02:00
Ben
c605bb42db
Merge pull request #4908 from hamish-milne/feature/savestates-2
...
Save states
2020-04-17 21:52:51 +02:00