aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-07-07es: Implement ETicket GetCommonTicketSize (14)Zach Hilman
Returns the size of the buffer needed to hold the common ticket associated with the rights ID.
2019-07-07es: Implement ETicket ListPersonalizedTicket (12)Zach Hilman
Returns an application-specific number of entries of personal tickets, starting at offset 0.
2019-07-07es: Implement ETicket ListCommonTicket (11)Zach Hilman
Returns an application specified count of entries of common tickets, starting at offset 0.
2019-07-07es: Implement ETicket CountPersonalizedTicket (10)Zach Hilman
Returns the number of personalized (console/user-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket CountCommonTicket (9)Zach Hilman
Returns the number of common (non-console-unique) tickets in the KeyManager.
2019-07-07es: Implement ETicket GetTitleKey (8)Zach Hilman
Takes a rights ID as input and returns the associated title key, if it exists.
2019-07-07es: Implement ETicket ImportTicket (1)Zach Hilman
Takes a ticket and certificate and installs it to the KeyManager.
2019-07-07key_manager: Add accessors/helpers for ticket managementZach Hilman
2019-07-07key_manager: Add equality operator for RSAKeyPairZach Hilman
2019-07-07gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shadersReinUsesLisp
This commit implements gl_ViewportIndex and gl_Layer in vertex and geometry shaders. In the case it's used in a vertex shader, it requires ARB_shader_viewport_layer_array. This extension is available on AMD and Nvidia devices (mesa and proprietary drivers), but not available on Intel on any platform. At the moment of writing this description I don't know if this is a hardware limitation or a driver limitation. In the case that ARB_shader_viewport_layer_array is not available, writes to these registers on a vertex shader are ignored, with the appropriate logging.
2019-07-07Remove unused member function declarationMichael Scire
2019-07-07physmem: add helpers, cleanup logic.Michael Scire
2019-07-07Delete decode_integer_set.cppTobias
2019-07-07clang-format fixesMichael Scire
2019-07-07shader/texture: Add F16 support for TLDSReinUsesLisp
2019-07-07address review commentaryMichael Scire
2019-07-07Implement MapPhysicalMemory/UnmapPhysicalMemoryMichael Scire
This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu, which can be used to map memory at a desired address by games since 3.0.0. It also properly parses SystemResourceSize from NPDM, and makes information available via svcGetInfo. This is needed for games like Super Smash Bros. and Diablo 3 -- this PR's implementation does not run into the "ASCII reads" issue mentioned in the comments of #2626, which was caused by the following bugs in Yuzu's memory management that this PR also addresses: * Yuzu's memory coalescing does not properly merge blocks. This results in a polluted address space/svcQueryMemory results that would be impossible to replicate on hardware, which can lead to game code making the wrong assumptions about memory layout. * This implements better merging for AllocatedMemoryBlocks. * Yuzu's implementation of svcMirrorMemory unprotected the entire virtual memory range containing the range being mirrored. This could lead to games attempting to map data at that unprotected range/attempting to access that range after yuzu improperly unmapped it. * This PR fixes it by simply calling ReprotectRange instead of Reprotect.
2019-07-07kernel/process: Allocate the process' TLS region during initializationLioncash
Prior to execution within a process beginning, the process establishes its own TLS region for uses (as far as I can tell) related to exception handling. Now that TLS creation was decoupled from threads themselves, we can add this behavior to our Process class. This is also good, as it allows us to remove a stub within svcGetInfo, namely querying the address of that region.
2019-07-07kernel/process: Move main thread stack allocation to its own functionLioncash
Keeps this particular set of behavior isolated to its own function.
2019-07-07vk_sampler_cache: Remove unused includesLioncash
These are no longer used within this header, so they can be removed.
2019-07-07video_core: Add missing override specifiersLioncash
2019-07-07yuzu/main: Make error messages within OnCoreError more localization-friendlyLioncash
Previously, a translated string was being appended onto another string in a manner that doesn't allow the translator to control where the appended text is placed. This can be a nuisance for languages where grammar and text ordering differs from English. We now append the strings via the format strings themselves, which allows translators to reorder where the text will be placed.
2019-07-07vk_scheduler: Drop execution context in favor of viewsReinUsesLisp
Instead of passing by copy an execution context through out the whole Vulkan call hierarchy, use a command buffer view and fence view approach. This internally dereferences the command buffer or fence forcing the user to be unable to use an outdated version of it on normal usage. It is still possible to keep store an outdated if it is casted to VKFence& or vk::CommandBuffer. While changing this file, add an extra parameter for Flush and Finish to allow releasing the fence from this calls.
2019-07-06mii: Implement IDatabaseService SetInterfaceVersionZach Hilman
Appears to set a member variable used to affect the API that games access, and the method used to store data.
2019-07-06Merge pull request #2674 from lioncash/reporterZach Hilman
core/reporter: Minor changes
2019-07-06Merge pull request #2677 from lioncash/assertZach Hilman
kernel/vm_manager: Handle stack/TLS IO region placement a little better
2019-07-06clang-format fixesMichael Scire
2019-07-06am: Implement GetAccumulatedSuspendedTickValueMichael Scire
2019-07-06memory: Remove unused includesLioncash
These aren't used within the central memory management code, so they can be removed.
2019-07-06memory: Remove unused PageTable forward declarationLioncash
This isn't used by anything in the header file, so it can be removed.
2019-07-06kernel/vm_manager: Rename 'new map' to 'stack'Lioncash
Provides a more accurate name for the memory region and also disambiguates between the map and new map regions of memory, making it easier to understand.
2019-07-06buffer_cache: Avoid [[nodiscard]] to make clang-format happyReinUsesLisp
2019-07-06buffer_cache: Try to fix MinGW buildReinUsesLisp
2019-07-06gl_rasterizer: Fix nullptr dereference on disabled buffersReinUsesLisp
2019-07-06gl_rasterizer: Minor style changesReinUsesLisp
2019-07-06gl_rasterizer: Fix vertex and index data invalidationsReinUsesLisp
2019-07-06gl_buffer_cache: Implement with generic buffer cacheReinUsesLisp
2019-07-06buffer_cache: Implement a generic buffer cacheReinUsesLisp
Implements a templated class with a similar approach to our current generic texture cache. It is designed to be compatible with Vulkan and OpenGL,
2019-07-06gl_buffer_cache: Remove global system gettersReinUsesLisp
2019-07-06gl_device: Query SSBO alignmentReinUsesLisp
2019-07-06gl_buffer_cache: Implement flushingReinUsesLisp
2019-07-06gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheReinUsesLisp
2019-07-06gl_buffer_cache: Rework to support internalized buffersReinUsesLisp
2019-07-06gl_buffer_cache: Store in CachedBufferEntry the used buffer handleReinUsesLisp
2019-07-06gl_buffer_cache: Return used buffer from Upload functionReinUsesLisp
2019-07-06gl_rasterizer: Add some commentariesReinUsesLisp
2019-07-06gl_rasterizer: Make DrawParameters rasterizer instance constReinUsesLisp
2019-07-06gl_rasterizer: Move index buffer uploading to its own methodReinUsesLisp
2019-07-05kernel/vm_manager: Handle stack/TLS IO region placement betterLioncash
Handles the placement of the stack a little nicer compared to the previous code, which was off in a few ways. e.g. The stack (new map) region, shouldn't be the width of the entire address space if the size of the region calculation ends up being zero. It should be placed at the same location as the TLS IO region and also have the same size. In the event the TLS IO region contains a size of zero, we should also be doing the same thing. This fixes our memory layout a little bit and also resolves some cases where assertions can trigger due to the memory layout being incorrect.
2019-07-05core/reporter: Allow moves into SaveToFile()Lioncash
Taking the json instance as a constant reference, makes all moves into the parameter non-functional, resulting in copies. Taking it by value allows moves to function.