Commit graph

7842 commits

Author SHA1 Message Date
Lioncash f92bb43138 savedata_factory: Make SaveDataDescriptor's DebugInfo() function a const member function
This function doesn't alter class state.
2018-07-18 23:50:07 -04:00
Lioncash a9b596c444 partition_filesystem: Ensure all class members of PartitionFilesystem are initialized
Previously is_hfs and pfs_header members wouldn't be initialized in the
constructor, as they were stored in locals instead. This would result in
things like GetName() and PrintDebugInfo() behaving incorrectly.

While we're at it, initialize the members to deterministic values as
well, in case loading ever fails.
2018-07-18 23:45:22 -04:00
bunnei 9a4fa973c8 gl_state: Temporarily disable culling and depth test. 2018-07-18 23:21:43 -04:00
Lioncash 9eb43dc910 content_archive: Make IsDirectoryExeFS() take a shared_ptr as a const reference
There's no need to take this by value when it's possible to avoid
unnecessary copies entirely like this.
2018-07-18 23:19:28 -04:00
Lioncash 701bdfd753 content_archive: Add missing standard includes 2018-07-18 23:18:59 -04:00
Lioncash bff53f234d content_archive: std::move VirtualFile in NCA's constructor
Gets rid of unnecessary atomic reference count incrementing and
decrementing.
2018-07-18 23:13:25 -04:00
Lioncash 47858aed98 vfs: Deduplicate accumulation code in VfsDirectory's GetSize()
We can just use a generic lambda to avoid writing the same thing twice.
2018-07-18 23:03:27 -04:00
bunnei f6f77b403e Merge pull request #691 from lioncash/guard
service/prepo: Add missing header guard
2018-07-18 19:46:14 -07:00
bunnei 35b7d6ec37 Merge pull request #686 from lioncash/fmt
externals: update fmt to version 5.1.0
2018-07-18 19:44:44 -07:00
Lioncash d0f53d27e0 loader/nro: Resolve sign mismatch warnings 2018-07-18 22:27:22 -04:00
Lioncash b20bac710d loader/nso: Remove unnecessary vector resizes
We can just initialize these vectors directly via their constructor.
2018-07-18 22:26:41 -04:00
Lioncash 0a48b45954 loader/nso: Resolve sign mismatch warnings 2018-07-18 22:26:37 -04:00
bunnei 6f120be510 Merge pull request #688 from lioncash/comma
vm_manager: Add missing commas to string literal array elements in GetMemoryStateName()
2018-07-18 18:59:09 -07:00
bunnei 8387313266 Merge pull request #693 from lioncash/unused
core/memory: Remove unused function GetSpecialHandlers() and an unused variable in ZeroBlock()
2018-07-18 18:57:13 -07:00
bunnei 5ab4dc3e1e Merge pull request #687 from lioncash/instance
core: Don't construct instance of Core::System, just to access its live instance
2018-07-18 18:55:58 -07:00
bunnei c2109ba58e Merge pull request #680 from bunnei/fix-swizz
decoders: Fix calc of swizzle image_width_in_gobs.
2018-07-18 18:55:37 -07:00
bunnei 55ef6c6686 Merge pull request #684 from lioncash/nonmember
game_list: Make ContainsAllWords an internally linked non-member function
2018-07-18 18:55:00 -07:00
bunnei 47a305ed54 decoders: Fix calc of swizzle image_width_in_gobs. 2018-07-18 21:42:52 -04:00
Zach Hilman 82150bd5c1 Virtual Filesystem 2: Electric Boogaloo (#676)
* Virtual Filesystem

* Fix delete bug and documentate

* Review fixes + other stuff

* Fix puyo regression
2018-07-18 18:07:11 -07:00
Lioncash b7e7ddbdfc core/memory: Remove unused function GetSpecialHandlers() and an unused variable in ZeroBlock() 2018-07-18 19:55:46 -04:00
Lioncash 76a9fc2f85 address_arbiter: Correct assignment within an assertion statement in WakeThreads()
This was introduced within d12af72c8f, and
considering there's no comment indicating that this is intentional, this
is very likely a bug.
2018-07-18 19:46:46 -04:00
Lioncash 26e188d074 service/prepo: Add missing header guard 2018-07-18 19:43:28 -04:00
Lioncash 81bf614695 vm_manager: Add missing commas to string literal array elements in GetMemoryStateName()
Without these, this would perform concatenation, which is definitely not
what we want here.
2018-07-18 19:37:19 -04:00
Lioncash b1b1c60009 core/memory, core/hle/kernel: Use std::move where applicable
Avoids pointless copies
2018-07-18 19:34:31 -04:00
Lioncash 74185c108e core: Make System's default constructor private
This makes it a compilation error to construct additional instances of
the System class directly, preventing accidental wasteful constructions
over and over.
2018-07-18 18:18:27 -04:00
Lioncash e72928762f core: Don't construct instance of Core::System, just to access its live instance
This would result in a lot of allocations and related object
construction, just to toss it all away immediately after the call.

These are definitely not intentional, and it was intended that all of
these should have been accessing the static function GetInstance()
through the name itself, not constructed instances.
2018-07-18 18:18:27 -04:00
Lioncash d284e38814 externals: update fmt to version 5.1.0
Previously, we were on 4.1.0, which was a major version behind.
2018-07-18 17:46:17 -04:00
Lioncash 2b547cda84 game_list: Make ContainsAllWords an internally linked non-member function
This function actually depends on no internal class state, so it doesn't
even need to be a part of the class interface.
2018-07-18 16:52:14 -04:00
Zach Hilman 03480ff436 Fill in more fields in TouchScreenEntryTouch 2018-07-18 16:33:11 -04:00
Zach Hilman 25becb080e Single touch support 2018-07-18 14:06:33 -04:00
bunnei 21fe5fa391 Merge pull request #681 from lioncash/const
game_list: Make containsAllWords a const member function
2018-07-18 10:02:58 -07:00
bunnei 988d752729 Merge pull request #682 from lioncash/telemetry
Telemetry: Minor changes
2018-07-18 10:02:46 -07:00
bunnei 2787ea8c3a Merge pull request #679 from lioncash/ctor
game_list: Remove unnecessary QString initialization in KeyReleaseEater
2018-07-17 22:18:39 -07:00
bunnei 8a6b2b17de Merge pull request #678 from lioncash/astc
astc: Minor changes
2018-07-17 22:06:20 -07:00
Lioncash 4fee2216fc telemetry: Remove unnecessary Field constructor
We can just take the value parameter by value which allows both moving
into it, and copies at the same time, depending on the calling code.
2018-07-18 00:32:35 -04:00
Lioncash 2df4be6f25 telemetry: Make operator== and operator!= const member functions of Field
These operators don't modify internal class state, so they can be made
const member functions. While we're at it, drop the unnecessary inline
keywords. Member functions that are defined in the class declaration are
already inline by default.
2018-07-18 00:28:47 -04:00
Lioncash c66555a28f telemetry: Default copy/move constructors and assignment operators
This provides the equivalent behavior, but without as much boilerplate.
While we're at it, explicitly default the move constructor, since we
have a move-assignment operator defined.
2018-07-18 00:25:12 -04:00
Lioncash 80b03cb214 game_list: Upper-case containsAllWords to ContainsAllWords()
This makes it consistent with most of the other private utility
functions.
2018-07-18 00:15:48 -04:00
Lioncash 75eba5fdb9 game_list: Make containsAllWords a const member function
This doesn't actually modify the internal class state, so it can be a
const member function. While we're at it, amend the function to take
its arguments by const reference.
2018-07-18 00:13:04 -04:00
Lioncash 308205980e game_list: Remove unnecessary QString initialization in KeyReleaseEater
QString initializes to an empty string by default, so this does nothing
meaningful. While we're at it, use a constructor initializer list for
initializing the gamelist member variable.
2018-07-18 00:07:47 -04:00
Lioncash e0c31daa57 astc: Initialize vector size directly in Decompress
There's no need to perform a separate resize.
2018-07-17 23:58:14 -04:00
Lioncash fa13cedc7a astc: Mark functions as internally linked where applicable 2018-07-17 23:58:14 -04:00
Lioncash 03f1f17552 astc: const-correctness changes where applicable
A few member functions didn't actually modify class state, so these can
be amended as necessary.
2018-07-17 23:58:14 -04:00
Lioncash 62eb3b3ede astc: Delete Bits' copy contstructor and assignment operator
This also potentially avoids warnings, considering the copy assignment
operator is supposed to have a return value.
2018-07-17 23:58:14 -04:00
Lioncash 6b32ef1d9e astc: In-class initialize member variables where appropriate 2018-07-17 23:58:10 -04:00
bunnei 6143bfd58a settings: Turn docked mode off by default. 2018-07-17 22:52:25 -04:00
bunnei ad40c27409 vi: Change TransactionId::CancelBuffer to LOG_CRITICAL. 2018-07-17 22:47:35 -04:00
bunnei 3ff59a95d5 vi: Fix size for ListDisplays default display. 2018-07-17 22:18:14 -04:00
bunnei 42b866afc5 vi: Partially implement buffer crop parameters. 2018-07-17 20:13:17 -04:00
bunnei 8931dadcf7 Merge pull request #675 from Subv/stencil
GPU: Added register definitions for the stencil parameters.
2018-07-17 15:53:00 -07:00
Subv 8335e656bb GPU: Added register definitions for the stencil parameters. 2018-07-17 15:00:21 -05:00
Zach Hilman 753d85fb0c General Filesystem and Save Data Fixes (#670) 2018-07-17 12:42:15 -07:00
bunnei 5dde645197 Merge pull request #671 from MerryMage/clear-exclusive-state
scheduler: Clear exclusive state when switching contexts
2018-07-17 07:33:32 -07:00
bunnei 430c52b249 Merge pull request #672 from SciresM/to_address_fix
svc:: Fix bug in svcWaitForAddress
2018-07-17 07:32:42 -07:00
bunnei df66fadc12 nvflinger: Fix for BufferQueue event handling. 2018-07-17 00:26:23 -04:00
Michael Scire 045893374f Kernel/Arbiter: Fix bug in WaitIfLessThan 2018-07-16 20:55:53 -06:00
MerryMage bd97579188 scheduler: Clear exclusive state when switching contexts 2018-07-16 11:24:00 +01:00
bunnei 0677b5e281 Merge pull request #668 from jroweboy/controller-lag
HID: Update controllers less often
2018-07-15 13:06:28 -07:00
bunnei f804c21cc8 Merge pull request #664 from jroweboy/logging-stuff
Minor logging improvements
2018-07-15 12:58:52 -07:00
James Rowe 12e7a3065a HID: Update controllers less often 2018-07-15 13:47:41 -06:00
James Rowe 9e5bc967de Logging: Dump all logs in the queue on close in debug mode 2018-07-15 13:02:09 -06:00
bunnei efc5bbb9ab gl_rasterizer_cache: Implement texture format G8R8. 2018-07-15 01:33:42 -04:00
bunnei bba5e84efc Merge pull request #665 from bunnei/fix-z24-s8
gl_rasterizer_cache: Fix incorrect offset in ConvertS8Z24ToZ24S8.
2018-07-14 22:18:55 -07:00
bunnei 50037e0c4f gl_rasterizer_cache: Fix incorrect offset in ConvertS8Z24ToZ24S8. 2018-07-15 00:02:05 -04:00
bunnei f5feb89c86 gl_rasterizer_cache: Implement depth format Z16_UNORM. 2018-07-14 23:43:28 -04:00
bunnei c503bd852d Merge pull request #598 from bunnei/makedonecurrent
OpenGL: Use MakeCurrent/DoneCurrent for multithreaded rendering.
2018-07-14 20:18:11 -07:00
bunnei 062a6e2f5a Merge pull request #663 from Subv/bsd
Services/BSD: Corrected the return for StartMonitoring according to SwIPC
2018-07-14 19:40:34 -07:00
bunnei d86d300744 Merge pull request #662 from Subv/delete_file
FileSys: Append the requested path to the filesystem base path in DeleteFile
2018-07-14 13:11:58 -07:00
James Rowe ada0d38ca9 Logging: Don't lock the queue for the duration of the write 2018-07-14 11:57:13 -06:00
Subv a4f321da14 Services/BSD: Corrected the return for StartMonitoring according to SwIPC. 2018-07-14 12:34:07 -05:00
Subv d4a639a08e FileSys: Append the requested path to the filesystem base path in DeleteFile.
We were trying to delete things in the current directory instead of the actual filesystem directory. This may fix some savedata issues in some games.
2018-07-14 10:57:22 -05:00
David Marcec 66bd4de380 No need to use ASSERT_MSG with an empty message 2018-07-14 23:13:16 +10:00
bunnei 91e048cce7 OpenGL: Use MakeCurrent/DoneCurrent for multithreaded rendering. 2018-07-14 02:50:35 -04:00
Subv 021731e42a GPU: Always enable the depth write when clearing the depth buffer.
The GPU ignores that register when clearing, but OpenGL obeys the glDepthMask parameter, so we set the depth mask to GL_TRUE when clearing the depth buffer. It will be restored to the correct value automatically on the next draw call.
2018-07-14 00:52:23 -05:00
bunnei 8e9285f679 Merge pull request #657 from bunnei/dual-vs
gl_shader_gen: Implement dual vertex shader mode.
2018-07-13 07:08:54 -07:00
Hedges d8d8be6ac0 More improvements to GDBStub (#653)
* More improvements to GDBStub
- Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS.
- List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names.
- Initial support for floating point registers.

* Tidy up as requested in PR feedback

* Tidy up as requested in PR feedback
2018-07-12 20:22:59 -07:00
bunnei e904e1f785 gl_rasterizer: Fix check for if a shader stage is enabled. 2018-07-12 22:57:57 -04:00
bunnei 6e04dd24fe gl_shader_gen: Implement dual vertex shader mode.
- When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage.
2018-07-12 22:25:36 -04:00
bunnei 30b352bfc4 Merge pull request #656 from ogniK5377/audren-mem-init
Initialized memory for RequestUpdateAudioRenderer and fixed MemoryPoolSection to be more accurate
2018-07-12 19:12:47 -07:00
bunnei 7fa10a188d Merge pull request #655 from bunnei/pred-lt-nan
gl_shader_decompiler: Implement PredCondition::LessThanWithNan.
2018-07-12 18:59:15 -07:00
David Marcec 0b2adb2672 We only need to alert for memory pool changes 2018-07-13 10:36:28 +10:00
David Marcec 761d44eea4 initialized voice status and unused sizes in the update data header 2018-07-13 10:35:44 +10:00
bunnei 50e6ef98e2 gl_shader_decompiler: Implement PredCondition::LessThanWithNan. 2018-07-12 20:04:35 -04:00
bunnei fef7eb92de gl_shader_decompiler: Use FlowCondition field in EXIT instruction. 2018-07-12 20:00:37 -04:00
Sebastian Valle d1bd94351c Merge pull request #652 from Subv/fadd32i
GPU: Implement the FADD32I shader instruction.
2018-07-12 17:36:51 -05:00
bunnei ba0665c397 Merge pull request #651 from Subv/ffma_decode
GPU: Corrected the decoding of FFMA for immediate operands.
2018-07-12 12:42:58 -07:00
Subv 555dd2f793 GPU: Implement the FADD32I shader instruction. 2018-07-12 12:00:31 -05:00
Tobias 7bf3ea7dcc Port #3335 and #3373 from Citra: "Small SDL fixes" and "Print the actual error preventing SDL from working" (#637)
* Port #3335 and #3373 from Citra

* Fixup: Use the new logging placeholders
2018-07-12 09:26:27 -07:00
Subv d87962405b GPU: Corrected the decoding of FFMA for immediate operands. 2018-07-12 10:15:48 -05:00
bunnei 9ce122e047 Merge pull request #648 from ogniK5377/no-net
Let games/application know that we're offline
2018-07-12 06:44:15 -07:00
bunnei 855a9e2fdc Merge pull request #649 from ogniK5377/audout-auto
Audout "Auto" functions
2018-07-12 06:43:37 -07:00
James Rowe ca04901b0f yuzu - Fix duplicate logs 2018-07-12 01:11:43 -06:00
James Rowe bed23a6e25 yuzu-cmd Apply the filter string from settings 2018-07-12 01:09:03 -06:00
David Marcec 7d5403fc89 Audout "Auto" functions
Audout autos are identical to their counterpart except for the buffer type which yuzu already handles for us.
2018-07-12 16:57:31 +10:00
David Marcec 3fcb7978f0 Added IsWirelessCommunicationEnabled, IsEthernetCommunicationEnabled, IsAnyInternetRequestAccepted
Since we have no socket implementation we should be returning 0 to indicate we're currently offline.
2018-07-12 16:40:17 +10:00
bunnei c2ade32fad Merge pull request #559 from Subv/mount_savedata
Services/FS: Return the correct error code when trying to mount a nonexistent savedata.
2018-07-11 20:21:52 -07:00
bunnei d613d8ee52 hid: Fix timestamps and controller type.
- This fixes user input in SMO.
2018-07-10 22:55:13 -04:00
bunnei 094bac5413 Merge pull request #644 from ogniK5377/getconfig-err
NvOsGetConfigU32 production impl
2018-07-10 15:44:23 -07:00
bunnei 9ae6aa8a2e Merge pull request #633 from FearlessTobi/port-defines
Port #3579 from Citra: Clean up architecture-specific defines
2018-07-10 09:12:52 -07:00
bunnei e73ad0c7bb Merge pull request #642 from bunnei/create-save-dir
savedata_factory: Always create a save directory for games.
2018-07-10 09:09:58 -07:00
David Marcec bc85c649c1 NvOsGetConfigU32 production impl
Settings are only  used when RMOS_SET_PRODUCTION_MODE is set to 0.
If production mode is set, the error code 0x30006 is returned instead
2018-07-10 14:10:17 +10:00
bunnei 9816ce67a5 Merge pull request #635 from FearlessTobi/port-crashfix
Port #3474 from Citra: Do not crash on unimplemented code in debug build
2018-07-09 17:08:25 -07:00
bunnei 082fb5a8a8 Merge pull request #634 from FearlessTobi/port-viewport-fix
Port #3505 from Citra: Fix QGLWidget viewport resize on macOS
2018-07-09 17:07:30 -07:00
bunnei c6703bb009 Merge pull request #640 from bunnei/flip-tris-viewport
gl_rasterizer: Flip triangles when regs.viewport_transform[0].scale_y is negative.
2018-07-09 14:32:35 -07:00
bunnei 99a359777c savedata_factory: Always create a save directory for games. 2018-07-08 17:05:13 -04:00
bunnei 8924486715 nvhost_ctrl: Fix NvOsGetConfigU32 for Snipper Clips. 2018-07-08 17:01:46 -04:00
bunnei 9d9375e109 gl_rasterizer: Flip triangles when regs.viewport_transform[0].scale_y is negative.
- Fixes a regression with Binding of Isaac.
2018-07-08 16:16:24 -04:00
bunnei fb664990a3 Merge pull request #625 from Subv/imnmx
GPU: Implemented the IMNMX shader instruction.
2018-07-07 19:33:50 -07:00
bunnei 709d855436 Merge pull request #627 from Subv/bc7u
GPU: Implemented the BC7U texture format.
2018-07-07 19:33:18 -07:00
bunnei 0c22a8d514 Revert "Virtual Filesystem (#597)"
This reverts commit 12e9522b32.
2018-07-07 20:24:51 -07:00
Subv 3c86a705ba GPU: Implemented the BC7U texture format.
Note: Our version of glad exports GL_COMPRESSED_RGBA_BPTC_UNORM as GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, maybe it's time we update it.
2018-07-07 09:17:48 -05:00
fearlessTobi 8f74246cb1 Port #3474 from Citra 2018-07-07 14:17:44 +02:00
fearlessTobi fa8a9656a9 Port #3505 from CItra 2018-07-07 14:11:49 +02:00
fearlessTobi 365753a98c Port #3579 from Citra 2018-07-07 13:59:18 +02:00
bunnei c754485cda Merge pull request #630 from FearlessTobi/remove-citra-references
Remove some references to Citra
2018-07-06 11:13:50 -04:00
Zach Hilman 12e9522b32 Virtual Filesystem (#597)
* Add VfsFile and VfsDirectory classes

* Finish abstract Vfs classes

* Implement RealVfsFile (computer fs backend)

* Finish RealVfsFile and RealVfsDirectory

* Finished OffsetVfsFile

* More changes

* Fix import paths

* Major refactor

* Remove double const

* Use experimental/filesystem or filesystem depending on compiler

* Port partition_filesystem

* More changes

* More Overhaul

* FSP_SRV fixes

* Fixes and testing

* Try to get filesystem to compile

* Filesystem on linux

* Remove std::filesystem and document/test

* Compile fixes

* Missing include

* Bug fixes

* Fixes

* Rename v_file and v_dir

* clang-format fix

* Rename NGLOG_* to LOG_*

* Most review changes

* Fix TODO

* Guess 'main' to be Directory by filename
2018-07-06 10:51:32 -04:00
fearlessTobi 08acefbaab Remove some references to Citra 2018-07-06 15:47:06 +02:00
bunnei 0ea724e06b Merge pull request #629 from Subv/depth_test
GPU: Allow using the old NV04 values for the depth test function.
2018-07-05 16:43:10 -04:00
Subv c44c0078cc GPU: Allow using the old NV04 values for the depth test function.
These seem to be just a valid as the GL token values. Thanks @ReinUsesLisp

This restores graphical output to Disgaea 5
2018-07-05 13:01:31 -05:00
bunnei aaf0e0a73e Merge pull request #626 from Subv/shader_sync
GPU: Stub the shader SYNC and DEPBAR instructions.
2018-07-05 12:54:19 -04:00
bunnei ffdd37675f Merge pull request #624 from Subv/f2f_round
GPU: Implemented the F2F 'round' rounding mode.
2018-07-05 11:30:29 -04:00
bunnei 159deaa00f Merge pull request #623 from Subv/vertex_types
GPU: Implement the Size_16_16 and Size_10_10_10_2 vertex attribute types
2018-07-05 11:30:01 -04:00
bunnei 9bfeacb59a Merge pull request #622 from Subv/unused_tex
GPU: Ignore unused textures and corrected the TEX shader instruction decoding.
2018-07-05 11:29:17 -04:00
bunnei a45206c2b2 Merge pull request #621 from Subv/psetp_
GPU: Implemented the PSETP shader instruction.
2018-07-05 11:28:50 -04:00
bunnei 21f8cd6e8c Merge pull request #620 from Subv/depth_z32f
GPU: Implemented the 32 bit float depth buffer format.
2018-07-05 11:09:15 -04:00
Subv cc56ecc097 GPU: Implemented the IMNMX shader instruction.
It's similar to the FMNMX instruction but it works on integers.
2018-07-04 15:44:37 -05:00
Subv c4268c13c6 GPU: Implemented the F2F 'round' rounding mode.
It's implemented via the GLSL 'roundEven()' function.
2018-07-04 15:43:21 -05:00
Subv 56a5e7ba50 GPU: Stub the shader SYNC and DEPBAR instructions.
It is unknown at this moment if we actually need to do something with these instructions or if the GLSL compiler takes care of that for us.
2018-07-04 15:29:51 -05:00
Subv 25e08cf116 GPU: Implement the Size_16_16 and Size_10_10_10_2 vertex attribute types.
Both signed and unsigned variants.
2018-07-04 15:22:34 -05:00
Subv 36822431cc GPU: Ignore textures that the GLSL compiler deemed unused when binding textures to the shaders. 2018-07-04 15:20:12 -05:00
Subv 673600656c GPU: Corrected the decoding for the TEX shader instruction. 2018-07-04 15:19:20 -05:00
Subv 9ba997d4f0 GPU: Implemented the PSETP shader instruction.
It's similar to the isetp and fsetp instructions but it works on predicates instead.
2018-07-04 15:15:03 -05:00
Subv 910af4676c GPU: Implemented the 32 bit float depth buffer format. 2018-07-04 10:42:33 -05:00
Subv 70f55cf738 GPU: Flip the triangle front face winding if the GPU is configured to not flip the triangles.
OpenGL's default behavior is already correct when the GPU is configured to flip the triangles.

This fixes 1-2 Switch's splash screen.
2018-07-04 10:26:46 -05:00
Subv 53e622f91d GPU: Only configure the used framebuffers during clear.
Don't try to configure the color buffer if it is not being cleared, it may not be completely valid at this point.
2018-07-03 22:32:59 -05:00
bunnei 3c4a5817c2 Merge pull request #609 from Subv/clear_buffers
GPU: Implemented the CLEAR_BUFFERS register.
2018-07-03 19:34:34 -04:00
Subv bb62c6dde3 GPU: Factor out the framebuffer configuration code for both Clear and Draw commands. 2018-07-03 16:56:47 -05:00
Subv 20afd1187d GPU: Support clears that don't clear the color buffer. 2018-07-03 16:56:47 -05:00
Subv fd4699c84f GPU: Bind and clear the render target when the CLEAR_BUFFERS register is written to. 2018-07-03 16:56:44 -05:00
Subv be5f1dde73 GPU: Added registers for the CLEAR_BUFFERS and CLEAR_COLOR methods. 2018-07-03 16:56:31 -05:00
bunnei 8a717606e4 gl_rasterizer_cache: Implement PixelFormat S8Z24. 2018-07-03 14:58:13 -04:00
David 051040caaf Update AudioRenderer Voice Sections (#614)
* voice section updating

* fixed slight offset miscalculation

* fixed overflow
2018-07-03 13:09:10 -04:00
bunnei 1a67d370cf Merge pull request #607 from jroweboy/logging
Logging - Customizable backends
2018-07-03 00:26:45 -04:00
bunnei 6bc04e4fed Merge pull request #612 from bunnei/fix-cull
gl_rasterizer: Only set cull mode and front face if enabled.
2018-07-02 23:48:52 -04:00
bunnei 616c64f56d Merge pull request #611 from Subv/enabled_depth_test
GPU: Don't try to parse the depth test function if the depth test is disabled and use only the least significant 3 bits in the depth test func
2018-07-02 23:47:11 -04:00
bunnei 0dcdf918d9 Merge pull request #610 from Subv/mufu_8
GPU: Implemented MUFU suboperation 8, sqrt.
2018-07-02 22:26:42 -04:00
bunnei e702550809 gl_rasterizer: Only set cull mode and front face if enabled. 2018-07-02 22:22:25 -04:00
Subv 40fd6504e2 GPU: Use only the least significant 3 bits when reading the depth test func.
Some games set the full GL define value here (including nouveau), but others just seem to set those last 3 bits.
2018-07-02 21:06:36 -05:00
Subv f6e05eac41 GPU: Don't try to parse the depth test function if the depth test is disabled. 2018-07-02 21:02:46 -05:00
bunnei 0afb4ff542 Fix build and address review feedback 2018-07-02 21:45:48 -04:00
James Rowe 7af1a786d5 Add configurable logging backends 2018-07-02 21:45:47 -04:00
James Rowe d74d2a77cb Update clang format 2018-07-02 21:45:47 -04:00
James Rowe e159c550d8 Rename logging macro back to LOG_* 2018-07-02 21:45:47 -04:00
bunnei 0b05c9abc8 Merge pull request #608 from Subv/depth
GPU: Implemented the depth buffer and depth test + culling
2018-07-02 21:24:43 -04:00
Subv 629b9090ff GPU: Set up the culling configuration on each draw. 2018-07-02 19:51:29 -05:00
Subv 6880dd7352 GPU: Implemented MUFU suboperation 8, sqrt. 2018-07-02 19:48:15 -05:00
Sebastian Valle 5809a9bc82 Merge pull request #606 from Subv/base_vertex
GPU: Fixed the index offset and implement BaseVertex when doing indexed rendering.
2018-07-02 14:07:38 -05:00
Sebastian Valle 9d3f6e86cf Merge pull request #603 from Subv/nvmap_free
GPU: Remove unmapped surfaces from the rasterizer cache and fix our nvmap::Free behavior.
2018-07-02 14:07:17 -05:00
Sebastian Valle 8bb96959c0 Merge pull request #605 from Subv/dma_copy
GPU: Directly copy the pixels when performing a same-layout DMA.
2018-07-02 14:06:56 -05:00
Subv 65439518d8 GPU: Set up the depth test state on every draw. 2018-07-02 13:33:06 -05:00
Subv fb733c02bd MaxwellToGL: Added conversion functions for depth test and cull mode. 2018-07-02 13:31:49 -05:00
Subv dfe650f7bd GPU: Added registers for depth test and cull mode. 2018-07-02 13:31:20 -05:00
Subv 62068f723a GPU: Implemented the Z24S8 depth format and load the depth framebuffer. 2018-07-02 12:42:04 -05:00
Subv 95a7f92998 GPU: Implement offsetted rendering when using non-indexed drawing. 2018-07-02 11:23:36 -05:00
Subv 1f6139aa58 GPU: Fixed the index offset rendering, and implemented the base vertex functionality.
This fixes Stardew Valley.
2018-07-02 11:22:17 -05:00
Subv 270358e666 GPU: Added register definitions for the vertex buffer base element. 2018-07-02 11:21:23 -05:00
bunnei 9bef775227 Merge pull request #604 from Subv/invalid_textures
GPU: Ignore invalid and disabled textures when drawing.
2018-07-02 11:48:18 -04:00
Subv 70196aa935 GPU: Directly copy the pixels when performing a same-layout DMA. 2018-07-02 09:46:33 -05:00
Subv 9819aa1298 GPU: Ignore disabled textures and textures with an invalid address. 2018-07-02 09:43:38 -05:00
Subv 40d52181c3 GPU: Allow GpuToCpuAddress to return boost::none for unmapped addresses. 2018-07-02 09:42:48 -05:00
Subv 4c6cb7161a GPU: Remove a surface from the cache when its backing memory is being unmapped from the GPU's MMU. 2018-07-01 10:50:06 -05:00
Subv a90bbff826 nvmap: Return the address of the nvmap object when Freeing it for the last time.
This behavior is confirmed by reverse engineering.
2018-07-01 10:48:50 -05:00
bunnei eac897d583 Merge pull request #602 from Subv/mufu_subop
GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation.
2018-07-01 11:06:04 -04:00
bunnei 7eb7b100a8 Merge pull request #601 from Subv/rgba32_ui
GPU: Implement the RGBA32_UINT rendertarget format.
2018-07-01 03:22:38 -04:00
Subv b9e6f48dbb GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation. 2018-06-30 14:48:25 -05:00
Subv 8bfac40a92 GPU: Implemented the RGBA32_UINT rendertarget format. 2018-06-30 14:23:13 -05:00
Subv d72f74483c GLCache: Specify the component type along the texture type in the format tuple. 2018-06-30 14:08:51 -05:00
bunnei 4406d9b84c gl_shader_decompiler: Implement predicate NotEqualWithNan. 2018-06-30 03:01:25 -04:00
bunnei a900f81bdb Merge pull request #595 from bunnei/raster-cache
Rewrite the OpenGL rasterizer cache
2018-06-29 14:07:28 -04:00
bunnei bf95fca386 gl_rasterizer_cache: Only dereference color_surface/depth_surface if valid. 2018-06-29 13:08:08 -04:00
bunnei 9500a18c52 Merge pull request #588 from mailwl/hwopus
Service/Audio: add hwopus service, stub GetWorkBufferSize function
2018-06-27 21:57:21 -04:00
bunnei 147286048e gl_shader_decompiler: Add a return path for unknown instructions. 2018-06-27 01:14:34 -04:00
bunnei bdba4b6c83 gl_rasterizer_cache: Implement caching for texture and framebuffer surfaces.
gl_rasterizer_cache: Improved cache management based on Citra's implementation.

gl_surface_cache: Add some docstrings.
2018-06-27 00:15:44 -04:00
bunnei fb731b0a5a gl_rasterizer_cache: Various fixes for ASTC handling. 2018-06-27 00:08:04 -04:00
bunnei 796f775771 gl_rasterizer_cache: Use SurfaceParams as a key for surface caching. 2018-06-27 00:08:04 -04:00
bunnei 1576d41c0f maxwell_3d: Add a struct for RenderTargetConfig. 2018-06-27 00:08:04 -04:00
bunnei 47ba060950 settings: Add a configuration for use_accurate_framebuffers. 2018-06-27 00:08:04 -04:00
bunnei bd86248eae gl_rasterizer: Implement AccelerateDisplay to forward textures to framebuffers. 2018-06-27 00:08:03 -04:00
bunnei 09150adc15 gl_rasterizer_cache: Cache size_in_bytes as a const per surface. 2018-06-27 00:08:03 -04:00
bunnei 022b5b7630 gl_rasterizer_cache: Refactor to make SurfaceParams members const. 2018-06-27 00:08:03 -04:00
bunnei e250313bcf gl_rasterizer_cache: Remove Citra's rasterizer cache, always load/flush surfaces. 2018-06-27 00:08:03 -04:00
bunnei e210287624 gl_rasterizer: Workaround for when exceeding max UBO size. 2018-06-26 23:07:34 -04:00
bunnei 5366e91b51 Merge pull request #593 from bunnei/fix-swizzle
gl_state: Fix state management for texture swizzle.
2018-06-26 22:05:49 -04:00
bunnei 8151dfed79 Merge pull request #592 from bunnei/cleanup-gl-state
gl_state: Remove unused state management from 3DS.
2018-06-26 22:05:03 -04:00
bunnei 11c391a914 gl_state: Fix state management for texture swizzle. 2018-06-26 17:15:58 -04:00
bunnei 93a4bb20dc gl_state: Remove unused state management from 3DS. 2018-06-26 17:09:25 -04:00
bunnei b856c6d1c2 gl_rasterizer_cache: Fix inverted B5G6R5 format. 2018-06-26 17:07:36 -04:00
bunnei 78ce5a7026 yuzu: Remove SSBOs check from Qt frontend. 2018-06-26 11:28:56 -04:00
bunnei ef66c36936 Merge pull request #554 from Subv/constbuffer_ubo
Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.
2018-06-26 10:25:56 -04:00
bunnei 8bd9579984 Merge pull request #589 from mailwl/fix-crash
Fix crash at exit
2018-06-26 01:01:10 -04:00
mailwl 52b73904e8 Fix crash at exit 2018-06-25 18:01:08 +03:00
David e4479c5b55 Send the correct RequestUpdateAudioRenderer revision in the output header (#587)
* We should be returning our revision instead of what is requested.

Hardware test on a 5.1.0 console

* Added sysversion comment
2018-06-25 10:34:41 -04:00
mailwl 5ffac05099 Service/Audio: add hwopus service, stub GetWorkBufferSize function 2018-06-25 16:44:17 +03:00
David 1a6e4c3a2e Removed duplicate structs, changed AudioRendererResponse -> UpdateDataHeader (#583)
* Removed duplicate structs, changed AudioRendererResponse -> UpdateDataHeader

According to game symbols(SMO), there's references to UpdateDataHeader which seems to be what AudioRendererResponse actually is

* oops

* AudioRendererParameters should be AudioRendererParameter according to SMO
2018-06-23 20:46:29 -04:00
David a86258dfc1 Fixed RequestUpdateAudioRenderer deadlocks and calculated section sizes properly (#580)
* Fixed RequestUpdateAudioRenderer deadlocks and calculated section sizes properly

This fixes RequestUpdateAudioRenderer deadlocks in games like Puyo Puyo Tetris and games which require a proper section size in games such as Retro City Rampage. This fixes causes various games to start rendering or trying to render
2018-06-22 22:22:33 -04:00
bunnei 55d7d4afa4 Merge pull request #579 from SciresM/master
svc: Fully implement svcSignalToAddress and svcWaitForAddress
2018-06-22 12:08:39 -04:00
mailwl 29f156eb60 IPC: skip empty buffer write
prevent yuzu crash, if games, like Axiom Verge, trying to read 0 bytes from file
2018-06-22 11:28:10 +03:00
Michael Scire a3509a9e74 Kernel/Arbiters: Fix casts, cleanup comments/magic numbers 2018-06-22 00:47:59 -06:00
Michael Scire 28fe461cd3 Add additional missing format. 2018-06-21 21:09:51 -06:00
Michael Scire 96617f16ed Run clang-format on PR. 2018-06-21 21:05:34 -06:00
bunnei dc28738bc9 Merge pull request #577 from mailwl/audren-update
Service/Audio: update audren:u service
2018-06-21 22:40:37 -04:00
Michael Scire 9d83964c1b Kernel/Arbiters: HLE is atomic, adjust code to reflect that. 2018-06-21 20:25:57 -06:00
Zach Hilman a47f36da7b Add support for decrypted NCA files (#567)
* Start to add NCA support in loader

* More nca stuff

* More changes to nca.cpp

* Now identifies decrypted NCA cont.

* Game list fixes and more structs and stuff

* More updates to Nca class

* Now reads ExeFs (i think)

* ACTUALLY LOADS EXEFS!

* RomFS loads and games execute

* Cleanup and Finalize

* plumbing, cleanup and testing

* fix some things that i didnt think of before

* Preliminary Review Changes

* Review changes for bunnei and subv
2018-06-21 11:16:23 -04:00
Michael Scire 2a0ea82fec Kernel/Arbiters: Initialize arb_wait_address in thread struct. 2018-06-21 05:13:06 -06:00
Michael Scire 3aa03cca5a Kernel/Arbiters: Clear WaitAddress in SignalToAddress 2018-06-21 04:20:39 -06:00
Michael Scire d12af72c8f Kernel/Arbiters: Mostly implement SignalToAddress 2018-06-21 04:10:11 -06:00
Michael Scire 3119b64d86 Kernel/Arbiters: Implement WaitForAddress 2018-06-21 01:40:29 -06:00
mailwl 40eb06288c Service/Audio: update audren:u service 2018-06-21 10:26:24 +03:00
Michael Scire 6e9b11ffa0 Kernel/Arbiters: Add stubs for 4.x SignalToAddress/WaitForAddres SVCs. 2018-06-21 00:49:43 -06:00
Subv cb4ff57322 Build: Fixed some MSVC warnings in various parts of the code. 2018-06-20 11:39:10 -05:00
greggameplayer 1092153a6a Implement GetAvailableLanguageCodes2 (#575)
* Implement GetAvailableLanguageCodes2

* Revert "Implement GetAvailableLanguageCodes2"

This reverts commit caadd9eea3497ae2a13382aecb8ca29e1c02c5af.

* Implement GetAvailableLanguageCodes2

* Implement GetAvailableLanguageCodes2
2018-06-19 11:29:04 -04:00
bunnei 62f02e6bd0 Merge pull request #574 from Subv/shader_abs_neg
GPU: Perform negation after absolute value in the float shader instructions.
2018-06-18 22:24:57 -04:00
bunnei 9571906188 Merge pull request #561 from DarkLordZach/fix-odyssey-input-crash
Avoid initializing single-joycon layouts with handheld controller
2018-06-18 22:06:11 -04:00
Subv 29bddf03f7 GPU: Perform negation after absolute value in the float shader instructions. 2018-06-18 19:56:29 -05:00
Subv cd61616ddb GPU: Don't mark uniform buffers and registers as used for instructions which don't have them.
Like the MOV32I and FMUL32I instructions.
This fixes a potential crash when using these instructions.
2018-06-18 19:50:35 -05:00
Subv 62a67fbd0a Services/FS: Return the correct error code when trying to mount a nonexistent savedata. 2018-06-18 19:26:01 -05:00
bunnei f87da98ff7 Merge pull request #570 from bunnei/astc
gl_rasterizer: Implement texture format ASTC_2D_4X4.
2018-06-18 19:08:49 -04:00
bunnei 25c140c5e0 Merge pull request #562 from DarkLordZach/extracted-ncas-ui
Add UI support for extracted NCA folders
2018-06-18 16:09:46 -04:00
bunnei 149fef99a0 Merge pull request #572 from Armada651/user-except-stub
svc: Add a stub for UserExceptionContextAddr.
2018-06-18 11:37:13 -04:00
bunnei 1abca5bc0c Merge pull request #571 from Armada651/loose-blend
gl_rasterizer: Get loose on independent blending.
2018-06-18 11:36:50 -04:00
Jules Blok 5614c1329e svc: Add a stub for UserExceptionContextAddr. 2018-06-18 09:29:11 +02:00
Jules Blok 55e69c1cf2 gl_rasterizer: Get loose on independent blending. 2018-06-18 09:27:06 +02:00
bunnei 9feb7f7a63 gl_rasterizer: Implement texture format ASTC_2D_4X4. 2018-06-18 01:56:59 -04:00
bunnei 5fb04f7c6d gl_rasterizer_cache: Loosen things up a bit. 2018-06-18 00:55:59 -04:00
bunnei a72b4c358d gl_shader_decompiler: Implement LOP instructions. 2018-06-17 15:27:48 -04:00
bunnei b071232a75 gl_shader_decompiler: Refactor LOP32I instruction a bit in support of LOP. 2018-06-17 13:31:39 -04:00
bunnei dc1808fa4a gl_shader_decompiler: Implement integer size conversions for I2I/I2F/F2I. 2018-06-15 22:42:02 -04:00
bunnei 288b9170c5 Merge pull request #564 from bunnei/lop32i_passb
gl_shader_decompiler: Implement LOP32I LogicOperation PassB.
2018-06-15 22:04:03 -04:00
bunnei bb1e655f2d gl_shader_gen: Set position.w to 1. 2018-06-15 20:47:04 -04:00
bunnei fb8823d10d gl_shader_decompiler: Implement LOP32I LogicOperation PassB. 2018-06-15 20:43:33 -04:00
Zach Hilman 044ed8717e Bug fixes, testing, and review changes 2018-06-14 17:25:40 -04:00
Zach Hilman ad8d79aade Add 'Load Folder' menu option 2018-06-14 12:27:29 -04:00
Zach Hilman ba498ab930 Add support for main files in file picker 2018-06-14 12:16:56 -04:00
Zach Hilman ea7301923c Recognize main files in game list 2018-06-14 12:02:32 -04:00
Zach Hilman 3898d6b54c Narrow down filter of layout configs 2018-06-13 20:03:12 -04:00
Zach Hilman 42701153c7 Move loop condition to free function 2018-06-13 13:44:46 -04:00
Zach Hilman 93c0478c5c Avoid initializing single-joycon layouts with handheld controller 2018-06-13 13:01:05 -04:00
bunnei 6f0b2ba7cf Merge pull request #560 from Subv/crash_widget
Qt: Removed the Registers widget.
2018-06-13 10:15:00 -04:00
Subv de53649e61 Qt: Removed the Registers widget.
It was crashing and nobody actually uses this.
2018-06-12 20:33:32 -05:00
bunnei 84e9756197 Merge pull request #556 from Subv/dma_engine
GPU: Partially implemented the Maxwell DMA engine.
2018-06-12 14:25:17 -04:00
bunnei e11428e17e Merge pull request #558 from Subv/iadd32i
GPU: Implemented the iadd32i shader instruction.
2018-06-12 14:19:25 -04:00
Subv 1a0c6910ce GPU: Implemented the iadd32i shader instruction. 2018-06-12 11:46:45 -05:00
Subv df214db493 GPU: Partially implemented the Maxwell DMA engine.
Only tiled->linear and linear->tiled copies that aren't offsetted are supported for now. Queries are not supported. Swizzled copies are not supported.
2018-06-12 11:27:36 -05:00
bunnei 205556d5f0 Merge pull request #557 from shinyquagsire23/libnx-hid-fix
hid: Update all layouts and only show handheld as connected, fixes libnx input for P1_AUTO
2018-06-12 09:07:38 -04:00
bunnei 37110bbc02 gl_shader_decompiler: Implement saturate for float instructions. 2018-06-11 21:46:34 -04:00
shinyquagsire23 a02f67160c hid: Update all layouts and only show handheld as connected, fixes libnx input for P1_AUTO 2018-06-11 19:41:29 -06:00
Subv cf9e8fbc13 GPU: Convert the gl_InstanceId and gl_VertexID variables to floats when reading from them.
This corrects the invalid position values in some games when doing attribute-less rendering.
2018-06-10 13:50:19 -05:00
Subv aa4d2cac1b Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.
This should help a bit with GPU performance once we're GPU-bound.
2018-06-09 18:02:05 -05:00
Subv 297a99944e GPU: Implement the iset family of shader instructions. 2018-06-09 16:19:13 -05:00
Subv f387d11882 GPU: Added decodings for the ISET family of instructions. 2018-06-09 15:56:50 -05:00
bunnei ede185a446 Merge pull request #550 from Subv/ssy
GPU: Stub the SSY shader instruction.
2018-06-09 00:42:53 -04:00
bunnei 5f2f250915 Merge pull request #551 from bunnei/shr
gl_shader_decompiler: Implement SHR instruction.
2018-06-09 00:42:44 -04:00
bunnei 9c12d989c3 gl_shader_decompiler: Implement SHR instruction. 2018-06-09 00:01:17 -04:00
Subv 6d7be6fc08 GPU: Stub the SSY shader instruction.
This instruction tells the GPU where the flow reconverges in a non-uniform control flow scenario, we can ignore this when generating GLSL code.
2018-06-08 22:46:10 -05:00
bunnei 179623a99c gl_shader_decompiler: Implement IADD instruction. 2018-06-08 23:25:22 -04:00
bunnei 54408c16a8 gl_shader_decompiler: Add missing asserts for saturate_a instructions. 2018-06-08 23:24:10 -04:00
bunnei 7ff5d3ef92 Merge pull request #533 from mailwl/array-to-buffer
Common/string_util: add StringFromBuffer() function
2018-06-08 18:51:00 -04:00
Subv 158cd05fd3 GPU: Synchronize the blend state on every draw call.
Only independent blending on render target 0 is implemented for now.

This fixes the elongated squids in Splatoon 2's boot screen.
2018-06-08 17:05:52 -05:00
Subv 3e48928bf2 GPU: Added registers for normal and independent blending. 2018-06-08 17:04:41 -05:00
bunnei 0aac4935af Merge pull request #547 from Subv/compressed_alignment
GLCache: Align compressed texture sizes to their compression ratio, and then align that compressed size to the block height for tiled textures.
2018-06-08 16:40:49 -04:00
Subv 5f3afad871 GLCache: Align compressed texture sizes to their compression ratio, and then align that compressed size to the block height for tiled textures.
This fixes issues with retrieving non-block-aligned tiled compressed textures from the cache.
2018-06-08 12:27:19 -05:00
Subv b834631438 Rasterizer: Flush the written region when writing shader uniform data before copying it to the uniform buffers.
This fixes the flip_viewport uniform having invalid values when drawing.
2018-06-08 12:22:39 -05:00
bunnei 48cb11e6b7 Merge pull request #543 from Subv/uniforms
GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU.
2018-06-07 11:21:36 -04:00
Subv f84d419248 GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU.
This should fix the bug with the vs_config UBO being uninitialized during shader execution.
2018-06-07 08:33:23 -05:00
mailwl b70838ca60 Common/string_util: add StringFromBuffer function
convert input buffer (std::vector<u8>) to string, stripping zero chars
2018-06-07 09:59:47 +03:00
bunnei 5d0f6acd9b Merge pull request #522 from mailwl/mm-u
Service/MM: add service and stub some functions
2018-06-07 02:00:04 -04:00
bunnei c153e1a326 Merge pull request #542 from bunnei/bfe_imm
gl_shader_decompiler: Implement BFE_IMM instruction.
2018-06-07 01:49:45 -04:00
bunnei 3a347d9be8 Merge pull request #541 from Subv/blittextures
GLCache: Fixed copying compressed textures in the rasterizer cache.
2018-06-07 01:35:01 -04:00
bunnei 221a29f0fd gl_shader_decompiler: Implement BFE_IMM instruction. 2018-06-07 00:58:12 -04:00
Subv f5ef6f5e8e GLCache: Use the full uncompressed size when blitting from one texture to another.
This avoids the problem of only copying a tiny piece of the textures when they are compressed.
2018-06-06 23:26:36 -05:00
Subv 6c016a6844 GLCache: Simplify the logic to copy from one texture to another in BlitTextures.
We now use glCopyImageSubData, this should avoid errors with trying to attach a compressed texture as a framebuffer's color attachment and then blitting to it.

Maybe in the future we can change this to glCopyTextureSubImage which only requires GL_ARB_direct_state_access.
2018-06-06 23:25:24 -05:00
bunnei 80cdb05930 Merge pull request #539 from bunnei/f2f-rounding
gl_shader_decompiler: F2F: Implement rounding modes.
2018-06-07 00:10:09 -04:00
bunnei dc43864d0a Merge pull request #503 from mailwl/nfp-stubs
Service/nfp:user : stub some functions.
2018-06-06 22:36:53 -04:00
bunnei 1586ee87ae gl_shader_decompiler: F2F: Implement rounding modes. 2018-06-06 22:21:29 -04:00
bunnei 738888debe Merge pull request #537 from bunnei/misc-shader
gl_shader_decompiler: Additional decodings, remove unused stuff from TEX
2018-06-06 21:44:37 -04:00
bunnei b315b20e8d Merge pull request #535 from Subv/gpu_swizzle
GPU: Support changing the texture swizzles for Maxwell textures.
2018-06-06 21:39:47 -04:00
bunnei ec2cad04ef gl_shader_decompiler: Remove some attribute stuff that has nothing to do with TEX/TEXS. 2018-06-06 19:47:41 -04:00
bunnei 8160467a6d shader_bytecode: Add instruction decodings for BFE, IMNMX, and XMAD. 2018-06-06 19:47:34 -04:00
bunnei 16f739f695 gl_shader_decompiler: Implement ISETP_IMM instruction. 2018-06-06 19:45:58 -04:00
Subv d97b2711ac GPU: Support changing the texture swizzles for Maxwell textures. 2018-06-06 18:36:15 -05:00
Subv 23f87f342b GLState: Support changing the GL_TEXTURE_SWIZZLE parameter of each texture unit. 2018-06-06 18:36:13 -05:00
bunnei 1a47f755f3 Merge pull request #534 from Subv/multitexturing
GPU: Implement sampling multiple textures in the generated glsl shaders.
2018-06-06 19:12:52 -04:00
bunnei 8ff7558d0c gl_shader_decompiler: Implement LD_C instruction. 2018-06-06 18:09:06 -04:00
bunnei 802a4febed gl_shader_gen: Add uniform handling for indirect const buffer access. 2018-06-06 18:09:05 -04:00
bunnei dbdf703c20 gl_shader_decompiler: Refactor uniform handling to allow different decodings. 2018-06-06 17:57:15 -04:00
Subv 411f04b5a4 GPU: Implement sampling multiple textures in the generated glsl shaders.
All tested games that use a single texture show no regression.

Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible.
2018-06-06 12:58:16 -05:00
mailwl 829613e51c Stub IUser::AttachAvailabilityChangeEvent 2018-06-06 19:05:11 +03:00
greggameplayer 186abe2652 nvdrv/devices/nvidia_ctrl_gpu : add IoctlCommands with their params (#524)
* add IoctlCommands with their params in nvidia_ctrl_gpu.h

* add function related to the changes done previously

* fix clang-format

* delete trailing whitespace

* correct mistake
2018-06-06 08:31:17 -05:00
Sebastian Valle 9a03ab70a9 Merge pull request #529 from bunnei/am-nifm-stubs
Stub SetConnectionConfirmationOption, GetPseudoDeviceId
2018-06-06 08:29:12 -05:00
Sebastian Valle 6dccfac7ff Merge pull request #531 from bunnei/fix-shl
gl_shader_decompiler: Fix un/signed mismatch with SHL.
2018-06-06 08:28:42 -05:00
Sebastian Valle 820cd30074 Merge pull request #530 from bunnei/wrap-mirror
maxwell_to_gl: Implement WrapMode Mirror.
2018-06-06 08:28:27 -05:00
mailwl 9071812e94 Remove unused header files 2018-06-06 09:10:48 +03:00
bunnei ed2198bec9 Merge pull request #527 from Subv/rgba32f_texcopy
GPU: Allow the usage of RGBA32_FLOAT and RGBA16_FLOAT in the texture copy engine.
2018-06-06 00:24:13 -04:00
bunnei 98df70ed5f Merge pull request #528 from Subv/rg11b10f
GPU: Implemented the R11FG11FB10F texture and rendertarget formats.
2018-06-06 00:22:54 -04:00
Hedges 6c4b650ae7 GDB Stub Improvements (#508)
* GDB Stub should work now.

* Applied clang-format.

* Replaced htonll with swap64.

* Tidy up.
2018-06-06 00:20:47 -04:00
bunnei 3ab3dd166a gl_shader_decompiler: Fix un/signed mismatch with SHL. 2018-06-05 23:58:06 -04:00
bunnei 0f76311842 maxwell_to_gl: Implement WrapMode Mirror. 2018-06-05 23:56:45 -04:00
bunnei abad9d77d7 nifm: Stub out IRequest::SetConnectionConfirmationOption. 2018-06-05 23:54:13 -04:00
bunnei d240fb32da am: Stub out IApplicationFunctions::GetPseudoDeviceId. 2018-06-05 23:54:02 -04:00
Subv d91fc15ea4 GPU: Allow the usage of RGBA16_FLOAT in the texture copy engine. 2018-06-05 22:01:20 -05:00
Subv 1ab5441d54 GPU: Implemented the R11FG11FB10F texture and rendertarget formats. 2018-06-05 21:57:16 -05:00
Subv 484b63fe34 GPU: Fixed the compression factor for RGBA16F textures.
They're not compressed.
2018-06-05 21:55:17 -05:00
Subv f13edfd80b GPU: Allow the usage of RGBA32_FLOAT in the texture copy engine. 2018-06-05 21:07:40 -05:00
bunnei ddee657fc4 Merge pull request #516 from Subv/f2i_r
GPU: Implemented the F2I_R shader instruction.
2018-06-05 22:01:29 -04:00
bunnei f7e6573241 Merge pull request #521 from Subv/bra
GPU: Corrected the branch targets for the shader bra instruction.
2018-06-05 10:09:35 -04:00
bunnei 4ec9f8d6ae Merge pull request #520 from bunnei/shader-shl
gl_shader_decompiler: Implement SHL instruction.
2018-06-05 10:08:42 -04:00
mailwl 2870d37714 Small fixes 2018-06-05 15:34:01 +03:00
mailwl 7dee92618f Service/MM: add service and stub some functions 2018-06-05 12:19:29 +03:00
Subv 18d020ae81 GPU: Corrected the branch targets for the shader bra instruction. 2018-06-04 22:56:28 -05:00
Subv 1476b79308 GPU: Implemented the F2I_R shader instruction. 2018-06-04 22:06:50 -05:00
bunnei fdb75599cc Merge pull request #518 from Subv/incomplete_shaders
GPU: Implemented predicated exit instructions in the shader programs.
2018-06-04 22:43:46 -04:00
bunnei 732dd3fa03 gl_shader_decompiler: Fix typo with ISCADD instruction. 2018-06-04 22:41:10 -04:00
bunnei 3ffb26b0a6 gl_shader_decompiler: Implement SHL instruction. 2018-06-04 22:36:49 -04:00
bunnei d9b029ff99 gl_shader_decompiler: Implement PredCondition::NotEqual. 2018-06-04 22:00:47 -04:00
Subv 368be6ae32 GPU: Implement the ISCADD shader instructions. 2018-06-04 20:17:41 -05:00
Subv 4e153d2bd6 GPU: Added decodings for the ISCADD instructions. 2018-06-04 20:17:39 -05:00
bunnei 2321fe4ec7 Merge pull request #514 from Subv/lop32i
GPU: Implemented the LOP32I instruction.
2018-06-04 20:48:15 -04:00
bunnei 6dd400647a Merge pull request #510 from Subv/isetp
GPU: Implemented the ISETP_R and ISETP_C instructions
2018-06-04 20:47:11 -04:00
Subv aa486a9eb2 GPU: Implement predicated exit instructions in the shader programs. 2018-06-04 19:18:11 -05:00
Subv 9e1ef025cb GPU: Take into account predicated exits when performing shader control flow analysis. 2018-06-04 19:14:23 -05:00
bunnei 8279e1205d Merge pull request #512 from Subv/fset
GPU: Corrected the FSET and I2F instructions.
2018-06-04 19:04:20 -04:00
bunnei 71bbea4a0d Merge pull request #501 from Subv/shader_bra
GPU: Partially implemented the bra shader instruction
2018-06-04 18:31:07 -04:00
bunnei c26ae19983 Merge pull request #515 from Subv/viewport_fix
GPU: Calculate the correct viewport dimensions based on the scale and translate registers.
2018-06-04 18:11:36 -04:00
Subv 3e3e3274c7 GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f. 2018-06-04 16:41:28 -05:00
Subv 45a000239d GPU: Corrected the I2F_R implementation. 2018-06-04 16:41:27 -05:00
Subv a58a06a218 GPU: Calculate the correct viewport dimensions based on the scale and translate registers.
This is how nouveau calculates the viewport width and height. For some reason some games set 0xFFFF in the VIEWPORT_HORIZ and VIEWPORT_VERT registers, maybe those are a misnomer and actually refer to something else?
2018-06-04 16:36:54 -05:00
bunnei f1ddf6c1ee Merge pull request #490 from BreadFish64/extension-check
Add checks for OpenGL extension support
2018-06-04 16:13:55 -04:00
bunnei 460a2abe70 Merge pull request #513 from Subv/cache_alignment
GLCache: Corrected a mismatch between storing compressed sizes and verifying the uncompressed alignment in GetSurface.
2018-06-04 16:12:55 -04:00
greggameplayer 2de6a09da6 Nvdrv/devices/nvhost_gpu : Add some IoctlCommands with their params (#511)
* Add some IoctlCommand with their params to nvhost_gpu

* fix clang-format

* delete trailing whitespace

* fix some clang-format

* delete one other trailing whitespace

* last clang-format fix
2018-06-04 16:12:02 -04:00
Subv 7caec68586 GPU: Implemented the LOP32I instruction. 2018-06-04 13:56:31 -05:00
Subv a2117df8e6 GLCache: Corrected a mismatch between storing compressed sizes and verifying the uncompressed alignment in GetSurface. 2018-06-04 13:01:53 -05:00
BreadFish64 8a956adf8c sdl: add check for GL extension support 2018-06-04 12:26:41 -05:00
BreadFish64 a7e6cadc81 qt: add check for GL extension support 2018-06-04 12:26:30 -05:00
Subv 0e337430f5 GPU: Use explicit types when retrieving the uniform values for fsetp/fset and isetp instead of the type of an invalid output register. 2018-06-04 11:22:26 -05:00
Subv c330734536 GPU: Implemented the ISETP_R and ISETP_C shader instructions. 2018-06-04 11:12:03 -05:00
mailwl 0e922be408 Correct function results 2018-06-04 14:43:02 +03:00
mailwl 18798ad061 Service/nfp:user : stub some functions.
Used by Zelda: BoTW
2018-06-04 12:39:43 +03:00
bunnei b9e0c0495a am: Implement ILibraryAppletAccessor::PopOutData. 2018-06-03 23:44:23 -04:00
bunnei 6c8ab7e431 am: ISelfController:LaunchableEvent should be sticky. 2018-06-03 23:44:22 -04:00
bunnei 96b4c99a7a am: Stub out ILibraryAppletAccessor Start and GetResult methods. 2018-06-03 23:44:22 -04:00
bunnei 8691aa8cd7 Merge pull request #499 from bunnei/am-stuff
am: Implement CreateStorage, PushInData, etc.
2018-06-03 23:43:52 -04:00
Subv 54a12f1b84 GPU: Partially implemented the shader BRA instruction. 2018-06-03 22:26:36 -05:00
Subv d75c79b61a GPU: Added decoding for the BRA instruction. 2018-06-03 22:14:00 -05:00
bunnei 129f945c77 am: Implement ILibraryAppletAccessor::PushInData. 2018-06-03 22:10:06 -04:00
bunnei 43ce8b93f0 am: Implement IStorageAccessor::Write. 2018-06-03 22:10:06 -04:00
bunnei d29b7b48eb am: Cleanup IStorageAccessor::Read. 2018-06-03 22:10:06 -04:00
bunnei 1597b12861 am: Implement ILibraryAppletCreator::CreateStorage. 2018-06-03 22:10:05 -04:00
bunnei d7b6e69400 Merge pull request #500 from Subv/long_queries
GPU: Partial implementation of long GPU queries.
2018-06-03 21:24:50 -04:00
Subv 315e5e6cf3 GPU: Partial implementation of long GPU queries.
Long queries write a 128-bit result value to memory, which consists of a 64 bit query value and a 64 bit timestamp.

In this implementation, only select=Zero of the Crop unit is implemented, this writes the query sequence as a 64 bit value, and a 0u64 value for the timestamp, since we emulate an infinitely fast GPU.

This specific type was hwtested, but more rigorous tests should be performed in the future for the other types.
2018-06-03 19:17:31 -05:00
bunnei 94b620a89e gl_shader_decompiler: Implement TEXS component mask. 2018-06-03 12:08:17 -04:00
bunnei 2ceba3716b Merge pull request #494 from bunnei/shader-tex
gl_shader_decompiler: Implement TEX, fixes for TEXS.
2018-06-03 12:05:38 -04:00
bunnei 6edd4ebde8 Merge pull request #495 from bunnei/improve-rro
gl_shader_decompiler: Implement RRO as a register move.
2018-06-03 12:05:26 -04:00
bunnei a5360ee1b9 Merge pull request #484 from mailwl/nvhost-nvdec
Services/nvdrv: add '/dev/nvhost-nvdec' device
2018-06-03 11:18:00 -04:00
bunnei d673e26129 Merge pull request #496 from Subv/waitprocesswidekey_timeout
Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.
2018-06-03 11:15:49 -04:00
bunnei 76da1f526a gl_shader_decompiler: Implement RRO as a register move. 2018-06-03 11:14:31 -04:00
Subv dd9a1fd943 Kernel/Threads: A thread waking up by timeout from a WaitProcessWideKey may already have an assigned lock owner.
This situation may happen like so:
Thread 1 with low priority calls WaitProcessWideKey with timeout.
Thread 2 with high priority calls WaitProcessWideKey without timeout.
Thread 3 calls SignalProcessWideKey
- Thread 2 acquires the lock and awakens.
- Thread 1 can't acquire the lock and is put to sleep with the lock owner being Thread 2.
Thread 1's timeout expires, with the lock owner still being set to Thread 2.
2018-06-02 14:06:35 -05:00
Subv c00fc04a65 GPU: Implemented the DXN1 (BC4) texture format. 2018-06-02 13:17:09 -05:00
mailwl caf7d55de4 Service/time: implement posix time to calendar conversion 2018-06-01 09:40:28 +03:00
bunnei 20fa6379f6 gl_shader_decompiler: Implement TEX instruction. 2018-05-31 23:36:45 -04:00
bunnei fc2f5b93c3 gl_shader_decompiler: Support multi-destination for TEXS. 2018-05-31 22:57:32 -04:00
bunnei baf0b86ac3 Merge pull request #488 from Subv/thread_masks
Kernel/SVC: Corrected the behavior of svcSetThreadCoreMask for core values -2 and -3.
2018-05-31 18:22:18 -04:00
bunnei a8c1e58d23 gl_rasterizer_cache: Assert that component type is UNorm or format is RGBA16F. 2018-05-30 22:50:41 -04:00
Subv 2a690458b5 Kernel/Thread: Corrected a typo that caused the affinity mask to never be changed. 2018-05-30 21:36:29 -05:00
Subv 40c82fc9c5 Kernel/SVC: Support special core values -2 and -3 in svcSetThreadCoreMask.
Also added some proper error handling.
2018-05-30 21:36:29 -05:00
bunnei 995f57bbc1 gl_rasterizer_cache: Implement PixelFormat RGBA16F. 2018-05-30 22:24:07 -04:00
bunnei 4b027ee9f3 Merge pull request #489 from Subv/vertexid
Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.
2018-05-30 14:10:48 -04:00
greggameplayer 339fd812b3 add IPC CommandType & Some HID FunctionInfo (#487)
* add some CommandType

* add some hid FunctionInfo

* add some other HID FunctionInfo

* delete non useful comments
2018-05-30 14:09:21 -04:00
Subv bcae826522 Kernel/Thread: Corrected a typo in an assert about the processor id. 2018-05-30 11:32:46 -05:00
Subv 455e14b8e3 Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader. 2018-05-30 10:58:03 -05:00
Sebastian Valle 016195f9a8 Merge pull request #483 from bunnei/sonic
Several GPU fixes to boot Sonic Mania
2018-05-30 07:31:46 -05:00
mailwl c333f12eae Services/nvdrv: add '/dev/nvhost-nvdec' device 2018-05-30 12:49:28 +03:00
bunnei c99c03fe38 gl_shader_decompiler: F2F_R instruction: Implement abs. 2018-05-29 23:52:54 -04:00
bunnei ed61b578d9 gl_shader_decompiler: Partially implement F2F_R instruction. 2018-05-29 23:10:44 -04:00
Subv 9631ae2fa4 GPU: Implemented the R8 texture format (0x1D) 2018-05-29 21:49:37 -05:00
bunnei 16a06abf97 nvhost_ctrl: Stub out IocCtrlEventRegister. 2018-05-29 22:39:31 -04:00
bunnei fb8aa21fa5 nvhost_ctrl: Stub out IocCtrlEventWaitAsyncCommand. 2018-05-29 22:35:41 -04:00
bunnei 29c345982a gl_rasterize_cache: Invert order of tex format RGB565. 2018-05-29 22:16:18 -04:00
bunnei 873a266a3d Merge pull request #480 from mailwl/bcat
Service/BCAT: add module and services
2018-05-29 19:45:23 -04:00
greggameplayer 4786f69570 add all the known TextureFormat (#474) 2018-05-28 19:26:17 -04:00
mailwl 3c612dea08 Service/BCAT: add module and services 2018-05-28 16:46:56 +03:00
bunnei 5653710cf8 Merge pull request #472 from bunnei/greater-equal
gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual.
2018-05-27 12:14:30 -04:00
bunnei d24bc4edf8 Merge pull request #476 from Subv/a1bgr5
GPU: Implemented the A1B5G5R5 texture format (0x14)
2018-05-27 12:14:08 -04:00
bunnei 03938c6ea5 Merge pull request #475 from ogniK5377/nvos-getconfig
NvOsGetConfigU32 should return null instead of 0 for default output value
2018-05-27 12:10:07 -04:00
bunnei 8dcf608429 Merge pull request #473 from bunnei/get-display-version
am: Stub IApplicationFunctions GetDisplayVersion.
2018-05-27 12:00:32 -04:00
Subv 110515404c GPU: Implemented the A1B5G5R5 texture format (0x14) 2018-05-27 09:02:05 -05:00
David Marcec 003023a669 NvOsGetConfigU32 should return null instead of 0 for default output 2018-05-26 17:48:09 -07:00
bunnei 678ff27162 am: Stub IApplicationFunctions GetDisplayVersion. 2018-05-26 00:21:59 -04:00
bunnei 7bbda2a975 gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual. 2018-05-25 23:21:29 -04:00
bunnei 502fc1c4b3 shader_bytecode: Implement other variants of FMNMX. 2018-05-25 23:18:50 -04:00
greggameplayer 4201782cea Add & correct miscellaneous things (#470)
* add some InfoType

* correct OpenApplicationProxy cmd number

* add IDisplayController functions

* fix clang-format

* add more system languages
2018-05-25 22:31:54 -04:00
bunnei 7ed3f94905 Merge pull request #466 from mailwl/nv-timeout
Stub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT
2018-05-25 22:31:06 -04:00
David a89f219336 GetAudioRendererWorkBufferSize impl (#465)
* GetAudioRendererWorkBufferSize impl

Impl of GetAudioRendererWorkBufferSize based on RE, if this can be cleaned up, please contribute!

* Naming conventions

* Removed unneeded placeholder

* lioncache changes

* fixed const

* switched to Common::AlignUp
2018-05-25 22:30:02 -04:00
bunnei 68fffea7d2 Merge pull request #468 from Subv/compound_preds
Shader: Implemented compound predicates in the fset and fsetp instructions
2018-05-25 22:28:47 -04:00
bunnei b5695873aa Merge pull request #469 from Subv/channel_rebind
GPU: Allow command lists to rebind a channel to another engine in the middle of the command list.
2018-05-25 22:27:58 -04:00
Subv 8131e8cc3a Shader: Implemented compound predicates in fset.
You can specify a predicate in the fset instruction:

Result = ((Value1 Comp Value2) OP P0) ? 1.0 : 0.0;
2018-05-24 17:39:59 -05:00
David 7787653dad Stubbed NVGPU_GPU_IOCTL_ZBC_SET_TABLE (#463)
We have no clue on what this actually does yet so stubbing it since it's just input only should be fine for now
2018-05-24 18:36:12 -04:00
Subv 91f05992e4 GPU: Allow command lists to rebind a channel to another engine in the middle of the command list. 2018-05-24 17:32:46 -05:00
Subv 216d47b066 Shader: Implemented compound predicates in fsetp.
You can specify three predicates in an fsetp instruction:

P1 = (Value1 Comp Value2) OP P0;
P2 = !(Value1 Comp Value2) OP P0;
2018-05-24 17:22:36 -05:00
mailwl 2fd168729a Stub NVGPU_IOCTL_CHANNEL_SET_TIMEOUT
Used in Nintendo Labo ToyCon 1&2
2018-05-24 16:49:34 +03:00
bunnei cd93d74b16 yuzu_cmd: Fix project for latest msvc. 2018-05-23 21:51:49 -04:00
David Marcec 8ba0ecb303 Fix deadlocks caused from HID having too many layouts
Games such as SMO deadlock if we have more than 2 layouts
2018-05-23 16:00:25 -07:00
bunnei 8247c92a8e Merge pull request #460 from greggameplayer/patch-6
Add & correct some error modules
2018-05-23 17:13:18 -04:00
bunnei b28cea1cae Merge pull request #459 from greggameplayer/patch-5
Add ioctl commands with their params and size check
2018-05-23 17:12:56 -04:00
bunnei 11597c4ab2 Merge pull request #454 from Subv/signal_processwide
Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey
2018-05-23 10:28:23 -04:00
greggameplayer 90fa34e30c Add & correct some error modules 2018-05-23 14:22:42 +02:00
greggameplayer bace166b2b change some functions
according to the changes made previously
2018-05-23 14:09:24 +02:00
greggameplayer 7f5e8a533a correct placement and add size check 2018-05-23 12:34:42 +02:00
greggameplayer c4f1216df1 Add ioctl commands with their params and size check 2018-05-23 12:32:37 +02:00
David ccfff97269 Implemented NVHOST_IOCTL_CHANNEL_GET_WAITBASE (#440)
* Implemented NVHOST_IOCTL_CHANNEL_GET_WAITBASE

struct + 4 seems to be hard coded at 0 and struct + 0 seems to be ignored?

* IocGetWaitbase -> IocChannelGetWaitbaseCommand

* Added super late fixes
2018-05-22 17:41:19 -04:00
bunnei c19f27c0c1 Merge pull request #456 from Subv/unmap_buffer
Implemented nvhost-as-gpu's UnmapBuffer and nvmap's Free ioctls.
2018-05-20 23:54:50 -04:00
greggameplayer f79c96c560 Correct audio command numbers & add or rename some functions (#455)
* Add unknown function at the number command 2

* correct audout:u commands numbers

* correct audrec:u cmd number & add Unknown function

* correct IAudioDevice command numbers

* correct codecctl cmd numbers & rename the 8 function

* correct place of unknown function & fix clang-format
2018-05-20 23:48:44 -04:00
bunnei 613a6d661e Merge pull request #457 from Subv/mutex_waiters
Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release.
2018-05-20 23:44:44 -04:00
bunnei 6a1c36f801 Merge pull request #458 from Subv/fmnmx
Shaders: Implemented the FMNMX shader instruction.
2018-05-20 23:44:07 -04:00
bunnei 3b6d2ee8fb Merge pull request #445 from greggameplayer/patch-2
Properly rename functions of Fatal Module & add ThrowFatal to this module
2018-05-20 23:42:57 -04:00
Sebastian Valle 3cad22b393 Merge pull request #453 from Subv/thread_callstack
Qt/WaitTree: Display the callstack for each thread in the wait tree widget
2018-05-20 20:01:08 -05:00
Sebastian Valle 0d17e04b24 Merge pull request #452 from Subv/psetp
ShadersDecompiler: Added decoding for the PSETP instruction.
2018-05-20 20:00:55 -05:00
Sebastian Valle 11b51bc488 Merge pull request #451 from Subv/gl_array_size
GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB.
2018-05-20 20:00:40 -05:00
Subv 12d6b53e60 Shaders: Implemented the FMNMX shader instruction. 2018-05-20 17:53:06 -05:00
Subv fe463e2a1c Mutex: Do not assert when the mutex waiting threads list isn't empty on mutex release.
A thread may own multiple mutexes at the same time, and only release one of them while other threads are waiting for the other mutexes.
2018-05-20 14:41:58 -05:00
Subv 722736e4c9 GPU: Implemented the nvmap Free ioctl.
It releases a reference to an nvmap object
2018-05-20 14:25:57 -05:00
Subv 9abfc3df7b GPU: Implemented nvhost-as-gpu's UnmapBuffer ioctl.
It removes a mapping previously created with the MapBufferEx ioctl.
2018-05-20 14:25:56 -05:00
Sebastian Valle 3125d9c69f Merge pull request #450 from Subv/shader_link_error
GLRenderer: Log the shader source code when program linking fails.
2018-05-20 12:57:32 -05:00
Sebastian Valle a8f75a0224 Merge pull request #443 from ogniK5377/ipc-500
Added IPC RequestWithContext & ControlWithContext
2018-05-19 17:03:30 -05:00
greggameplayer c97505ad44 Add and correct some Error Modules (#444)
* Add and correct some Error Modules
2018-05-19 17:02:24 -05:00
Subv e3e8902d40 Kernel/SVC: Signal the highest priority threads first in svcSignalProcessWideKey. 2018-05-19 16:58:30 -05:00
Subv 8ce8160ce3 Kernel/Threads: Reschedule the proper core when operating on that core's threads. 2018-05-19 16:57:44 -05:00
Subv 8935ca8e11 SVC: Removed unused WaitSynchronization1 function 2018-05-19 16:56:33 -05:00
Subv 5647fa35ff Qt/WaitTree: Display the callstack for each thread in the wait tree widget. 2018-05-19 16:52:49 -05:00
Subv 062b1fb17c ShadersDecompiler: Added decoding for the PSETP instruction. 2018-05-19 11:41:14 -05:00
Subv 1a6aabdb1f GLRenderer: Remove unused hw_vao_enabled_attributes variable. 2018-05-19 11:36:38 -05:00
Subv 891762da58 GLRenderer: Remove unused vertex buffer and increase the size of the stream buffer to 128 MB.
The stream buffer is where all the vertex data is copied, some games require this to be much bigger than the 4 MB we used to have.
2018-05-19 11:36:09 -05:00
Subv fe167421d1 GLRenderer: Log the shader source code when program linking fails. 2018-05-19 11:19:34 -05:00
greggameplayer 357c048a07 rename fatal:u functions & add ThrowFatal 2018-05-18 23:32:22 +02:00
greggameplayer 72725e1599 Properly update fatal.h void name 2018-05-18 23:30:56 +02:00
greggameplayer 63735e7339 Properly rename fatal module functions 2018-05-18 23:28:30 +02:00
David Marcec 75bd5bf8be Added RequestWithContext & ControlWithContext 2018-05-17 14:03:52 -07:00
Hexagon12 44797f150c Updated nfp with more service names 2018-05-13 13:08:58 +03:00
bunnei 60644b9655 Merge pull request #436 from bunnei/multi-core
Initial support for multi-core
2018-05-11 12:59:23 -04:00
David Marcec 3a41706e7f More accurate GetTPCMasks impl 2018-05-10 21:01:39 -07:00
bunnei 6136866f8e core: Add several missing docstrings. 2018-05-10 19:34:54 -04:00
bunnei ce7d89cb0e thread: Rename mask to affinity_masks. 2018-05-10 19:34:53 -04:00
bunnei 4b895995ab core: Run all CPU cores separately, even in single-thread mode. 2018-05-10 19:34:53 -04:00
bunnei d96be9b56b thread: Support core change on ResumeFromWait and improve ChangeCore. 2018-05-10 19:34:53 -04:00
bunnei eabfdfe4ec scheduler: Protect scheduling functions with a global mutex. 2018-05-10 19:34:52 -04:00
bunnei f006872017 wait_tree: Add ideal core and affinity mask. 2018-05-10 19:34:52 -04:00
bunnei 82bb8701ea thread: Initialize ideal_core and mask members. 2018-05-10 19:34:52 -04:00
bunnei 5a5850af69 threading: Reschedule only on cores that are necessary. 2018-05-10 19:34:52 -04:00
bunnei 9e559ceb09 svc: Implement GetThreadCoreMask and SetThreadCoreMask. 2018-05-10 19:34:51 -04:00
bunnei 922b5c326e thread: Implement ChangeCore function. 2018-05-10 19:34:50 -04:00
bunnei 7b6dd22605 svc: SignalProcessWideKey should apply to all cores. 2018-05-10 19:34:49 -04:00
bunnei 6c4f161ba2 svc: Implement GetCurrentProcessorNumber. 2018-05-10 19:34:49 -04:00
bunnei 26a22031aa wait_tree: Show all threads on all schedulers. 2018-05-10 19:34:48 -04:00
bunnei bbd273e7ce core: Add a configuration setting for use_multi_core. 2018-05-10 19:34:47 -04:00
bunnei 6eacbd693d core: Support session close with multicore. 2018-05-10 19:34:47 -04:00
bunnei 44c565aeca core: Implement multicore support. 2018-05-10 19:34:46 -04:00
bunnei fc8b0d9d2b core: Create a thread for each CPU core, keep in lock-step with a barrier. 2018-05-10 19:34:46 -04:00
bunnei 0867e78c8a core: Move common CPU core things to its own class. 2018-05-10 19:34:46 -04:00
Hexagon12 e37fc58ae6 Stubs for QLaunch (#428)
* Stubs for QLaunch

* Wiped unrelated stuff

* Addressed comment

* Dropped GetPopFromGeneralChannelEvent
2018-05-07 11:27:30 -04:00
Max Thomas a12f45de82 hid: Tweaks, Analog Sticks (#435)
* hid: Update mouse/keyboard state

* hid: Working analog sticks

* hid: Nits

* hid: Nits

* hid: Update mystery sections

* hid: Tweaks
2018-05-07 11:06:02 -04:00
bunnei 77c9b241ce Merge pull request #434 from lioncash/vdtor
memory_hook: Default virtual destructor in the cpp file
2018-05-03 15:09:14 -04:00
Lioncash f9b42fa139 memory_hook: Default virtual destructor in the cpp file
Prevents creating multiple copies of the vtable in every translation unit that uses the class.
Also silences a -Wweak-vtables warning
2018-05-03 08:12:16 -04:00
Lioncash 2403aef8e9 core_timing: Don't include the log header in core timing's header
Avoids propagating logging macros and facilities to files that may not need them.
This also allows hiding an internal constant.
2018-05-03 08:00:15 -04:00
bunnei 618cce3172 Merge pull request #431 from lioncash/fmt
general: Make formatting of logged hex values more straightforward
2018-05-02 15:24:41 -04:00
bunnei 7d3a42dccd Merge pull request #430 from lioncash/vec
vector_math: Ensure members are always initialized
2018-05-02 09:55:32 -04:00
Lioncash 1b310cbb3a general: Make formatting of logged hex values more straightforward
This makes the formatting expectations more obvious (e.g. any zero padding specified
is padding that's entirely dedicated to the value being printed, not any pretty-printing
that also gets tacked on).
2018-05-02 09:49:36 -04:00
bunnei 5e4d01f80c ipc: Add support for PopIpcInterface() method.
- This can be used for domain objects as inputs to service functions.
2018-05-01 21:57:44 -04:00
Lioncash 7bee2c9d13 vector_math: Ensure members are always initialized
Ensures that values are always in a well-defined state.
2018-05-01 21:25:25 -04:00
bunnei 6314eaaa8c Merge pull request #429 from Subv/ioctl_corruption
GPU: Don't write to invalid memory locations when handling ioctls that don't have an output.
2018-05-01 16:28:54 -04:00
David 3a3b58df8b GetSharedFontInOrderOfPriority (#381)
* GetSharedFontInOrderOfPriority

* Update pl_u.cpp

* Ability to use ReadBuffer and WriteBuffer with different buffer indexes, fixed up GetSharedFontInOrderOfPriority

* switched to NGLOG

* Update pl_u.cpp

* Update pl_u.cpp

* language_code is actually language code and not index

* u32->u64

* final cleanups
2018-05-01 16:28:36 -04:00
Subv a16f48e0d7 GPU: Don't write to invalid memory locations when handling ioctls that don't have an output. 2018-05-01 14:54:15 -05:00
Lioncash 3873211738 core_timing: Namespace all functions and constants in core_timing's header
All of these variables and functions are related to timings and should be within the namespace.
2018-04-30 03:32:59 -04:00
bunnei 2c2d114a15 Merge pull request #424 from lioncash/string
string_util: Remove StringFromFormat() and related functions
2018-04-29 21:49:13 -04:00
bunnei 37b67d8161 Merge pull request #422 from bunnei/shader-mov
Shader instructions MOV_C, MOV_R, and several minor GPU things
2018-04-29 21:47:42 -04:00
Lioncash d1e3e0eb42 string_util: Remove StringFromFormat() and related functions
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-04-29 18:52:33 -04:00
Lioncash 22b7e4fcf6 file_util: Make move constructor/assignment operator and related functions noexcept
Without this, it's possible to get compilation failures in the (rare) scenario where
a container is used to store a bunch of live IOFile instances, as they may be using
std::move_if_noexcept under the hood. Given these definitely don't throw exceptions
this is also not incorrect to add either.
2018-04-29 18:34:09 -04:00
Lioncash 1c77c732e6 file_util: Add static assertions to ReadBytes() and WriteBytes()
Ensure that the actual types being passed in are trivially copyable. The internal
call to ReadArray() and WriteArray() will always succeed, since they're passed a pointer to char*
which is always trivially copyable.
2018-04-29 18:24:12 -04:00
bunnei fc0fcbe9cc maxwell_3d: Reset vertex counts after drawing. 2018-04-29 16:23:31 -04:00
bunnei abb893aefe gl_shader_decompiler: Implement MOV_R. 2018-04-29 16:05:18 -04:00
bunnei d01e76720d maxwell_to_gl: Implement type SignedNorm, Size_8_8_8_8. 2018-04-29 16:05:17 -04:00
bunnei 1bd065fb8e shader_bytecode: Add decoding for FMNMX instruction. 2018-04-29 16:05:17 -04:00
Subv 87389ce295 Shaders: Implemented predicate condition 3 (LessEqual) in the fset and fsetp instructions. 2018-04-29 12:49:41 -05:00
bunnei 0ee1a0e698 gl_shader_decompiler: Implement MOV_C. 2018-04-29 13:13:13 -04:00
bunnei 91e7d1deb2 Merge pull request #416 from bunnei/shader-ints-p3
gl_shader_decompiler: Implement MOV32I, partially implement I2I, I2F
2018-04-29 12:56:16 -04:00
bunnei ef8fed3d3a Merge pull request #417 from bunnei/lang-codes
set/am: Fix code for getting language codes
2018-04-29 12:55:43 -04:00
bunnei 5f2d36726c am: Fix GetDesiredLanguage implementation. 2018-04-29 11:07:07 -04:00
bunnei dea2d271a9 set: Fix GetAvailableLanguageCodes implementation. 2018-04-29 11:07:06 -04:00
bunnei f2da134385 fermi_2d: Fix surface copy block height. 2018-04-28 20:40:03 -04:00
bunnei aaa3d91e7c gl_shader_decompiler: Partially implement I2I_R, and I2F_R. 2018-04-28 20:03:19 -04:00
bunnei 327e24bb8f gl_shader_decompiler: More cleanups, etc. with how we handle register types. 2018-04-28 20:03:19 -04:00
bunnei 543d4a680f GLSLRegister: Simplify register declarations, etc. 2018-04-28 20:03:19 -04:00
bunnei 8c6970d20d shader_bytecode: Add decodings for i2i instructions. 2018-04-28 20:03:18 -04:00
bunnei f252169fa6 gl_shader_decompiler: Implement MOV32_IMM instruction. 2018-04-28 20:03:18 -04:00
Lioncash 5155b90870 file_util: Remove compiler version checks around is_trivially_copyable()
The minimum clang/GCC versions we support already support this. We can also
remove is_standard_layout(), as fread and fwrite only require the type to be
trivially copyable.
2018-04-28 15:31:23 -04:00
Lioncash ea0bac3599 log: Remove old logging macros and functions
Now that the old macros are no longer used, we can remove all functionality related to them.
2018-04-27 16:18:34 -04:00
bunnei 87617c3eb8 Merge pull request #408 from bunnei/shader-ints-p2
gl_shader_decompiler: Add GLSLRegisterManager class to track register state.
2018-04-27 16:06:09 -04:00
Lioncash cfd0e7f2d9 renderer_opengl: Replace usages of LOG_GENERIC with fmt-capable equivalents 2018-04-27 12:09:35 -04:00
Lioncash 44d2f427d4 core: Replace usages of LOG_GENERIC with new fmt-capable equivalents 2018-04-27 11:57:52 -04:00
bunnei 2dbd239ed5 gl_shader_decompiler: Add GLSLRegisterManager class to track register state. 2018-04-27 11:49:26 -04:00
Lioncash 324ee31fc3 general: Convert assertion macros over to be fmt-compatible 2018-04-27 10:04:02 -04:00
bunnei 327fd2c31e Merge pull request #380 from ogniK5377/service-impl
Implemented some useful interfaces needed for games.
2018-04-27 00:49:40 -04:00
David Marcec 2810310018 Switched to NGLOG_WARNING 2018-04-26 20:03:12 -07:00
bunnei f838e665b8 Merge pull request #406 from lioncash/frontend
frontends: Move logging macros over to new fmt-capable ones
2018-04-26 22:53:42 -04:00
bunnei a5f551ff76 Merge pull request #407 from lioncash/common
common: Move logging macros over to new fmt-capable macros where applicable
2018-04-26 22:53:14 -04:00
Lioncash f4cc29c07c common: Move logging macros over to new fmt-capable macros where applicable 2018-04-26 20:09:58 -04:00
Lioncash ef3129bf7a frontends: Move logging macros over to new fmt-capable ones 2018-04-26 19:14:48 -04:00
Lioncash db4f7293fd input_common: Move old logging macros over to fmt-capable ones 2018-04-26 19:09:25 -04:00
bunnei dbf7f53899 Merge pull request #402 from lioncash/core
core: Replace remaining old non-generic logger usages with fmt-capable equivalents
2018-04-26 18:45:10 -04:00
bunnei 7fd3730e5a Merge pull request #399 from bunnei/shader-ints
Shader decompiler prep for integer instructions
2018-04-26 18:43:51 -04:00
David Marcec a210abc3c1 Merge branch 'master' of https://github.com/yuzu-emu/yuzu into service-impl 2018-04-26 14:28:54 -07:00
David Marcec 6f6cac9366 Added PREPO to logging backend, Removed comments from SaveReportWithUser 2018-04-26 14:19:34 -07:00
Lioncash 0a1e044322 core: Replace remaining old non-generic logger usages with fmt-capable equivalents
LOG_GENERIC usages will be amended in a follow-up to keep API changes separate from
interface changes, as it will require removing a parameter from the relevant function
in the VMManager class.
2018-04-26 15:37:16 -04:00
Lioncash 67e3bb3e87 common: Remove chunk_file.h and linear_disk_cache.h
These are unused (and given chunk_file references Dolphin's >SVN< I doubt they were going to be used).
2018-04-26 14:59:32 -04:00
bunnei 8e661859a8 gl_shader_decompiler: Boilerplate for handling integer instructions. 2018-04-26 14:38:42 -04:00
bunnei 02771faf4e gl_shader_decompiler: Move color output to EXIT instruction. 2018-04-26 14:38:41 -04:00
Lioncash 6d0f299ed9 core/gdbstub: Move logging macros to new fmt-compatible ones 2018-04-26 12:04:50 -04:00
Lioncash ca674a999b core/hw: Move logging macros over to fmt-capable ones 2018-04-26 09:32:45 -04:00
bunnei 3de43829ee Merge pull request #396 from Subv/shader_ops
Shaders: Implemented the FSET instruction.
2018-04-25 22:42:54 -04:00
bunnei 903505ed5f Merge pull request #398 from lioncash/kernel
kernel: Migrate logging macros to fmt-compatible ones
2018-04-25 22:42:34 -04:00
bunnei 9176319a5c Merge pull request #387 from Subv/maxwell_2d
GPU: Partially implemented the 2D surface copy engine
2018-04-25 20:40:17 -04:00
bunnei d64b6bca07 Merge pull request #395 from lioncash/file-sys
file-sys: Move logging macros over to the new fmt-capable ones
2018-04-25 20:39:08 -04:00
Lioncash 871e6c0041 kernel/shared_memory: Remove unnecessary semicolon at end of ConvertPermissions()
Functions don't need to be terminated by semicolons.
2018-04-25 20:32:16 -04:00
Lioncash bd9414dd31 kernel: Migrate logging macros to fmt-compatible ones 2018-04-25 20:32:09 -04:00
bunnei 50a4a480f0 Merge pull request #390 from mailwl/pctl-module
Service/PCTL: convert to module, add services, stub
2018-04-25 15:51:43 -04:00
bunnei baca4ecfa1 Merge pull request #397 from lioncash/core
core/memory: Move logging macros over to the new fmt-capable ones
2018-04-25 15:25:03 -04:00
Subv 0c04a308d1 GPU: Partially implemented the Fermi2D surface copy operation.
The hardware allows for some rather complicated operations to be performed on the data during the copy, this is not implemented.
Only same-format same-size raw copies are implemented for now.
2018-04-25 12:54:26 -05:00
Subv 1755d4bec3 Shaders: Added bit decodings for the I2I instruction. 2018-04-25 12:52:55 -05:00
Subv e02112db16 Shaders: Implemented the FSET instruction.
This instruction is similar to the FSETP instruction, but it doesn't set a predicate, it sets the destination register to 1.0 if the condition holds, and 0 otherwise.
2018-04-25 12:52:32 -05:00
Subv 6418127891 Memory: Added a missing shortcut for Memory::CopyBlock for the current process. 2018-04-25 11:55:30 -05:00
Subv 634620b502 GPU: Make the Textures::CopySwizzledData function accessible from the outside of the file. 2018-04-25 11:55:30 -05:00
Subv 284aad1420 GPU: Added a function to retrieve the bytes per pixel of the render target formats. 2018-04-25 11:55:29 -05:00
Subv bbb15541aa GPU: Added surface copy registers to Fermi2D 2018-04-25 11:55:29 -05:00
Subv b0b75e7ae4 GPU: Added boilerplate code for the Fermi2D engine 2018-04-25 11:55:29 -05:00
Subv 94d0d499c3 GPU: Reduce the number of registers of Maxwell3D to 0xE00.
The rest are just macro shim registers.
2018-04-25 11:55:28 -05:00
Subv 219b5d34e7 GPU: Move the Maxwell3D macro uploading code to the inside of the Maxwell3D processor.
It doesn't belong in the PFIFO handler.
2018-04-25 11:55:27 -05:00
Subv f42b93399f GPU: Corrected the upper bound of the PFIFO method ids in the command processor. 2018-04-25 11:53:54 -05:00
Lioncash 1cd301f2c0 file-sys: convert a StringFromFormat call into fmt::format in GetFullPath()
Lessens the amount to read and gets rid of the PRIX64 macro, allowing us to use a single string
for the whole path, making it easier to read.
2018-04-25 12:35:37 -04:00
Lioncash a1dc050bbf file-sys: Move logging macros over to the new fmt-capable ones 2018-04-25 12:35:33 -04:00
Lioncash 796b5c727d core/memory: Amend address widths in asserts
Addresses are 64-bit, these formatting specifiers are simply holdovers from citra. Adjust them to be the correct width.
2018-04-25 12:17:26 -04:00
Lioncash 62e427d98f core/memory: Move logging macros over to new fmt-capable ones
While we're at it, correct addresses to print all 64 bits where applicable, which were holdovers from citra.
2018-04-25 12:16:33 -04:00
Lioncash f5bd2617a8 video-core: Move logging macros over to new fmt-capable ones 2018-04-25 09:13:57 -04:00
mailwl cf607e7fca Service/PCTL: convert to module, add services, stub
PCTL::CreateServiceWithoutInitialize and IParentalControlService::Initialize, required by Kirby Star Allies
2018-04-25 09:02:27 +03:00
Subv 74c89df1c8 Shaders: Added decodings for the FSET instructions. 2018-04-24 22:42:54 -05:00
bunnei 9add4dba81 Merge pull request #388 from bunnei/refactor-rasterizer-cache
Refactor rasterizer cache
2018-04-24 23:22:24 -04:00
bunnei bfb435c994 renderer_opengl: Use correct byte order for framebuffer pixel format ABGR8. 2018-04-24 22:31:46 -04:00
bunnei 1f14d07952 gl_rasterizer_cache: Use CHAR_BIT for bpp conversions instead of 8. 2018-04-24 22:31:46 -04:00
bunnei 931c447c84 gl_rasterizer_cache: Use GPU PAGE_BITS/SIZE, not CPU. 2018-04-24 22:31:46 -04:00
bunnei 4713ba7d9c gl_rasterizer_cache: Use new logger. 2018-04-24 22:31:46 -04:00
bunnei 197ea35d95 gl_rasterizer_cache: Add a function for finding framebuffer GPU address. 2018-04-24 22:31:46 -04:00
bunnei 640c943d34 gl_rasterizer_cache: Handle compressed texture sizes. 2018-04-24 22:31:46 -04:00
bunnei 31748079de gl_rasterizer_cache: Update to be based on GPU addresses, not CPU addresses. 2018-04-24 22:31:45 -04:00
Lioncash ff63e4d3fc loader: Move old logging macros over to new fmt-capable ones 2018-04-24 20:22:32 -04:00
bunnei 995cbfc15f memory_manager: Add implement CpuToGpuAddress. 2018-04-24 17:49:20 -04:00
bunnei b6bed8fd74 memory_manager: Make GpuToCpuAddress return an optional. 2018-04-24 17:49:19 -04:00
bunnei ebef12f037 memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses. 2018-04-24 17:40:43 -04:00
bunnei dcd72b36ca Merge pull request #386 from Subv/gpu_query
GPU: Added asserts to our code for handling the QUERY_GET GPU command.
2018-04-24 16:13:51 -04:00
bunnei 2dd49a5bb2 Merge pull request #392 from lioncash/log
service: Move logging macros over to the new fmt-compatible ones
2018-04-24 14:13:54 -04:00
Lioncash b736a731c0 service: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:32 -04:00
Lioncash 448c7ad796 vi: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash 7505ea2612 time: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash 5077580ee7 ssl: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash 418cb174a9 spl: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash e70f5cb603 sockets: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash 3cac963a7d sm: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:31 -04:00
Lioncash f8fa781c10 set: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:30 -04:00
Lioncash e39e914cd0 pctl: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:30 -04:00
Lioncash 38f90ec51a nvflinger: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:30 -04:00
Lioncash 7303c11edc nvdrv: Move logging macros over to new fmt-compatible ones 2018-04-24 12:01:27 -04:00
Lioncash accaa498ad ns: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash 3fdc96e690 nifm: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash 60efd72a51 nfp: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash afe7828f4b lm: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash 0cbbb1c130 hid: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash 8b8125ba51 friend: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:56 -04:00
Lioncash 7995e92e19 filesystem: Move logging macros over to new fmt-compatible ones 2018-04-24 12:00:52 -04:00
Lioncash f6b2c3485b renderer_opengl: Silence a -Wdangling-else warning in DrawScreenTriangles() 2018-04-24 11:13:08 -04:00
Lioncash f9bdeea787 fatal: Move logging macros over to new fmt-compatible ones 2018-04-24 10:18:58 -04:00
Lioncash fcda46cec0 audio: Move logging macros over to new fmt-compatible ones 2018-04-24 10:18:09 -04:00
Lioncash 4e32d65b32 apm: Move logging macros over to new fmt-compatible ones 2018-04-24 10:16:03 -04:00
Lioncash 5052b17f84 aoc: Move logging macros over to new fmt-compatible ones 2018-04-24 10:14:52 -04:00
Lioncash ee02a551c5 am: Move logging macros over to new fmt-compatible ones 2018-04-24 10:14:11 -04:00
Lioncash d1ef0f83d7 acc: Move logging macros over to new fmt-compatible ones 2018-04-24 10:04:22 -04:00
mailwl 8fffc0962c Service/FS: implement IFileSystem::RenameFile 2018-04-24 10:56:05 +03:00
bunnei efe7989c16 Merge pull request #379 from Subv/multi_buffers
GPU: Support multiple enabled vertex arrays.
2018-04-24 01:09:02 -04:00
Subv 1eca798d8b GPU: Added asserts to our code for handling the QUERY_GET GPU command.
This is based on research from nouveau. Many things are currently unknown and will require hwtests in the future.
This commit also stubs QueryMode::Write2 to do the same as Write. Nouveau code treats them interchangeably, it is currently unknown what the difference is.
2018-04-23 17:06:57 -05:00
bunnei 5ff201a288 Merge pull request #370 from Subv/sync_primitives
Kernel: Reworked the new kernel synchronization primitives.
2018-04-23 16:33:00 -04:00
bunnei ac7b1f4aed Merge pull request #384 from Subv/nvhost-remap
Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
2018-04-23 15:23:55 -04:00
bunnei 65d0d7ea69 Merge pull request #385 from Subv/unimpl_ioctls
Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers.
2018-04-23 15:22:49 -04:00
bunnei dc5549a9b1 Merge pull request #383 from Subv/gpu_mmu
GPU: Make the GPU virtual memory manager use 16 page bits and 10 pagetable bits.
2018-04-23 14:00:52 -04:00
Subv 6be45c562f GPU: Support multiple enabled vertex arrays.
The vertex arrays will be copied to the stream buffer one after the other, and the attributes will be set using the ARB_vertex_attrib_binding extension.

yuzu now thus requires OpenGL 4.3 or the ARB_vertex_attrib_binding extension.
2018-04-23 11:34:50 -05:00
Subv 329bec6dbd Kernel: Implemented mutex priority inheritance.
Verified with a hwtest and implemented based on reverse engineering.

Thread A's priority will get bumped to the highest priority among all the threads that are waiting for a mutex that A holds.
Once A releases the mutex and ownership is transferred to B, A's priority will return to normal and B's priority will be bumped.
2018-04-23 11:23:44 -05:00
Subv e56ef284bb NvDrv/nvhost-as-gpu: Ensure that the object passed to MapBufferEx has already been allocated.
Also added a consistency check and a comment for the case when the object id is different than its handle. The real nvservices doesn't make a distinction between ids and handles, each object gets an unique handle which doubles as its id.
2018-04-23 11:21:46 -05:00
Subv c4131e271f Nvdrv/nvhost-as-gpu: Implemented the ioctl REMAP command.
It takes a previously-reserved (AllocateSpace) GPU memory address and maps it to the address of the nvmap object passed to Remap.
2018-04-23 11:21:46 -05:00
Subv 3c2b29e5c2 Nvdrv: Assert when receiving an unimplemented ioctl in the nv* handlers. 2018-04-23 11:13:53 -05:00
Subv fbc480d611 GPU: Make the GPU virtual memory manager use 16 page bits and 10 page table bits.
Also removed some dead code and added memory map consistency asserts.
2018-04-23 10:57:12 -05:00
Subv fa6edc4412 GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format. 2018-04-23 10:50:28 -05:00
David Marcec 9591689dbc GetIUserInterface->CreateUserInterface, Added todos and stub logs. Playreport->PlayReport. 2018-04-22 19:02:18 -07:00
David 471eafc162 lioncash proposed changes 2018-04-22 00:07:55 -07:00
David Marcec 48334d0d6a Implemented GetIUserInterface properly, Playreport and SSL::SetInterfaceVersion. Fixed ipc issues with IAudioDevice(wrong ids) 2018-04-21 22:04:24 -07:00
Subv abd66a9a33 GPU: Implement the A2BGR10 texture format. 2018-04-21 17:32:25 -05:00
bunnei 0aae96830a Merge pull request #377 from adityaruplaha/sdl2-fullscreen
SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607)
2018-04-21 13:53:55 -04:00
adityaruplaha cd2aeb1046 SDL2: Implement fullscreen. (Original PR: citra-emu/citra#3607) 2018-04-21 13:24:33 +05:30
bunnei 1fe68fa427 Merge pull request #376 from bunnei/shader-decoder
Shader opcode decoding
2018-04-21 00:04:51 -04:00
bunnei 83ea05b814 Merge pull request #375 from lioncash/header
opengl: Remove unnecessary header inclusions
2018-04-20 23:08:47 -04:00
bunnei ff1700e261 gl_shader_decompiler: Skip RRO instruction. 2018-04-20 22:30:56 -04:00
bunnei 54fbbc6f26 gl_shader_decompiler: Cleanup error logging. 2018-04-20 22:30:56 -04:00
bunnei f66098bd37 shader_bytecode: Add several more instruction decodings. 2018-04-20 22:30:56 -04:00
bunnei d2302ee79f shader_bytecode: Decode instructions based on bit strings. 2018-04-20 22:30:56 -04:00
bunnei 806b2133e4 Merge pull request #369 from Subv/shader_instr2
ShaderGen: Implemented fsetp/kil and predicated instruction execution.
2018-04-20 22:29:39 -04:00
bunnei b29507b551 Merge pull request #374 from lioncash/noexcept
gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
2018-04-20 22:28:47 -04:00
bunnei b79cec4040 Merge pull request #373 from lioncash/enum2
gl_rasterizer_cache: Make MatchFlags an enum class
2018-04-20 22:28:09 -04:00
Subv 79e7bb8896 ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'. 2018-04-20 21:09:34 -05:00
Subv 2fbb91a6b6 ShaderGen: Implemented predicated instruction execution.
Each predicated instruction will be wrapped in an `if (predicate) { instruction_body; }` in the GLSL, where `predicate` is one of the predicate boolean variables previously set by fsetp.
2018-04-20 21:09:33 -05:00
Subv 31de416fc0 ShaderGen: Implemented the fsetp instruction.
Predicate variables are now added to the generated shader code in the form of 'pX' where X is the predicate id.
These predicate variables are initialized to false on shader startup and are set via the fsetp instructions.

TODO:

* Not all the comparison types are implemented.
* Only the single-predicate version is implemented.
2018-04-20 21:09:33 -05:00
Subv 4be07d1090 Kernel: Use 0x2C as default main thread priority for homebrew and lone NRO/NSOs 2018-04-20 21:04:35 -05:00
Subv 106d31e8c3 Qt: Update the WaitTree widget to show info about the current mutex of each thread. 2018-04-20 21:04:34 -05:00
Subv f5a2b1920b Kernel: Remove unused ConditionVariable class. 2018-04-20 21:04:33 -05:00
Subv e499b48f97 Kernel: Remove old and unused Mutex code. 2018-04-20 21:04:32 -05:00
Subv fcd7cbe65a Kernel: Properly implemented svcWaitProcessWideKey and svcSignalProcessWideKey
They work in tandem with guest code to provide synchronization primitives along with svcArbitrateLock/Unlock
2018-04-20 21:04:27 -05:00
Subv 4e47dd5b59 Kernel: Corrected the implementation of svcArbitrateLock and svcArbitrateUnlock.
Switch mutexes are no longer kernel objects, they are managed in userland and only use the kernel to handle the contention case.
Mutex addresses store a special flag value (0x40000000) to notify the guest code that there are still some threads waiting for the mutex to be released. This flag is updated when a thread calls ArbitrateUnlock.

TODO:
* Fix svcWaitProcessWideKey
* Fix svcSignalProcessWideKey
* Remove the Mutex class.
2018-04-20 21:04:25 -05:00
bunnei 4a972207d6 Merge pull request #372 from lioncash/enum
resource_limit: Make ResourceTypes an enum class
2018-04-20 21:26:54 -04:00
Lioncash c3ade6d56d opengl: Remove unnecessary header inclusions 2018-04-20 20:19:37 -04:00
Lioncash 3768508edf gl_resource_manager: Add missing noexcept specifiers to move constructors and assignment operators
Standard library containers may use std::move_if_noexcept to perform
move operations. If a move cannot be performed under these
circumstances, then a copy is attempted. Given we only intend for these
types to be move-only this can be somewhat problematic. By defining
these to be noexcept we prevent cases where copies may be attempted.
2018-04-20 20:04:00 -04:00
Lioncash f7eb0e8f1b gl_rasterizer_cache: Make MatchFlags an enum class
Prevents implicit conversions and scope pollution.
2018-04-20 19:50:05 -04:00
Lioncash 4bd499d440 core: Relocate g_service_manager to the System class
Converts the service manager from a global into an instance-based
variable.
2018-04-20 19:44:32 -04:00
Lioncash 5860b9f4ce resource_limit: Make ResourceTypes an enum class
Prevents enum identifiers from leaking into the surrounding scope.
2018-04-20 19:41:45 -04:00
bunnei 18e541f7e2 Merge pull request #340 from mailwl/vi-update
Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
2018-04-20 16:23:15 -04:00
Subv 601c5d9d93 ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO). 2018-04-20 14:57:40 -05:00
Subv 8b8f55d8be ShaderGen: Ignore the 'sched' instruction when generating shaders.
The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).
2018-04-20 14:57:40 -05:00
bunnei c2adb07b55 Merge pull request #367 from lioncash/clamp
math_util: Remove the Clamp() function
2018-04-20 14:18:03 -04:00
bunnei c5438e898e Merge pull request #361 from lioncash/common
common_types: Minor changes
2018-04-20 10:27:17 -04:00
Lioncash 043546e4db math_util: Remove the Clamp() function
C++17 adds clamp() to the standard library, so we can remove ours in
favor of it.
2018-04-20 10:14:13 -04:00
bunnei c3236a3a37 Merge pull request #360 from lioncash/namespaces
service: Use nested namespace specifiers where applicable
2018-04-20 09:44:40 -04:00
bunnei 7108f2c331 Merge pull request #364 from lioncash/thread-local
common/thread: Remove unnecessary feature checking for thread_local
2018-04-20 09:43:52 -04:00
bunnei d7a69c96e4 Merge pull request #362 from lioncash/snprintf
common_funcs: Remove check for VS versions that we don't even support
2018-04-20 09:43:30 -04:00
bunnei e325ef7f09 Merge pull request #363 from lioncash/array-size
common_funcs: Remove ARRAY_SIZE macro
2018-04-20 09:43:02 -04:00
bunnei e0681a4da5 Merge pull request #366 from lioncash/vec
vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]
2018-04-20 09:42:41 -04:00
bunnei 684f6619e5 Merge pull request #365 from lioncash/codeblock
common: Remove code_block.h
2018-04-20 09:42:15 -04:00
Lioncash bd4e50afb9 vector_math: Remove AsArray() and Write() functions from Vec[2,3,4]
These are all unused and the Write() ones should arguably not even be in the interface. There are better ways to provide this if we ever need it (like iterators).
2018-04-19 22:58:24 -04:00
Lioncash 4e99ac0553 common: Remove code_block.h
We use dynarmic, so this is unued. Anything else we need will likely use Xbyak, so
this header isn't necessary any more.
2018-04-19 22:47:02 -04:00
Lioncash 9d21769d88 common/thread: Remove unnecessary feature checking for thread_local
Every compiler we require already supports it.
2018-04-19 22:41:18 -04:00
Lioncash c9f5ae4fcc common_funcs: Remove ARRAY_SIZE macro
C++17 has non-member size() which we can just call where necessary.
2018-04-19 22:36:52 -04:00
Lioncash 4b0e4421f4 common_funcs: Remove check for VS versions that we don't even support
We don't support any VS versions that don't already have snprintf in the
standard library implementation.
2018-04-19 22:28:56 -04:00
Lioncash 0f07311af3 common_types: Convert typedefs to using aliases
May as well while we're making changes to this file.
2018-04-19 22:26:35 -04:00
Lioncash ad470a1478 common_types: Remove unnecessary check for whether or not__func__ is defined
VS has supported this for quite a while.
2018-04-19 22:25:19 -04:00
Lioncash 6d94dd21a5 service: Use nested namespace specifiers where applicable
Tidies up namespace declarations
2018-04-19 22:20:28 -04:00
bunnei c15d6f84c0 Merge pull request #357 from lioncash/guard
renderer_opengl: Add missing header guards
2018-04-19 22:17:25 -04:00
bunnei be3ab93feb Merge pull request #358 from lioncash/explicit
disk_filesystem: Minor changes
2018-04-19 22:16:55 -04:00
Lioncash 59a504d933 vi: Remove redundant initializers in the constructors 2018-04-19 21:34:36 -04:00
Lioncash 5b8891df28 disk_filesystem: Remove unused total_entries_in_directory member from Disk_Directory 2018-04-19 21:28:56 -04:00
Lioncash eb2bb5500e disk_filesystem: Remove redundant initializer in Disk_Directory's constructor 2018-04-19 21:28:07 -04:00
Lioncash 19fe9a92ec disk_filesystem: Make constructors explicit where applicable 2018-04-19 21:27:43 -04:00
Lioncash 8594945844 renderer_opengl: Add missing header guards 2018-04-19 21:13:59 -04:00
bunnei fd50308f39 Merge pull request #356 from lioncash/shader
glsl_shader_decompiler: Minor API changes to ShaderWriter
2018-04-19 21:09:25 -04:00
bunnei c0e412d97c Merge pull request #355 from Subv/shader_instr
ShaderGen: Fixed TEXS overriding its own texcoords and implemented fmul32i
2018-04-19 21:09:02 -04:00
Lioncash 2259f5d56b glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()
This function doesn't need to take ownership of the string data being
given to it, considering all we do is append the characters to the
internal string instance.

Instead, use a string view to simply reference the string data without
any potential heap allocation.

Now anything that is a raw const char* won't need to be converted to a
std::string before appending.
2018-04-19 20:12:58 -04:00
Lioncash 55fef54f2e glsl_shader_decompiler: Add AddNewLine() function to ShaderWriter
Avoids constructing a std::string just to append a newline character
2018-04-19 20:09:27 -04:00
Lioncash 5a3da4f1a1 glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()
Avoids constructing a std::string just to append a character.
2018-04-19 20:04:09 -04:00
Lioncash 21fa39b4f6 glsl_shader_decompiler: Append indentation without constructing a separate std::string
The interface of std::string already lets us append N copies of a
character to an existing string.
2018-04-19 19:59:25 -04:00
Subv 4ca65f10b1 ShaderGen: Implemented the fmul32i shader instruction. 2018-04-19 13:46:32 -05:00
Subv 887db586be ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.
It will now save the coords before writing the outputs in a subscope.
2018-04-19 13:33:17 -05:00
N00byKing f2001a33cc Implement Pull #3528 from citra: use nvidia graphics automatically on laptops with optimus (with AMD support) (#271)
* Port 3528: use nvidia graphics automatically on laptops with optimus

* Force dedicated AMD Card for switchable Graphics

* Ran clang-format
2018-04-19 12:22:26 -06:00
James Rowe 60024d54b0 Merge pull request #352 from bunnei/fix-microprofile
nvflinger: Call MicroProfileFlip on NVFlinger::Compose.
2018-04-19 12:18:47 -06:00
Subv 37f782e1b7 GPU: Add support for the DXT23 and DXT45 compressed texture formats. 2018-04-18 20:48:53 -05:00
bunnei b17664dfa9 nvflinger: Call MicroProfileFlip on NVFlinger::Compose. 2018-04-18 20:28:50 -04:00
bunnei 0cdd457b01 Merge pull request #351 from Subv/tex_formats
GPU: Implemented the B5G6R5 format.
2018-04-18 20:20:51 -04:00
Subv e9f62cb1bb GPU: Implemented the B5G6R5 format. 2018-04-18 18:16:45 -05:00
bunnei e8cc5900a6 gl_shader_gen: Support vertical/horizontal viewport flipping. (#347)
* gl_shader_gen: Support vertical/horizontal viewport flipping.

* fixup! gl_shader_gen: Support vertical/horizontal viewport flipping.
2018-04-18 16:42:40 -04:00
Subv d98275cde1 GLCache: Added boilerplate code to make supporting configurable texture component types.
For now only the UNORM type is supported.
2018-04-18 14:17:28 -05:00
Subv e6991c57e5 GLCache: Unify texture and framebuffer formats when converting to OpenGL. 2018-04-18 14:17:28 -05:00
Subv d088a95097 GPU: Texture format 8 and framebuffer format 0xD5 are actually ABGR8. 2018-04-18 14:17:27 -05:00
Subv 19a0e7e141 GPU: Pitch textures are now supported, don't assert when encountering them. 2018-04-18 12:52:53 -05:00
Subv fecaeb8ae6 GLCache: Take into account the texture's block height when caching and unswizzling. 2018-04-18 12:52:53 -05:00
Subv 19e0d8ca24 GLCache: Added a function to convert cached PixelFormats back to texture formats.
TODO: The way we handle cached formats must change, framebuffer and texture formats are too different to keep them in the same place.
2018-04-18 12:52:52 -05:00
Subv 102251cb37 GPU: Allow using a configurable block height when unswizzling textures. 2018-04-18 12:52:51 -05:00
Subv 67c9964675 GPU/TIC: Added the pitch and block height fields to the TIC structure. 2018-04-18 11:38:39 -05:00
bunnei b651578582 Merge pull request #346 from bunnei/misc-gpu-improvements
Misc gpu improvements
2018-04-17 22:17:07 -04:00
bunnei 0a119bf39b Merge pull request #344 from bunnei/shader-decompiler-p2
Shader decompiler changes part 2
2018-04-17 22:10:53 -04:00
bunnei ed447c8786 gl_rasterizer_cache: Add missing LOG statements. 2018-04-17 21:44:36 -04:00
bunnei d4dcd3e720 texture: Add missing formats. 2018-04-17 21:41:36 -04:00
bunnei 848ade06d5 gpu: Add several framebuffer formats to RenderTargetFormat. 2018-04-17 21:40:38 -04:00
bunnei de84b74dd4 maxwell3d: Allow Texture2DNoMipmap as Texture2D. 2018-04-17 21:39:15 -04:00
bunnei 797267eb58 shader_bytecode: Make ctor's constexpr and explicit. 2018-04-17 21:27:07 -04:00
bunnei 4d9c441bef renderer_opengl: Implement BlendEquation and BlendFunc. 2018-04-17 18:11:48 -04:00
bunnei 33a0dddf78 bit_field: Remove is_pod check, add is_trivially_copyable_v. 2018-04-17 18:00:18 -04:00
bunnei 48ab22ff76 gl_shader_decompiler: Fix warnings with MarkAsUsed. 2018-04-17 16:36:44 -04:00
bunnei 7ad31d2667 gl_shader_decompiler: Cleanup logging, updating to NGLOG_*. 2018-04-17 16:36:44 -04:00
bunnei 29ab89054d gl_shader_decompiler: Implement several MUFU subops and abs_d. 2018-04-17 16:36:43 -04:00
bunnei 93388e3c6b gl_shader_decompiler: Fix swizzle in GetRegister. 2018-04-17 16:36:42 -04:00
bunnei c1408040a6 gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions. 2018-04-17 16:36:42 -04:00
bunnei dbf1fb7e61 gl_shader_decompiler: Allow vertex position to be used in fragment shader. 2018-04-17 16:36:40 -04:00
bunnei 7fe43996de gl_shader_decompiler: Implement IPA instruction. 2018-04-17 16:36:39 -04:00
bunnei 05305422e1 gl_shader_decompiler: Add support for TEXS instruction. 2018-04-17 16:36:38 -04:00
bunnei 69f5eadc2b gl_shader_decompiler: Use fragment output color for GPR 0-3. 2018-04-17 15:25:54 -04:00
bunnei fdca99c4fb gl_shader_decompiler: Partially implement MUFU. 2018-04-17 15:25:54 -04:00
bunnei 0f02c41f18 Merge pull request #341 from shinyquagsire23/pfs-hfs-impl
file_sys: Add HFS/PFS helper component
2018-04-17 14:39:20 -04:00
mailwl 59077b7d07 Service/VI: stub SetLayerVisibility, fix GetDisplayResolution output
both SetLayerVisibility() functions used in Lego games, GetDisplayResolution()
fixed according switchbrew.org
2018-04-17 19:42:14 +03:00
bunnei 09122ee37d Merge pull request #343 from Subv/tex_wrap_4
GPU: Implement some wrap modes
2018-04-17 12:25:24 -04:00
shinyquagsire23 5634f49b60 file_sys: Use NGLOG 2018-04-17 09:55:29 -06:00
Hexagon12 4c462c91bd Various service name fixes - part 2 (rebased) (#322)
* Updated ACC with more service names

* Updated SVC with more service names

* Updated set with more service names

* Updated sockets with more service names

* Updated SPL with more service names

* Updated time with more service names

* Updated vi with more service names
2018-04-17 11:37:43 -04:00
Subv d388e8e8f9 MaxwellToGL: Implemented tex wrap mode 1 (Wrap, GL_REPEAT). 2018-04-17 10:17:18 -05:00
Subv b5fdd197b2 MaxwellToGL: Added a TODO and partial implementation of maxwell wrap mode 4 (Clamp, GL_CLAMP).
This clamp mode was removed from OpenGL as of 3.1, we can emulate it by using GL_CLAMP_TO_BORDER to get the border color of the texture, and then manually sampling the edge to mix them in the fragment shader.
2018-04-17 10:16:50 -05:00
bunnei ad8a27a7b3 gl_rendering: Use NGLOG* for changed code. 2018-04-16 21:23:28 -04:00
bunnei 65092bf8d8 gl_rasterizer: Implement indexed vertex mode. 2018-04-16 21:10:15 -04:00
shinyquagsire23 13ab489cb7 file_sys: tweaks 2018-04-16 06:51:59 -06:00
shinyquagsire23 bba0a351e7 file_sys: Add HFS/PFS helper component 2018-04-16 04:36:25 -06:00
bunnei 03ee087c5e Merge pull request #338 from bunnei/unrequire-shared-font
pl_u: Use empty shared font if none is available.
2018-04-15 16:54:36 -04:00
bunnei 2ff824c992 Merge pull request #337 from Subv/used_buffers
GPU: Don't use explicit binding points when uploading the constbuffers to opengl
2018-04-15 16:30:57 -04:00
bunnei f6ba44429e pl_u: Use empty shared font if none is available.
- Makes games work in lieu of shared_font.bin.
2018-04-15 16:15:34 -04:00
Subv ea9f5538c2 GPU: Use the same buffer names in the generated GLSL and the buffer uploading code. 2018-04-15 15:02:50 -05:00
Subv d8fdbefef6 GPU: Don't use explicit binding points when uploading the constbuffers to opengl.
The bindpoints will now be dynamically calculated based on the number of buffers used by the previous shader stage.
2018-04-15 14:14:57 -05:00
bunnei 3a6dc1e0e4 Merge pull request #335 from bunnei/delete-file
fsp_srv: Implement DeleteFile.
2018-04-15 15:13:02 -04:00
bunnei dc852fda3b fsp_srv: Implement DeleteFile.
- Used by Binding of Isaac.
2018-04-15 13:15:18 -04:00
Subv 1a31997264 GPU: Don't use GetPointer when uploading the constbuffer data to the GPU. 2018-04-15 11:18:09 -05:00
Subv ffdc9e716d GPU: Use the buffer hints from the shader decompiler to upload only the necessary const buffers for each shader stage. 2018-04-15 11:15:54 -05:00
bunnei 595d37d69a shaders: Expose hints about used const buffers. 2018-04-15 11:50:10 -04:00
Subv 03cbd8f20f GPU: Upload the entirety of each constbuffer for each shader stage as SSBOs.
We're going to need the shader generator to give us a mapping of the actual used const buffers to properly bind them to the shader.
2018-04-14 23:02:05 -05:00
Subv ea730b69d1 GPU: Allow configuring ssbos in the opengl state manager. 2018-04-14 22:54:23 -05:00
Subv e14e38fe0e GPU: Added a function to determine whether a shader stage is enabled or not. 2018-04-14 22:54:23 -05:00
bunnei 1a1008a642 Merge pull request #332 from bunnei/fix-total-mem-usage
vm_manager: Increase GetTotalMemoryUsage value.
2018-04-14 22:29:19 -04:00
bunnei 3260473ce8 vm_manager: Increase GetTotalMemoryUsage value.
- Gets Binding of Isaac running.
2018-04-14 22:04:10 -04:00
bunnei f23d61a709 Merge pull request #327 from adityaruplaha/fullscreen-fix
Fix the stuck in fullscreen bug
2018-04-14 21:24:36 -04:00
bunnei a2dcd3cbbc Merge pull request #331 from bunnei/fsp-flush
fsp_srv: Implement IFile::Flush.
2018-04-14 21:21:34 -04:00
bunnei 28c0641382 fsp_srv: Implement IFile::Flush. 2018-04-14 19:46:09 -04:00
bunnei 538322ec1f shaders: Add NumTextureSamplers const, remove unused #pragma. 2018-04-14 18:50:06 -04:00
bunnei f48c229f0e shaders: Address PR review feedback. 2018-04-14 16:01:41 -04:00
bunnei 2fcae0000f gl_shader_decompiler: Cleanup log statements. 2018-04-14 16:01:41 -04:00
bunnei 47bf0b0094 shaders: Fix GCC and clang build issues. 2018-04-14 16:01:40 -04:00
bunnei d166a50ded gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup. 2018-04-14 16:01:40 -04:00
bunnei a859a70da1 shader_bytecode: Add FSETP and KIL to GetInfo. 2018-04-14 16:01:40 -04:00
bunnei 6fe96737a1 shader_bytecode: Add SubOp decoding. 2018-04-14 16:01:40 -04:00
bunnei a5728bdd10 gl_shader_decompiler: Add shader stage hint. 2018-04-14 16:01:39 -04:00
bunnei e3628ec6fd renderer_opengl: Fix Morton copy byteswap, etc. 2018-04-14 16:01:39 -04:00
adityaruplaha 4716115c3d Fix the stuck in fullscreen bug (Original PR: citra-emu/citra#3611) 2018-04-14 16:41:56 +05:30
bunnei 1962aac7a0 gl_shader_manager: Implement SetShaderSamplerBindings. 2018-04-13 23:48:30 -04:00
bunnei 1a3dbd49ef gl_rasterizer: Generate shaders and upload uniforms. 2018-04-13 23:48:29 -04:00
bunnei 8df3222eb3 gl_shader_decompiler: Basic impl. for very simple vertex shaders.
- Tested with Puyo Puyo Tetris and Cave Story+
2018-04-13 23:48:28 -04:00
bunnei f11b2888c9 gl_shader_manager: Cleanup and consolidate uniform handling. 2018-04-13 23:48:28 -04:00
bunnei 7e7f053ea7 maxwell_3d: Make memory_manager public. 2018-04-13 23:48:27 -04:00
bunnei 4e961244a8 maxwell_3d: Fix shader_config decodings. 2018-04-13 23:48:26 -04:00
bunnei 2452d127dc gl_rasterizer: Use shader program manager, remove test shader. 2018-04-13 23:48:26 -04:00
bunnei f9c4e515d8 renderer_opengl: Add gl_shader_manager class. 2018-04-13 23:48:25 -04:00
bunnei 9e32fa6bb2 maxwell_to_gl: Add a few types, etc. 2018-04-13 23:48:24 -04:00
bunnei 7cebff07e4 gl_shader_gen: Add hashable setup/config structs. 2018-04-13 23:48:23 -04:00
bunnei 1aa7a9ae50 gl_shader_util: Add missing includes. 2018-04-13 23:48:23 -04:00
bunnei c30c48e052 common: Port cityhash code from Citra. 2018-04-13 23:48:22 -04:00
bunnei f1915d909e renderer_opengl: Use OGLProgram instead of OGLShader. 2018-04-13 23:48:21 -04:00
bunnei 56ee41ebe8 gl_shader_util: Grab latest upstream. 2018-04-13 23:48:21 -04:00
bunnei 83007952ea gl_resource_manager: Grab latest upstream. 2018-04-13 23:48:20 -04:00
bunnei f0f3990064 gl_shader_decompiler: Add skeleton code from Citra for shader analysis. 2018-04-13 23:48:20 -04:00
bunnei 0b49a74e19 shader_bytecode: Add initial module for shader decoding. 2018-04-13 23:48:19 -04:00
bunnei 7112683376 bit_field: Make all methods constexpr. 2018-04-13 23:48:18 -04:00
bunnei e42bbdddff Merge pull request #323 from Hexagon12/stub-hid
Service/HID: Stubbed out GetPlayerLedPattern
2018-04-13 10:58:03 -04:00
Hexagon12 433ccdebe5 Fixed normal params in GetDisplayResolution 2018-04-13 17:47:01 +03:00
Hexagon12 e6bb2d65f8 Stubbed out GetPlayerLedPattern 2018-04-13 17:05:03 +03:00
bunnei 219e3f4c45 Merge pull request #319 from Hexagon12/service-name-fix
Various service name fixes - part 1
2018-04-13 00:25:32 -04:00
mailwl b439691768 Service/SSL: update service according switchbrew 2018-04-11 19:17:18 +03:00
Hexagon12 8293ccc5ed Various fixes and clang 2018-04-11 14:48:56 +03:00
Hexagon12 6d6064d42e Decimal change 2018-04-10 21:21:00 +03:00
Hexagon12 f171ec8b29 Updated pctl:a with new service names. 2018-04-10 21:03:23 +03:00
Hexagon12 0bd95ef3be Updated nvmemp with new service names. 2018-04-10 20:28:15 +03:00
Hexagon12 2df3594b31 Updated nvdrv with more service names. 2018-04-10 20:26:49 +03:00
Hexagon12 837b8b5b80 Updated pl:u with more service names. 2018-04-10 20:23:21 +03:00
Hexagon12 e05e3c8a08 Updated hid with more service names. 2018-04-10 20:17:22 +03:00
Hexagon12 93b83a11b6 Updated friend:u with more service names. 2018-04-10 20:02:11 +03:00
Hexagon12 83479a3d19 Updated the unknown name 2018-04-10 20:01:33 +03:00
Hexagon12 251c576455 Updated friend:a with more service names. 2018-04-10 20:00:36 +03:00
Hexagon12 f8e0ce2cd0 Updated fsp-srv with more service names. 2018-04-10 19:30:27 +03:00
Hexagon12 82be79db10 Updated CodecCtl with more service names. 2018-04-10 18:58:14 +03:00
Hexagon12 a9239dbed8 Updated audren with more service names. 2018-04-10 18:56:57 +03:00
Hexagon12 95d5bf3aa1 Updated audrec with more service names. 2018-04-10 18:53:33 +03:00
Hexagon12 eff525cab3 Updated audout with more service names. 2018-04-10 18:51:50 +03:00
Hexagon12 ba73f4e0a4 Updated audin with more service names. 2018-04-10 18:47:52 +03:00
Hexagon12 3eab3da04c Updated AOC with more service names. 2018-04-10 18:42:28 +03:00
Hexagon12 22ef1d1cc5 Updated AppletOE with more service names. 2018-04-10 18:41:17 +03:00
Hexagon12 4a594aff08 Updated AppletAE with more service names. 2018-04-10 18:39:46 +03:00
Hexagon12 c823bbde93 Updated AM with more service names. 2018-04-10 18:36:00 +03:00
mailwl a6a6ffed7a Service/ACC: convert to module, add acc:aa, acc:su, acc:u1 services 2018-04-10 10:18:52 +03:00
bunnei 6101a3c9d7 Merge pull request #314 from jroweboy/tegra-progress-3b
GPU: Bind uploaded textures when drawing (Rebased)
2018-04-07 18:46:16 -04:00
bunnei e918570c6d Merge pull request #315 from jroweboy/spelling-fix
Fix spelling of Initialize
2018-04-07 16:49:09 -04:00
James Rowe 92254855e7 Prevent crash from uninitialized telemetry 2018-04-07 07:25:14 -06:00
James Rowe f6ae0f432b Fix spelling of Initialize 2018-04-07 07:23:21 -06:00
James Rowe d8502eb24a Fix clang format issues 2018-04-06 22:00:48 -06:00
Subv cb3ca1d4cf GPU: Assert when finding a texture with a format type other than UNORM. 2018-04-06 20:44:46 -06:00
Subv c63f7aa93b GL: Set up the textures used for each draw call.
Each Maxwell shader stage can have an arbitrary number of textures, but we're limited to a certain number in OpenGL. We try to only use the minimum amount of host textures by not keeping a 1:1 relation between guest texture ids and host texture ids, ie, guest texture id 8 can be host texture id 0 if it's the only texture used in the guest shader program.
This mapping will have to be passed to the shader decompiler so it can rewrite the texture accesses.
2018-04-06 20:44:46 -06:00
Subv 4f1665d365 GL: Bind the textures to the shaders used for drawing. 2018-04-06 20:44:46 -06:00
Subv 8bc63e89e4 GLCache: Specialize the MortonCopy function for the DXT1 texture format.
It will now use the UnswizzleTexture function instead of the MortonCopyPixels128, which doesn't seem to work for textures.
2018-04-06 20:44:46 -06:00
Subv 1e6faaf2b3 GLCache: Implemented GetTextureSurface. 2018-04-06 20:44:45 -06:00
Subv 2a5e90745c GLCache: Support uploading compressed textures to the GPU.
Compressed texture formats like DXT1, DXT2, DXT3, etc will use this to ease the load on the CPU.
2018-04-06 20:44:45 -06:00
Subv 34b212c6a8 GL: Remove remaining references to 3DS-specific pixel formats 2018-04-06 20:44:42 -06:00
Subv 6400a3bb35 RasterizerCache: Remove 3DS-specific pixel formats.
We're only left with RGB8 and DXT1 for now. More will be added as they are needed.
2018-04-06 20:40:24 -06:00
Subv ab6d7991f8 GL: Create the sampler objects when starting up the GL rasterizer. 2018-04-06 20:40:24 -06:00
Subv 232ffe85ad GL: Ported the SamplerInfo struct from citra. 2018-04-06 20:40:24 -06:00
Subv dc26ad9aec GL: Rename PicaTexture to MaxwellTexture. 2018-04-06 20:40:24 -06:00
Subv 3c9cbbca68 GL: Added functions to convert Maxwell tex filters and wrap modes to OpenGL. 2018-04-06 20:40:23 -06:00
Subv d9e067fad6 Textures: Added a helper function to know if a texture is blocklinear or pitch. 2018-04-06 20:40:23 -06:00
bunnei 990ca9b20d Merge pull request #310 from N00byKing/patch-1
Update multiple comments from citra to yuzu
2018-04-06 11:07:28 -04:00
N00byKing 6d5b25c136 core, main.h: Abort on 32Bit ROMs (#309)
* core, main.h: Abort on 32Bit ROMs

* main.cpp: Fix Grammar
2018-04-06 11:06:32 -04:00
James Rowe b957a3647a Update fmtlib to fix msvc warnings
Additionally, when updating fmtlib, there was a change in fmtlib broke
how the old logging macro was overloaded, so this works around that by
just naming the fmtlib macro impl something different
2018-04-05 22:42:09 -06:00
N00byKing 63b5de9c40 rasterizer_interface.h: Update from citra to yuzu 2018-04-04 23:07:58 +02:00
N00byKing 6263f437d7 default_ini.h: Update from citra to yuzu 2018-04-04 23:05:51 +02:00
N00byKing b84397745f gl_rasterizer_cache.cpp: Update from citra to yuzu 2018-04-04 23:05:10 +02:00
N00byKing 3ca8768d3a gl_rasterizer_cache.h: Update from citra to yuzu 2018-04-04 23:04:24 +02:00
N00byKing 2a2af539f3 renderer_opengl.h: Update from citra to yuzu 2018-04-04 23:03:02 +02:00
bunnei e71cfbce72 svc: Stub out SetThreadActivity, GetThreadContext. 2018-04-02 23:51:01 -04:00
bunnei 372b8dae46 audren_u: Stub out GetActiveAudioDeviceName. 2018-04-02 23:51:00 -04:00
bunnei 683de06263 audout_u: Implement GetAudioOutState. 2018-04-02 23:51:00 -04:00
bunnei 659fd3e9f8 nifm: GetResult does not return a data field. 2018-04-02 23:50:59 -04:00
bunnei c800619c1e vi: Implement GetDisplayResolution. 2018-04-02 23:50:59 -04:00
bunnei 1eeef530e5 shared_memory: Remove incorrect 3ds-specific check. 2018-04-02 23:50:58 -04:00
bunnei 3f82cee183 service: Add friend:u interface. 2018-04-02 23:50:57 -04:00
Daniel Lim Wee Soong 145a4c3c2a logging: Change FmtLogMessage to use variadic template instead of FMT_VARIADIC
Due to premature merging of #262 I think the build may be failing right now. Should merge this ASAP to fix it.
2018-04-03 10:31:54 +08:00
bunnei e39ea2fa8e Merge pull request #262 from daniellimws/fmtlib-macros
Logging: Add fmtlib-based macros
2018-04-02 21:19:20 -04:00
bunnei 2b51f19079 Merge pull request #267 from N00byKing/patch-1
Update Dialog from citra to yuzu
2018-04-02 18:33:52 -04:00
bunnei 8eea0f0805 Merge pull request #276 from N00byKing/acctoyuzu
Change Telemetry Names to yuzu and remove links to citra
2018-04-02 18:30:04 -04:00
bunnei 0ce3d76591 Merge pull request #304 from daniellimws/fix-openbsd
Fix build on OpenBSD
2018-04-02 18:27:19 -04:00
N00byKing ba7cd88412 deconstructed_rom_directory.cpp: Fix Typo 2018-04-03 00:20:35 +02:00
Daniel Lim Wee Soong 930a045d42 externals: Update fmt to 4d35f94
Versions prior to this didn't compile on OpenBSD due to unconditional
use of the non-standard strtod_l() function.

The fmt::MemoryWriter API has been removed in the intervening
versions, so replace its use with fmt::memory_buffer and fmt::format_to.

The library also no longer provides the fmt::fmt ALIAS, so define
it in externals/CMakeLists.txt.
2018-04-03 02:49:58 +08:00
Daniel Lim Wee Soong 96cb786cd1 common: fix swap functions on Bitrig and OpenBSD
swap{16,32,64} are defined as macros on the two, but client code
tries to invoke them as Common::swap{16,32,64}, which naturally
doesn't work. This hack redefines the macros as inline functions
in the Common namespace: the bodies of the functions are the
same as the original macros, but relying on OS-specific
implementation details like this is of course brittle.
2018-04-03 02:25:11 +08:00
bunnei bc629f2f9b Merge pull request #297 from bunnei/hid-touch-state
hid: Write empty touch screen state.
2018-04-02 13:05:34 -04:00
bunnei e5491924f7 Merge pull request #296 from bunnei/misc-mem-fsp-fixes
Fix stack region, implement FSP GetSize/SetSize, and some stubs
2018-04-02 13:05:25 -04:00
bunnei 98bd0df9a3 Merge pull request #288 from Subv/macro_interpreter
GPU: Implemented a gpu macro interpreter
2018-04-02 10:04:19 -04:00
Subv 84c9824895 GPU: Use the MacroInterpreter class to execute the GPU macros instead of HLEing them. 2018-04-01 12:07:26 -05:00
Subv 7fe4f9491e GPU: Implemented a gpu macro interpreter.
The Ryujinx macro interpreter and envydis were used as reference.

Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.
2018-04-01 12:07:26 -05:00
bunnei c7a4327471 hid: Write empty touch screen state. 2018-04-01 00:12:07 -04:00
bunnei 52c5bc4642 hle_ipc, fsp_srv: Cleanup logging. 2018-03-31 23:30:00 -04:00
bunnei 699d84abda hid: Stub out GetSupportedNpadStyleSet. 2018-03-31 16:06:46 -04:00
bunnei 6d21b8cdea hle_ipc: Do not ensure write buffer size. 2018-03-31 16:06:46 -04:00
bunnei db8fc2ea57 fsp_srv: Implement GetSize and SetSize. 2018-03-31 16:06:45 -04:00
bunnei 36cdd5a39c memory: Fix stack region. 2018-03-31 16:06:45 -04:00
bunnei 7d4a23db4e Merge pull request #293 from N00byKing/drkthm
Add Dark Theme (And Theming in General + Icon Theming)
2018-03-31 00:46:18 -04:00
N00byKing 6386f0910c Port citra-emu/citra#3610 to yuzu 2018-03-30 17:38:34 +02:00
N00byKing 7555b881e8 Remove whitespaces 2018-03-30 14:18:35 +02:00
N00byKing 675b525fb8 Add Dark theme, Icon theming
configure_general.ui: Add UI Option for Themes

config.cpp: Save Theme Settings
2018-03-30 14:14:37 +02:00
bunnei 038c8d284b audren_u: Stub QueryAudioDeviceSystemEvent and GetActiveChannelCount. 2018-03-29 21:23:24 -04:00
bunnei 86f0e841d8 svc: Stub GetThreadCoreMask. 2018-03-29 21:23:15 -04:00
bunnei f5c2d62b3a service: Add NFP module interface.
service: Initialize NFP service.

Log: Add NFP service as a log subtype.
2018-03-29 21:22:44 -04:00
Lioncash e6375771e2 result: Check against self-assignment in ResultVal's copy assignment operator
Avoids doing work that doesn't need to be done.
2018-03-28 18:02:44 -04:00
bunnei 9d3baff255 Merge pull request #286 from N00byKing/citratoyuzuagain
main.h: Add pragma once, remove ifndef
2018-03-27 19:57:58 -04:00
N00byKing a037c8914a main.h: Add pragma once, remove ifndef 2018-03-27 16:32:41 +02:00
bunnei fcb09e7bb3 Merge pull request #284 from bunnei/docked-config
Add config for "Docked" mode and various settings cleanup
2018-03-27 10:22:08 -04:00
N00byKing dfa21f372b telemetry.h: Reword comment from citra to yuzu 2018-03-27 11:16:59 +02:00
N00byKing a14420e351 telemetry_session.h: Reword Documentation Comment from citra to yuzu 2018-03-27 11:16:59 +02:00
N00byKing a97c186684 Remove Links to citra Services 2018-03-27 11:16:59 +02:00
N00byKing b411bdb76e Change Telemetry Names to yuzu 2018-03-27 11:16:59 +02:00
bunnei 81d12e3466 Merge pull request #282 from N00byKing/patch-2
Change comments from citra to yuzu
2018-03-26 23:37:05 -04:00
bunnei 8c991d792e settings: Remove unused CpuCore class. 2018-03-26 23:14:44 -04:00
bunnei 32181284be config: Use simplified checkbox (from Citra) for CPU JIT. 2018-03-26 23:02:37 -04:00
bunnei af6e1f8554 config: Rename is_docked to use_docked_mode to be consistent with other config bools. 2018-03-26 23:02:36 -04:00
bunnei b4fb85ff0f configure_general: Cleanup naming. 2018-03-26 23:02:36 -04:00
bunnei 534cee3d8b qt: Add config option for is_docked. 2018-03-26 23:02:35 -04:00
bunnei 679d29d9f8 config: Add setting for whether the system is docked or not. 2018-03-26 23:02:35 -04:00
bunnei 6333552a5d renderer_opengl: Use better naming for DrawScreens and DrawSingleScreen. 2018-03-26 21:17:07 -04:00
bunnei 9415aeb48f graphics_surface: Remove superfluous cast. 2018-03-26 21:17:05 -04:00
bunnei 12a6c7b11b gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function. 2018-03-26 21:17:05 -04:00
bunnei b9eae6e652 gl_rasterizer: Add a SyncViewport method. 2018-03-26 21:17:04 -04:00
bunnei 2666b52264 gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL. 2018-03-26 21:17:03 -04:00
bunnei 74c4739713 graphics_surface: Fix merge conflicts. 2018-03-26 21:17:03 -04:00
bunnei 7c376760c0 gl_rasterizer: Use ReadBlock instead of GetPointer for SetupVertexArray. 2018-03-26 21:17:02 -04:00
bunnei 95d56cac29 gl_rasterizer: Normalize vertex array data as appropriate. 2018-03-26 21:17:02 -04:00
bunnei ad1af61685 memory: Fix cast for ReadBlock/WriteBlock/ZeroBlock/CopyBlock. 2018-03-26 21:17:01 -04:00
bunnei 0e59fbd73f maxwel_to_gl: Fix string formatting in log statements. 2018-03-26 21:17:01 -04:00
bunnei b601155fb0 rasterizer: Rename DrawTriangles to DrawArrays. 2018-03-26 21:17:00 -04:00
bunnei ec13680b3e gl_rasterizer: Use passthrough shader for SetupVertexShader. 2018-03-26 21:17:00 -04:00
bunnei 71a932291f renderer_opengl: Logging, etc. cleanup. 2018-03-26 21:16:59 -04:00
bunnei be645eece3 renderer_opengl: Remove framebuffer RasterizerFlushVirtualRegion hack. 2018-03-26 21:16:58 -04:00
bunnei 36a3a82135 gl_rasterizer_cache: Implement UpdatePagesCachedCount. 2018-03-26 21:16:58 -04:00
bunnei 49b3b519fc memory: Add RasterizerMarkRegionCached code and cleanup. 2018-03-26 21:16:57 -04:00
bunnei 4c36e92bf4 gl_rasterizer: Implement SetupVertexArray. 2018-03-26 21:16:56 -04:00
bunnei 4c0ed161a8 gl_rasterizer_cache: Fix an ASSERT_MSG. 2018-03-26 21:16:56 -04:00
bunnei 9e146ba2db maxwell_to_gl: Add module and function for decoding VertexType. 2018-03-26 21:16:55 -04:00
bunnei ded4139447 maxwell_3d: Use names that match envytools for VertexType. 2018-03-26 21:16:55 -04:00
bunnei d37f03d0fe maxwell_3d: Add VertexAttribute struct and cleanup. 2018-03-26 21:16:54 -04:00
bunnei 5f3f68e064 gl_rasterizer: Use 32 texture units instead of 3. 2018-03-26 21:16:53 -04:00
bunnei b1a3858e30 gl_rasterizer: Implement DrawTriangles. 2018-03-26 21:16:53 -04:00
bunnei e04a5dec60 Maxwell3D: Call AccelerateDrawBatch on DrawArrays. 2018-03-26 21:16:52 -04:00
bunnei 5ae2fe6c69 gl_rasterizer: Implement AnalyzeVertexArray. 2018-03-26 21:16:52 -04:00
bunnei e285a5d6da gl_rasterizer_cache: MortonCopy Switch-style. 2018-03-26 21:16:51 -04:00
bunnei 25e901ec1e gl_rasterizer_cache: Implement GetFramebufferSurfaces. 2018-03-26 21:16:51 -04:00
bunnei bf282aa01f maxwell: Add RenderTargetFormat enum. 2018-03-26 21:16:49 -04:00
bunnei 33b4c486f3 renderer_opengl: Only draw the screen if a framebuffer is specified. 2018-03-26 21:16:49 -04:00
Subv 3707231f5d GPU: Load the sampler info (TSC) when retrieving active textures. 2018-03-26 15:46:49 -05:00
Subv c8425b1af4 GPU: Added the TSC structure. It contains information about the sampler. 2018-03-26 15:45:05 -05:00
Subv 0255cad30c GPU: Added more fields to the TIC structure. 2018-03-26 15:44:20 -05:00
N00byKing e57ba11168 log.h: Change comment from citra to yuzu 2018-03-26 21:52:59 +02:00
N00byKing 770ee77982 file_util.h: Update Comment from citra to yuzu 2018-03-26 21:51:04 +02:00
N00byKing 33c1780755 yuzu.cpp: Update Link from citra to yuzu 2018-03-26 21:48:18 +02:00
N00byKing 6b5f41b812 cpu_detect.cpp: Change comment from citra to yuzu 2018-03-26 21:43:39 +02:00
bunnei db7005ca05 Merge pull request #280 from bunnei/misc-service-fixes
Minor changes to VI, PL, HID, and AUDREN
2018-03-25 17:07:06 -04:00
bunnei feff74c433 Merge pull request #273 from Subv/textures
GPU: Added code to unswizzle textures and ported the surface viewer from citra
2018-03-25 16:28:24 -04:00
N00byKing 05d777b122 main.cpp: Replace Citra with yuzu Wiki Links 2018-03-25 11:44:04 +02:00
N00byKing 357e97cc2c main.cpp: Update Dialog from citra to yuzu 2018-03-25 11:42:46 +02:00
mailwl cfbce8c977 Service/sockets: add bsd:s, nsd:a, nsd:u services 2018-03-25 12:41:00 +03:00
bunnei 09f5837d6b audren_u: Fix GetAudioDevice. 2018-03-25 03:24:20 -04:00
bunnei dd7c34a978 hid: Stub out SetNpadJoyAssignmentModeDual. 2018-03-25 03:24:05 -04:00
bunnei a4435604c9 pl_u: Add RequestLoad. 2018-03-25 03:23:52 -04:00
Subv 18a9536efa GPU: Make the debug_context variable a member of the frontend instead of a global. 2018-03-24 23:35:06 -05:00
Subv f73fb9de9d GPU: Added a function to retrieve the active textures for a shader stage.
TODO: A shader may not use all of these textures at the same time, shader analysis should be performed to determine which textures are actually sampled.
2018-03-24 11:31:53 -05:00
Subv 0892143af9 Frontend: Updated the surface view debug widget to work with Maxwell surfaces. 2018-03-24 11:31:53 -05:00
Subv b143430809 Frontend: Allow opening the Surface View widget in the Qt frontend. 2018-03-24 11:31:50 -05:00
Subv b9b5b1e740 GPU: Implement the Incoming/FinishedPrimitiveBatch debug breakpoints. 2018-03-24 11:31:50 -05:00
Subv 10b10a14af GPU: Implement the MaxwellCommandLoaded/Processed debug breakpoints. 2018-03-24 11:31:50 -05:00
Subv 19bf501723 Frontend: Ported the GPU breakpoints and surface viewer widgets from citra. 2018-03-24 11:31:49 -05:00
Subv bc03dc4793 GPU: Added a method to unswizzle a texture without decoding it.
Allow unswizzling of DXT1 textures.
2018-03-24 11:30:56 -05:00
Subv d09097276f GPU: Preliminary work for texture decoding. 2018-03-24 11:30:56 -05:00
MerryMage f8426bcf94 arm_dynarmic: Fix timing 2018-03-24 09:02:19 +00:00
Subv 6234ec112b GPU: Added viewport registers to Maxwell3D's reg structure. 2018-03-24 01:22:19 -05:00
bunnei 79b3adba8e Merge pull request #265 from bunnei/tegra-progress-2
Tegra progress 2
2018-03-23 23:30:48 -04:00
bunnei 2920684a44 gl_rasterizer: Fake render in green, because it's cooler. 2018-03-23 22:27:53 -04:00
bunnei 454759e2a5 gl_rasterizer: Log warning instead of sync'ing unimplemented funcs. 2018-03-23 22:24:16 -04:00
bunnei 0a28179632 Merge pull request #255 from Subv/sd_card
FS: Implemented access to the SD card
2018-03-23 20:48:26 -04:00
bunnei 490014c459 gl_rasterizer_cache: Add missing include for vm_manager. 2018-03-23 16:54:20 -04:00
bunnei bea2582807 renderer_opengl: Only invalidate the framebuffer region, not flush. 2018-03-23 15:52:14 -04:00
bunnei 9b2bfb9e9d renderer_opengl: Fixes for properly flushing & rendering the framebuffer. 2018-03-23 15:49:04 -04:00
bunnei c13802819b memory: Fix typo in RasterizerFlushVirtualRegion. 2018-03-23 15:46:21 -04:00
bunnei c30e02cd0c Merge pull request #268 from mailwl/ssl
Service/SSL: add ssl service
2018-03-23 15:30:17 -04:00
bunnei 454e413491 Merge pull request #270 from N00byKing/patch-2
Remove Option for N/3DS from default.ini
2018-03-23 15:29:35 -04:00
Subv 6610bee69e FS: Move the file open mode calculation to a separate function. 2018-03-23 14:27:07 -05:00
bunnei ca08e1edee RasterizerCacheOpenGL: FlushAll should flush full memory region. 2018-03-23 15:25:16 -04:00
bunnei 4d5c052f34 memory: RasterizerFlushVirtualRegion should also check process image region. 2018-03-23 15:10:02 -04:00
bunnei 6131f96f6a rasterizer: Flush and invalidate regions should be 64-bit. 2018-03-23 15:01:45 -04:00
bunnei cc17ea04c4 renderer_opengl: Add framebuffer_transform_flags member variable. 2018-03-23 14:59:14 -04:00
bunnei c2a48352ad renderer_opengl: Better handling of framebuffer transform flags. 2018-03-23 14:58:27 -04:00
N00byKing 3aeeaeaf2b Remove Option for N/3DS from default.ini 2018-03-23 18:06:55 +01:00
N00byKing 4023ee09fc CITRA_ICON -> YUZU_ICON 2018-03-23 16:56:59 +01:00
mailwl 96164de3a0 Service/SSL: add ssl service 2018-03-23 09:32:50 +03:00
bunnei fce77a1fb1 renderer_opengl: Use accelerated framebuffer load with LoadFBToScreenInfo. 2018-03-22 23:28:37 -04:00
bunnei aa667e6afa nvdisp_disp0: Always flush and invalidate framebuffer region.
- Workaround for texture forwarding until we have a better place.
2018-03-22 23:18:04 -04:00
bunnei 855aadf055 gl_rasterizer: Implement AccelerateDisplay method from Citra. 2018-03-22 23:06:54 -04:00
bunnei 95dec6140b LoadGLBuffer: Use bytes_per_pixel, not bits. 2018-03-22 23:01:57 -04:00
bunnei c9c232727c memory: Port RasterizerFlushVirtualRegion from Citra. 2018-03-22 22:56:41 -04:00
bunnei 7b167a12ad gl_rasterizer_cache: LoadGLBuffer should do a morton copy. 2018-03-22 22:54:04 -04:00
bunnei 875215fae4 video_core: Move MortonCopyPixels128 to utils header. 2018-03-22 22:52:40 -04:00
Valentin Vanelslande 96b4fc4206 yuzu_cmd: change default cpu core to dynarmic 2018-03-22 19:44:34 -06:00
Valentin Vanelslande a105e0f72d default_ini: change default cpu core to dynarmic 2018-03-22 19:43:59 -06:00
bunnei 4e4e999c4a video_core: Remove usage of PAddr and replace with VAddr. 2018-03-22 21:13:46 -04:00
bunnei 6babc57354 video_core: Move FramebufferInfo to FramebufferConfig in GPU. 2018-03-22 21:04:30 -04:00
bunnei 8c5ed9de77 gl_rasterizer: Replace a bunch of UNIMPLEMENTED with ASSERT. 2018-03-22 20:19:34 -04:00
bunnei 3ea48b01d3 gl_rasterizer: Add a simple passthrough shader in lieu of shader generation. 2018-03-22 20:00:41 -04:00
bunnei 8286b237cc gpu: Expose Maxwell3D engine. 2018-03-22 19:48:20 -04:00
bunnei fcddbe6027 maxwell_3d: Add some format decodings and string helper functions. 2018-03-22 19:47:28 -04:00
bunnei c388741f12 renderer: Create rasterizer and cleanup. 2018-03-22 19:46:37 -04:00
N00byKing 35d617d342 Remove more N3DS References 2018-03-22 21:25:06 +01:00
Daniel Lim Wee Soong df93e4f9b0 Remove dependency chrono
Earlier chrono was included but after some code changed it was no longer needed

Forgot to remove it so I'm removing it now
2018-03-22 21:53:51 +08:00
Daniel Lim Wee Soong 81eaba792e Change "yuzu starting..." to be logged with the new macro
Just as a proof that it works
2018-03-22 18:26:43 +08:00
Daniel Lim Wee Soong a0298a552c Logging: Create logging macros based on fmtlib
Add a new set of logging macros based on fmtlib
Similar but not exactly the same as https://github.com/citra-emu/citra/pull/3533

Citra currently uses a different version of fmt, which does not support FMT_VARIADIC so
make_args is used instead. On the other hand, yuzu uses fmt 4.1.0 which doesn't have make_args yet
so FMT_VARIADIC is used.
2018-03-22 18:21:29 +08:00
mailwl e0d1e257a8 Service/spl: add module and services 2018-03-22 09:55:14 +03:00
bunnei 3a37f55067 Merge pull request #258 from Subv/gpu_attribs
GPU: Added vertex attrib format and triangle topology registers
2018-03-21 19:36:06 -04:00
N00byKing 9b619405e9 CMake: Set EMU_ARCH_BITS in CMakeLists.txt 2018-03-21 19:03:20 +01:00
Subv 43295efd0e FS: Implemented IFileSystem::CreateDirectory. 2018-03-21 09:55:59 -05:00
Subv f3a5328f09 GPU: Added vertex attribute format registers. 2018-03-21 09:26:47 -05:00
mailwl eaf65829ca Service/vi: convert services to module 2018-03-21 13:09:40 +03:00
Subv a569ee8a58 GPU: Added registers for the number of vertices to render. 2018-03-20 23:28:06 -05:00
bunnei 766c6de88d Merge pull request #254 from bunnei/port-citra-renderer
Port Citra OpenGL rasterizer code
2018-03-20 21:37:43 -04:00
mailwl ce7e0e503b Service: add fatal:u, fatal:p services 2018-03-20 16:59:02 +03:00
bunnei 188a685e73 renderer_gl: Port boilerplate rasterizer code over from Citra. 2018-03-20 00:07:32 -04:00
bunnei e0f3facd01 gl_shader_util: Sync latest version with Citra. 2018-03-20 00:07:31 -04:00
bunnei 756e14027a renderer_gl: Port over gl_shader_gen module from Citra. 2018-03-20 00:07:30 -04:00
Subv ddafc857c7 FS: Implemented IFileSystem's OpenDirectory function.
Note that the filter parameter is not yet implemented.
2018-03-19 23:02:30 -05:00
Subv fce3825edf FS: Added the IDirectory IPC interface and implemented its two functions. 2018-03-19 23:01:47 -05:00
Subv bf1c4bf16c FS: Implement DiskFileSystem's OpenDirectory interface. 2018-03-19 23:00:37 -05:00
Subv 7de15c22f3 FS: Implement DiskFileSystem::GetEntryType for existing files/directories. 2018-03-19 22:59:38 -05:00
Subv e4b4b765b6 FS: Updated the Directory Entry structure to match the Switch. 2018-03-19 22:58:55 -05:00
Subv 8144364cc2 FS: Support the file Append open mode. 2018-03-19 22:57:34 -05:00
Mat M 9b5ae0daf5 Merge pull request #253 from Subv/rt_depth
GPU: Added registers for color and Z buffers.
2018-03-19 23:37:47 -04:00
bunnei f1e9d5404d renderer_gl: Port over gl_shader_decompiler module from Citra. 2018-03-19 23:14:03 -04:00
bunnei a533c3398c renderer_gl: Port over gl_rasterizer_cache module from Citra. 2018-03-19 23:14:03 -04:00
bunnei ac51a39abf gl_resource_manager: Sync latest version with Citra. 2018-03-19 23:14:02 -04:00
bunnei 52bfc102bc renderer_gl: Port over gl_stream_buffer module from Citra. 2018-03-19 23:14:02 -04:00
bunnei b1ceeb5c42 gl_state: Sync latest version with Citra. 2018-03-19 23:13:49 -04:00
Subv b15d0a65c4 FS: Implement MountSdCard. 2018-03-19 21:21:49 -05:00
Subv a079723254 FS: Added an SDMC archive factory and registered it to the SDMC archive on startup. 2018-03-19 21:17:15 -05:00
Subv 3e645f5595 GPU: Added Z buffer registers to Maxwell3D's reg structure. 2018-03-19 16:55:33 -05:00
Subv b942bfbb13 GPU: Added the render target (RT) registers to Maxwell3D's reg structure. 2018-03-19 16:46:29 -05:00
N00byKing d3bdad2aaa Clang Fixes 2018-03-19 17:53:35 +01:00
N00byKing f69c369cfb oops 2018-03-19 17:43:04 +01:00
N00byKing 8d34c0d2a0 More Warning cleanups 2018-03-19 17:27:04 +01:00
N00byKing 1212e9e231 Clean Warnings (?) 2018-03-19 17:07:08 +01:00
Subv c0f954906c GPU: Added the TSC registers to the Maxwell3D register structure. 2018-03-19 00:36:25 -05:00
Subv f6e3d3aa1a GPU: Added the TIC registers to the Maxwell3D register structure. 2018-03-19 00:32:57 -05:00
bunnei 8d9b2cb438 Merge pull request #193 from N00byKing/3184_2_robotic_boogaloo
Implement Pull #3184 from citra: core/arm: Improve timing accuracy before service calls in JIT (Rebased)
2018-03-18 22:35:47 -04:00
bunnei 341925e40a Merge pull request #250 from bunnei/buffer-dequeue-wait
vi: TransactParcel DequeueBuffer should wait current thread
2018-03-18 22:25:09 -04:00
bunnei bae5ccd6d2 vi: Remove DequeueBuffer and wait until next available buffer. 2018-03-18 20:56:35 -04:00
bunnei 7750edae39 hle_ipc: Add SleepClientThread to block current thread within HLE routines. 2018-03-18 20:56:34 -04:00
bunnei 01d72e813e hle_ipc: Use shared_ptr instead of unique_ptr to allow copies. 2018-03-18 20:56:33 -04:00
bunnei 479400acc8 hle_ipc: Remove GetPointer(..) usage with WriteToOutgoingCommandBuffer. 2018-03-18 20:56:33 -04:00
bunnei d6c27e6b28 thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB. 2018-03-18 20:56:32 -04:00
Subv 36c527131f GPU: Implement macro 0xE1A BindTextureInfoBuffer in HLE.
This macro simply sets the current CB_ADDRESS to the texture buffer address for the input shader stage.
2018-03-18 19:03:40 -05:00
Subv 80b0f4d681 GPU: Implement the BindStorageBuffer macro method in HLE.
This macro binds the SSBO Info Buffer as the current ConstBuffer.
This buffer is usually bound to c0 during shader execution.
Games seem to use this macro instead of directly writing the address for some reason.
2018-03-18 16:50:42 -05:00
Subv 845415cc3d GPU: Handle writes to the CB_DATA method.
Writing to this method will cause the written value to be stored in the currently-set ConstBuffer plus CB_POS.

This method is usually used to upload uniforms or other shader-visible data.
2018-03-18 15:23:24 -05:00
Subv 46bbeeb54a GPU: Move the GPU's class constructor and destructors to a cpp file.
This should reduce recompile times when editing the Maxwell3D register structure.
2018-03-18 15:23:24 -05:00
Subv a8cb6ba213 GPU: Store uploaded GPU macros and keep track of the number of method parameters. 2018-03-18 11:51:46 -05:00
Subv 29c026fae1 GPU: Macros are specific to the Maxwell3D engine, so handle them internally. 2018-03-18 11:51:45 -05:00
Subv 5979796df8 GPU: Renamed ShaderType to ShaderStage as that is less confusing. 2018-03-17 18:32:57 -05:00
Subv 7b48098c60 GPU: Store shader constbuffer bindings in the GPU state. 2018-03-17 18:32:57 -05:00
Subv 5f181aec24 GPU: Corrected some register offsets and removed superfluous macro registers. 2018-03-17 18:32:56 -05:00
Subv 8a5c0e873b GPU: Make the SetShader macro call do the same as the real macro's code.
It'll now set the CB_SIZE, CB_ADDRESS and CB_BIND registers when it's called.

Presumably this SetShader function is binding the constant shader uniforms to buffer 1 (c1[]).
2018-03-17 18:32:55 -05:00
Subv e3e0625ff7 GPU: Corrected the parameter documentation for the SetShader macro call.
Register 0xE24 is actually a macro that sets some shader parameters in the register structure.

Macros are uploaded to the GPU at startup and have their own ISA, we'll probably write an interpreter for this in the future.
2018-03-17 13:55:42 -05:00
bunnei bed06310f2 Merge pull request #242 from Subv/set_shader
GPU: Handle the SetShader method call (0xE24) and store the shader config.
2018-03-17 00:34:17 -04:00
Subv c9850b0d3a GPU: Handle the SetShader method call (0xE24) and store the shader config. 2018-03-16 22:51:06 -05:00
Subv dbade2db3e GPU: Added the vertex array registers. 2018-03-16 22:47:45 -05:00
bunnei b849a04b2f Merge pull request #241 from Subv/gpu_method_call
GPU: Process command mode 5 (IncreaseOnce) differently from other commands
2018-03-16 22:28:22 -04:00
Subv 6796e37911 GPU: Process command mode 5 (IncreaseOnce) differently from other commands.
Accumulate all arguments before calling the desired method.

Note: Maybe we should do the same for the NonIncreasing mode?
2018-03-16 20:32:44 -05:00
bunnei 2c2acce091 Merge pull request #239 from Subv/shaders
GPU: Added some shader-related registers.
2018-03-16 21:09:35 -04:00
Subv 3247b8f9dd GPU: Assert that we get a 0 CODE_ADDRESS register in the 3D engine.
Shader address calculation depends on this value to some extent, we do not currently know what it being 0 entails.
2018-03-16 19:24:41 -05:00
Subv d468c046f9 GPU: Added Maxwell registers for Shader Program control. 2018-03-16 19:23:11 -05:00
bunnei b437a08a21 nvflinger: Remove superfluous buffer format check. 2018-03-16 20:11:50 -04:00
bunnei dd2e72f1aa process: MirrorMemory should use MemoryState::Mapped. 2018-03-16 19:24:54 -04:00
bunnei d7bb09afe7 process: Unmap previously allocated heap. 2018-03-16 18:32:25 -04:00
bunnei 256153c50c arm_interface: Support unmapping previously mapped memory. 2018-03-16 18:32:24 -04:00
bunnei a0b00fe2d1 svc: Use more correct values for GetInfo MapRegion and NewMapRegion. 2018-03-16 18:32:23 -04:00
bunnei a26561ce20 kernel: Move stack region outside of application heap. 2018-03-16 18:32:23 -04:00
bunnei 89312134f6 memory: Add regions for map region, "new" map region, etc. 2018-03-16 18:32:22 -04:00
bunnei 67bac363d8 process: Fix stack memory state. 2018-03-16 18:32:21 -04:00
bunnei 29bda49fc0 MemoryState: Add additional memory states and improve naming. 2018-03-16 18:32:21 -04:00
mailwl f5fbe99e28 IGeneralService: fix function list 2018-03-16 16:34:12 +03:00
mailwl 44739126a5 Service/NIFM: stub cancel function 2018-03-16 11:08:22 +03:00
mailwl db6c7e714c Service/NIFM: convert to module 2018-03-16 11:00:29 +03:00
bunnei f16763ed52 core: Move process creation out of global state. 2018-03-14 18:42:19 -04:00
bunnei b2b51850a1 Merge pull request #213 from Hexagon12/dynarmic-default
Make Dynarmic the default CPU core
2018-03-07 18:21:13 -05:00
Subv 083e494083 GPU: Intercept writes to the VERTEX_END_GL register.
This is the register that gets written after a game calls DrawArrays().

We should collect all GPU state and draw using our graphics API here.
2018-03-04 19:14:04 -05:00
bunnei 7dd960f543 Merge pull request #229 from Subv/ensuresavedata_impl
FS: Make EnsureSaveData create the save data if it doesn't already exist.
2018-03-04 15:49:42 -05:00
Subv cb738dedb2 FS: Use the correct error code when trying to open files that don't exist. 2018-03-04 14:34:48 -05:00
Subv 4a8b2154d7 FS: Stubbed CreateSaveData. It currently does nothing. 2018-03-04 14:31:57 -05:00
Subv 9702f6c2ed FS: Make EnsureSaveData create the savedata folder when called for the first time. 2018-03-04 14:30:07 -05:00
Subv 6ac79e3a43 CoreTiming: Unschedule the pending events when an Interface is destroyed. 2018-03-04 10:34:25 -05:00
bunnei 64bf9f8cdf Merge pull request #226 from Subv/buffer_queue_event
Vi: Signal the BufferQueue's Native Handle right after ReleaseBuffer is called
2018-03-03 12:38:18 -05:00
Subv 1fddc7fe43 Vi: Signal the BufferQueue's Native Handle right after ReleaseBuffer is called.
This prevents a thread starvation issue in Puyo Puyo Tetris.
We should hwtest this behavior and figure out where exactly this event is signaled.
2018-03-03 11:51:36 -05:00
mailwl 481a083593 Service/Set: add more services 2018-03-03 09:03:49 +03:00
bunnei 32f3523ce1 Merge pull request #216 from Subv/savedata
Implemented the SaveData archive and MountSaveData.
2018-03-01 22:14:31 -05:00
Subv b874d4f2b0 SaveData: Use the current titleid when opening the savedata archive. 2018-03-01 19:03:54 -05:00
Subv a9c51be95e Kernel: Store the program id in the Process class instead of the CodeSet class.
There may be many CodeSets per Process, so it's wasteful and overcomplicated to store the program id in each of them.
2018-03-01 19:03:53 -05:00
Subv 77e64ac9b2 FS: Implement MountSaveData and some of the IFile interface. 2018-03-01 19:03:53 -05:00
Subv dfdc72efa7 Filesystem: Added a SaveData Factory and associated Disk_FileSystem. 2018-03-01 19:03:52 -05:00
Jules Blok 29a5203a2a thread: Clear the process list on shutdown. 2018-02-27 17:13:39 +01:00
Subv 585a145f31 ResultCode: Mark any error code that isn't 0 as an error. 2018-02-27 09:44:35 -05:00
Vishal Sharma 3ec2bf49cf Removes the use of QKeySequence::Cancel (#186)
* Removes the use of QKeySequence::Cancel to remove issues while running make

* Corrects characters in a line for travis failure

* Corrects space in a line for travis failure
2018-02-26 21:03:02 -08:00
bunnei e1866e69e2 Merge pull request #207 from mailwl/duplicatesession
IPC: add domain header to response if only it exists in request
2018-02-26 20:52:56 -08:00
bunnei 1f73bf3fb0 Merge pull request #215 from N00byKing/umapsharedmmry
UnmapSharedMemory
2018-02-25 21:04:24 -08:00
shinyquagsire23 b48d598627 file_sys: Style tweaks
Asdf
2018-02-25 16:34:29 -07:00
shinyquagsire23 d5e38de1ec loader: Check error on NPDM load, use TID for CodeSet 2018-02-25 07:41:36 -07:00
shinyquagsire23 013d8828a3 loader: Use NPDM information when loading NSOs 2018-02-25 07:02:47 -07:00
shinyquagsire23 e3c753a14c file_sys: Add support for parsing NPDM files 2018-02-25 07:02:39 -07:00
N00byKing ac2232b9cf (Hopefully) Fix MinGW Build 2018-02-25 13:40:22 +01:00
N00byKing 3660aa9318 Implements citra-emu/citra#3184 2018-02-25 11:44:21 +01:00
N00byKing 11cef9ba72 Add UnmapSharedMemory
C++11 requires spaces on the Identifier

Add inttypes include

clang
2018-02-25 11:38:06 +01:00
bunnei da58d923a5 Merge pull request #212 from mailwl/stubs
Stub some functions
2018-02-23 21:09:56 -08:00
bunnei 83e5cafb3a Merge pull request #217 from shinyquagsire23/time-s-missing
time: Add missing time:s functions, used for libnx
2018-02-23 08:52:37 -08:00
bunnei ba51791f13 Merge pull request #210 from MerryMage/f/dynarmic/sysreg
arm_dynarmic: Implement system registers and provide more hooks
2018-02-23 08:51:52 -08:00
shinyquagsire23 2391d009c4 time: Add missing time:s functions, used for libnx 2018-02-23 00:34:15 -07:00
mailwl 8f256914fc Stub more functions 2018-02-22 17:28:15 +03:00
mailwl 9d6a03e6a3 Stub am::SetScreenShotPermission, and bsd::StartMonitoring functions 2018-02-22 13:04:23 +03:00
bunnei 2578d20154 Merge pull request #211 from shinyquagsire23/time_local
time: Add GetStandardLocalSystemClock, used by libnx
2018-02-22 01:09:01 -05:00
shinyquagsire23 d589b1baf2 time: Add GetStandardLocalSystemClock, used by libnx 2018-02-21 18:43:05 -07:00
MerryMage 2598b3d893 dynarmic: Update to 6b4c6b0
6b4c6b0 impl: Update PC when raising exception
7a1313a A64: Implement FDIV (vector)
b2d781d system: Raise exception for YIELD, WFE, WFI, SEV, SEVL
b277bf5 Correct FPSR and FPCR
7673933 A64: Implement USHL
8d0e558 A64: Implement UCVTF (vector, integer), scalar variant
da9a4f8 A64: Partially implement FCVTZU (scalar, fixed-point) and FCVTZS (scalar, fixed-point)
7479684 A64: Implement system register TPIDR_EL0
0fd75fd A64: Implement system registers FPCR and FPSR
31e370c A64: Implement system register CNTPCT_EL0
9a88fd3 A64: Implement system register CTR_EL0
1d16896 A64: Implement NEG (vector)
3184edf IR: Add IR instruction ZeroVector
31f8fbc emit_x64_floating_point: Add maybe_unused to preprocess parameter
567eb1a A64: Implement FMINNM (scalar)
c6d8fa1 A64: Implement FMAXNM (scalar)
616056d constant_pool: Add frame parameter
a3747cb A64: Implement ADDP (scalar)
5cd5d9f reg_alloc: Only exchange GPRs
dd0452a A64: Implement DUP (element), scalar variant
e5732ea emit_x64_floating_point: Correct FP{Max,Min}{32,64} implementations for -0/+0
40eb9c3 A64: Implement FMAX (scalar), FMIN (scalar)
7cef39b fuzz_with_unicorn: QEMU's implementation of FCVT is incorrect
826dce2 travis: Switch unicorn repository
9605f28 a64/config: Allow NaN emulation accuracy to be set
e9435bc a64_emit_x64: Add conf to A64EmitContext
30b596d fuzz_with_unicorn: Explicitly test floating point instructions
be292a8 A64: Implement FSQRT (scalar)
3c42d48 backend_x64: Accurately handle NaNs
4aefed0 fuzz_with_unicorn: Print AArch64 disassembly
2018-02-21 21:39:07 +00:00
MerryMage 803436b709 arm_dynarmic: LOG_INFO on unicorn fallback 2018-02-21 21:39:07 +00:00
MerryMage 38a3a63ffd memory: LOG_ERROR when falling off end of page table 2018-02-21 21:39:07 +00:00
MerryMage 8c64261d9a core: Fix scheduler-shutdown related crash 2018-02-21 16:38:18 +00:00
mailwl dadb6c6e50 Add warning if Domain request has no domain message header 2018-02-20 22:51:54 +03:00
mailwl 2ba8b89864 Fix: change check for domain order and existance of domain message header 2018-02-20 21:59:58 +03:00
mailwl e05f10cae8 IPC: add domain header to response if only it exists in request 2018-02-20 19:27:49 +03:00
bunnei 3dc5a6ea30 Merge pull request #206 from mailwl/aoc-listaddoncontent
Service/AOC: stub ListAddOnContent function
2018-02-20 10:45:50 -05:00
mailwl 4f067f83a7 Service/AOC: stub ListAddOnContent function 2018-02-20 10:30:12 +03:00
bunnei d305e5bed8 acc_u0: Stub ListOpenUsers service function. 2018-02-19 17:39:41 -05:00
bunnei 55537f1f02 service: Add Friend service interface. 2018-02-19 17:34:02 -05:00
bunnei b43fef19d4 logging: Add category for Friend service. 2018-02-19 17:31:54 -05:00
bunnei 1c89e285ae Merge pull request #202 from bunnei/scheduler-cleanup
Scheduler cleanup
2018-02-19 17:23:05 -05:00
bunnei 87335e8404 scheduler: Cleanup based on PR feedback. 2018-02-19 16:46:42 -05:00
Subv 9a235eec55 AM: Corrected the response in EnsureSaveData.
The values are still unknown and the function is still considered a stub.
Puyo Puyo Tetris now tries to call fsp-srv:MountSaveData.
2018-02-18 18:09:52 -05:00
bunnei 539977f39b kernel: Use Scheduler class for threading. 2018-02-18 15:17:16 -05:00
bunnei 650f49fab2 kernel: Add Scheduler, which encapsulates the scheduling loading from Thread module. 2018-02-18 14:58:40 -05:00
bunnei f75cee6a24 core: Use shared_ptr for cpu_core. 2018-02-18 14:52:09 -05:00
bunnei 0b8907958f kernel: Remove unused address_arbiter code. 2018-02-18 14:46:11 -05:00
bunnei fd4afc5bc5 Merge pull request #201 from Subv/ipc_delay_
Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.
2018-02-18 14:11:34 -05:00
bunnei cccd72a8a9 Merge pull request #200 from Subv/bufferproducerfence
Make the fence handling in Vi a little less of a hack.
2018-02-18 14:11:04 -05:00
Subv fbb0ef851c Kernel/IPC: Add a small delay after each SyncRequest to prevent thread starvation.
Ported from citra PR #3091

The delay specified here is from a Nintendo 3DS, and should be measured in a Nintendo Switch.

This change is enough to prevent Puyo Puyo Tetris's main thread starvation.
2018-02-18 13:25:48 -05:00
Subv c6e56d6e54 nvmap: Make IocFromId return the same existing handle instead of creating a new one.
Games like Puyo Puyo Tetris and BOTW seem to depend on the buffer always having the same handle
2018-02-17 14:01:01 -05:00
Subv 26797bd41c Parcel: Ensure we don't read past the end of the parcels in Vi. 2018-02-17 14:00:44 -05:00
Subv 34f6578f62 Vi: Mark all fences as NO_FENCE in the DequeueBuffer response parcel. 2018-02-17 14:00:30 -05:00
Subv 5172ce6d8f Vi: Always write the IGBPBuffer in the RequestBuffer response parcel.
This may break libnx homebrew due to a bug in libnx but is required by official games since they always assume that the buffer will be there.
2018-02-17 13:59:45 -05:00
mailwl e86ec16ee7 Service/hid: stub some functions 2018-02-16 06:15:05 +03:00
Subv 7a12e4bd1a nvhost-ctrl: Stub NVHOST_IOCTL_CTRL_EVENT_WAIT. 2018-02-14 22:57:57 -05:00
Subv d3f8e79fc5 Vi: Mark the fences as valid in the DequeueBuffer response parcel. 2018-02-14 22:57:56 -05:00
Subv 9ec8dcff8a Vi: Added a missing u32 in the DequeueBuffer response parcel. 2018-02-14 22:57:56 -05:00
Subv f449136900 Vi: Don't write the IGBPBuffer in the IGBPRequestBufferResponseParcel. 2018-02-14 22:57:55 -05:00
Subv b4be5d2e65 Vi: Properly write the BufferProducerFence object in the DequeueBuffer response parcel. 2018-02-14 22:57:54 -05:00
bunnei 287bcf18e6 shared_memory: Remove some checks. 2018-02-14 22:24:06 -05:00
bunnei d9053aa8d4 pl_u: Implement basic shared font loading from RAM dump. 2018-02-14 22:22:41 -05:00
bunnei 201a04b951 log: Add logging category for NS services. 2018-02-14 21:43:11 -05:00
bunnei 69ab774ea3 hid: Stub GetVibrationDeviceInfo and SendVibrationValues. 2018-02-14 21:16:27 -05:00
bunnei 030b763b5d Merge pull request #188 from bunnei/refactor-buffer-descriptor
Refactor IPC buffer descriptor interface
2018-02-14 18:31:53 -05:00
bunnei 9bd160723a hle_ipc: Remove const from WriteBuffer size. 2018-02-14 14:21:10 -05:00
Hexagon12 5eb5f5ac9a pls, that was easy 2018-02-14 19:47:51 +02:00
James Rowe e027d1b40c Fix fps counter to correctly measure frame end when there was no frame to draw 2018-02-14 10:16:39 -07:00
bunnei 54d453835e Merge pull request #190 from bunnei/fix-qt-waittree
debugger: Fix wait_tree crash.
2018-02-14 10:18:56 -05:00
bunnei 901521dc86 Merge pull request #191 from lioncash/log
core: Silence formatting specifier warnings
2018-02-14 10:07:03 -05:00
Lioncash af7ddaf0e2 memory: Silence formatting sepecifier warnings 2018-02-14 01:54:54 -05:00
Lioncash 0dc7699bf2 nso: Silence formatting specifier warnings 2018-02-14 01:52:55 -05:00
Lioncash bf863bdb34 deconstructed_rom_directory: Silence formatting specifier warnings 2018-02-14 01:52:55 -05:00
Lioncash d2a3270adc nvdrv/interface: Silence formatting specifier warnings 2018-02-14 01:52:55 -05:00
Lioncash ad5c80a958 nvmap: Silence formatting specifier warnings 2018-02-14 01:52:55 -05:00
Lioncash 7076556833 nvhost_gpu: Silence formatting specifier warnings 2018-02-14 01:52:55 -05:00
Lioncash 25fc20c3d7 nvhost_ctrl: Silence formatting specifier warnings 2018-02-14 01:52:54 -05:00
Lioncash d6b7071e5e nvhost_ctrl_gpu: Silence formatting specifier warnings 2018-02-14 01:52:54 -05:00
Lioncash c2f9bbfc0d nvhost_as_gpu: Silence formatting specifier warnings 2018-02-14 01:52:49 -05:00
Lioncash 321765d0b4 thread: Silence formatting specifier warnings 2018-02-14 01:50:14 -05:00
Lioncash a708fd7a6d vm_manager: Silence formatting specifier warnings 2018-02-14 01:50:14 -05:00
Lioncash fbe2507693 gdbstub: Silence formatting specifier warnings 2018-02-14 01:50:01 -05:00
bunnei 289e29163b hle_ipc: Add GetReadBufferSize and check write buffer size. 2018-02-14 00:14:17 -05:00
bunnei 1cbf186f63 debugger: Fix wait_tree crash. 2018-02-14 00:02:14 -05:00
bunnei 6fe712735f service: Remove remaining uses of BufferDescriptor*. 2018-02-13 23:54:13 -05:00
bunnei f09dbaee17 audio: Use WriteBuffer instead of BufferDescriptorB. 2018-02-13 23:54:12 -05:00
bunnei d64dfffda6 vi: Eliminate direct usage of BufferDescriptorB. 2018-02-13 23:54:12 -05:00
bunnei e7d93b3cb2 nvdrv: Use ReadBuffer/WriteBuffer functions for Ioctl. 2018-02-13 23:54:12 -05:00
bunnei acdbc95583 vi: Use ReadBuffer/WriteBuffer functions for TransactParcel. 2018-02-13 23:54:11 -05:00
bunnei f0e350f3bb hle_ipc: Add helper functions for reading and writing buffers. 2018-02-13 23:54:07 -05:00
Lioncash c1583210dd maxwell_3d: Make constructor explicit 2018-02-13 23:47:51 -05:00
bunnei ac83b7c57f hle_ipc: Add helper functions for reading and writing buffers. 2018-02-13 23:26:03 -05:00
bunnei a92ac370cf vi: Fix TransactParcelAuto to support both buffer formats. 2018-02-13 23:26:01 -05:00
bunnei f87cb38361 Merge pull request #187 from Subv/maxwell3d_query
GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine.
2018-02-13 23:25:07 -05:00
bunnei 0ad8d2ceff audren_u: Schedule reoccuring event. (#183)
* audren_u: Schedule reoccuring event.

* audren_u: Stub GetAudioRenderersProcessMasterVolume, and misc. changes.
2018-02-13 20:47:33 -05:00
bunnei cc30177df6 Merge pull request #181 from bunnei/vi-fixes-2
VI cleanup and add a hack for booting games
2018-02-13 19:17:27 -05:00
bunnei 6578b76809 Merge pull request #184 from mailwl/lm
Service/lm: add support to multiline logs
2018-02-13 10:29:33 -05:00
mailwl f22a8923cc Service/lm: add support to multiline logs 2018-02-13 09:44:53 +03:00
bunnei 72da0a304c vi: Add FENCE_HACK, which is useful for booting BOTW. 2018-02-12 21:24:40 -05:00
bunnei bfc7ad5ef7 vi: Stub TransactParcel CancelBuffer. 2018-02-12 21:24:39 -05:00
bunnei b11fd075b9 TransactParcel: Move WriteBlock to narrowest scope. 2018-02-12 21:24:38 -05:00
MerryMage 2a0362fe5d arm_dynarmic: Support direct page table access 2018-02-12 21:53:32 +00:00
bunnei a699c231ca Merge pull request #179 from gdkchan/audren_stubs
Stub RequestUpdateAudioRenderer, StartAudioRenderer and StopAudioRenderer
2018-02-12 16:33:30 -05:00
gdkchan bc194d7a4a Add RequestUpdateAudioRenderer, StartAudioRenderer and StopAudioRenderer stubs to audren:u 2018-02-12 17:44:55 -03:00
bunnei f8ab7992d0 Merge pull request #178 from Subv/command_buffers
GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines
2018-02-12 13:51:52 -05:00
Subv 9cf3a6cc00 GPU: Partially implemented the QUERY_* registers in the Maxwell3D engine.
Only QueryMode::Write is supported at the moment.
2018-02-12 12:34:41 -05:00
Subv 0088b3128b Make a GPU class in VideoCore to contain the GPU state.
Also moved the GPU MemoryManager class to video_core since it makes more sense for it to be there.
2018-02-11 23:44:12 -05:00
Subv 35176a0f73 GPU: Added a command processor to decode the GPU pushbuffers and forward the commands to their respective engines. 2018-02-11 22:42:48 -05:00
Subv f7ac88184d nvdrv: Make the GPU memory manager available to nvhost-gpu. 2018-02-11 21:30:23 -05:00
bunnei 1926a0d478 renderer_opengl: Support framebuffer flip vertical. 2018-02-11 21:03:55 -05:00
bunnei b3ac6d5f45 vi: Parse IGBPQueueBufferRequestParcel params and expose buffer flip vertical. 2018-02-11 21:00:41 -05:00
bunnei 74a9748176 vi: Fix OpenLayer and CreateStrayLayer. 2018-02-11 17:28:07 -05:00
bunnei e552a191a4 fsp_srv: Stub MountSdCard. 2018-02-09 23:33:50 -05:00
bunnei 95f967e1ab apm: Refactor service impl. to support multiple ports. 2018-02-09 23:33:49 -05:00
bunnei 51d611d186 vi: Implement TransactParcelAuto. 2018-02-09 23:33:49 -05:00
bunnei 5d35b4908e nvflinger: (Hack) Use first available buffer if none are found. 2018-02-09 23:33:49 -05:00
bunnei 7b6423defd IGBPQueueBufferRequestParcel: Don't enforce buffer length.
- Another fix for libnx.
2018-02-09 23:33:49 -05:00
bunnei 057dca7d64 IGBPRequestBufferResponseParcel: Fix response for libnx. 2018-02-09 23:33:43 -05:00
bunnei 0571220d0f Merge pull request #171 from bunnei/libnx-fixes
Various fixes for libnx, etc.
2018-02-09 15:51:43 -05:00
bunnei 5633e8a8a0 nvdrv: Fix QueryEvent for libnx. 2018-02-09 00:56:45 -05:00
bunnei 1967ed0f07 IApplicationDisplayService::CloseDisplay: Fix response params size. 2018-02-08 23:20:23 -05:00
bunnei 5ddf8bf804 nvhost_ctrl_gpu: Implement ZCullGetInfo. 2018-02-08 23:17:59 -05:00
MerryMage 9eb03cb8ef dynarmic: Update to 41ae12263
Changes: Primarily implementing more A64 instructions
2018-02-09 00:29:36 +00:00
bunnei 22194783e4 acc_u0: Implement ListAllUsers. 2018-02-08 18:59:23 -05:00
bunnei b331711c95 nvhost_as_gpu: Implement AllocateSpace and MapBufferEx. 2018-02-07 23:31:28 -05:00
bunnei 0fb50d9aa1 nvdrv: Add MemoryManager class to track GPU memory. 2018-02-07 23:31:26 -05:00
bunnei cfc2e2170a nvmap: Refactor to expose nvmap objects. 2018-02-07 22:55:12 -05:00
bunnei 49929e4a6b nvhost_as_gpu: Add nvmap as a class member. 2018-02-07 22:55:09 -05:00
mailwl ff9d0996a8 Service: stub some functions in am, audio, time, vi services 2018-02-07 15:11:17 +03:00
mailwl 4cfd3502de Service/hid: stub SetNpadHandheldActivationMode 2018-02-06 10:47:00 +03:00
bunnei 329a4f10e5 Merge pull request #165 from bunnei/puyo-fixes
Stubs for HID, AM, and a mutex fix
2018-02-05 20:14:40 -08:00
bunnei 41042e7b81 mutex: Update hasWaiters on release. 2018-02-05 21:54:10 -05:00
bunnei 6499c8eed6 hid: Stub ActivateTouchScreen and SetNpadJoyHoldType. 2018-02-05 21:53:11 -05:00
David bf7ed82620 Extra nvdrv support (#162)
* FinishInitalize needed for 3.0.1+ games

* nvdrv:s and nvdrv:t both use NVDRV

* Most settings return 0 on hardware, disabled NV_MEMORY_PROFILER for now.

NVN_THROUGH_OPENGL & NVRM_GPU_PREVENT_USE are a few interesting settings to look at. Carefully choosing settings can help with drawing graphics later on

* Initial /dev/nvhost-gpu support

* ZCullBind

* Stubbed SetErrorNotifier

* Fixed SetErrorNotifier log, Added SetChannelPriority

* Allocate GPFIFO Ex2, Allocate Obj Ctx, Submit GPFIFO

* oops

* Fixed up naming/structs/enums. Used vector instead of array for "gpfifo_entry"

* Added missing fixes

* /dev/nvhost-ctrl-gpu

* unneeded struct

* Forgot u32 in enum class

* Automatic descriptor swapping for ioctls, fixed nvgpu_gpu_get_tpc_masks_args being incorrect size

* nvdrv#QueryEvent

* Renamed logs for nvdrv

* Refactor ioctl so nv_result isn't needed

* /dev/nvhost-as-gpu

* Fixed Log service naming, CtxObjects now u32, renamed all structs, added static_asserts to structs, used INSERT_PADDING_WORDS instead of u32s

* nvdevices now uses "Ioctl" union,

* IoctlGpfifoEntry now uses bit field

* final changes
2018-02-05 18:19:31 -08:00
bunnei de6bb17846 IApplicationFunctions: Stub out EnsureSaveData. 2018-02-05 20:58:11 -05:00
bunnei 96c82f3cf8 Merge pull request #164 from ogniK5377/libnx_sm_fix
Don't call UNIMPLEMENTED for 'empty services', just return error code
2018-02-05 14:01:46 -08:00
David Marcec 6a19c31308 Dont call UNIMPLEMENTED for 'empty services', just return error code 2018-02-05 02:03:22 -08:00
David Marcec a6eb36e548 Changed .istorage to .romfs 2018-02-05 00:01:10 -08:00
bunnei 67baceaff0 set: GetAvailableLanguageCodes should not return lang_codes size. 2018-02-04 23:42:43 -05:00
bunnei c114abb301 nvflinger: Signal BufferQueue native handle event.
- This gets BOTW booting.
2018-02-04 23:00:35 -05:00
bunnei 2b621bc1d4 logger: Add Time service logging category. 2018-02-04 22:59:52 -05:00
bunnei 99ff0f523f logger: Add SET service logging category. 2018-02-04 22:55:45 -05:00
bunnei 18ce7f89f9 logger: Add PCTL service logging category. 2018-02-04 22:44:00 -05:00
bunnei 9f14ebbd89 logger: Add LM service logging category. 2018-02-04 22:41:55 -05:00
bunnei 3aeeee5ae3 logger: Add APM service logging category. 2018-02-04 22:39:47 -05:00
bunnei e7bad17a87 lm: Ensure log string is non-empty before checking back(). 2018-02-04 22:36:57 -05:00
bunnei aa91ad0445 logger: Add NIFM service logging category. 2018-02-04 22:35:42 -05:00
bunnei 951526d8b8 logger: Add VI service logging category. 2018-02-04 22:26:44 -05:00
bunnei 93ffd1fc30 hid: Stub out several functions. 2018-02-04 22:24:20 -05:00
bunnei aa035aa7f9 hid: Implement CreateActiveVibrationDeviceList. 2018-02-04 17:06:14 -05:00
bunnei fac2babc85 logger: Use Service_HID category where applicable. 2018-02-04 17:02:39 -05:00
bunnei 65868fffb2 logger: Use Service_NVDRV category where applicable. 2018-02-04 17:00:33 -05:00
bunnei ad816bab00 logger: Add AM service logging category. 2018-02-04 16:58:12 -05:00
bunnei 02a31a0771 logger: Add "account" service logging category. 2018-02-04 16:40:12 -05:00
bunnei fafea3b5fd acc_u0: Stub out GetLastOpenedUser. 2018-02-04 16:32:01 -05:00
bunnei 25cb7a5792 Merge pull request #160 from bunnei/svc-improvements
Several SVC fixes and improvements
2018-02-04 13:25:05 -08:00
bunnei 23c46db6f7 GetInfo: Implement IsCurrentProcessBeingDebugged. 2018-02-04 12:34:45 -05:00
bunnei 37967da1f2 WaitProcessWideKeyAtomic: Handle case where condition variable was already created. 2018-02-04 12:30:51 -05:00
mailwl 451d4c4336 acc:u0 : stub GetAccountId 2018-02-04 09:55:25 +03:00
bunnei 4a19b608fd svc: SharedMemory size should be 64-bits and cleanup. 2018-02-03 13:36:54 -05:00
bunnei 9892a119da ArbitrateLock: Assert that requesting_thread is current_thread. 2018-02-03 13:29:18 -05:00
bunnei 62f2f54459 Merge pull request #157 from bunnei/fix-duplicate-session
controller: DuplicateSession should return a ClientSession.
2018-02-03 10:25:01 -08:00
bunnei eb3be60fc2 controller: DuplicateSession should return a ClientSession. 2018-02-03 12:09:33 -05:00
mailwl 41ca591e11 Service:nifm: add nifm:a, nifm:s and nifm:u services 2018-02-03 18:09:51 +03:00
mailwl e974ad29c7 Service/am: Add AppletAE service (#153)
* Add AppletAE, step 1: move common interfaces to am.h

* Add AppletAE, step 2
2018-02-02 13:03:40 -08:00
bunnei e6a83e2024 Merge pull request #154 from mailwl/vi_create_stray_array
vi::CreateStrayLayer : add padding to request
2018-02-02 09:01:21 -08:00
bunnei 9ebcfa1bd2 Merge pull request #155 from mailwl/vi-services
Services/vi: add vi:s and vi:u services
2018-02-02 09:00:31 -08:00
bunnei b5846ac67d Merge pull request #152 from shinyquagsire23/sharedmem-valid-bounds
shared_memory: Only mark addresses as invalid if they are within the heap
2018-02-02 08:59:45 -08:00
mailwl be7ef9498d Services/vi: add vi:s and vi:u services 2018-02-02 12:59:50 +03:00
mailwl 9b3b9fe930 vi::CreateStrayLayer : add padding to request 2018-02-02 12:03:02 +03:00
shinyquagsire23 cd0befbd05 shared_memory: Only mark addresses as invalid if they are within the heap 2018-01-29 23:38:56 -07:00
mailwl 3dbe629396 [WIP] sfdnsres: stub (#146)
sfdnsres: Add several stubs
2018-01-29 22:29:47 -08:00
bunnei a36f4860f9 Merge pull request #148 from MerryMage/feature/special-memory
memory: Replace all memory hooking with Special regions
2018-01-27 15:20:53 -05:00
MerryMage 7a23a53396 memory: Replace all memory hooking with Special regions 2018-01-27 15:16:39 +00:00
bunnei 9a0a22e596 time: Implement ISteadyClock::GetCurrentTimePoint. 2018-01-25 21:29:39 -05:00
bunnei 0c455925ed audout_u: Various cleanups. 2018-01-24 22:38:19 -05:00
bunnei ca93cbddcb ResponseBuilder: Use a bit field for customizing instead of always_move_handles. 2018-01-24 22:24:20 -05:00
bunnei 747ae39608 time: Stub GetSystemClockContext function. 2018-01-24 22:24:18 -05:00
bunnei c943b30b0a server_session: Fix scenario where all domain handlers are closed. 2018-01-24 22:24:16 -05:00
bunnei f328cb2c7c hle: Rename RequestBuilder to ResponseBuilder. 2018-01-24 22:24:10 -05:00
bunnei 427b97e60c service: Fix all incorrect IPC response headers. 2018-01-24 22:21:33 -05:00
bunnei 2b07c87f0c ipc_helpers: Make interface domain agnostic and add header validation. 2018-01-24 22:19:01 -05:00
bunnei a3aadaea60 hle: Integrate Domain handling into ServerSession. 2018-01-24 22:18:56 -05:00
bunnei 4fabdf77d7 hle: Remove Domain and SyncObject kernel objects. 2018-01-24 22:18:54 -05:00
bunnei 2ab0f638f0 handle_table: Remove ConvertSessionToDomain. 2018-01-24 22:18:51 -05:00
st4rk d37214f8a3 audout:u OpenAudioOut and IAudioOut (#138)
* Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation

* Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation

* audout:u OpenAudioOut implementation and IAudioOut cmd 1,2,3,4,5 implementation

* using an enum for audio_out_state as well as changing its initialize to member initializer list

* Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass

* Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass

* added missing Audio loggin subclass, minor fixes, clang comment breakline

* Solving backend logging conflict

* minor fix

* Fixed duplicated Service NVDRV in backend.cpp, my bad
2018-01-24 22:17:54 -05:00
gdkchan 7f7e83a76b Fix time returning epoch time in milliseconds rather than in seconds 2018-01-24 11:54:47 -03:00
Rozlette 82924195f8 logging: add missing NVDRV subclass to macro list 2018-01-23 22:18:23 -06:00
N00byKing eb8e4f17d3 Correct Spelling 2018-01-23 14:20:18 +01:00
bunnei da98d4dd03 Merge pull request #135 from Subv/no_ports
IPC: Don't create unnecessary ports when returning sub interfaces.
2018-01-22 21:37:15 -05:00
Subv aec193732c Services: Added a todo about returning interfaces as domain objects in lm, hid and time. 2018-01-22 20:40:43 -05:00
bunnei 40bd3918a2 Merge pull request #133 from Subv/nvflinger2
AppletOE: Stubbed CreateManagedDisplayLayer to create a new layer in the default display.
2018-01-22 17:52:47 -05:00
Subv fb5f2a653e Time: Don't create unnecessary ports when retrieving the clock service sessions. 2018-01-22 17:42:11 -05:00
Subv 98ff4642ff HID: Don't create an unnecessary port in CreateAppletResource. 2018-01-22 17:41:31 -05:00
Subv 3541a04d4d LM: Don't create an unnecessary port in Initialize. 2018-01-22 17:35:40 -05:00
Subv 196f1226c5 IPC: Don't create an unnecessary port when using PushIpcInterface outside of a domain. 2018-01-22 17:31:23 -05:00
bunnei 7dae21fe2d Merge pull request #134 from gdkchan/audout_hid_fix
Stub OpenAudioOut and fix a issue with HID IAppletResource
2018-01-22 17:09:09 -05:00
gdkchan 45f08a927c Stub OpenAudioOut and fix a issue with HID IAppletResource being created more than once 2018-01-22 17:27:55 -03:00
Subv dda6711a67 AppletOE: Stubbed CreateManagedDisplayLayer to create a new layer in the Default display.
This function is used by libnx to obtain a new layer.
2018-01-22 13:50:22 -05:00
Subv db5b2c0f0f AppletOE: Make ISelfController keep a reference to nvflinger.
It'll be needed when we implement CreateManagedDisplayLayer.
2018-01-22 13:46:36 -05:00
Subv 696b61b9c3 Services: Vi shouldn't be responsible for creating nvflinger.
It is now created during Service initialization and passed to all the services that need it.
2018-01-22 13:40:02 -05:00
Subv edb1c9589b VI: Move BufferQueue and NVFlinger to their own folder/namespace. 2018-01-22 11:54:58 -05:00
st4rk 564b91d219 Added stubs for audio services. (#116)
* stubs for audout:u, audin:u, audrec:u, audren:u, codecctl and decoding tables with nullptr for future implementations

* fixing the changes requested (remove private, explicit)
2018-01-21 22:03:36 -05:00
bunnei 961cfda2a4 Merge pull request #131 from lioncash/enum
nvmap: Make IoctlCommands an enum class
2018-01-21 22:01:27 -05:00
David e08fdd4101 Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114)
* Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid

* used clang-format-3.9 instead

* lowercase pid

* Moved nvmemp handlers to cpp

* Removed unnecessary logging for NvOsGetConfigU32. Cleaned up log and changed to LOG_DEBUG

* using std::arrays instead of c arrays

* nvhost get config now uses std::array completely

* added pid logging back

* updated cmakelist

* missing includes

* added array, removed memcpy

* clang-format6.0
2018-01-21 17:59:50 -05:00
bunnei 173cd959e8 Merge pull request #128 from Subv/parcel_query
VI: Implement the Query transaction of IHOSBinderDriver, and stubbed some results.
2018-01-21 17:56:06 -05:00
Lioncash aa0cc8d3e9 nvmap: Add a return 0 underneath the UNIMPLEMENTED macro
This macro resolves to an empty macro in release builds.
2018-01-21 17:07:47 -05:00
Lioncash 5a05f7ef9f nvmap: Make IoctlCommands an enum class
Prevents the enum values from polluting the surrounding scope
2018-01-21 17:07:13 -05:00
bunnei a2c082be79 file_sys: Clang format fixes. 2018-01-21 15:51:45 -05:00
bunnei a94d5d1938 fsp_srv: Various improvements to IStorage:Read implementation. 2018-01-21 15:51:43 -05:00
bunnei 985c960e85 deconstructed_rom_directory: Implement istorage loading for RomFS. 2018-01-21 15:39:31 -05:00
David Marcec b609697364 filesystem: Implement basic IStorage functionality. 2018-01-21 15:39:28 -05:00
bunnei 0446482361 file_sys: Cleanup to better match Switch file system constructs.
file_sys: Add factory class for RomFS file system.
2018-01-21 15:39:26 -05:00
bunnei f3cfe5caac file_sys: Remove disk_archive, savedata_archive, and title_metadata. 2018-01-21 15:39:23 -05:00
bunnei 9d9038a32f archive_backend: Minor changes to match Switch IFileSystem. 2018-01-21 15:39:20 -05:00
bunnei bc4d08fe34 file_sys: Repurpose 3DS IVFC code for Switch ROMFS. 2018-01-21 15:39:18 -05:00
bunnei f8b5b28057 Merge pull request #129 from Rozelette/master
gdbstub: Update registers and sizes for aarch64
2018-01-21 15:32:15 -05:00
Rozlette 939be88b01 gdbstub: Update registers and sizes for aarch64
This gets gdbstub working at least to the point where clients can
communicate with it.

What works:
- Reading/writing GPRegs
- Reading/writing memory
- Interrupting the emulated program and continuing

What does NOT work:
- Breakpoints. Sizes have been updated to u64, but support will need to be
  added in the interpreter for them to work.
- VRegs. Mostly because my gdb was having issues with 128-bit regs for
  some reason. However, the current u128 representation is a bit
  awkward to use and should probably be updated first.
2018-01-21 11:12:49 -06:00
Subv bd76a7d7f7 VI: Implement the Query transaction of IHOSBinderDriver, and stubbed some results. 2018-01-21 11:13:47 -05:00
Matthew Brener 1117c87e68 Fix spelling error in CMakeLists
Minor spelling error of its --> it's
2018-01-21 17:40:47 +11:00
bunnei 4f20190c95 Merge pull request #72 from N00byKing/patch-2
Implement Pull #3275 from citra: core: Don't Shutdown before we've even Init-ed
2018-01-20 23:11:10 -05:00
bunnei f1f6d730a5 Merge pull request #92 from gdkchan/nro_refactor
Fix NRO entry point
2018-01-20 23:10:15 -05:00
bunnei cc0764ff06 Merge pull request #122 from tgsm/time-remove-pragma
service/time: remove accidental #pragmas
2018-01-20 22:27:10 -05:00
tgsm c68e6e267a service/time: remove accidental #pragmas 2018-01-20 21:34:37 -05:00
Rozlette 76b2dabd35 loader: Minor style fix in deconstructed_rom_directory 2018-01-20 20:13:53 -06:00
bunnei ca0fb0079c Merge pull request #117 from jroweboy/clang-format
Clang format as a build target
2018-01-20 19:12:21 -05:00
James Rowe ea88c44eb8 Format: Run the new clang format on everything 2018-01-20 16:45:11 -07:00
bunnei eea972611a Merge pull request #120 from Rozelette/master
memory: Return false for large VAddr in IsValidVirtualAddress
2018-01-20 17:37:55 -05:00
Rozlette ecc35e89e0 memory: Return false for large VAddr in IsValidVirtualAddress 2018-01-20 14:56:15 -06:00
bunnei 9b7e8a2e2b loader: Clean up ctors and includes. 2018-01-20 15:54:17 -05:00
bunnei b870202ad5 loader: Add DeconstructedRomDirectory for game dumps. 2018-01-20 15:54:15 -05:00
bunnei f2d6ec1404 loader: Refactor to also pass filepath into IdentifyType. 2018-01-20 14:59:44 -05:00
bunnei 965c2bddb2 nso: Remove code specific to directory loading. 2018-01-20 14:59:42 -05:00
River City Ransomware 3f3688db0b Port citra #3352 to yuzu (#103)
* Port citra #3352 to yuzu

This change allows non x86_64 architectures to compile yuzu by skipping the building of dynarmic

* Fixed clang-format errors

* fixes more clang-format errors
2018-01-19 19:36:09 -05:00
David 61a92c7347 Added CreateSharedMemory & UNIMPLEMENTED() for non existent services. (#113)
* Added svcCreateSharedMemory

* Services which are not implemented now throw UNIMPLEMENTED()

* clang-format

* changed perms to u32

* removed camelcase
2018-01-19 19:35:25 -05:00
River City Ransomware 39827d573a Fixes some cast warnings, partial port of citra #3064 (#106)
* Fixes some cast warnings, partially fixes citra #3064

* Converted casts to uint32_t to u32

* Ran clang-format
2018-01-19 18:01:41 -05:00
bunnei 1a1bb5810a Merge pull request #112 from Rozelette/master
ISelfController: Stub LockExit and UnlockExit
2018-01-19 17:54:05 -05:00
goaaats 559de2816f acc, set, applet_oe: stub various functions, add set service (#105)
* Stubs for various acc:u0 funcs needed

* Stub for GetDesiredLanguage in IApplicationFunctions

* Add set service + stubs needed for games

* Fix formatting

* Implement IProfile, IManagerForApplication, return bool in CheckAvailability, style fixes

* Remove IProfile::Get(needs more research), fix IPC response sizes
2018-01-19 15:44:58 -05:00
Rozlette 6e80f59506 ISelfController: Stub LockExit and UnlockExit 2018-01-19 14:09:50 -06:00
bunnei 55e4ecb443 Merge pull request #109 from bunnei/libnx-fixes
Fix svcGetInfo for libnx
2018-01-19 14:48:08 -05:00
bunnei aebd683962 Merge pull request #97 from bunnei/time-stub
time: Stub out GetTotalLocationNameCount and some cleanup.
2018-01-19 14:47:50 -05:00
bunnei 35f8a09953 time: Add new line to ends of files. 2018-01-19 00:39:04 -05:00
bunnei ac1c926aa9 applet_oe: Clang-format. 2018-01-19 00:37:36 -05:00
bunnei 43342640fe time: Stub out GetTotalLocationNameCount and some cleanup. 2018-01-19 00:32:52 -05:00
bunnei 01d3a7db93 nvdrv: Stub SetClientPID. 2018-01-18 23:50:18 -05:00
bunnei 94483465ad svc: Fix svcGetInfo MapRegionBaseAddr. 2018-01-18 23:44:15 -05:00
bunnei c268244812 svc: Add additional fields to MemoryInfo struct. 2018-01-18 23:37:54 -05:00
gdkchan c22db301b8 Fix dispdrv typo 2018-01-18 23:21:26 -03:00
bunnei 81dc03c510 Merge pull request #100 from Rozelette/master
time: Refactor time:* to use a single shared module
2018-01-18 21:10:55 -05:00
bunnei bf7b7d9f11 Merge pull request #104 from RiverCityRansomware/resizedConfigWindow
Port citra #3336
2018-01-18 21:08:54 -05:00
Lioncash e11285c9a8 qt: Migrate to Qt 5 signal/slot connection syntax where applicable 2018-01-18 20:09:40 -05:00
Evgeni Danailov 4e1e16ac61 ui: Rename almost all classes in configuration_input.ui (#99)
* Rename verticalLayout_25 to verticalLayout_23.

* Rename almost all classes.
2018-01-18 15:28:18 -05:00
River City Ransomware 1eb26ce5bd Port citra #3336 - Resizes the configuration window to not be so stretched out 2018-01-18 15:22:28 -05:00
gdkchan bb3209e8f1 Fix NRO Entry Point 2018-01-18 17:18:43 -03:00
gdkchan 90b697db30 Stub PopLaunchParameter and implement Buffer C Descriptors reading on hle_ipc (#96)
* Stub PopLaunchParameter and implement Buffer C Descriptors reading

* Address PR feedback

* Ensure we push a u64 not a size_t

* Fix formatting
2018-01-18 14:54:34 -05:00
flerovium^-^ 2c5658443e Start to implement/stub BSD:U and SFDNSRES services (#78)
* bsd: start stubbing bsd:u and sfdnsres

* bsd: stubbed RegisterClient

* bsd: attempt to get past socket()

* bsd: fix some wrong assumptions about IPC

* bsd: fix format specifiers

* bsd: stubbed Connect()

* bsd: stubbed SendTo()

* made requested changes

* sockets: respect alphabetical order at service installation

* run clang-format

* bsd: start stubbing bsd:u and sfdnsres

* bsd: stubbed RegisterClient

* bsd: attempt to get past socket()

* bsd: fix some wrong assumptions about IPC

* bsd: fix format specifiers

* bsd: stubbed Connect()

* bsd: stubbed SendTo()

* made requested changes

* sockets: respect alphabetical order at service installation

* run clang-format

* run clang-format (2)
2018-01-18 14:35:03 -05:00
Rozlette 778d3edb2d time: Fix use of CamelCase in ToCalendarTimeWithMyRule 2018-01-18 11:02:05 -06:00
Rozlette 00f121cb65 time: Refactor time:* to use a single shared module 2018-01-18 10:58:29 -06:00
bunnei 7d2ac45b9b Merge pull request #95 from bunnei/lm-skip-byte
lm: Minor logging fix to skip a byte.
2018-01-18 10:57:41 -05:00
bunnei 4ddfb2e881 Merge pull request #84 from lioncash/cmake
CMakeLists: Derive the source directory grouping from targets themselves
2018-01-18 01:37:17 -05:00
bunnei 79887def50 Merge pull request #91 from lioncash/svc
svc: Minor clarity changes
2018-01-18 00:27:41 -05:00
bunnei 93e711daf1 lm: Minor logging fix to skip a byte. 2018-01-18 00:08:38 -05:00
bunnei 99283876f5 Merge pull request #90 from lioncash/vi-override
vi: Minor clean up/correctness changes
2018-01-17 23:55:07 -05:00
bunnei 70721aaf92 Merge pull request #89 from lioncash/vi-vector
vi: Copy data directly into the std::vector within Parcel's ReadBlock function
2018-01-17 23:52:40 -05:00
bunnei c61e80a6ba Merge pull request #88 from lioncash/include
hotkeys: Add missing <QTreeWidgetItem> include
2018-01-17 23:04:44 -05:00
bunnei e66e809e4f Merge pull request #87 from lioncash/override
game_list: Add missing override specifier for KeyReleaseEater's eventFilter function
2018-01-17 22:44:03 -05:00
bunnei 300870e2b5 Merge pull request #86 from lioncash/doxygen
game_list: Amend doxygen parameter identifiers
2018-01-17 22:20:50 -05:00
bunnei df3d228aeb Merge pull request #85 from lioncash/warn
telemetry: Silence initialization order warnings
2018-01-17 21:59:20 -05:00
Lioncash 447c25646e CMakeLists: Derive the source directory grouping from targets themselves
Removes the need to store to separate SRC and HEADER variables, and then
construct the target in most cases.
2018-01-17 21:51:43 -05:00
bunnei eae8413876 controller: Use DuplicateSession for DuplicateSessionEx. 2018-01-17 21:48:17 -05:00
bunnei fc7efb9fb3 Merge pull request #83 from lioncash/pessimizing-move
input_common/sdl: Silence a -Wpessimizing-move warning
2018-01-17 21:08:01 -05:00
Lioncash e396daeb9d svc: Rename some entries to match their analogue on SwitchBrew
Makes the codebase a little more consistent with regards to available documentation. Also amends the duplicate case where there was a similar entry at 0x72 named ConnectToPort.
2018-01-17 20:38:23 -05:00
Lioncash 9453658987 svc: Add CreateJitMemory and MapJitMemory svc strings
Makes the table match SwitchBrew for these entries
2018-01-17 20:32:56 -05:00
bunnei 266e2967b2 Merge pull request #81 from lioncash/qt-bootmgr
bootmanager: Minor tidiness/correctness changes
2018-01-17 20:24:56 -05:00
Lioncash 88bfa0f287 vi: Make constructors explicit where applicable
Prevents implicit conversions.
2018-01-17 20:21:16 -05:00
Lioncash 077cbaa3da vi: Add missing override specifiers 2018-01-17 20:16:48 -05:00
Lioncash 62310a11ce vi: Copy data directly into the std::vector within Parcel's ReadBlock function
Previously this would unnecessarily zero-initialize the vector before
copying the actual data into the vector instance.
2018-01-17 20:09:41 -05:00
bunnei d61b0c7405 Merge pull request #80 from gdkchan/nro_fix
Fix NRO loading
2018-01-17 20:05:21 -05:00
Lioncash c4657be40d hotkeys: Add missing <QTreeWidgetItem> include 2018-01-17 20:00:25 -05:00
Lioncash 45af9a2e1f game_list: Add missing override specifier for KeyReleaseEater's eventFilter function 2018-01-17 19:54:06 -05:00
Lioncash f540adeef2 game_list: Amend doxygen parameter identifiers for containsAllWords() 2018-01-17 19:52:15 -05:00
Lioncash 21b10a8602 telemetry: Silence initialization order warnings 2018-01-17 19:43:24 -05:00
Lioncash 651b5153dc input_common/sdl: Silence a -Wpessimizing-move warning 2018-01-17 18:44:16 -05:00
Lioncash 656934e051 bootmanager: Minor tidiness/correctness changes
Moved over from #3266 in citra.
2018-01-17 18:35:02 -05:00
bunnei ed94fbd5a2 Merge pull request #73 from N00byKing/3093
Implement Pull #3093 from citra: Added missing headers to CMakeLists.txt and fixed includes.
2018-01-17 18:18:34 -05:00
gdkchan 89f7882ab4 Fix NRO loading 2018-01-17 20:16:09 -03:00
bunnei 98b2a4d549 Merge pull request #76 from Rozelette/master
TIME: consolidate time:* interfaces, stub functions and structs
2018-01-17 17:32:48 -05:00
N00byKing 0ea4e57990 Implement Pull #3306 from citra: citra_qt: Drop Qt 5 version checks in code (#41)
* Update bootmanager.cpp

* This *should* fix the clang error
2018-01-17 17:19:41 -05:00
Rozlette 44abbee4c3 TIME: consolidate time:* interfaces, stub functions and structs 2018-01-17 14:15:14 -06:00
gdkchan 1402e97994 Remove relocation on NSO/NRO 2018-01-17 17:01:10 -03:00
bunnei 3c43fdd01f Merge pull request #42 from N00byKing/3295
Implement Pull #3295 from citra: citra_qt: CMakeLists: Drop leftover handling code for Qt 4 UI files
2018-01-17 13:50:38 -05:00
bunnei 6c993f2e46 Merge pull request #57 from nkatz565/fix-tr
Fix non translated string (same as Citra PR 2949)
2018-01-17 13:46:39 -05:00
bunnei 7b7b852743 Merge pull request #64 from shinyquagsire23/hid-timing
hid: Adjust timing based on actual hardware
2018-01-17 12:30:46 -05:00
bunnei 7a2afe3b83 Merge pull request #70 from flerovii/nvdrv-close
nvdrv: stubbed Close(cmd 2)
2018-01-17 12:29:23 -05:00
N00byKing 0f1dcc9540 Update CMakeLists.txt 2018-01-17 18:21:49 +01:00
N00byKing a244896e75 Update title_metadata.h 2018-01-17 18:20:52 +01:00
bunnei 11c878023f svc: Clang-format fix. 2018-01-17 12:19:17 -05:00
N00byKing cdcfc19258 Update core.cpp 2018-01-17 18:12:06 +01:00
bunnei 6ee9e3a1dc Merge pull request #71 from N00byKing/patch-1
Implement Pull #3109 from citra: sdl2 default ini: fix framelimit
2018-01-17 12:09:47 -05:00
bunnei c6b7a3861c Merge pull request #62 from bunnei/domain-close-handle
Implement IPC domain command CloseVirtualHandle
2018-01-17 12:09:12 -05:00
N00byKing f28fd7a13b Update default_ini.h 2018-01-17 18:01:09 +01:00
bunnei 0d1c6f492e hle_ipc: Clang format. 2018-01-17 11:37:26 -05:00
noah katz 630e0825e8 Fixed formatting 2018-01-17 11:20:46 -05:00
Frederic Meyer 2a9b625cd7 nvdrv: stubbed Close(cmd 2) 2018-01-17 17:08:46 +01:00
River City Ransomware c365642bb8 Fix gdbstub typo, fixes Citra #3318
Core::System().GetInstance().IsPoweredOn() -> Core::System::GetInstance().IsPoweredOn()
2018-01-17 09:25:25 -05:00
shinyquagsire23 ebd7b8409e hid: Adjust timing based on actual hardware 2018-01-17 01:20:25 -07:00
bunnei c3330b0a08 Merge pull request #60 from jroweboy/game-frame
UI: Fix frame rate perf stats
2018-01-17 01:23:43 -05:00
bunnei ce1626b80e ipc: Implement domain command CloseVirtualHandle. 2018-01-17 01:20:10 -05:00
bunnei 4ef928f9b5 loggin: Add IPC logging category. 2018-01-17 01:20:02 -05:00
James Rowe 263386fe42 UI: Fix frame rate perf stats
Adds in a missing EndGameFrame when nvdrv swaps buffers
2018-01-16 20:44:02 -07:00
bunnei 6db358e905 Merge pull request #34 from shinyquagsire23/hid-sharedmem-layouts-circbufs-meta
hid: Write to all layouts, implement circular buffers, set up controller metadata.
2018-01-16 21:54:46 -05:00
bunnei d4e594651f acc_u0: Add IPC interface and stub InitializeApplicationInfo. 2018-01-16 21:34:27 -05:00
shinyquagsire23 6424b131db hid: clang-format 2018-01-16 19:22:58 -07:00
shinyquagsire23 63ab9293d4 hid: Adjust for style guide 2018-01-16 19:22:12 -07:00
bunnei 164c8e8bc7 applet_oe: Fix GetOperationMode and GetPerformanceMode. 2018-01-16 20:32:08 -05:00
noah katz 915bc24ba1 Fix non translated string (same as Citra PR 2949) 2018-01-16 19:56:41 -05:00
Subv 9eb6d67a12 NV: Implemented the nvdrv service, which uses the same interface as nvdrv:a 2018-01-16 19:04:09 -05:00
Subv fd950afe3a NV: Move the nvdrv classes into the Nvidia namespace, and move the functionality to a s single module that services call. 2018-01-16 19:03:49 -05:00
Subv d0477951b9 VI: Stubbed GetNativeHandle, Create/DestroyStrayLayer and CloseDisplay 2018-01-16 19:01:03 -05:00
Subv 02b6fc7330 Services: Stubbed APM::OpenSession and the ISession interface.
# Conflicts:
#	src/core/hle/service/am/applet_oe.cpp
#	src/core/hle/service/apm/apm.cpp
2018-01-16 19:00:32 -05:00
Subv 279e546493 AppletOE: Stub a bunch of functions required by libnx homebrew. 2018-01-16 18:58:06 -05:00
Subv 6b3510cca6 SVC: Correct some return values in svcGetInfo and added TitleId and PrivilegedProcessId stubs.
# Conflicts:
#	src/core/hle/kernel/svc.cpp
2018-01-16 18:50:23 -05:00
Subv 24a605cc10 SVC: Add 4.0.0+ comment to GetInfoType enum values. 2018-01-16 18:44:39 -05:00
Subv 911ea4451e IPC: Push domain objects as move handles when not in a domain. 2018-01-16 18:42:08 -05:00
bunnei 227f2f7664 Merge pull request #52 from ogniK5377/fsp
added more svcGetInfo pairs for 3.0.0+ support, Changed HEAP_SIZE and TLS_AREA_VADDR. changed mem usage & heap usage stub added, ISelfController, IApplication function stubs. Added SetThreadCoreMask
2018-01-16 18:27:48 -05:00
David f10082f410 Update memory.h 2018-01-16 15:27:13 -08:00
bunnei 952fa4670f Merge pull request #45 from FearlessTobi/patch-1
Implement Pull #3030 from Citra: Rename derivative class name
2018-01-16 17:59:14 -05:00
bunnei 64a8d977e2 Merge pull request #43 from N00byKing/3052
Implement Pull #3052 from citra: Correct spelling of searchfield in comment
2018-01-16 17:58:25 -05:00
bunnei 2af2310e1b Merge pull request #53 from nkatz565/nk-fixlabels
Implement Pull #3240 from Citra: Add button labels for sdl joystick mappings
2018-01-16 17:55:59 -05:00
bunnei 64eccfb72b Merge pull request #44 from Rozelette/master
nso: Modify .bss size calculation logic
2018-01-16 17:24:49 -05:00
David Marcec 18295b0325 SetThreadCoreMask stub, time to implement fsp 2018-01-16 14:23:53 -08:00
David Marcec 642c9062c0 implemented more of ISelfController and IApplicationFunctions 2018-01-16 14:18:18 -08:00
David Marcec eb1ddebb18 Added more svcGetInfo pairs 2018-01-16 14:06:45 -08:00
David Marcec 57523d6fab Increased heap size and changed tls area vaddr 2018-01-16 13:53:43 -08:00
muemart 48bb562f1d Use static functions instead of lambdas 2018-01-16 16:49:48 -05:00
muemart 40dc44228e Add translation support for button labels 2018-01-16 16:49:41 -05:00
muemart 4b0302de21 Add button labels for sdl joystick mappings 2018-01-16 16:49:29 -05:00
MerryMage 41bfd994f6 clang-format 2018-01-16 18:05:21 +00:00
Tobias e3fbbfa155 Implement Pull #3030 from Citra
citra-qt: Rename derivative class name
2018-01-16 18:50:04 +01:00
Rozlette 2e5806922f nso: Modify .bss size calculation logic 2018-01-16 11:14:36 -06:00
bunnei e1056d4648 Merge pull request #31 from jroweboy/fix-deploy
Build/Deploy Updates to Setup Nightly Builds
2018-01-16 11:56:14 -05:00
N00byKing 1a8a93a9a2 Update game_list.cpp 2018-01-16 17:55:06 +01:00
N00byKing 8ec88e7059 Update CMakeLists.txt 2018-01-16 17:51:08 +01:00
James Rowe 19fe8884ce Build: Automagically handle unicorn
On MSVC if unicorn isn't found, fallback to bundled unicorn
On everything else, fallback to building unicorn in externals

Also fixes loading unicorn in msvc
2018-01-16 09:39:07 -07:00
N00byKing b2228b3b2a Implement Pull #3333 from citra: citra_qt: Pause emulation on CoreError (#39) 2018-01-16 11:32:27 -05:00
bunnei 1efd0ca123 Merge pull request #24 from nkatz565/nk-inputs
Adding meumart's Citra SDL Joystick support. Citra PR #3116
2018-01-16 10:13:39 -05:00
goaaats 8244ccf2c0 Merge citra-emu PR#3159 by FearlessTobi(citra-qt : Fix a bug in our fullscreen implementation) 2018-01-16 15:59:30 +01:00
goaaats fe722aba41 Merge citra-emu PR#3001 by Styleoshin(citra-qt : Adding fullscreen mode) 2018-01-16 15:50:33 +01:00
shinyquagsire23 7d238badfb hid: Write to all layouts, implement circular buffers, set up controller metadata. 2018-01-16 03:14:27 -07:00
James Rowe 84a702e6c3 Build: Add unicorn as a submodule and build it if needed
Adds a cmake custom target that will build unicorn on first compile and
uses this in the build scripts as well. Updates Appveyor and Travis
build scripts to work with the new unicorn build, and updates the paths
to all of the different artifacts.
2018-01-16 01:15:52 -07:00
muemart a884f3d03e Adding meumart's Citra SDL Joystick support. Citra PR #3116 2018-01-15 20:02:30 -05:00
bunnei 7fe337b38d nso: Load subsdk4 if available. 2018-01-15 17:18:24 -05:00
bunnei f68b97960c pctl: Clang format. 2018-01-15 15:16:06 -05:00
bunnei c8359e72f5 pctl: GetService should return an IParentalControlService interface. 2018-01-15 15:10:18 -05:00
bunnei e2229c84ad applet_oe: Stub SetFocusHandlingMode, GetCurrentFocusState, SetTerminateResult. 2018-01-15 14:41:06 -05:00
bunnei 5ee2436934 settings: Fix button mappings array to have correct entries. 2018-01-15 13:09:14 -05:00
bunnei a5eab00ac7 Merge pull request #20 from Andrix44/fixes
Various fixes
2018-01-15 12:56:16 -05:00
bunnei 002a7474ba Merge pull request #16 from shinyquagsire23/hid-sharedmem-impl-start
HID Sharedmem Impl Start
2018-01-15 12:54:54 -05:00
unknown 535cfec8f7 Clanggit rebase -i fixes 2018-01-15 18:20:53 +01:00
unknown d3af215cbb Clang format 2018-01-15 17:55:16 +01:00
unknown c65510feb9 Change default log level to info 2018-01-15 17:15:10 +01:00
unknown b22d73d2af Update the internal resolution settings 2018-01-15 16:59:02 +01:00
shinyquagsire23 382e739799 yuzu_cmd: Fix default ini, add screenshot button 2018-01-15 02:30:58 -07:00
shinyquagsire23 2f5dbd0f43 hid: Bare-minimum sharedmem input 2018-01-15 02:30:58 -07:00
shinyquagsire23 5d387d9205 hid: Remove redundant HID prefix on structs/enums 2018-01-15 02:30:58 -07:00
shinyquagsire23 974f097bbd configure_input: update w/ Switch buttons 2018-01-15 02:30:53 -07:00
shinyquagsire23 0392340d75 settings: Screenshot button 2018-01-15 02:30:53 -07:00
shinyquagsire23 c4d48f291a yuzu_cmd: fix default ini 2018-01-15 02:30:53 -07:00
shinyquagsire23 611e78c378 settings: adjust button configs for Switch controllers 2018-01-15 02:30:53 -07:00
shinyquagsire23 65b9660a84 hid: Add sharedmem structs 2018-01-15 02:30:53 -07:00
bsaleil 2d46f08fa0 vi: Add IManagerDisplayService::CloseDisplay function 2018-01-15 01:29:00 -05:00
bunnei 91b36ef7e0 Merge pull request #14 from ogniK5377/master
Changed ICommonStateGetter::ReceiveMessage to allow further execution in games
2018-01-15 00:21:16 -05:00
bunnei 386ecbd433 renderer_gl: Clear screen to black before rendering framebuffer. 2018-01-15 00:20:19 -05:00
David Marcec 8e6ff4bd7b Games expect 15 for ICommonStateGetter::ReceiveMessage in order to continue execution 2018-01-14 21:06:34 -08:00
bunnei f0bccde0a0 renderer: Render previous frame when no new one is available. 2018-01-14 23:54:56 -05:00
bunnei 2d7ec3bbe0 lm: Fix IPC header for Initialize. 2018-01-14 21:45:06 -05:00
bunnei 1e778e2f70 time: Implement GetStandardUserSystemClock, GetCurrentTime. 2018-01-14 21:45:06 -05:00
bunnei 814a088f41 audio: Add files to CMake. 2018-01-14 21:45:06 -05:00
bunnei d5c25e7115 hid: Remove unused registered_loggers. 2018-01-14 21:45:06 -05:00
bunnei 3f3d08e5f4 audio: Stub out AudOutU::ListAudioOuts. 2018-01-14 21:45:06 -05:00
bunnei 951d762f1e hid: Implement IAppletResource::GetSharedMemoryHandle. 2018-01-14 21:45:06 -05:00
bunnei a3e006f01b qt: Update about dialog to show license for GPLv2 only.
Fixes #6.
2018-01-14 17:27:40 -05:00
bunnei e09f123ff7 shared_memory: Minor fixes and cleanup. 2018-01-14 17:20:55 -05:00
bunnei e9e51c7181 svc: Implement svcMapSharedMemory. 2018-01-14 17:20:55 -05:00
bunnei 99d1279753 kernel: Increase default stack size to 64K. 2018-01-14 17:20:55 -05:00
Jannik Vogel e5ecb86d23 Remove Surface Viewer stub 2018-01-14 20:12:03 +01:00
bunnei eeddfb7409 Merge pull request #4 from spycrab/aboutdialog
Implement "About" dialog
2018-01-14 13:21:12 -05:00
spycrab bb84db54a8 Implement "About" dialog 2018-01-14 19:15:45 +01:00
Thog 84ad54795f Add missing FileType declarations in GuessFromExtension and GetFileTypeString 2018-01-14 19:00:16 +01:00
James Rowe d34c058c6b yuzu qt copy windows deps renamed 2018-01-13 21:17:42 -07:00
MerryMage 2c057ef5df Minor cleanup 2018-01-13 23:56:18 +00:00
MerryMage 427c1ae8ac macOS: Update Info.plist 2018-01-13 23:11:51 +00:00
James Rowe 6827ed18bd Add new icons and fix up the linux paths for install 2018-01-13 15:40:57 -07:00
MerryMage d3b17a5e9b Update dynarmic to bc73004
bc73004 a64_merge_interpret_blocks: Remove debug output
4e656ed tests/A64: Randomize PSTATE.<NZCV>
fd9530b A64: Optimization: Merge interpret blocks
3c9eb04 testenv: Use format constants
324f3fc tests/A64: Unicorn interface fixes
98ecbe7 tests/A64: Fuzz against unicorn
b1d38e7 tests/A64: Move TestEnvironment to own header
5218ad9 A64/data_processing_pcrel: bug: ADR{,P} instructions sign extend their immediate
b1a8c39 A64/data_processing_addsub: bug: {ADD,SUB}S (extended register) instructions write to ZR when d = 31
64827fb a64_emit_x64: bug: A64CallSupervisor trampled callee-save registers
1bfa04d emit_x64: bug: OP m/r64, imm32 form instructions sign-extend their immediate on x64
edadeea A64 inferface: Use two argument static_assert
9ab1304 A64: Add ExceptionRaised IR instruction
6843eed Update readme
7438d07 A64/translate: Add TranslateSingleInstruction function
2018-01-13 22:38:57 +00:00
MerryMage d616b36e7b Fix build on macOS and linux 2018-01-13 22:38:52 +00:00
bunnei ed9ffbaf28 arm_unicorn: Log unmapped memory access address. 2018-01-13 16:24:05 -05:00
bunnei e443f7a301 config: Default log filter to trace. 2018-01-13 16:23:12 -05:00
bunnei 182548ec86 yuzu: Update license text to be consistent across project. 2018-01-13 16:22:39 -05:00
James Rowe d0588e52ab Remove settings issues in sdl and fix a few files that broke in mingw 2018-01-12 19:11:05 -07:00
James Rowe 31499ecb2e Removing unused settings and yuzu rebranding 2018-01-12 19:11:05 -07:00
James Rowe 41830b061a Get yuzu sdl to start compiling 2018-01-12 19:11:04 -07:00
James Rowe bd5740a721 Remove gpu debugger and get yuzu qt to compile 2018-01-12 19:11:04 -07:00
James Rowe a5b9cd4d18 Remove references to PICA and rasterizers in video_core 2018-01-12 19:11:03 -07:00
James Rowe 5dbd091a80 Massive removal of unused modules 2018-01-12 19:11:03 -07:00
bunnei 68c6e82dd9 config: Default CPU core to Unicorn. 2018-01-12 21:05:37 -05:00
bunnei 2817ec4da4 core: Gut out cryptop, since it doesn't compile with C++17. 2018-01-12 19:36:41 -05:00
MerryMage 6fe2dc0b15 configuration: Add cpu_core configuration option 2018-01-12 17:48:52 -05:00
MerryMage ced9768819 arm_dynarmic: Implement core 2018-01-12 17:48:29 -05:00
bunnei 7e02ba1ae3 core: Include <algorithm> where used. 2018-01-11 22:36:56 -05:00
bunnei 5203bf6799 renderer_opengl: Fix LOG_TRACE in LoadFBToScreenInfo. 2018-01-11 22:32:44 -05:00
bunnei 5a7a2eba0d nv: Fix more broken asserts. 2018-01-11 22:31:12 -05:00
bunnei d673462aa5 nvdisp_disp0: Fix broken assert. 2018-01-11 22:29:29 -05:00
bunnei 86a8e32471 core: Fix recent GCC build breaks. 2018-01-11 22:24:09 -05:00
bunnei e2db6b98fe svc: Implement GetSystemTick. 2018-01-11 21:59:31 -05:00
bunnei cfb9f39472 nvdisp_disp0: Call SwapBuffers to render framebuffer. 2018-01-10 23:29:03 -05:00
bunnei 0ffcc1190e renderer_opengl: Support rendering Switch framebuffer. 2018-01-10 23:28:59 -05:00
bunnei 14fe63772f render_base: Add a struct describing framebuffer metadata. 2018-01-10 23:28:56 -05:00
bunnei 7fac24c9e3 renderer_opengl: Add MortonCopyPixels function for Switch framebuffer. 2018-01-10 23:28:53 -05:00
bunnei 46d4d95274 renderer_opengl: Update DrawScreens for Switch. 2018-01-10 23:28:49 -05:00
bunnei 901a0f8ef4 CMakeLists: Add framebuffer_layout.cpp. 2018-01-10 23:28:46 -05:00
bunnei 6eda6ae6eb frontend: Update for undocked Switch screen layout. 2018-01-10 23:28:43 -05:00
Subv 81bcb331f8 NV: Move the nv device nodes to their own directory and namespace. 2018-01-10 23:28:40 -05:00
Subv 8c39b10e47 VI: Use a Pulse event instead of OneShot for the vblank events.
This prevents missing frames if the vblank fires between the DequeueBuffer and Wait(vsync) calls
2018-01-10 23:28:36 -05:00
bunnei 1401c44cf4 vi: Use new CoreTiming::EventType 2018-01-10 23:28:33 -05:00
Subv 2d5bf5a379 NV: Expose the nvdisp_disp0 device and a weak reference to the nvdrv:a service.
NVFlinger will call into the nvdisp_disp0 device to perform screen flips, bypassing the ioctl interface.

We now have the address of the framebuffer to draw, we just need to actually put it on the screen.
2018-01-10 23:28:29 -05:00
Subv 91a0d29466 NV: Determine what buffer to draw for each layer of each display.
Don't try to draw buffers that the guest application is using, only queued buffers are eligible for drawing.

Drawing actual pixels is still not implemented.
2018-01-10 23:28:25 -05:00
Subv 1b907ea655 NV: Signal all display's vsync event 60 times per second. 2018-01-10 23:28:22 -05:00
Subv 67222ea3a6 NV: Give each display its own vsync event. 2018-01-10 23:28:19 -05:00
Subv a7c31ad468 NV: Keep track of Displays, Layers and BufferQueues in nvflinger. 2018-01-10 23:28:16 -05:00
Subv da2990dbb7 IPC: Allow passing arguments to the Interfaces when using PushIpcInterface 2018-01-10 23:28:13 -05:00
Subv 2d06628c52 NV: Implemented (with stubs) the vi:m service and some of its subservices.
The homebrew display test application now properly writes graphics data to the graphics buffer but we still don't have a way to compose the display layers.
2018-01-10 23:28:09 -05:00
Subv 54650737a3 NV: Implemented the nvdrv:a service and the /dev/nvmap device. 2018-01-10 23:28:05 -05:00
Subv 8923c80127 IPC: Corrected some definitions for the buffer C descriptor flags. 2018-01-10 23:28:02 -05:00
Subv edeb55d78b svc: Stub ResetSignal and CreateTransferMemory 2018-01-10 23:27:59 -05:00
Subv 377e2a79b5 svc: Stub SetMemoryAttribute 2018-01-10 23:27:56 -05:00
Subv 9362706e1d Threads: Added enum values for the Switch's 4 cpu cores and implemented svcGetInfo(AllowedCpuIdBitmask) 2018-01-10 01:01:55 -05:00
Subv 9de1929da9 Services: Allow lm to log single-character messages. 2018-01-10 00:41:29 -05:00
Subv db71b23c80 SVC: Fixed WaitSynchronization with multiple handles when none is immediately ready. 2018-01-09 15:02:43 -05:00
Subv 607a46a662 SVC: Implemented CancelSynchronization. 2018-01-09 15:02:04 -05:00
Subv 5685c764e4 ErrorCodes: Updated the InvalidHandle and Timeout kernel error codes. 2018-01-09 12:05:10 -05:00
Subv 84d05d5b6c SVC: Fixed WaitSynchronization with multiple handles when at least one of them is ready. 2018-01-09 11:53:50 -05:00
bunnei 7a59da7834 kernel: Rename Semaphore to ConditionVariable. 2018-01-08 21:41:37 -05:00
bunnei a689a33995 mutex: Remove unused call to VerifyGuestState. 2018-01-08 21:12:56 -05:00
Subv 96e2acfa8f Kernel: Actually wake up the requested number of threads in Semaphore::Release.
Also properly keep track of data in guest memory, this fixes managing the semaphore from userland.

It was found that Semaphores are actually Condition Variables, with Release(1) and Release(-1) being equivalent to notify_one and notify_all. We should change the name of the class to reflect this.
2018-01-08 21:12:54 -05:00
Subv 2ca36ac394 Kernel: Properly keep track of mutex lock data in the guest memory. This fixes userland locking/unlocking. 2018-01-08 21:12:51 -05:00
Subv ac8f05943b Kernel: Allow chaining WaitSynchronization calls inside a wakeup callback. 2018-01-08 21:12:49 -05:00
MerryMage 66a015fe9a fix macos build 2018-01-08 19:20:10 -05:00
bunnei 75589269df core_timing: Use 1.020GHz for core clock rate. 2018-01-08 19:18:50 -05:00
B3n30 1b2aa3780d CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2018-01-08 19:10:25 -05:00
Subv d3f259cd73 IPC: Make DuplicateSession return the Domain instead of the Session if the request was made on a Domain interface. 2018-01-07 17:12:07 -05:00
Subv f0a939c240 AppletOE: Fixed command buffer structure for ReceiveMessage. 2018-01-07 17:12:05 -05:00
Subv b01b7eea52 IPC: Corrected some command headers in the IPC Controller interface. 2018-01-07 17:12:03 -05:00
Subv 3dd00433fe IPC: Corrected some command header sizes in appletOE. 2018-01-07 17:12:01 -05:00
Subv f262afb38a IPC: Take the number of domain objects as a parameter in MakeBuilder. 2018-01-07 17:11:58 -05:00
Subv ed8e7b90cd SM: Fixed connecting to services with an 8-byte name, like appletOE. 2018-01-07 17:11:56 -05:00
Subv 7d966999d4 IPC: Fixed pushing ResultCodes into the command buffer.
They should have 32 bits of padding after the error code now.
2018-01-07 17:11:54 -05:00
Subv 347ab620b5 IPC: Add functions to read the input move/copy objects from an IPC request. 2018-01-07 17:11:51 -05:00
Subv eda468e4fb IPC: Don't attempt to read the command buffer if it holds a Close request. 2018-01-07 17:11:49 -05:00
Subv fd93b1e0ef IPC Cleanup: Remove 3DS-specific code and translate copy, move and domain objects in IPC requests.
Popping objects from the buffer is still not implemented.
2018-01-07 17:11:47 -05:00
Subv 6a6013d4c3 IPC: Skip the entire u64 of the command id when receiving an IPC request.
Service code now doesn't have to deal with this.
2018-01-07 17:11:45 -05:00
Subv d6a5e0b61b IPC: Use the correct size when pushing raw data to the command buffer and fixed pushing domain objects.
Domain object ids are always stored immediately after the raw data.
2018-01-07 17:11:43 -05:00
bunnei 1aac4945d2 svc: Implement svcSignalProcessWideKey. 2018-01-07 16:55:17 -05:00
bunnei 9b8fff5568 audio: Log dropping frames as trace to reduce spam. 2018-01-07 16:52:59 -05:00
bunnei d15b38d32c semaphore: More changes for Switch. 2018-01-07 16:52:23 -05:00
bunnei 0459eb07c9 wait_object: Refactor to allow waking up a single thread. 2018-01-07 16:33:41 -05:00
bunnei 02dba7283f nso: Always load the filepath specified by the user. 2018-01-07 12:44:36 -05:00
bunnei 1ae217c357 core_timing: Increase clock speed for Switch docked. 2018-01-07 00:58:06 -05:00
bunnei 2720d550b7 svc: Implement svcWaitProcessWideKeyAtomic. 2018-01-06 16:14:12 -05:00
bunnei 2f66f2210d semaphore: Updates for Switch. 2018-01-06 15:55:40 -05:00
bunnei 718c77f373 lm: Assert on unsupported multi-message. 2018-01-06 14:41:56 -05:00
bunnei 260149fc9b svc: Implement WaitSynchronization for a single handle. 2018-01-06 14:34:32 -05:00
bunnei 25c27e356e svc: Refactor LockMutex code to use WaitSynchronization1. 2018-01-06 14:19:28 -05:00
bunnei 1941e021bc lm: Improve Log() to format a useful string. 2018-01-05 00:45:13 -05:00
bunnei dc6b80d997 svc: Add missing string_util include. 2018-01-04 19:45:15 -05:00
bunnei 6545152acd cmake: Don't compile Dynarmic as it's unused. 2018-01-04 17:01:02 -05:00
bunnei 878239d05c core: Increase tight_loop 100x for speed. 2018-01-04 16:52:16 -05:00
bunnei fbbaca8fb7 citra_qt: Remove VFP registers, since this isn't used anyways and caused an assert. 2018-01-04 13:52:29 -05:00
bunnei 08991b82fe arm_unicorn: Load/release unicorn DLL. 2018-01-04 13:40:01 -05:00
bunnei 4b1c34c257 externals: Use unicorn DLL instead of static lib. 2018-01-04 13:15:29 -05:00
bunnei 3ff86cab2e unicorn: Use for arm interface on Windows. 2018-01-04 00:13:23 -05:00
bunnei c3ee3f9d76 arm_dynarmic: More cleanup. 2018-01-04 00:09:12 -05:00
bunnei 71eb1a30f0 core: Remove unicorn_dynload. 2018-01-03 22:10:31 -05:00
bunnei 20165180ea arm_dynarmic: Gut interface until dynarmic is ready for general use. 2018-01-03 22:10:11 -05:00
bunnei b055ea2699 arm: Remove SkyEye/Dyncom code that is ARMv6-only. 2018-01-02 22:24:12 -05:00
bunnei 5739484470 vm_manager: Use a more reasonable MAX_ADDRESS size. 2018-01-02 21:37:56 -05:00
bunnei 0d63f6dc66 svc: Remove unnecessary "svc" prefix to naming scheme. 2018-01-02 20:47:26 -05:00
bunnei 7d16a38e06 pctl: Remove duplicate InstallInterfaces function. 2018-01-02 20:41:20 -05:00
bunnei b328c577ef hle: Move SVC code to kernel namespace. 2018-01-02 20:40:30 -05:00
bunnei add5ad40ad svc: Improve svcGetInfo. 2018-01-01 16:01:06 -05:00
bunnei 6a6de01d43 vm_manager: Stub out a bunch of interfaces used by svcGetInfo. 2018-01-01 15:59:31 -05:00
bunnei 7a96dfa16f svc: Fix string formatting for CreateThread. 2018-01-01 15:48:08 -05:00
bunnei 2d6060a29a cmake: Add missing object_address_table. 2018-01-01 15:41:05 -05:00
bunnei 4728cc141a core/video_core: Fix a bunch of u64 -> u32 warnings. 2018-01-01 15:40:35 -05:00
bunnei 082be53aab svc: Stub out svcWaitSynchronization.
- This does not matter until we implement other kernel objects, mutexes use svcLockMutex for waiting.
2018-01-01 14:47:57 -05:00
bunnei 37d55a0317 svc: Implement svcExitProcess. 2018-01-01 14:38:34 -05:00
bunnei aec03c0e73 svc: Implement svcUnlockMutex. 2018-01-01 14:04:36 -05:00
bunnei 16c66e09cc svc: Implement svcLockMutex. 2018-01-01 14:02:26 -05:00
bunnei fba61b93c7 kernel: Add ObjectAddressTable class. 2018-01-01 13:25:37 -05:00
bunnei 57d3544f96 thread: Keep track of the initially created handle.
This is kinda crufty, but we need it for now to update guest state variables.
2017-12-31 17:23:36 -05:00
bunnei a373ba43e4 svc: Implement svcExitThread. 2017-12-31 16:11:27 -05:00
bunnei c943ab553f svc: Implement svcCreateThread. 2017-12-31 16:10:01 -05:00
bunnei 753ab82242 svc: Cleanup svcGetThreadPriority. 2017-12-31 16:06:11 -05:00
bunnei 647243bd78 svc: Stub out svcGetCurrentProcessorNumber. 2017-12-31 16:01:04 -05:00
bunnei 10022dc332 errors: Define missing kernel error codes. 2017-12-31 15:59:00 -05:00
bunnei 8c14a2704d svc: Implement svcSetThreadPriority. 2017-12-31 15:58:16 -05:00
bunnei 4564526c43 svc: Change SignalProcessWideKey to a stub. 2017-12-31 15:55:11 -05:00
bunnei 1629d02a54 function_wrappers: Cleanup, fix warnings, remove unused code. 2017-12-31 15:46:30 -05:00
bunnei 3af6ad6bb9 svc: Implement svcUnmapMemory. 2017-12-31 15:22:49 -05:00
bunnei f10d490c94 svc: Minor cleanups. 2017-12-30 13:40:28 -05:00
bunnei 7a612ba7dd svc: Implement svcStartThread. 2017-12-30 13:37:07 -05:00
bunnei 3fc608b040 thread: Main thread should set thread handle to reg 1. 2017-12-30 12:10:58 -05:00
bunnei da4bd90980 thread: Remove THUMB mode flag. 2017-12-30 12:08:26 -05:00
bunnei d8a3de102e thread: Main thread should be ready by default, all others dormant. 2017-12-30 12:05:10 -05:00
bunnei 78531342a4 kernel: Various 64-bit fixes in memory/process/thread 2017-12-29 13:27:58 -05:00
bunnei 7b3a56f0fb applet_oe: Stub out a bunch of interfaces necessary for boot. 2017-12-29 00:44:46 -05:00
bunnei 33fa650a20 controller: Implement DuplicateSession. 2017-12-29 00:39:34 -05:00
bunnei 9d04a45a90 kernel: Fix implementation of ConvertSessionToDomain. 2017-12-29 00:36:22 -05:00
bunnei d203083a1c ap, aoc_u: Minor cleanup. 2017-12-28 23:45:44 -05:00
bunnei 26495098a9 service: Add empty interface for pctl:a. 2017-12-28 23:44:39 -05:00
bunnei 8331a996d6 kernel: Add basic support for Domain object. 2017-12-28 23:30:21 -05:00
bunnei 8fdafee314 kernel: Add SyncObject primitive, use it for ClientSession. 2017-12-28 23:12:28 -05:00
bunnei 58cf9d847a svc: Implement MapMemory. 2017-12-28 21:38:38 -05:00
bunnei e74563e0d0 process: Add method to mirror a memory region. 2017-12-28 21:35:49 -05:00
bunnei 4678ba1e18 svc: Implement SetHeapSize. 2017-12-28 15:29:52 -05:00
bunnei 82fb80da76 service: Clean up apm/lm/applet_oe/controller/sm ctor/dtor. 2017-12-28 15:27:30 -05:00
bunnei 6d0751cd00 service: Halt on ReportUnimplementedFunction and improve output log. 2017-12-28 15:24:59 -05:00
bunnei f9d160c819 service: Add empty interface for aoc:u. 2017-12-28 15:24:05 -05:00
bunnei 1edc9cc327 service: Return proper result code for IPC::CommandType::Close. 2017-10-31 19:30:05 -04:00
bunnei 714dd3da6d hle: Use Switch formatted result codes. 2017-10-31 19:26:11 -04:00
bunnei bfd01c7c71 svc: Implement GetThreadId and GetProcessId. 2017-10-23 00:15:45 -04:00
bunnei 9651b2db3a logging: Rename category "Core_ARM11" to "Core_ARM". 2017-10-23 00:13:12 -04:00
bunnei 0fba69c235 nso: Load more common submodules. 2017-10-22 23:50:26 -04:00
bunnei ec6eb66383 memory: Support 32-bit paging, move heap address space up. 2017-10-22 23:17:59 -04:00
bunnei bf69f3d1eb hle: Fix QueryMemory response for MemoryInfo. 2017-10-19 23:00:46 -04:00
bunnei bb50d29ca9 lm: Implement lm::Initialize and Logger::log. 2017-10-18 21:41:24 -04:00
bunnei a636b779e7 hle_ipc: Only copy necessary fields for outgoing command buffer. 2017-10-18 21:39:48 -04:00
bunnei f599769c3c hle_ipc: Parse out buffer X/A/B/B descriptors from incoming command buffer. 2017-10-18 21:38:01 -04:00
bunnei c6a1d24720 service: Add CreatePort function (that does not register/install). 2017-10-18 21:34:19 -04:00
bunnei 8b314ec3f9 memory: Print addresses as 64-bit. 2017-10-18 21:29:23 -04:00
bunnei 9ed2ef9c1c ipc_helpers: Fix alignment (was wrong as a result of a dynarmic bug). 2017-10-17 18:03:47 -04:00
bunnei c40bfc606d service: Print correct command ID on unimplemented function. 2017-10-17 18:02:08 -04:00
bunnei be299c7636 hle: Implement ConvertSessionToDomain, various cleanups. 2017-10-15 01:24:22 -04:00
bunnei 5e11c12766 core: Refactor MakeMagic usage and remove dead code. 2017-10-15 00:11:38 -04:00
bunnei 9ce5a90aa6 hle: Add service stubs for apm and appletOE. 2017-10-14 22:50:04 -04:00
bunnei 2ea8867549 hle: Initial implementation of NX service framework and IPC. 2017-10-14 22:18:42 -04:00
bunnei 14ebd959bd nso: Add a log for loading submodules. 2017-10-14 17:37:51 -04:00
bunnei 0176bad5b2 svc: Some logging cleanup. 2017-10-14 17:35:21 -04:00
bunnei 8a19114047 svc: Update MemoryInfo flags for 64-bit. 2017-10-14 17:31:25 -04:00
bunnei bdc3ccc8ac svc: Initial nx impl. for QueryMemory, ConnectToPort, SendSyncRequest, etc. 2017-10-14 17:30:07 -04:00
bunnei 8cf95d87aa Remove more 3DS-specific code. 2017-10-13 17:56:42 -04:00
bunnei 877d4c71d3 Remove more 3DS-specific code. 2017-10-12 21:45:06 -04:00
bunnei e36d959e34 Remove more 3DS-specific code. 2017-10-12 21:29:53 -04:00
bunnei 5993f6f6de Remove lots more 3DS-specific code. 2017-10-12 21:21:49 -04:00
bunnei dd4ffef0a2 hle: Remove a large amount of 3ds-specific service code. 2017-10-10 17:32:14 -04:00
bunnei 775cf60729 Merge remote-tracking branch 'upstream/master' into nx
# Conflicts:
#	src/core/CMakeLists.txt
#	src/core/arm/dynarmic/arm_dynarmic.cpp
#	src/core/arm/dyncom/arm_dyncom.cpp
#	src/core/hle/kernel/process.cpp
#	src/core/hle/kernel/thread.cpp
#	src/core/hle/kernel/thread.h
#	src/core/hle/kernel/vm_manager.cpp
#	src/core/loader/3dsx.cpp
#	src/core/loader/elf.cpp
#	src/core/loader/ncch.cpp
#	src/core/memory.cpp
#	src/core/memory.h
#	src/core/memory_setup.h
2017-10-09 23:56:20 -04:00
bunnei e36ccd5ff1 loader: Various improvements for NSO/NRO loaders. 2017-10-09 21:39:32 -04:00
Dragios cefb2e7745 Change command header in nwm::UDS Initialize function 2017-10-09 09:10:48 +08:00
Sebastian Valle 3fb50166a9 Merge pull request #2991 from Subv/getpointer
Remove more usages of GetPointer.
2017-10-08 10:11:12 -05:00
Sebastian Valle 66150505dc Merge pull request #2975 from shinyquagsire23/archive-ncch-container-and-override
file_sys/archive_ncch: use NCCHs/.apps instead of .romfs files, NCCH section override
2017-10-06 12:19:20 -05:00
bunnei 90cc352a37 loader: Add support for NRO, as well as various fixes and shared linker. 2017-10-05 23:30:08 -04:00
Sebastian Valle a19944b9eb Merge pull request #2953 from Subv/applet_launch
HLE/APT: Always set up the APT parameter when starting a library applet.
2017-10-04 15:01:58 -05:00
Subv c6304fc50e SVC: Removed GetPointer usage in the GetResourceLimit functions. 2017-10-04 14:04:27 -05:00
Subv 62e3520792 SVC: Remove GetPointer usage in CreatePort. 2017-10-04 14:04:03 -05:00
Subv 5768c55104 SVC: Replace GetPointer usage with ReadCString in ConnectToPort. 2017-10-04 14:03:59 -05:00
Subv f08872822c SVC: Replace GetPointer usage with ReadBlock in OutputDebugString. 2017-10-04 12:30:33 -05:00
Subv 690b21012d SVC: Replace GetPointer usage with Read32 in ReplyAndReceive. 2017-10-04 12:30:33 -05:00
Subv 6fd20a0595 SVC: Replace GetPointer usage with Read32 in WaitSynchronizationN. 2017-10-04 12:30:32 -05:00
Subv 8226539902 Memory: Remove all GetPointer usages from the GDB stub. 2017-10-04 11:33:32 -05:00
Huw Pascoe e38656565d Extracted the attribute setup and draw commands into their own functions 2017-10-04 01:08:29 +01:00
bunnei f44ce614ef nso: Fixes to support homebrew NSOs without a MOD header. 2017-10-03 18:30:02 -04:00
bunnei 14389f5d6d Merge pull request #2977 from Subv/shmem_create
SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it
2017-10-03 16:21:49 -04:00
Subv 25a5ce9e75 Kernel/SharedMemory: Don't take over and unmap the source memory block when creating a shared memory, just reference it.
Also reference the right offset into the backing block for the requested address.
2017-10-02 15:16:16 -05:00
Sebastian Valle cbf57de4e5 Merge pull request #2971 from Subv/per_process_memops
Memory: Add overloads for ReadBlock and WriteBlock that operate on a specific process.
2017-10-01 14:44:06 -05:00
Subv 1265575db5 Memory: Make WriteBlock take a Process parameter on which to operate 2017-10-01 14:18:36 -05:00
Subv bf55d2f57e Memory: Make ReadBlock take a Process parameter on which to operate 2017-10-01 14:18:36 -05:00
Subv 141da6b667 Kernel/Thread: Added a helper function to get a thread's command buffer VAddr. 2017-10-01 14:18:35 -05:00
Sebastian Valle fd974cb502 Merge pull request #2974 from Subv/nim_event
Services/NIM: Implement CheckForSysUpdateEvent.
2017-10-01 14:16:14 -05:00
shinyquagsire23 9c8cdede44 file_sys, loader: add support for reading TMDs to determine app paths 2017-10-01 10:54:02 -06:00
shinyquagsire23 f6564f232e file_sys: add class for Title Metadata (TMD) 2017-10-01 10:53:45 -06:00
shinyquagsire23 a151c0edec file_sys/ncch_container: add RomFS, ExeFS override to allow for backward compatibility with existing .romfs system archive dumps 2017-10-01 10:53:18 -06:00
shinyquagsire23 2f8af214f8 file_sys/archive_ncch: use NCCHContainer instead of loading .romfs files 2017-10-01 10:53:04 -06:00
bunnei 47d0206ac7 arm_interface: Set TLS address for dynarmic core. 2017-09-30 14:34:03 -04:00
bunnei 6d3b6e0041 nso: Refactor and allocate .bss section. 2017-09-30 14:33:58 -04:00
bunnei 39308848e3 process: Support loading multiple codesets. 2017-09-30 14:33:11 -04:00
bunnei 0e04a4ffd6 loader: Add support for loading an NSO. 2017-09-30 14:32:53 -04:00
bunnei f4b1216c81 externals: Add lz4. 2017-09-30 14:30:04 -04:00
bunnei 55eaa14131 memory: Log with 64-bit values. 2017-09-30 14:28:54 -04:00
bunnei 6cfc867d93 kernel: Various threading fixes to support 64-bit addressing. 2017-09-30 14:28:54 -04:00
bunnei e5731e94d6 core: Various changes to support 64-bit addressing. 2017-09-30 14:28:54 -04:00
bunnei 7f1ce2cf68 arm: Use 64-bit addressing in a bunch of places. 2017-09-30 14:28:53 -04:00
bunnei d13377a2a9 elf: Check if machine is ARM. 2017-09-30 14:28:53 -04:00
Subv ded3089f66 Services/NIM: Implement CheckForSysUpdateEvent.
Implementation verified by reverse engineering.
This lets the Home Menu boot without crashing on startup.
2017-09-30 13:21:45 -05:00
Huw Pascoe ed9e0618c9 Moved down_count to CoreTiming 2017-09-30 17:38:14 +01:00
B3n30 6706b1994e Services/UDS: Handle the rest of the connection sequence. (#2963)
Services/UDS: Handle the rest of the connection sequence.
2017-09-30 18:18:45 +02:00
Sebastian Valle afd9af8417 Merge pull request #2946 from Subv/home_menu_apt
Implement PrepareToStartNewestHomeMenu and fixed an APT regression.
2017-09-30 10:47:42 -05:00
Sebastian Valle 2e30398e7a Merge pull request #2967 from Subv/thread_wakeup_callbacks
Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken
2017-09-30 09:12:18 -05:00
Huw Pascoe da1c8d1522 Fixed type conversion ambiguity 2017-09-30 09:34:35 +01:00
bunnei e2a34ccd89 Merge pull request #2961 from Subv/load_titles
Loaders: Don't automatically set the current process every time we load an application.
2017-09-29 14:58:42 -04:00
Subv a0054d695e Kernel/Threads: When putting a thread to wait, specify a function to execute when it is awoken.
This change makes for a clearer (less confusing) path of execution in the scheduler, now the code to execute when a thread awakes is closer to the code that puts the thread to sleep (WaitSynch1, WaitSynchN). It also allows us to implement the special wake up behavior of ReplyAndReceive without hacking up WaitObject::WakeupAllWaitingThreads.

If savestates are desired in the future, we can change this implementation to one similar to the CoreTiming event system, where we first register the callback functions at startup and assign their identifiers to the Thread callback variable instead of directly assigning a lambda to the wake up callback variable.
2017-09-28 11:53:32 -05:00
Sebastian Valle 1d94b4fd3d Merge pull request #2907 from Subv/warnings3
Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
2017-09-27 15:45:38 -05:00
Subv 9f1b2d3260 Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types.
It is unlikely we will ever use this without first doing a Cast to a signed type.
Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3
2017-09-27 09:06:41 -05:00
Subv 11920a6bd1 Loaders: Don't automatically set the current process every time we load an application.
The loaders will now just create a Kernel::Process, construct it and return it to the caller, which is responsible for setting it as the current process and configuring the global page table.
2017-09-26 18:17:47 -05:00
James Rowe 47ca57f00f Merge pull request #2954 from Subv/cache_unmapped_mem
Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions
2017-09-26 16:55:47 -06:00
Subv 2e78c05d91 Kernel/Thread: Allow specifying which process a thread belongs to when creating it.
Don't automatically assume that Thread::Create will only be called when the parent process is currently scheduled. This assumption will be broken when applets or system modules are loaded.
2017-09-26 17:40:49 -05:00
Subv 2420759794 Tests: Added Memory::IsValidVirtualAddress tests. 2017-09-26 17:31:50 -05:00
Subv 6af5b05299 Tests: Fixed ARM VFP tests 2017-09-26 17:29:06 -05:00
Subv 3cb2bf08c3 Memory: Allow IsValidVirtualAddress to be called with a specific process parameter.
There is still an overload of IsValidVirtualAddress that only takes the VAddr and will default to the current process.
2017-09-26 17:27:44 -05:00
Merry 0e74e2bd52 Merge pull request #2958 from Subv/audio_buffer_datatype
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16)
2017-09-26 08:47:37 +01:00
Subv 04481f6a13 HLE/APT: Always set up the APT parameter when starting a library applet.
Only use the HLE interface if an HLE applet with the desired id was started.

This commit reorganizes the APT code surrounding parameter creation and delivery to make it easier to support LLE applets in the future.

As future work, the HLE applet interface can be reworked to utilize the same facilities as the LLE interface.
2017-09-25 23:47:50 -05:00
Subv bfc70ef1d1 Memory/RasterizerCache: Ignore unmapped memory regions when caching physical regions.
Not all physical regions need to be mapped into the address space of every process, for example, system modules do not have a VRAM mapping.

This fixes a crash when loading applets and system modules.
2017-09-25 19:37:45 -05:00
Subv 3532957099 Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16).
The current code inserts and deletes elements from the beginning of the audio buffer, which is very inefficient in an std::vector.

Profiling was done using VisualStudio2017's Performance Analyzer in Super Mario 3D Land.

Before this change: AudioInterp::Linear had 14.14% of the runtime (inclusive) and most of that time was spent in std::vector's insert implementation.
After this change: AudioInterp::Linear has 0.36% of the runtime (inclusive)
2017-09-25 18:31:37 -05:00
Subv f2b635a73d HLE/Archives: Allow multiple loaded applications to access their SelfNCCH archive independently.
The loaders now register each loaded ROM with the SelfNCCH factory, which keeps the data around for the duration of the emulation session.

When opening the SelfNCCH archive, the factory queries the current program's programid and uses that as a key to the map that contains the NCCHData structure (RomFS, Icon, Banner, etc).

3dsx files do not have a programid and will use a default of 0 for this value, thus, only 1 3dsx file with RomFS is loadable at the same time.
2017-09-25 09:45:02 -05:00
B3n30 75f023a48b Merge pull request #2952 from MerryMage/page-tables
Switchable Page Tables
2017-09-25 08:29:32 +02:00
B3n30 9b06d0afb7 Merge pull request #2951 from huwpascoe/perf-4
Optimized Morton
2017-09-25 08:28:55 +02:00
B3n30 91b85122af Merge pull request #2949 from wwylele/fix-tr
citra-qt: fix some untranslated strings
2017-09-25 08:23:04 +02:00
B3n30 c78c4f258d Merge pull request #2948 from Subv/register_service
HLE/SRV: Implemented RegisterService.
2017-09-25 08:22:05 +02:00
Max Thomas 042b389b57 Loader/NCCH: Add support for loading application updates (#2927)
* loader/ncch: split NCCH parsing into its own file

* loader/ncch: add support for loading update NCCHs from the SD card

* loader/ncch: fix formatting

* file_sys/ncch_container: Return a value for OpenFile

* loader/ncch: cleanup, always instantiate overlay_ncch to base_ncch

* file_sys/ncch_container: better encryption checks, allow non-app NCCHs to load properly and for the existence of NCCH structures to be checked

* file_sys/ncch_container: pass filepath as a const reference
2017-09-25 08:17:38 +02:00
B3n30 9ab7d720db Services/UDS: Added a function to send EAPoL-Start packets (#2920)
* Services/UDS: Added a function to generate the EAPoL-Start packet body.

* Services/UDS: Added filter for beacons.

* Services/UDS: Lock a mutex when accessing connection_status from both the emulation and network thread.

* Services/UDS: Handle the Association Response frame and respond with the EAPoL-Start frame.

* fixup: make use of current_node, changed received_beacons into a list, mutex and assert corrections

* fixup: fix damn clang-format
2017-09-25 08:16:27 +02:00
Huw Pascoe cb0886468d Optimized Float<M,E> multiplication
Before:

ucomiss xmm1, xmm1
jp      .L9
pxor    xmm2, xmm2
mov     edx, 1
ucomiss xmm0, xmm2
setp    al
cmovne  eax, edx
test    al, al
jne     .L9
.L3:
movaps  xmm0, xmm2
ret
.L9:
ucomiss xmm0, xmm0
jp      .L10
pxor    xmm2, xmm2
mov     edx, 1
ucomiss xmm1, xmm2
setp    al
cmovne  eax, edx
test    al, al
je      .L3

After:

movaps  xmm2, xmm1
mulss   xmm2, xmm0
ucomiss xmm2, xmm2
jnp     .L3
ucomiss xmm1, xmm0
jnp     .L11
.L3:
movaps  xmm0, xmm2
ret
.L11:
pxor    xmm2, xmm2
jmp     .L3
2017-09-25 00:54:02 +01:00
MerryMage 0e49bffe03 ARM_Interface: Implement PageTableChanged 2017-09-24 23:08:25 +01:00
MerryMage ecf27fbf82 memory: Remove GetCurrentPageTablePointers 2017-09-24 22:43:28 +01:00
MerryMage 6b8ad273fc memory: Add GetCurrentPageTable/SetCurrentPageTable
Don't expose Memory::current_page_table as a global.
2017-09-24 22:42:42 +01:00
Huw Pascoe 275530d7a9 Optimized Morton 2017-09-24 22:27:14 +01:00
wwylele 9c4b6162af citra-qt: fix some untranslated strings 2017-09-24 17:53:35 +03:00
Subv 5a30962cf1 HLE/APT: Always return an error from PrepareToStartNewestHomeMenu so that the Home Menu doesn't try to reboot the system.
As per 3dbrew:
"During Home Menu start-up it uses APT:PrepareToStartNewestHomeMenu. If that doesn't return an error(normally NS returns 0xC8A0CFFC for that), Home Menu starts a hardware reboot with APT:StartNewestHomeMenu etc. "
2017-09-24 08:59:31 -05:00
Subv c3b1470a42 HLE/APT: Prepare the APT Wakeup parameter when the game calls Initialize
We need to know what is being run so we can set the APT parameter destination AppId correctly.
Delaying the preparation of the parameter until we know which AppId is running lets us support booting both the Home Menu and normal game Applications.
2017-09-24 08:59:30 -05:00
James Rowe 4c4807a251 Merge pull request #2921 from jroweboy/batch-fix-2
GPU: Add draw for immediate and batch modes
2017-09-24 07:57:16 -06:00
Subv 2e487c9bce HLE/SRV: Implemented RegisterService.
Now system modules can do more than just crash immediately on startup.
2017-09-24 00:12:58 -05:00
James Rowe a10022da25 Remove pipeline.gpu_mode and fix minor issues 2017-09-23 09:28:20 -06:00
Yuri Kunde Schlesner b9365deb5a Merge pull request #2928 from huwpascoe/master
Fixed framebuffer warning
2017-09-22 04:06:38 +02:00
bunnei 4db1bff95e Merge pull request #2933 from huwpascoe/perf-1
Improved performance of FromAttributeBuffer
2017-09-19 13:18:35 -04:00
B3n30 fdd8a6ef0c WebService: Verify username and token (#2930)
* WebService: Verify username and token; Log errors in PostJson

* Fixup: added docstrings to the functions

* Webservice: Added Icons to the verification, imrpved error detection in cpr, fixup nits

* fixup: fmt warning
2017-09-18 21:18:26 -04:00
Huw Pascoe 1089bdda80 Improved performance of FromAttributeBuffer
Ternary operator is optimized by the compiler
whereas std::min() is meant to return a value.

I've noticed a 5%-10% emulation speed increase.
2017-09-17 15:56:36 +01:00
Huw Pascoe a35ca6c623 Fixed framebuffer warning 2017-09-17 11:57:06 +01:00
Yuri Kunde Schlesner defb247fff Merge pull request #2906 from Subv/ns_new_framework
Services/NS: Port ns:s to the new service framework.
2017-09-16 21:13:51 +02:00
Subv 891916efff Services/NS: Port ns:s to the new service framework. 2017-09-16 10:52:45 -05:00
Yuri Kunde Schlesner e379255d9b Merge pull request #2900 from wwylele/clip-2
PICA: implement custom clip plane
2017-09-16 10:23:00 +02:00
B3n30 ccdc31ca9f Merge pull request #2842 from Subv/switchable_page_table
Kernel/Memory: Give each process its own page table and allow switching the current page table upon reschedule
2017-09-15 22:41:45 +02:00
Subv 85f1a05d7e CPU/Dynarmic: Disable the fast page-table access in dynarmic until it supports switching page tables at runtime. 2017-09-15 14:26:22 -05:00
Subv 082f12048a Tests/VFP: Use a standalone pagetable for the TestEnvironment memory operations.
This fixes building the tests
2017-09-15 14:26:20 -05:00
Subv 8932f435fc Kernel/Memory: Make IsValidPhysicalAddress not go through the current process' virtual memory mapping. 2017-09-15 14:26:18 -05:00
Subv 9200465e55 Kernel/Threads: Don't clear the CPU instruction cache when performing a context switch from an idle thread into a thread in the same process.
We were unnecessarily clearing the cache when going from Process A -> Idle -> Process A, this caused extreme performance regressions.
2017-09-15 14:26:15 -05:00
Subv 71281c2114 Kernel/Memory: Changed GetPhysicalPointer so that it doesn't go through the current process' page table to obtain a pointer. 2017-09-15 14:26:13 -05:00
bunnei b957876d61 Merge pull request #2915 from wwylele/font-archive-2
APT: load different shared font depending on the region
2017-09-11 21:39:56 -04:00
James Rowe 08a1641f8a GPU: Add draw for immediate and batch modes
PR #1461 introduced a regression where some games would change configuration
even while in the poorly named "drawing" mode, which broke the heuristic
citra was using to determine when to draw the batch. This change adds
back in a draw call for batching, and also adds in a draw call in
immediate mode each time it adds a triangle.
2017-09-11 09:21:43 -06:00
Subv 23ad87098d Kernel/Memory: Switch the current page table when a new process is scheduled. 2017-09-10 15:14:31 -05:00
Subv 36100ec791 Kernel/Memory: Give each Process its own page table.
The loader is in charge of setting the newly created process's page table as the main one during the loading process.
2017-09-10 15:13:41 -05:00
bunnei f536a8d269 Merge pull request #2865 from wwylele/gs++
PICA: implemented geometry shader
2017-09-07 23:02:59 -04:00
bunnei d9e82a499e Merge pull request #2914 from wwylele/fresnel-fix
pica/lighting: only apply Fresnel factor for the last light
2017-09-05 10:00:49 -04:00
Weiyi Wang 312e762696 Merge pull request #2831 from Subv/uds_auth
Services/UDS: Handle beacon frames and the basic AP connection sequence frames.
2017-09-05 15:03:56 +03:00
mailwl 4edc09f6b3 Remove _flag in var names 2017-09-04 12:15:15 +03:00
mailwl 977f7eee79 Mii Selector Applet: update Mii structures 2017-09-04 12:04:12 +03:00
James Rowe f841eb37ea Fix icon for citra qt 2017-09-03 11:26:10 -06:00
wwylele 7bf08b4f6e APT: load different shared font depending on the region 2017-09-03 12:34:11 +03:00
wwylele 3b210dd006 pica/lighting: only apply Fresnel factor for the last light 2017-09-03 08:22:03 +03:00
DaMan 9a09519e7a Add manifest 2017-09-02 20:08:11 -04:00
bunnei 2e3cb85793 Merge pull request #2909 from wwylele/telemetry-gas
video_core: report telemetry for gas mode
2017-08-31 11:12:55 -04:00
wwylele c58f627516 video_core: report telemetry for gas mode 2017-08-31 12:54:17 +03:00
bunnei a334004da8 Merge pull request #2858 from MerryMage/interp-on-a-frame-basis
interpolate: Interpolate on a frame-by-frame basis
2017-08-30 21:56:43 -04:00
bunnei 84ac533b17 Merge pull request #2891 from wwylele/sw-bump
SwRasterizer/Lighting: implement bump mapping
2017-08-30 21:07:30 -04:00
bunnei d181a67df9 Merge pull request #2899 from wwylele/touch-refactor
Refactor touch input into a TouchDevice
2017-08-29 11:29:10 -04:00
Sebastian Valle 8b1fdb9394 Merge pull request #2905 from danzel/fix-2902
Use recursive_mutex instead of mutex to fix #2902
2017-08-29 09:35:56 -05:00
danzel e16c96d587 Use recursive_mutex instead of mutex to fix #2902 2017-08-29 20:39:55 +12:00
MerryMage cbb31422b7 interpolate: Interpolate on a frame-by-frame basis 2017-08-28 10:54:41 +01:00
Weiyi Wang d74c3415fb Merge pull request #2892 from Subv/warnings2
Warnings: Fixed a few missing-return warnings in video_core.
2017-08-28 03:21:51 -05:00
Subv 02af4789cc Services/UDS: Remove an old duplicated declaration of WifiPacket. 2017-08-27 10:48:15 -05:00
Subv 0e1a05aaec Services/UDS: Handle the connection sequence packets.
There is currently no stage tracking, a client is considered "Connected" when it receives the EAPoL Logoff packet from the server, this is not yet implemented.
2017-08-27 10:48:13 -05:00
Subv 088500377e Services/UDS: Store the received beacon frames until RecvBeaconBroadcastData is called, up to 15 beacons at the same time, removing any older beacon frames when the limit is exceeded. 2017-08-27 10:48:11 -05:00
Subv 44350f7ea1 Services/UDS: Add functions to generate 802.11 auth and assoc response frames. 2017-08-27 10:48:09 -05:00
bunnei 2c616c7f45 web_backend: Fix CPR bug where Winsock is not properly initializing. 2017-08-26 19:45:41 -04:00
Subv 1ba7703833 Warnings: Fixed a few missing-return warnings in video_core. 2017-08-26 11:58:22 -05:00
bunnei 85bfee814a web_backend: Fix asynchronous JSON post by spawning new thread. 2017-08-25 23:37:47 -04:00
bunnei 0783d36b5a web_services: Refactor to remove dependency on Core. 2017-08-25 23:10:02 -04:00
bunnei d10cd5d7ea qt: Add an option to view/regenerate telemetry ID. 2017-08-25 23:10:02 -04:00
bunnei c871b582f3 default_ini: Use correct telemetry endpoint URL. 2017-08-25 23:10:01 -04:00
bunnei ebd40bac63 # This is a combination of 2 commits.
# This is the 1st commit message:

qt: Add web configuration tab.

# The commit message #2 will be skipped:

# fixup! qt: Add web configuration tab.
2017-08-25 23:10:01 -04:00
bunnei b4d06de621 qt: Add web configuration tab. 2017-08-25 23:10:01 -04:00
bunnei 5dddc43fde web_backend: User config for username and token, support anonymous post. 2017-08-25 23:10:01 -04:00
bunnei 24326a8436 telemetry: Log frontend type. 2017-08-25 23:10:01 -04:00
bunnei 3142ed98b6 settings: Add enable_telemetry, citra_username, and citra_token. 2017-08-25 23:10:00 -04:00
bunnei 58d3f0ae1d telemetry_session: Log telemetry ID. 2017-08-25 23:10:00 -04:00
bunnei 8ed5cd044d citra_qt: Show one-time callout messages to user. 2017-08-25 23:10:00 -04:00
ThaMighty90 791a419280 SidebySide Layout (#2859)
* added a SidebySide Layout

* Reworked, so both screen have the same height and cleaned up screen translates.

* added the option in the UI, hope this is the right way to do it. formated framebuffer_layout.cpp

* delete the x64 files

* deleted ui_configure_graphics.h

* added Option for the Layout in the xml

* got rid of SIDE_BY_SIDE_ASPECT_RATIO because it was useless. pulled translate into variables

* changed shift variables to u32 and moved them in their respective branch. remove notr="true" for the Screen layout drop down

* reworked intends :). changed function description for SideFrameLayout

* some description reworking
2017-08-25 17:53:07 -04:00
wwylele b67850c882 SwRasterizer/Clipper: flip the sign convention to match PICA and OpenGL 2017-08-25 07:26:45 +03:00
wwylele 55eaecad8f gl_rasterizer: implement custom clip plane 2017-08-25 07:26:45 +03:00
wwylele 5893bb84af SwRasterizer: implement custom clip plane 2017-08-24 15:34:27 +03:00
wwylele 2814d0fba2 EmuWindow: refactor touch input into a TouchDevice 2017-08-24 15:00:56 +03:00
wwylele 5ec879dfaa HID: use TouchDevice for touch pad 2017-08-24 13:56:43 +03:00
James Rowe 35e185309b Merge pull request #2839 from Subv/global_kernel_lock
Kernel/HLE: Use a mutex  to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
2017-08-23 18:17:44 -06:00
bunnei add21dee2f Merge pull request #2893 from Subv/not_schedule_main_thread
Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
2017-08-22 17:45:47 -04:00
Subv 36220f3873 Kernel/Memory: Acquire the global HLE lock when a memory read/write operation falls outside of the fast path, for it might perform an MMIO operation. 2017-08-22 09:30:58 -05:00
Subv 9cf64ca2cf Kernel/HLE: Use a mutex to synchronize access to the HLE kernel state between the cpu thread and any other possible threads that might touch the kernel (network thread, etc).
This mutex is acquired in SVC::CallSVC, ie, as soon as the guest application enters the HLE kernel, and should be acquired by the aforementioned threads before modifying kernel structures.
2017-08-22 09:30:55 -05:00
James Rowe 95ccb3a6e6 Merge pull request #2888 from Subv/warnings
Fixed some warnings in the core project.
2017-08-22 08:09:09 -06:00
wwylele 56684ad10b motion_emu: fix initialization order 2017-08-22 11:43:44 +03:00
wwylele 709d362609 gl_rasterizer/lighting: more accurate CP formula 2017-08-22 09:34:44 +03:00
wwylele 6813c61423 SwRasterizer/Lighting: implement LUT input CP 2017-08-22 09:34:44 +03:00
wwylele f75c6b4d36 SwRasterizer/Lighting: implement bump mapping 2017-08-22 09:34:44 +03:00
Subv 733dfe220e Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
This is necessary for loading multiple processes at the same time.
The main thread will be automatically scheduled when necessary once the scheduler runs.
2017-08-21 20:54:29 -05:00
Subv 1c6f3ee4ba GPU/Warnings: Explicitly cast the screen refresh ticks to u64. 2017-08-21 08:34:30 -05:00
Subv f94bd67a0d Warnings: Add UNREACHABLE macros to switches that contemplate all possible values. 2017-08-21 08:34:28 -05:00
Subv ecfad8a134 HLE/Applets: Fixed some conversion warnings when creating the framebuffer shared memory objects. 2017-08-21 08:34:27 -05:00
Subv 690eed4d9e CPU/Dynarmic: Fixed a warning when incrementing the number of ticks in ExecuteInstructions. 2017-08-21 08:34:25 -05:00
Subv 015a96a59b Dyncom: Use size_t instead of int to store the instruction offsets in the instruction cache.
Fixes a few warnings.
2017-08-21 08:34:23 -05:00
Subv b2d8872e56 Dyncom: Fixed a conversion warning when decoding thumb instructions. 2017-08-21 08:20:36 -05:00
wwylele c0bc013929 swrasterizer: remove invalid TODO
This function is called in clipping, before the pespective divide, and is not used in later rasterization. Thus it doesn't need perspective correction.
2017-08-21 08:03:07 +03:00
wwylele a931e4974e swrasterizer/clipper: remove tested TODO
hwtested. Current implementation is the correct behavior
2017-08-21 08:03:07 +03:00
wwylele a8499f3adb gl_shader_gen: simplify and clarify the depth transformation between vertex shader and fragment shader 2017-08-21 08:03:07 +03:00
wwylele d332ede188 gl_rasterizer: add clipping plane z<=0 defined in PICA 2017-08-21 08:03:07 +03:00
Yuri Kunde Schlesner d7d434cbc7 Merge pull request #2872 from wwylele/sw-geo-factor
SwRasterizer/Lighting: implement geometric factor
2017-08-20 17:49:42 -07:00
James Rowe df206639cf Merge pull request #2861 from wwylele/motion-refactor
Refactor MotionEmu into a InputDevice
2017-08-19 23:43:01 -06:00
wwylele 13014535c1 HID: fix a comment and a warning 2017-08-20 08:37:48 +03:00
James Rowe 989749253e Merge pull request #2871 from wwylele/sw-spotlight
SwRasterizer/Lighting: implement spot light
2017-08-19 20:10:24 -06:00
B3n30 95fd4a5e9d Added missing parts in libnetwork (#2838)
* Network: Set and send the game information over enet

Added Callbacks for RoomMember and GetMemberList to Room in preparation for web_services.
2017-08-19 11:14:33 -06:00
wwylele 35b3fef422 pica/command_processor: build geometry pipeline and run geometry shader
The geometry pipeline manages data transfer between VS, GS and primitive assembler. It has known four modes:
 - no GS mode: sends VS output directly to the primitive assembler (what citra currently does)
 - GS mode 0: sends VS output to GS input registers, and sends GS output to primitive assembler
 - GS mode 1: sends VS output to GS uniform registers, and sends GS output to primitive assembler. It also takes an index from the index buffer at the beginning of each primitive for determine the primitive size.
 - GS mode 2: similar to mode 1, but doesn't take the index and uses a fixed primitive size.
hwtest shows that immediate mode also supports GS (at least for mode 0), so the geometry pipeline gets refactored into its own class for supporting both drawing mode.
In the immediate mode, some games don't set the pipeline registers to a valid value until the first attribute input, so a geometry pipeline reset flag is set in `pipeline.vs_default_attributes_setup.index` trigger, and the actual pipeline reconfigure is triggered in the first attribute input.
In the normal drawing mode with index buffer, the vertex cache is a little bit modified to support the geometry pipeline. Instead of OutputVertex, it now holds AttributeBuffer, which is the input to the geometry pipeline. The AttributeBuffer->OutputVertex conversion is done inside the pipeline vertex handler. The actual hardware vertex cache is believed to be implemented in a similar way (because this is the only way that makes sense).
Both geometry pipeline and GS unit rely on states preservation across drawing call, so they are put into the global state. In the future, the other three vertex shader units should be also placed in the global state, and a scheduler should be implemented on top of the four units. Note that the current gs_unit already allows running VS on it in the future.
2017-08-19 10:13:20 +03:00
wwylele 6d51febdc4 pica/shader/jit: implement SETEMIT and EMIT 2017-08-19 10:13:20 +03:00
wwylele ab3e6dba1f pica/primitive_assembly: Handle winding for GS primitive
hwtest shows that, although GS always emit a group of three vertices as one primitive, it still respects to the topology type, as if the three vertices are input into the primitive assembler independently and sequentially. It is also shown that the winding flag in SETEMIT only takes effect for Shader topology type, which is believed to be the actual difference between List and Shader (hence removed the TODO). However, only Shader topology type is observed in official games when GS is in use, so the other mode seems to be just unintended usage.
2017-08-19 10:13:20 +03:00
wwylele 4283f4b244 correct constness 2017-08-19 10:13:20 +03:00
wwylele 4d4dbc83a7 pica/shader/interpreter: implement SETEMIT and EMIT 2017-08-19 10:13:20 +03:00
wwylele 2599928707 pica/shader: extend UnitState for GS
Among four shader units in pica, a special unit can be configured to run both VS and GS program. GSUnitState represents this unit, which extends UnitState (which represents the other three normal units) with extra state for primitive emitting. It uses lots of raw pointers to represent internal structure in order to keep it standard layout type for JIT to access.
This unit doesn't handle triangle winding (inverting) itself; instead, it calls a WindingSetter handler. This will be explained in the following commits
2017-08-19 10:13:20 +03:00
wwylele 6e56beafbf motion_emu: no need to include thread in header 2017-08-19 07:21:02 +03:00
Yuri Kunde Schlesner e24db32ae8 Merge pull request #2881 from MerryMage/dsp-firm-check
dsp_dsp: Remove size assertion in LoadComponent
2017-08-15 20:14:41 -07:00
MerryMage 98edc03737 dsp_dsp: Remove size assertion in LoadComponent 2017-08-15 10:16:50 +01:00
Dave Leaver 4c281049aa Fix Spelling/English mistakes 2017-08-14 09:15:39 +12:00
Sebastian Valle ebc3701d0e Merge pull request #2843 from Subv/applet_slots
Services/APT: Use an array to hold data about the 4 possible concurrent applet types (Application, Library, HomeMenu, System)
2017-08-12 10:27:57 -05:00
wwylele a26768503a gl_shader_gen: don't call SampleTexture when bump map is not used 2017-08-11 18:35:00 +03:00
wwylele d500f79b8e move MotionEmu from core/frontend to input_common as a InputDevice 2017-08-11 11:05:08 +03:00
wwylele 31da8b8353 HID: use MotionDevice for Accelerometer and Gyroscope 2017-08-11 11:03:18 +03:00
Weiyi Wang 4f6f33f155 Merge pull request #2874 from danzel/spelling-1
Fix some spelling mistakes
2017-08-11 11:02:14 +03:00
danzel 6610e914a3 Fix some spelling mistakes 2017-08-11 19:51:16 +12:00
wwylele 1904567e36 SwRasterizer/Lighting: implement spot light 2017-08-11 01:19:10 +03:00
wwylele b7e4eb7d90 SwRasterizer/Lighting: implement geometric factor 2017-08-11 01:18:43 +03:00
Weiyi Wang ed7b0bfad0 Merge pull request #2863 from wwylele/pad-state-zero
HID: zero unused PadState bits
2017-08-10 17:50:18 +03:00
wwylele b05c60172b HID: zero unused PadState bits 2017-08-10 17:01:03 +03:00
wwylele 72905b0389 SwRasterizer/Lighting: use make_tuple instead of constructor
implicit tuple constructor is a c++17 thing, which is not supported by some not-so-old libraries. Play safe for now
2017-08-10 12:19:58 +03:00
wwylele edc3516958 pica/regs: layout geometry shader configuration regs
All the register meanings are derived from ctrulib (3dbrew is outdated for most of them)
2017-08-10 01:53:08 +03:00
bunnei e9c9b0ff53 Merge pull request #2862 from j-selby/update-cryptopp
Update CryptoPP (byte ambiguity)
2017-08-09 16:18:43 -04:00
Weiyi Wang ae040b4f3b Merge pull request #2822 from wwylele/sw_lighting-2
Implement fragment lighting in the sw renderer (take 2)
2017-08-09 18:54:29 +03:00
Weiyi Wang 16020d23ac Merge pull request #2856 from wwylele/shader-share
pica: upload shared shader code & swizzle to both unit
2017-08-09 18:52:30 +03:00
mailwl 77aedbdc52 Service/dlp: Update function tables according 3dbrew 2017-08-09 16:14:07 +03:00
James b09fccfe6d Update cryptopp 2017-08-08 17:50:09 +10:00
Subv 02b8723f3c Services/APT: Use the AppletAttributes union directly when dealing with applet attrs. 2017-08-07 16:09:55 -05:00
Subv 99fe2f6ec7 Services/APT: Use an array to hold data about the 4 possible concurrent applet types (Application, Library, HomeMenu, System).
This gives each applet type its own set of events as per the real NS module.
2017-08-07 14:53:58 -05:00
wwylele 089c0d897b pica: upload shared shader code to both unit 2017-08-07 10:30:05 +03:00
Andrea Pascal 0aeb557fe7 Quickfix typo in OpenGL 3.3 error message
User pointed out on the Discord server that "nothave" is erroneously concatenated. Added a space to prevent it.
2017-08-04 23:11:27 -04:00
bunnei df6409c59f telemetry: Add field for OsPlatform. 2017-08-03 20:10:38 -04:00
bunnei 512facf394 telemetry: Add field for BuildName. 2017-08-03 20:10:37 -04:00
bunnei 9d33e7a94c telemetry: Add field for RequiresSharedFont. 2017-08-03 20:10:37 -04:00
bunnei 27e05b885a telemetry_session: Log BuildDate and ProgramName fields. 2017-08-03 20:10:37 -04:00
bunnei e6b95d5511 common: Add build timestamp to scm_rev. 2017-08-03 20:10:37 -04:00
bunnei 1d3d7645bb core: Expose AppLoader as a public interface. 2017-08-03 20:10:37 -04:00
bunnei e5f2839605 loader: Expose program title. 2017-08-03 20:10:37 -04:00
wwylele fe4c91ae4c SwRasterizer/Lighting: shorten file name 2017-08-03 13:51:22 +03:00
wwylele 0af90eabd8 SwRasterizer/Lighting: move to its own file 2017-08-02 22:20:40 +03:00
wwylele a402f75cf4 SwRasterizer/Lighting: reduce confusion 2017-08-02 22:07:15 +03:00
wwylele cfd3edb942 SwRasterizer/Lighting: move quaternion normalization to the caller 2017-08-02 22:05:53 +03:00
James 9da055f84c Handle invalid filenames when renaming files/directories 2017-07-31 17:11:53 +10:00
Weiyi Wang 05e0bef66d Merge pull request #2848 from wwylele/shader-loop-fix
pica/shader_interpreter: fix off-by-one in LOOP
2017-07-29 12:34:28 +03:00
bunnei 361dcc2e17 Merge pull request #2679 from MerryMage/interp-tests
DynCom VFP tests
2017-07-27 11:21:36 -04:00
bunnei 43c11bbd89 Merge pull request #2840 from Subv/apt_parameter
Services/APT: Corrected the behavior of the Receive/Send/Glance/CancelParameter functions
2017-07-27 11:14:27 -04:00
wwylele dc6f41bcc5 pica/shader_interpreter: fix off-by-one in LOOP 2017-07-27 13:48:27 +03:00
bunnei 72d36b8260 Merge pull request #2837 from wwylele/shader-debugger-fix
Misc shader debugger fixes
2017-07-26 16:00:10 -04:00
B3n30 9f9afc3fd5 Network: Moved NintendoOUI initalization to RoomMember constructor 2017-07-26 21:06:40 +02:00
MerryMage 22e08c7e6b tests: Add tests for vadd 2017-07-23 12:29:51 +01:00
MerryMage 75f30767d3 tests: Arm testing framework 2017-07-23 12:08:43 +01:00
Sebastian Valle 803fda3c67 Merge pull request #2816 from wwylele/proctex-lutlutlut
gl_rasterizer: use texture buffer for proctex LUT
2017-07-22 23:03:48 -05:00
Sebastian Valle 62cdefaed0 Merge pull request #2834 from wwylele/depth-enable-fix
gl_rasterizer_cache: fix using_depth_fb
2017-07-22 23:02:59 -05:00
Weiyi Wang c40c9bf285 Merge pull request #2799 from yuriks/virtual-cached-range-flush
Add address conversion functions returning optional, Add function to flush virtual region from rasterizer cache
2017-07-22 10:15:52 +03:00
Subv 20eb92534e Service/APT: Log Send/Cancel/Receive/GlanceParameter calls even if they return an error. 2017-07-21 15:03:06 -05:00
Subv e0cfa309b6 Services/APT: Return the proper error code when calling SendParameter with an outstanding parameter already in memory. 2017-07-21 14:59:26 -05:00
Subv f8f6966ce1 Services/APT: Reset the APT parameter inside CancelParameter if the conditions are met. 2017-07-21 14:59:25 -05:00
Subv f678b8da42 Services/APT: Properly clear the apt parameter after a successful ReceiveParameter call. 2017-07-21 14:59:22 -05:00
Subv 00128a81d3 Services/APT: Use the right error codes in ReceiveParameter and GlanceParameter when the parameter doesn't exist. 2017-07-21 14:59:21 -05:00
Subv 725a45fe9f Services/APT: Use boost::optional for the APT parameter structure. 2017-07-21 14:59:20 -05:00
wwylele d9a05eec0b debugger/shader: display LOOP 2017-07-20 23:30:34 +03:00
wwylele b5711f9f54 debugger/shader: print the invert flag for JMPU 2017-07-20 23:18:07 +03:00
wwylele 2fcfd76fb2 debugger/shader: fix address register for reverted arithmetic op 2017-07-20 23:12:08 +03:00
wwylele 69b544d73a debugger/shader: fix inverted uniform flow control 2017-07-20 22:47:53 +03:00
bunnei b2bfbf5120 telemetry: Log performance, configuration, and system data. 2017-07-17 21:32:28 -04:00
bunnei f6ed592be0 Merge pull request #2804 from Kloen/theming
citra-qt: UI Themes
2017-07-17 21:30:01 -04:00
Weiyi Wang 9eb8dd311c Merge pull request #2818 from B3n30/network
Enable data transfer over ENet
2017-07-17 17:08:02 +03:00
B3n30 e2992eb321 stubbed frd::UnscrambleLocalFriendCode (#2827) 2017-07-16 21:32:08 -05:00
B3n30 e9ce27c941 Network: Changed timeout for receiving packets to 100ms 2017-07-16 21:30:17 +02:00
B3n30 e443c779a5 Network: Propagate Room closing to connected members 2017-07-16 21:30:10 +02:00
B3n30 99bb995de3 Network: Made send async in RoomMember 2017-07-16 21:30:04 +02:00
B3n30 7eb9751711 Network: Send the game title 2017-07-16 21:29:57 +02:00
B3n30 ea994b412e Network: Enable sending and receiving chat messages 2017-07-16 21:29:49 +02:00
B3n30 ad621f7fa4 Network: Handle the disconnect of a client 2017-07-16 21:29:41 +02:00
B3n30 87c5fd4a75 Network: Enable to send WifiPackets 2017-07-16 21:29:34 +02:00
B3n30 8014f7bdfb Network: Init Network in SDL and QT 2017-07-16 21:29:19 +02:00
B3n30 6b20db1d8e Network: Send JoinRequest and handle the answer in RoomMember 2017-07-16 21:29:11 +02:00
B3n30 e942c65777 Network: Handle join request in Room 2017-07-16 21:29:02 +02:00
B3n30 1d82cf8944 Network: Added Packet class for serialization 2017-07-16 21:28:55 +02:00
B3n30 898b372ba3 Network: Threads for Room and RoomMember 2017-07-16 21:28:47 +02:00
Weiyi Wang b5e42d338d Merge pull request #2784 from wwylele/font-archive
load shared font from system archive
2017-07-16 20:12:55 +03:00
bunnei 425200bca5 web_backend: Specify api-version on JSON post. 2017-07-11 18:34:30 -04:00
bunnei 7927c9b28f web_service: Add CMake flag to enable. 2017-07-11 18:33:41 -04:00
bunnei d253007194 telemetry_session: Use TelemetryJson to submit real telemetry. 2017-07-11 18:33:40 -04:00
bunnei d5a3ab8aef web_service: Implement JSON serialization of telemetry data. 2017-07-11 18:33:38 -04:00
bunnei 07f0f623d1 web_backend: Add initial interface to POST data to Citra Web Services. 2017-07-11 18:33:25 -04:00
wwylele 9f7ba9c282 SwRasterizer/Lighting: dist atten lut input need to be clamp 2017-07-11 22:19:00 +03:00
wwylele 4fe16d80bd SwRasterizer/Lighting: unify float suffix 2017-07-11 22:15:35 +03:00
wwylele 35bbf67e6e SwRasterizer/Lighting: get rid of nested return 2017-07-11 22:15:35 +03:00
wwylele a98f20df55 SwRasterizer/Lighting: refactor GetLutValue into a function.
merging similar pattern. Also makes the code more similar to the gl one
2017-07-11 22:15:35 +03:00
wwylele e34dc666cf SwRasterizer: only interpolate quat and view when lighting is enabled 2017-07-11 21:35:57 +03:00
wwylele acdf5035be vector_math: remove dead template parameter 2017-07-11 20:08:56 +03:00
wwylele 837642011d SwRasterizer/Lighting: pass lighting state as parameter 2017-07-11 20:06:26 +03:00
wwylele 48058f31b1 vector_math: remove broken SFINAE stuff
this was originally added to eliminate warnings on MSVC, but it doesn't work for custom types.
2017-07-11 19:51:29 +03:00
Subv 57bd9fca7a SwRasterizer/Lighting: Move the clamp highlight calculation to the end of the per-light loop body. 2017-07-11 19:39:15 +03:00
Subv d96c1bd977 SwRasterizer/Lighting: Move the lighting enable check outside the ComputeFragmentsColors function. 2017-07-11 19:39:15 +03:00
Subv 08ebc3203d SwRasterizer/Lighting: Do not use global registers state in ComputeFragmentsColors. 2017-07-11 19:39:15 +03:00
Subv 5d5611f3d7 SwRasterizer/Lighting: Do not use global state in LookupLightingLut. 2017-07-11 19:39:15 +03:00
Subv c2088581a0 SwRasterizer/Lighting: Fixed a bug where the distance attenuation bias was being set to the dist atten scale. 2017-07-11 19:39:15 +03:00
Subv eefe9b2bed SwRasterizer: Fixed a few conversion warnings and moved per-light values into the per-light loop. 2017-07-11 19:39:15 +03:00
Subv 232ff77c65 SwRasterizer: Run clang-format 2017-07-11 19:39:15 +03:00
Subv 1dcd48ba2a SwRasterizer: Flip the vertex quaternions before clipping (if necessary). 2017-07-11 19:39:15 +03:00
Subv 97723538d8 SwRasterizer: Corrected the light LUT lookups. 2017-07-11 19:39:15 +03:00
Subv 9bc4d2754b SwRasterizer: Corrected the light LUT lookups. 2017-07-11 19:39:15 +03:00
Subv e50af9c6a1 SwRasterizer: Fixed the lighting lut lookup function. 2017-07-11 19:39:15 +03:00
Subv 3bdb54d954 SwRasterizer: Calculate fresnel for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv e238921440 SwRasterizer: Calculate specular_1 for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv e28b936c5d SwRasterizer: Calculate specular_0 for fragment lighting. 2017-07-11 19:39:15 +03:00
Subv 8e95685a2a SwRasterizer: Implement primary fragment color. 2017-07-11 19:39:15 +03:00
bunnei 061f10e286 web_service: Add skeleton project. 2017-07-10 00:15:40 -04:00
bunnei de913af2c7 settings: Add telemetry endpoint URL. 2017-07-10 00:15:39 -04:00
bunnei e5a69c42e2 logging: Add WebService as a log cateogry. 2017-07-10 00:15:30 -04:00
Sebastian Valle c13e4d7ea4 Merge pull request #2815 from mailwl/bossp
Service/boss:P: Add some functions to FunctionTable
2017-07-08 13:58:40 -05:00
bunnei d08d94d942 Merge pull request #2797 from yuriks/cached-vma-free-crash
Memory: Fix crash when unmapping a VMA covering cached surfaces
2017-07-08 14:07:47 -04:00
B3n30 64b6caf5f5 Implement basic virtual Room support based on enet (#2803)
* Added support for network with ENet lib,

connecting is possible, but data can't be sent, yet.

* fixup! Added support for network with ENet lib,

* fixup! CLang

* fixup! Added support for network with ENet lib,

* fixup! Added support for network with ENet lib,

* fixup! Clang format

* More fixups!

* Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Clang again

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes

* fixup! Moved ENetHost* and ENetPeer* into pimpl classes
2017-07-07 15:34:15 -04:00
mailwl edef1d54bb Service/boss:P: Add some functions to FunctionTable 2017-07-01 12:21:38 +03:00
wwylele 54eafa42ce gl_rasterizer: use texture buffer for proctex LUT 2017-07-01 11:02:48 +03:00
Kloen 1e5a589a66 Remove unnecessary WIN32_LEAN_AND_MEAN macro definition 2017-06-30 01:59:55 +02:00
Sebastian Valle 4f7e8c6f1e Merge pull request #2793 from Subv/replyandreceive
Kernel/SVC: Partially implemented svcReplyAndReceive
2017-06-29 17:05:22 -05:00
Subv 4a8de6bb00 Kernel/SVC: Pass the current thread as a parameter to ClientSession::SendSyncRequest. 2017-06-29 12:30:34 -05:00
Yuri Kunde Schlesner f2ca6e8d8d Merge pull request #2809 from wwylele/texture-copy-fix
gpu: fix edge cases for TextureCopy
2017-06-29 09:29:40 -07:00
wwylele 60f6d78648 gpu: add comments for TextureCopy 2017-06-29 13:09:23 +03:00
Yuri Kunde Schlesner 36ed66c9ad Merge pull request #2800 from wwylele/fog-lutlutlut
gl_rasterizer: use texture buffer for fog LUT
2017-06-28 21:52:20 -07:00
MerryMage 8ac1da24c5 configure_debug: Add label warning that CPU JIT needs to be disabled for gdbstub to work 2017-06-28 08:50:22 +01:00
wwylele 36a523b7cf gpu: fix edge cases for TextureCopy 2017-06-27 23:20:23 +03:00
Sebastian Valle 0481516faf Merge pull request #2778 from Subv/uds_more
Services/UDS: Stub SendTo to generate the unencrypted data frames with the right headers
2017-06-26 19:35:52 -05:00
Subv 49d391d757 UDS: Use the ToDS and FromDS fields to properly calculate the AAD used during encryption. 2017-06-26 12:24:14 -05:00
Subv 1ae0d3c450 UDS: Move the UDS keyslot used to generate the CCMP key to the AES::KeySlotID enum. 2017-06-26 12:24:13 -05:00
Subv 0a6a3dc5de UDS: Run clang-format. 2017-06-26 12:24:11 -05:00
Subv 7f5c4beca2 UDS: Added functions to encrypt and decrypt the data frames.
The responsibility of encryption and encapsulation into an 802.11 MAC frame will fall into the callers of GenerateDataPayload.
2017-06-26 12:24:09 -05:00
Subv 44f4737f99 Kernel/Sessions: Clean up the list of pending request threads of a session when the client endpoint is closed. 2017-06-25 23:38:29 -05:00
Subv 820509103c Kernel/SVC: Partially implemented svcReplyAndReceive.
It behaves mostly as WaitSynchronizationN with wait_all = false, except for IPC buffer translation.

The target thread of an IPC response will now wake up when responding.
IPC buffer translation is currently not implemented.
Error passing back to svcSendSyncRequest is currently not implemented.
2017-06-25 23:38:28 -05:00
wwylele e93f183170 apt: load shared font from system archive 2017-06-26 01:38:12 +03:00
wwylele e770625812 apt/shared_font: don't relocate zero offset 2017-06-26 00:43:23 +03:00
Subv d7538409fb Kernel/ServerSession: Keep track of which threads have issued sync requests. 2017-06-25 14:47:25 -05:00
B3n30 2a652f3324 Set global definition WIN32_LEAN_AND_MEAN (#2807)
Set definition WIN32_LEAN_AND_MEAN to avoid windows.h including a lot of libs that are usually not used.
2017-06-24 17:38:16 -07:00
Kloen 9c525330b9 citra-qt: Add option to configure the UI theme 2017-06-24 05:48:43 +02:00
Kloen ffa035529d citra-qt: load ui theme at startup and config change. 2017-06-24 05:48:42 +02:00
Kloen 0b22d01043 citra-qt: Add Dark theme from https://github.com/ColinDuquesnoy/QDarkStyleSheet 2017-06-24 05:48:42 +02:00
Kloen 45c1d80518 citra-qt: add new uisetting->theme 2017-06-24 05:48:35 +02:00
Yuri Kunde Schlesner afa851d0a4 Kernel: Implement AcceptSession SVC 2017-06-23 11:26:37 -07:00
Yuri Kunde Schlesner 0539afd69b Kernel: Fix SVC wrapper for CreatePort
The return parameters were flipped.
2017-06-23 11:22:04 -07:00
Yuri Kunde Schlesner cf12983372 Kernel: Implement CreateSessionToPort SVC 2017-06-23 11:22:02 -07:00
Yuri Kunde Schlesner 917e708cfb Merge pull request #2798 from yuriks/svc-create-session
Kernel: Implement CreateSession SVC
2017-06-23 11:18:49 -07:00
bunnei 29a8893020 Merge pull request #2795 from chris062689/master
Change default UI background from white to black.
2017-06-22 22:00:03 -04:00
bunnei b08b662e76 Merge pull request #2796 from yuriks/hle-null-handles
Kernel/IPC: Support translation of null handles
2017-06-22 21:59:25 -04:00
wwylele f1afe2baa8 gl_rasterizer: use texture buffer for fog LUT 2017-06-22 20:41:00 +03:00
wwylele b3f9d734f0 gl_rasterizer: create the texture before applying the state
this is a rebasing error from #2792. It doesn't affect much though, because the later more Apply() call fixes/hides it
2017-06-22 17:47:46 +03:00
Yuri Kunde Schlesner 0c20b6e519 Kernel: Fix typo in test name 2017-06-22 02:21:18 -07:00
Yuri Kunde Schlesner 364ef24f77 Kernel: Implement CreateSession SVC 2017-06-22 00:39:27 -07:00
Yuri Kunde Schlesner 1423b3b10e Memory: Add function to flush a virtual range from the rasterizer cache
This is slightly more ergonomic to use, correctly handles virtual
regions which are disjoint in physical addressing space, and checks only
regions which can be cached by the rasterizer.
2017-06-21 22:57:12 -07:00
Yuri Kunde Schlesner 3bc1034465 Memory: Fix crash when unmapping a VMA covering cached surfaces
Unmapping pages tries to flush any cached GPU surfaces touching that
region. When a cached page is invalidated, GetPointerFromVMA() is used
to restore the original pagetable pointer. However, since that VMA has
already been deleted, this hits an UNREACHABLE case in that function.

Now when this happens, just set the page type to Unmapped and continue,
which arrives at the correct end result.
2017-06-21 22:56:31 -07:00
Yuri Kunde Schlesner 75be7907c1 Memory: Add TryVirtualToPhysicalAddress, returning a boost::optional 2017-06-21 22:55:18 -07:00
Yuri Kunde Schlesner 1dd91e371b Memory: Make PhysicalToVirtualAddress return a boost::optional
And fix a few places in the code to take advantage of that.
2017-06-21 22:55:17 -07:00
Yuri Kunde Schlesner 294e6b6306 Merge pull request #2792 from wwylele/lutlutlut
gl_rasterizer: fix lighting LUT interpolation
2017-06-21 14:55:23 -07:00
Yuri Kunde Schlesner b3e13d653f Kernel/IPC: Support translation of null handles
Missed this in my first implementation. Thanks to @wwylele for pointing
out that this was missing.
2017-06-21 14:27:03 -07:00
wwylele 3e20762caa gl_state: reset 1d textures 2017-06-21 23:13:06 +03:00
wwylele 49cf57c079 gl_rasterizer: fix glGetUniformLocation type 2017-06-21 23:13:06 +03:00
wwylele 4dc2b38ce2 gl_rasterizer: manage texture ids in one place 2017-06-21 23:13:06 +03:00
wwylele 98a84efd39 gl_rasterizer/lighting: fix LUT interpolation 2017-06-21 23:13:06 +03:00
chris062689 b3426b6b51 Changing default values for bg_red, bg_green, and bg_blue from 1.0 to 0.0. 2017-06-21 13:45:07 -04:00
Weiyi Wang d910f9cc85 Merge pull request #2789 from yuriks/misc-kernel
Trivial no-op additions
2017-06-21 20:34:12 +03:00
Yuri Kunde Schlesner 03964e9cd2 Merge pull request #2790 from yuriks/remove-movefrom
Remove ResultVal::MoveFrom
2017-06-20 22:04:09 -07:00
Yuri Kunde Schlesner 2cb9a2538b Memory: Add enum definitions for the n3DS FCRAM size 2017-06-20 22:03:25 -07:00
Sebastian Valle b91c1e214c Merge pull request #2779 from Subv/uds_more2
UDS: Added a hook for updating the connection status when a client connects to the network.
2017-06-21 02:29:00 +00:00
Yuri Kunde Schlesner c27dad4cd1 ResultVal: Remove MoveFrom()
Replace it with std::move(result_val).Unwrap(), or Foo().Unwrap() in
case you already have an rvalue.
2017-06-18 19:03:15 -07:00
Yuri Kunde Schlesner ec6a30b8bb ResultVal: Add an rvalue overload of Unwrap() 2017-06-18 18:49:46 -07:00
Yuri Kunde Schlesner 41376f050a Kernel: Add comment about the extended linear heap area 2017-06-18 18:38:40 -07:00
Yuri Kunde Schlesner d8ee9cb5c3 Kernel/IPC: Add tests for HLERequestContext buffer translation 2017-06-18 16:05:58 -07:00
Yuri Kunde Schlesner 6382e341f8 Kernel/IPC: Make HLERequestContext usable from outside kernel 2017-06-18 16:05:12 -07:00
Yuri Kunde Schlesner 2f5b8ebc73 Merge pull request #2776 from wwylele/geo-factor
Fragment lighting: implement geometric factor
2017-06-18 14:18:48 -07:00
wwylele 7318329bbb gl_rasterizer/lighting: use the formula from the paper for germetic factor 2017-06-18 10:29:02 +03:00
Yuri Kunde Schlesner ccdeacf149 Stop using reserved operator names (and/or/xor) with Xbyak
Also has the Dynarmic upgrade with the same change
2017-06-17 12:20:22 -07:00
Subv bc8fe1c226 UDS: Clarify comment about the first 4 bytes of the SecureData header.
It is likely that these 4 bytes are actually a different header, part of some protocol that encapsulates the SecureData protocol.
2017-06-15 12:08:55 -05:00
Subv 39d3a3aa7e UDS: Return the correct error messages in SendTo when not connected to a network or trying to send to itself. 2017-06-15 12:08:54 -05:00
Subv 2761536b1d UDS: Stub SendTo to generate the unencrypted data frame with the right headers. 2017-06-15 12:08:53 -05:00
Subv 8cc1a34f7e UDS: Added a hook for updating the connection status when a client connects to the network. 2017-06-15 11:57:49 -05:00
wwylele a8f1a9cbb4 gl_rasterizer/lighting: implement geometric factor 2017-06-15 14:59:01 +03:00
Yuri Kunde Schlesner 186edf7ed7 Merge pull request #2762 from wwylele/light-cp-tangent
Fragment lighting: implement lut input 5 (CP) and tangent mapping
2017-06-14 20:08:26 -07:00
Yuri Kunde Schlesner b865e7904d Merge pull request #2743 from wwylele/wrap-fix
pica/rasterizer: implement/stub texture wrap mode 4-7
2017-06-13 21:28:12 -07:00
Sebastian Valle cc8c999994 Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network. (#2738)
* Services/UDS: Set the proper bit in the ConnectionStatus structure when creating a network.

This lets the application know that the host was successfully added to the session.

* Services/UDS: Reset the connection status when destroying the network

* Services/UDS: Reset the connection status's bitmask of changed nodes after reporting it to the game.
2017-06-13 22:00:58 +03:00
Yuri Kunde Schlesner 0056022b1d Merge pull request #2767 from yuriks/quaternion-flip-comment
OpenGL: Update comment on AreQuaternionsOpposite with new information
2017-06-12 16:31:55 -07:00
Yuri Kunde Schlesner 8542637065 Merge pull request #2774 from yuriks/hle-handles
Add basic support for IPC translation for HLE services
2017-06-11 21:39:49 -07:00
Yuri Kunde Schlesner 48b7e2b061 Kernel/IPC: Use boost::small_vector for HLE context objects 2017-06-11 16:34:13 -07:00
Yuri Kunde Schlesner 192a95390e Kernel: Allow clearing request_objects to re-use buffer space
Reduces the necessary allocation to max(in_handles, out_handles) rather
than (in_handles + out_handles).
2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner e639024013 Kernel: Basic support for IPC translation for HLE services 2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner 7747a25345 Service/sm: Convert srv: to use IPC helpers 2017-06-11 13:10:21 -07:00
Yuri Kunde Schlesner a74dbc2c24 IPC: Add Pop/PushObjects methods to RequestParser/Builder
These use the context functions to create and look-up handles for the
user.
2017-06-11 13:10:20 -07:00
Yuri Kunde Schlesner 2102e5e907 IPC: Add basic HLERequestContext support to RequestParser/Builder 2017-06-11 13:10:16 -07:00
Yuri Kunde Schlesner ccba9e903f Kernel: Add methods in HLERequestContext abstracting handle creation 2017-06-11 13:07:33 -07:00
Yuri Kunde Schlesner 1e8c1ed676 ServiceFramework: Use separate copy of command buffer
Copy the IPC command buffer to/from the request context before/after the
handler is invoked. This is part of a move away from using global data
for handling IPC requests.
2017-06-11 13:07:33 -07:00
wwylele bd01da889f gl_rasterizer/lighting: Implement tangent mapping 2017-06-11 21:30:53 +03:00
wwylele 8b2aeb449c gl_rasterizer/lighting: implement lut input 5 (CP) 2017-06-11 21:30:53 +03:00
Sebastian Valle e789d1f1c4 Merge pull request #2727 from wwylele/spot-light
Fragment lighting: implement spot light
2017-06-11 18:23:47 +00:00
wwylele 13481c8131 gl_rasterizer_cache: depth write is disabled if allow_depth_stencil_write is false 2017-06-10 15:10:34 +03:00
Yuri Kunde Schlesner 5903948a7a OpenGL: Update comment on AreQuaternionsOpposite with new information
While debugging the software renderer implementation, it was noticed
that this is actually exactly what the hardware does, upgrading the
status of this "hack" to being a proper implementation. And there was
much rejoicing.
2017-06-10 01:55:17 -07:00
Kloen Lansfiel 715eb0dee5 Remove unused import in break_points.cpp (#2763) 2017-06-08 21:16:46 -07:00
Yuri Kunde Schlesner 74aaf0d5c7 Merge pull request #2756 from yuriks/service-framework
New service framework
2017-06-08 21:03:03 -07:00
Yuri Kunde Schlesner 211fea5441 Service/sm: Convert 'srv:' to ServiceFramework 2017-06-08 20:59:19 -07:00
Yuri Kunde Schlesner 5a6d4a2f19 Session: Remove/add some forward declarations 2017-06-08 00:33:57 -07:00
Yuri Kunde Schlesner 82a355b3cd Kernel: Ensure objects are kept alive during ClientSession disconnection
Fixes #2760
2017-06-08 00:33:24 -07:00
Yuri Kunde Schlesner 147ec9e842 Service: Remove a few redundant namespace qualifiers 2017-06-08 00:11:37 -07:00