summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* GPU: Add a microprofile for macro interpreterGravatar Fernando Sahmkow2019-07-142-1/+6
|
* GL_State: Add a microprofile timer to OpenGL state.Gravatar Fernando Sahmkow2019-07-141-0/+4
|
* Gl_Texture_Cache: Measure Buffer Copy TimesGravatar Fernando Sahmkow2019-07-141-0/+2
|
* Texture_Cache: Correct Linear Structural Match.Gravatar Fernando Sahmkow2019-07-141-3/+6
|
* Merge pull request #2690 from SciresM/physmem_fixesGravatar Fernando Sahmkow2019-07-1411-45/+507
|\ | | | | Implement MapPhysicalMemory/UnmapPhysicalMemory
| * Remove unicorn mappings/unmappingsGravatar Michael Scire2019-07-111-19/+0
| |
| * prefer system reference over global accessorGravatar Michael Scire2019-07-093-9/+13
| |
| * Prevent merging of device mapped memory blocks.Gravatar Michael Scire2019-07-082-1/+28
| | | | | | | | | | | | | | This sets the DeviceMapped attribute for GPU-mapped memory blocks, and prevents merging device mapped blocks. This prevents memory mapped from the gpu from having its backing address changed by block coalesce.
| * Remove unused member function declarationGravatar Michael Scire2019-07-071-9/+0
| |
| * physmem: add helpers, cleanup logic.Gravatar Michael Scire2019-07-072-171/+170
| |
| * clang-format fixesGravatar Michael Scire2019-07-072-3/+3
| |
| * address review commentaryGravatar Michael Scire2019-07-075-36/+42
| |
| * Implement MapPhysicalMemory/UnmapPhysicalMemoryGravatar Michael Scire2019-07-078-21/+475
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #2692 from ReinUsesLisp/tlds-f16Gravatar Fernando Sahmkow2019-07-142-2/+9
|\ \ | | | | | | shader/texture: Add F16 support for TLDS
| * | shader/texture: Add F16 support for TLDSGravatar ReinUsesLisp2019-07-072-2/+9
| |/
* | Clang formatGravatar David Marcec2019-07-133-4/+8
| |
* | Addressed issuesGravatar David Marcec2019-07-132-2/+2
| |
* | "AudioRenderer" thread should have a unique nameGravatar David Marcec2019-07-134-7/+8
| | | | | | | | Creating multiple "AudioRenderer" threads cause the previous thread to be overwritten. The thread will name be renamed to AudioRenderer-InstanceX, where X is the current instance number.
* | Merge pull request #2609 from FernandoS27/new-scanGravatar bunnei2019-07-1115-122/+774
|\ \ | | | | | | Implement a New Shader Scanner, Decompile Flow Stack and implement BRX BRA.CC
| * | shader_ir: Add comments on missing instruction.Gravatar Fernando Sahmkow2019-07-092-2/+9
| | | | | | | | | | | | Also shows Nvidia's address space on comments.
| * | shader_ir: limit explorastion to best known program size.Gravatar Fernando Sahmkow2019-07-091-1/+1
| | |
| * | control_flow: Correct block breaking algorithm.Gravatar Fernando Sahmkow2019-07-091-17/+17
| | |
| * | control_flow: Assert shaders bigger than limit.Gravatar Fernando Sahmkow2019-07-091-0/+2
| | |
| * | control_flow: Address feedback.Gravatar Fernando Sahmkow2019-07-091-89/+37
| | |
| * | shader_ir: Correct parsing of scheduling instructions and correct sizingGravatar Fernando Sahmkow2019-07-092-13/+30
| | |
| * | shader_ir: Correct max sizingGravatar Fernando Sahmkow2019-07-092-2/+2
| | |
| * | shader_ir: Remove unnecessary constructors and use optional for ScanFlow resultGravatar Fernando Sahmkow2019-07-093-28/+17
| | |
| * | shader_ir: Corrections, documenting and asserting control_flowGravatar Fernando Sahmkow2019-07-093-52/+54
| | |
| * | shader_ir: Unify blocks in decompiled shaders.Gravatar Fernando Sahmkow2019-07-097-58/+85
| | |
| * | shader_ir: Decompile Flow StackGravatar Fernando Sahmkow2019-07-094-11/+206
| | |
| * | shader_ir: propagate shader size to the IRGravatar Fernando Sahmkow2019-07-096-17/+28
| | |
| * | shader_ir: Implement BRX & BRA.CCGravatar Fernando Sahmkow2019-07-096-4/+76
| | |
| * | shader_ir: Remove the old scanner.Gravatar Fernando Sahmkow2019-07-092-77/+0
| | |
| * | shader_ir: Implement a new shader scannerGravatar Fernando Sahmkow2019-07-095-16/+475
| | |
* | | Merge pull request #2717 from SciresM/unmirror_memoryGravatar bunnei2019-07-112-7/+34
|\ \ \ | | | | | | | | Restore memory perms on svcUnmapMemory/UnloadNro
| * | | Restore memory perms on svcUnmapMemory/UnloadNroGravatar Michael Scire2019-07-112-7/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to PR, Yuzu did not restore memory to RW- on unmap of mirrored memory or unloading of NRO. (In fact, in the NRO case, the memory was unmapped instead of reprotected to --- on Load, so it was actually lost entirely...) This PR addresses that, and restores memory to RW- as it should. This fixes a crash in Super Smash Bros when creating a World of Light save for the first time, and possibly other games/circumstances.
* | | | Merge pull request #2723 from lioncash/memGravatar bunnei2019-07-1115-80/+6
|\ \ \ \ | | | | | | | | | | core/arm: Remove obsolete Unicorn memory mapping
| * | | | yuzu: Remove setting for using UnicornGravatar Lioncash2019-07-119-29/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The JIT is mature enough that this setting can be removed, falling back to Unicorn only on unsupported architectures. Any missing features from Unicorn (of which there are extremely few), are mostly developer-oriented, which most users don't care about. Features should be coordinated with the JIT, not the interpreter, anyhow.
| * | | | core/arm: Remove obsolete Unicorn memory mappingGravatar Lioncash2019-07-116-51/+0
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was initially necessary when AArch64 JIT emulation was in its infancy and all memory-related instructions weren't implemented. Given the JIT now has all of these facilities implemented, we can remove these functions from the CPU interface.
* | | | service/am: Implement IsAutoSleepDisabledGravatar Lioncash2019-07-112-1/+10
| | | | | | | | | | | | | | | | | | | | This simply queries whether or not auto-sleep facilities are disabled and has no special handling. It's a basic getter function.
* | | | service/am: Implement SetAutoSleepDisabledGravatar Lioncash2019-07-112-1/+23
|/ / / | | | | | | | | | | | | | | | | | | | | | Provides a basic implementation of SetAutoSleepDisabled. Until idle handling is implemented, this is about the best we can do. In the meantime, provide a rough documenting of specifics that occur when this function is called on actual hardware.
* | | Merge pull request #2697 from lioncash/docGravatar bunnei2019-07-101-7/+9
|\ \ \ | | | | | | | | gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()
| * | | gl_rasterizer: Amend documentation comment for ConfigureFramebuffers()Gravatar Lioncash2019-07-091-7/+9
| | |/ | |/| | | | | | | | | | | | | | | | | | | must_reconfigure isn't a parameter for this function any more, so it can be replaced with current_state. While we're at it, we can make the parameters of the declaration match the same name as the ones in the definition.
* | | Merge pull request #2686 from ReinUsesLisp/vk-schedulerGravatar bunnei2019-07-106-50/+60
|\ \ \ | | | | | | | | vk_scheduler: Drop execution context in favor of views
| * | | vk_scheduler: Drop execution context in favor of viewsGravatar ReinUsesLisp2019-07-076-50/+60
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge pull request #2700 from ogniK5377/GetFriendListGravatar bunnei2019-07-101-1/+34
|\ \ \ | | | | | | | | IFriendService::GetFriendList
| * | | IFriendService::GetFriendListGravatar David Marcec2019-07-091-1/+34
| | |/ | |/| | | | | | | We don't have any friends implemented in Yuzu yet so it doesn't make sense to return any friends. For now we'll be returning 0 friends however the information provided will allow a proper implementation of this cmd when needed.
* | | Merge pull request #2611 from DarkLordZach/pm-info-cmdGravatar bunnei2019-07-103-16/+116
|\ \ \ | | | | | | | | pm: Implement various pm commands for finding process and title IDs
| * | | pm: Implement pm:shell and pm:dmnt GetApplicationPidGravatar Zach Hilman2019-06-263-7/+33
| | | | | | | | | | | | | | | | Returns the process ID of the current application or 0 if no app is running.
| * | | pm: Implement pm:dmnt GetTitlePidGravatar Zach Hilman2019-06-261-7/+36
| | | | | | | | | | | | | | | | Takes a title ID and searches for a matching process, returning error if it doesn't exist, otherwise the process ID.