summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-18ring_buffer: Use std::atomic_size_t in a static assertLioncash
Avoids the need to repeat "std::" twice
2018-09-18ring_buffer: Use std::hardware_destructive_interference_size to determine ↵Lioncash
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-18Merge pull request #1348 from ogniK5377/GetImageSizebunnei
Implemented IProfile::GetImageSize
2018-09-18Merge pull request #1319 from lioncash/audiobunnei
audio_core: Replace includes with forward declarations where applicable.
2018-09-18Merge pull request #1351 from ogniK5377/GetDefaultDisplayResolutionbunnei
Implemented GetDefaultDisplayResolution
2018-09-18Merge pull request #1341 from lioncash/dependencybunnei
core/core_cpu: Replace exclusive monitor include with forward declaration
2018-09-18Merge pull request #1346 from lioncash/svcbunnei
svc_wrap: Convert the PARAM macro into a function
2018-09-18Merge pull request #1350 from ogniK5377/Six-Axis-Stubbunnei
Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensor
2018-09-18Merge pull request #1342 from lioncash/truncbunnei
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
2018-09-18Merge pull request #1279 from FernandoS27/csetpbunnei
shader_decompiler: Implemented (Partialy) Control Codes and CSETP
2018-09-18Merge pull request #1299 from FernandoS27/texture-sanatizebunnei
shader_decompiler: Asserts for Texture Instructions
2018-09-18Invalid default value of username in yuzu_cmd (#1334)Philippe Babin
* 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-18Merge pull request #1343 from lioncash/mutexbunnei
kernel/svc: Handle invalid address cases within svcArbitrateLock() and svcArbitrateUnlock()
2018-09-18Merge pull request #1344 from lioncash/armbunnei
arm_interface: Remove ARM11-isms from the CPU interface
2018-09-18Merge pull request #1345 from lioncash/writebunnei
arm_dynarmic: Correct ExclusiveWrite128()'s operation
2018-09-19Added ActivateGestureDavid Marcec
2018-09-19Implemented GetDefaultDisplayResolutionDavid Marcec
2018-09-19Added StopSixAxisSensorDavid Marcec
2018-09-19Stubbed ActivateConsoleSixAxisSensor & StartConsoleSixAxisSensorDavid Marcec
2018-09-19Implemented GetImageSizeDavid Marcec
2018-09-18svc_wrap: Convert the PARAM macro into a functionLioncash
This can just be a regular function, getting rid of the need to also explicitly undef the define at the end of the file. Given FuncReturn() was already converted into a function, it's #undef can also be removed.
2018-09-18arm_dynarmic: Correct ExclusiveWrite128()'s operationLioncash
Previously the second half of the value being written would overwrite the first half. Thankfully this wasn't a bug that was being encountered, as the function is currently unused.
2018-09-18arm_interface: Remove ARM11-isms from the CPU interfaceLioncash
This modifies the CPU interface to more accurately match an AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods don't even make sense to keep around for this interface, as Adv Simd is used, rather than the VFP in the primary execution state. This is essentially a modernization change that should have occurred from the get-go.
2018-09-17kernel/mutex: Replace ResultCode construction for invalid addresses with the ↵Lioncash
named variant We already have a ResultCode constant for the case of an invalid address, so we can just use it instead of re-rolling that ResultCode type.
2018-09-17kernel/svc: Handle error cases for svcArbitrateLock() and svcArbitrateUnlock()Lioncash
The kernel does the equivalent of the following check before proceeding: if (address + 0x8000000000 < 0x7FFFE00000) { return ERR_INVALID_MEMORY_STATE; } which is essentially what our IsKernelVirtualAddress() function does. So we should also be checking for this. The kernel also checks if the given input addresses are 4-byte aligned, however our Mutex::TryAcquire() and Mutex::Release() functions already handle this, so we don't need to add code for this case.
2018-09-17Implemented Internal FlagsFernandoS27
2018-09-17gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A codeLioncash
These are internally stored as u64 values, so using u32 here causes truncation warnings. Instead, we can just use u64 and preserve the bit width.
2018-09-17Merge pull request #1290 from FernandoS27/shader-headerbunnei
Implemented (Partialy) Shader Header
2018-09-17core/core_cpu: Replace exclusive monitor include with forward declarationLioncash
We don't need to include this as a dependency within the header. A regular forward declaration will suffice here.
2018-09-17Implemented I2I.CC on the NEU control code, used by SMOFernandoS27
2018-09-17Implemented CSETPFernandoS27
2018-09-17Implemented Control CodesFernandoS27
2018-09-17time_stretch: Remove unused <array> includeLioncash
This isn't used within this header and isn't necessary.
2018-09-17stream: Replace includes with forward declarations where applicableLioncash
Avoids propagating includes in headers where it's not necessary to do so.
2018-09-17audio_renderer: Replace includes with forward declarations where applicableLioncash
Avoids including unnecessary headers within the audio_renderer.h header, lessening the likelihood of needing to rebuild source files including this header if they ever change. Given std::vector allows forward declaring contained types, we can move VoiceState to the cpp file and hide the implementation entirely.
2018-09-17Added asserts for texture misc modes to texture instructionsFernandoS27
2018-09-17Added texture misc modes to texture instructionsFernandoS27
2018-09-17Merge pull request #1311 from FernandoS27/fast-swizzlebunnei
Optimized Texture Swizzling
2018-09-17Merge pull request #1312 from lioncash/fwdbunnei
service/vi: Replace includes with forward declarations where applicable
2018-09-17Merge pull request #1313 from lioncash/errorbunnei
kernel/errors: Amend error code for ERR_NOT_FOUND
2018-09-17Merge pull request #1314 from lioncash/castbunnei
audio_core/time_stretch: Silence truncation warnings in Process()
2018-09-17Merge pull request #1316 from lioncash/shadowbunnei
gl_shader_decompiler: Get rid of variable shadowing within LEA instructions
2018-09-17Merge pull request #1318 from lioncash/errors-smbunnei
services/sm: Amend error code constants
2018-09-17Merge pull request #1321 from lioncash/audio-shadowbunnei
cubeb_sink: Get rid of variable shadowing within CubebSink's constructor
2018-09-17Merge pull request #1315 from lioncash/sizebunnei
kernel/svc: Handle a few error cases within memory-related functions
2018-09-17Merge pull request #1320 from lioncash/namebunnei
cubeb_sink: Correct context name in ListCubebSinkDevices()
2018-09-17Merge pull request #1328 from FearlessTobi/port-4192bunnei
Port #4192 from Citra: "svc: change unknown to thread in CreateThread"
2018-09-17Merge pull request #1327 from FearlessTobi/port-4171bunnei
Port #4171 from Citra: "Tests: Remove glad test OS X work-around"
2018-09-17Merge pull request #1326 from FearlessTobi/port-4182bunnei
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-17Merge pull request #1329 from raven02/bgr5a1ubunnei
Implement RenderTargetFormat::BGR5A1_UNORM