bunnei
22c34e0db5
Merge pull request #1352 from lioncash/sharing
...
ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing
2018-09-20 23:29:10 -04:00
bunnei
d54762826d
Merge pull request #1373 from ogniK5377/revert-nifm
...
Revert GetRequestState
2018-09-20 22:19:58 -04:00
David Marcec
1ba18bcfb2
Revert GetRequestState
...
Even though setting this value to 3 is more correct. We break more games than we fix due to missing implementations. We should keep this as 0 for the time being
2018-09-21 12:15:49 +10:00
Mat M
efa7c1e22d
Merge pull request #1370 from Hedges/GDBClean
...
Correct endianness of BRK
2018-09-20 17:25:56 -04:00
Mat M
f716c9b005
Merge pull request #1362 from MerryMage/dynarmic
...
externals: Update dynarmic to 171d116
2018-09-20 17:22:42 -04:00
Jarek Syrylak
688c593953
Correct endianness of BKPT
2018-09-20 22:03:57 +01:00
MerryMage
75cd30a961
arm_dynarmic: Halt when BRK encountered
2018-09-20 19:12:42 +01:00
bunnei
a9a67c04ec
Merge pull request #1358 from DarkLordZach/temp-storage
...
savedata_factory: Add TemporaryStorage SaveDataType
2018-09-20 10:13:38 -04:00
bunnei
3e906afc3e
Merge pull request #1363 from lioncash/control
...
control_metadata: Move language name array definition to the cpp file
2018-09-20 10:13:23 -04:00
bunnei
da193987d7
Merge pull request #1361 from lioncash/nax
...
xts_archive/nax: Minor interface changes
2018-09-20 10:13:10 -04:00
bunnei
dba7c96b6d
Merge pull request #1366 from ogniK5377/splat-fix
...
Implemented NTC & IEnsureNetworkClockAvailabilityService
2018-09-20 10:12:35 -04:00
David Marcec
8fb100668c
Removed unneeded event clear
2018-09-20 15:16:08 +10:00
David Marcec
98faeb418b
Implemented NTC & IEnsureNetworkClockAvailabilityService
...
Needed because of the recent nim fixes
2018-09-20 15:14:07 +10:00
Lioncash
b834b5e9d3
control_metadata: Remove unnecessary else within GetLanguageEntry()
...
There's no need to indent the code here, given the if case contains a
return statement at the end of it.
2018-09-19 19:02:06 -04:00
Lioncash
6951bee3bf
control_metadata: Move language name array definition to the cpp file
...
This was used in two different translation units
(deconstructed_rom_directory and patch_manager). This means we'd be
pointlessly duplicating the whole array twice due to it being defined
within the header.
2018-09-19 18:57:26 -04:00
MerryMage
f4cb07d38a
arm_dynarmic: Support BKPT instruction
2018-09-19 21:00:38 +01:00
MerryMage
9da8f32434
externals: Update dynarmic to 171d116
...
171d116 A64: Implement SCVTF, UCVTF (vector, fixed-point), scalar variant
f221bb0 emit_x64_floating_point: Reduce fallback LUT code in EmitFPToFixed
eb123e2 A64: Implement FCVTZS, FCVTZU, UCVTF, SCVTF (vector, fixed-point), vector variant
487d37a A64: Implement UQSHL's vector immediate and register variants
f698933 ir: Add opcodes for unsigned saturating left shifts
7148e66 A64/translate/impl: Make signatures consistent for unimplemented by-element SIMD variants
fdde4ca A64: Implement BRK
b1490db A64/imm: Add full range of comparison operators to Imm template
1ec40ef IR: Add fbits argument to FPVectorFrom{Signed,Unsigned}Fixed
d6d5e98 A64: Implement SCVTF, UCVTF (scalar, fixed-point)
6513595 opcodes.inc: Align columns to a tabstop of 4
6b0d2b5 IR: Add fbits argument to FixedToFP-related opcodes
c4b3831 A64: Implement SQSHL's vector immediate variant
e0d8d2d A64: Implement SQSHL's vector register variant
5327625 ir: Add opcodes for left signed saturated shifts
9705252 branch: Make variables const where applicable
650946e move_wide: Make variables const where applicable
62b3a6d load_store_register_unprivileged: Make variables const where applicable
3add1c7 load_store_register_immediate: Place conditional bodies on their own line
2fc4088 load_store_load_literal: Make variables const where applicable
b2c1462 data_processing_logical: Move datasize declarations after early-exit conditionals
028028f data_processing_conditional_select: Make variables const where applicable
c66042d data_processing_addsub: Move datasize declarations after early-exit conditionals
6bc546e data_processing_bitfield: Move datasize variables after early-exit conditionals
2aad5fa A64: Implement CLS's vector variant
6c877ff emit_x64_vector: Make EmitVectorUnsignedSaturatedAccumulateSigned() internally linked
4b5926d perf_map: Use std::string_view instead of std::string for PerfMapRegister()
7445947 A64: Implement SQRDMULH (vector), vector variant
03b80f2 A64: Implement SQDMULL (vector), vector variant
4a2c596 IR: Add VectorSignedSaturatedDoublingMultiplyLong
59dc33e emit_x64_vector: Changes to VectorSignedSaturatedDoublingMultiply
bbaebeb IR: Implement Vector{Signed,Unsigned}Multiply{16,32}
baac5a8 backend_x64/a64_interface: Re-enable the constant folding pass
e78ca19 emit_x64_vector_floating_point: Hardware FMA implementation for RSqrtStepFused
8a5ae9a emit_x64_vector_floating_point: Hardware FMA implementation of FPVectorRecipStepFused
39818f9 emit_x64_floating_point: Hardware FMA implementation of FPRSqrtStepFused
3d0a0b4 emit_x64_floating_point: Hardware FMA implementation of FPRecipStepFused{32,64}
2293dff emit_x64_vector: SSE implementation of VectorSignedSaturatedAccumulateUnsigned{8,16,32}
2047683 emit_x64_vector: Correct static asserts for < 64-bit type checks in saturated accumulate fallbacks
55e9e40 emit_x64_vector: EmitVectorSignedSaturatedAccumulateUnsigned64: SSE implementation
1076651 emit_x64_vector: Simplify fpsr_qc related code
4039030 A64: Implement CLZ's vector variant
0bb908f ir: Add opcodes for vector CLZ operations
3b13259 A64/translate: VectorZeroUpper for V(64) stores
1931d44 simd_two_register_misc: FNEG (vector) with Q == 0 had dirty upper
a0790f0 emit_x64_vector: Remove unnecessary [[maybe_unused]] attributes
b0e1eb5 A64: Implement USQADD's scalar and vector variants
28424c7 ir: Add opcodes form unsigned saturated accumulations of signed values
9923ea0 A64: Implement SUQADD's scalar and vector variants
4c0adbb ir: Add opcodes for signed saturated accumulations of unsigned values
799bfed A64: Implement SMLAL{2}, SMLSL{2}, UMLAL{2}, and UMLSL{2}'s vector by-element variants
94451ec A64: Implement UMULL{2}'s vector by-element variant
45867de A64: Implement SMULL{2}'s vector by-element variant
0235793 ir/value: Replace includes with forward declarations
450f721 ir/cond: Migrate to C++17 nested namespace specifiers
e649988 CMakeLists: Add missing cond.h header to file listing
d20e769 A64: Implement URSQRTE
4f3bde5 ir: Add opcodes for performing unsigned reciprocal square root estimates
cfeeaec A64: Implement URECPE
622b60e ir: Add opcodes for unsigned reciprocal estimate
d17599a Update Xbyak to 5.71
f7c26e9 Squashed 'externals/xbyak/' changes from 671fc805..1de435ed
8782b69 travis: Make macOS build with Xcode 9.4.1
b575b23 A64: Implement SQNEG's scalar and vector variant
06062a9 A64: Add opcodes for signed saturating negations
1c40579 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtract()
e335050 emit_x64_vector: Simplify "position == 0" case for EmitVectorExtractLower()
8b13421 A64: Implement SQDMULH's by-element scalar variant
9122a6e A64: Implement SQDMULH's by-element vector variant
176e60e backend/x64: Do not clear fast_dispatch_table if not enabled
2018-09-19 20:31:39 +01:00
Lioncash
e663648fd1
xts_archive: Remove unused variables from CalculateHMAC256()
...
These variables aren't used, which still has an impact, as std::vector
cannot be optimized away by the compiler (it's constructor and
destructor are both non-trivial), so this was just wasting memory.
2018-09-19 14:23:13 -04:00
Lioncash
5cd5c9fe32
xts_archive: Make AsNCA() return a std::unique_ptr instead of a std::shared_ptr
...
std::shared_ptr isn't strictly necessary here and is only ever used in
contexts where the object doesn't depend on being shared. This also
makes the interface more flexible, as it's possible to create a
std::shared_ptr from a std::unique_ptr (std::shared_ptr has a
constructor that accepts a std::unique_ptr), but not the other way
around.
2018-09-19 14:22:37 -04:00
Lioncash
193d5f2656
nax: Avoid re-parsing NAX data with GetFileType()
...
An instance of the NAX apploader already has an existing NAX instance in
memory. Calling directly into IdentifyType() directly would re-parse the
whole file again into yet another NAX instance, only to toss it away
again.
This gets rid of unnecessary/redundant file parsing and allocations.
2018-09-19 14:22:37 -04:00
Lioncash
65837fbb4d
nax: Avoid unnecessary calls to AsNCA() in IdentifyType()
...
AsNCA() allocates an NCA instance every time it's called. In the current
manner it's used, it's quite inefficient as it's making a redundant
allocation.
We can just amend the order of the conditionals to make it easier to
just call it once.
2018-09-19 14:22:37 -04:00
Lioncash
82cdea66a6
xts_archive: Ensure NAX's type member is always initialized
...
Ensures that the member always has a deterministic value.
2018-09-19 14:22:37 -04:00
Lioncash
8a2474cb74
xts_archive: Amend initializer order of NAX's constructor
...
Orders the initializer list in the same order the members would be
initialized. Avoids compiler warnings.
2018-09-19 14:22:30 -04:00
David
8ba3912191
Reworked incorrect nifm stubs ( #1355 )
...
* Reworked incorrect nifm stubs
Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do.
Any 0 client id is considered an invalid client id.
GetRequestState 0 is considered invalid.
* Fixups for nifm
2018-09-19 11:59:01 -04:00
bunnei
6f4686b126
Merge pull request #1356 from degasus/hotfix
...
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
2018-09-19 11:58:22 -04:00
bunnei
22daf34b1f
Merge pull request #1359 from ogniK5377/nes
...
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
2018-09-19 10:01:36 -04:00
bunnei
1e286d3735
Merge pull request #1353 from ogniK5377/remove-MakeBuilder
...
Removed the use of rp.MakeBuilder in the yuzu codebase
2018-09-19 10:00:23 -04:00
David Marcec
1e94774004
Fixed GetAccountId stub, Added error code for OpenDirectory and added ActivateNpadWithRevision
...
With these, `Nintendo Entertainment System - Nintendo Switch Online` loads
2018-09-19 23:25:00 +10:00
Zach Hilman
29914bf27d
savedata_factory: Add TemporaryStorage SaveDataType
...
Seems to be used by NSO NES Emulator
2018-09-19 09:06:22 -04:00
Markus Wick
0c9ecce8ea
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
...
We uploaded the wrong data before. So the offset on the host GPU pointer may work for the first vertices, the last ones run out bounds.
Let's just offset the upload instead.
2018-09-19 09:22:30 +02:00
David Marcec
43f025c6a9
Removed MakeBuilder as it's not needed anymore
2018-09-19 15:13:56 +10:00
David Marcec
bb6aa7797f
Removed the use of rp.MakeBuilder
...
Due to keeping the code style consistent in the yuzu codebase. `rb = rp.MakeBuilder(...)` was replaced with `rb{ctx, ...}`
2018-09-19 15:09:59 +10:00
Lioncash
e851c42da5
ring_buffer: Use std::atomic_size_t in a static assert
...
Avoids the need to repeat "std::" twice
2018-09-18 23:36:04 -04:00
Lioncash
ca235e1996
ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing
...
MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html )
which defines two new constants within the <new> header, std::hardware_destructive_interference_size
and std::hardware_constructive_interference_size.
std::hardware_destructive_interference_size defines the minimum
recommended offset between two concurrently-accessed objects to avoid
performance degradation due to contention introduced by the
implementation (with the lower-bound being at least alignof(max_align_t)).
In other words, the minimum offset between objects necessary to avoid
false-sharing.
std::hardware_constructive_interference_size on the other hand defines
the maximum recommended size of contiguous memory occupied by two
objects accessed wth temporal locality by concurrent threads (also
defined to be at least alignof(max_align_t)). In other words the maximum
size to promote true-sharing.
So we can simply use this facility to determine the ideal alignment
size. Unfortunately, only MSVC supports this right now, so we need to
enclose it within an ifdef for the time being.
2018-09-18 23:35:57 -04:00
bunnei
92e114c8b3
Merge pull request #1348 from ogniK5377/GetImageSize
...
Implemented IProfile::GetImageSize
2018-09-18 22:15:18 -04:00
bunnei
5da7237b0c
Merge pull request #1319 from lioncash/audio
...
audio_core: Replace includes with forward declarations where applicable.
2018-09-18 22:14:26 -04:00
bunnei
6bba87d4d7
Merge pull request #1351 from ogniK5377/GetDefaultDisplayResolution
...
Implemented GetDefaultDisplayResolution
2018-09-18 22:13:28 -04:00
bunnei
01ff4019fa
Merge pull request #1341 from lioncash/dependency
...
core/core_cpu: Replace exclusive monitor include with forward declaration
2018-09-18 22:13:05 -04:00
bunnei
7edb82f88c
Merge pull request #1346 from lioncash/svc
...
svc_wrap: Convert the PARAM macro into a function
2018-09-18 22:12:47 -04:00
bunnei
df81da78eb
Merge pull request #1350 from ogniK5377/Six-Axis-Stub
...
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-18 22:12:12 -04:00
bunnei
085abba996
Merge pull request #1342 from lioncash/trunc
...
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
2018-09-18 22:11:48 -04:00
bunnei
eb364f6202
Merge pull request #1279 from FernandoS27/csetp
...
shader_decompiler: Implemented (Partialy) Control Codes and CSETP
2018-09-18 22:10:48 -04:00
bunnei
fc48e36e7a
Merge pull request #1299 from FernandoS27/texture-sanatize
...
shader_decompiler: Asserts for Texture Instructions
2018-09-18 22:10:09 -04:00
Philippe Babin
c37dd9deeb
Invalid default value of username in yuzu_cmd ( #1334 )
...
* Fix bug where default username value for yuzu_cmd create an userprofile with uninitialize data as username
* Fix format
* Apply code review changes
* Remove nullptr check
2018-09-18 19:58:28 -04:00
bunnei
b935ec2c6c
Merge pull request #1343 from lioncash/mutex
...
kernel/svc: Handle invalid address cases within svcArbitrateLock() and svcArbitrateUnlock()
2018-09-18 14:25:00 -04:00
bunnei
73328a5a27
Merge pull request #1344 from lioncash/arm
...
arm_interface: Remove ARM11-isms from the CPU interface
2018-09-18 14:24:20 -04:00
bunnei
4c7e4401ac
Merge pull request #1345 from lioncash/write
...
arm_dynarmic: Correct ExclusiveWrite128()'s operation
2018-09-18 14:23:57 -04:00
David Marcec
75450d907c
Added ActivateGesture
2018-09-19 01:13:58 +10:00
David Marcec
73da0648d2
Implemented GetDefaultDisplayResolution
2018-09-19 01:10:16 +10:00
David Marcec
beac58fa23
Added StopSixAxisSensor
2018-09-19 00:56:02 +10:00