summaryrefslogtreecommitdiff
path: root/src/core (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | Merge pull request #2708 from DarkLordZach/mii-db-source-crashGravatar David2019-09-041-0/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | mii: Handle logging of unknown database source
| * | | | | | mii: Handle logging of unknown database sourceGravatar Zach Hilman2019-07-101-0/+4
| | |/ / / / | |/| | | |
* | | | | | Merge pull request #2793 from ReinUsesLisp/bgr565Gravatar bunnei2019-09-031-1/+1
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | renderer_opengl: Implement RGB565 framebuffer format
| * | | | | gpu: Change optional<reference_wrapper<T>> to T* for FramebufferConfigGravatar ReinUsesLisp2019-08-211-1/+1
| | | | | |
* | | | | | Merge pull request #2748 from FernandoS27/align-memoryGravatar bunnei2019-08-2114-37/+59
|\ \ \ \ \ \ | |/ / / / / |/| | | | | VM_Manager: Align allocated host physical memory to 256bytes
| * | | | | Kernel: Address FeedbackGravatar Fernando Sahmkow2019-07-192-3/+9
| | | | | |
| * | | | | VM_Manager: Align allocated memory to 256bytesGravatar Fernando Sahmkow2019-07-1914-36/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory.
* | | | | | Merge pull request #2747 from lioncash/audioGravatar bunnei2019-08-187-108/+179
|\ \ \ \ \ \ | | | | | | | | | | | | | | service/audren_u: Unstub ListAudioDeviceName
| * | | | | | service/audren_u: Handle audio USB output revision queries in ↵Gravatar Lioncash2019-07-192-16/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ListAudioDeviceName() Audio devices use the supplied revision information in order to determine if USB audio output is able to be supported. In this case, we can only really handle using this revision information in ListAudioDeviceName(), where it checks if USB audio output is supported before supplying it as a device name. A few other scenarios exist where the revision info is checked, such as: - Early exiting from SetAudioDeviceOutputVolume if USB audio is attempted to be set when that device is unsupported. - Early exiting and returning 0.0f in GetAudioDeviceOutputVolume when USB output volume is queried and it's an unsupported device. - Falling back to AHUB headphones in GetActiveAudioDeviceName when the device type is USB output, but is unsupported based off the revision info. In order for these changes to also be implemented, a few other changes to the interface need to be made. Given we now properly handle everything about ListAudioDeviceName(), we no longer need to describe it as a stubbed function.
| * | | | | | service/audren_u: Move revision testing code out of AudRenUGravatar Lioncash2019-07-192-63/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The revision querying facilities are used by more than just audren. e.g. audio devices can use this to test whether or not USB audio output is supported. This will be used within the following change.
| * | | | | | service/audio: Remove global system accessorsGravatar Lioncash2019-07-197-34/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Trims out the lingering reliance on global state out of the audio code.
| * | | | | | service/audren_u: Remove unnecessary return value from ↵Gravatar Lioncash2019-07-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GetActiveAudioDeviceName() This service function only ever returns a result and nothing more.
| * | | | | | service/audren_u: Report proper device namesGravatar Lioncash2019-07-191-6/+29
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AudioDevice and AudioInterface aren't valid device names on the Switch. We should also be returning consistent names in GetActiveAudioDeviceName(). While we're at it, we can also handle proper name output in ListAudioDeviceName, by returning all the available devices on the Switch.
* | | | | | Merge pull request #2592 from FernandoS27/sync1Gravatar bunnei2019-07-2635-170/+627
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Implement GPU Synchronization Mechanisms & Correct NVFlinger
| * | | | | NVServices: Correct delayed responses.Gravatar Fernando Sahmkow2019-07-051-24/+19
| | | | | |
| * | | | | Nv_Host_Ctrl: Correct difference calculationGravatar Fernando Sahmkow2019-07-051-5/+7
| | | | | |
| * | | | | NVServices: Address FeedbackGravatar Fernando Sahmkow2019-07-058-21/+38
| | | | | |
| * | | | | NVServices: Styling, define constructors as explicit and correctionsGravatar Fernando Sahmkow2019-07-0520-41/+49
| | | | | |
| * | | | | NVFlinger: Correct GCC compile errorGravatar Fernando Sahmkow2019-07-056-17/+16
| | | | | |
| * | | | | NVServices: Make NVEvents Automatic according to documentation.Gravatar Fernando Sahmkow2019-07-052-4/+7
| | | | | |
| * | | | | NVServices: Correct CtrlEventWaitSync to block the ipc until timeout.Gravatar Fernando Sahmkow2019-07-0523-31/+104
| | | | | |
| * | | | | GPU: Correct Interrupts to interrupt on syncpt/value instead of event, ↵Gravatar Fernando Sahmkow2019-07-057-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | mirroring hardware
| * | | | | nvflinger: Make the force 30 fps still force 30 fpsGravatar Fernando Sahmkow2019-07-051-1/+1
| | | | | |
| * | | | | nv_services: Fixes to event liberation.Gravatar Fernando Sahmkow2019-07-051-6/+14
| | | | | |
| * | | | | nvflinger: Acquire buffers in the same order as they were queued.Gravatar Fernando Sahmkow2019-07-052-3/+11
| | | | | |
| * | | | | nv_services: Deglobalize NvServicesGravatar Fernando Sahmkow2019-07-0523-51/+65
| | | | | |
| * | | | | nv_host_ctrl: Make Sync GPU variant always return synced result.Gravatar Fernando Sahmkow2019-07-051-0/+5
| | | | | |
| * | | | | nvhost_ctrl: Corrections to event handlingGravatar Fernando Sahmkow2019-07-052-8/+12
| | | | | |
| * | | | | Gpu: Mark areas as protected.Gravatar Fernando Sahmkow2019-07-051-0/+6
| | | | | |
| * | | | | nv_services: Stub CtrlEventSignalGravatar Fernando Sahmkow2019-07-052-12/+34
| | | | | |
| * | | | | Gpu: Implement Hardware Interrupt Manager and manage GPU interruptsGravatar Fernando Sahmkow2019-07-058-9/+69
| | | | | |
| * | | | | nv_services: Implement NvQueryEvent, NvCtrlEventWait, NvEventRegister, ↵Gravatar Fernando Sahmkow2019-07-057-17/+192
| | | | | | | | | | | | | | | | | | | | | | | | NvEventUnregister
| * | | | | nv_services: Create GPU channels correctlyGravatar Fernando Sahmkow2019-07-052-2/+5
| | | | | |
| * | | | | video_core: Implement GPU side SyncpointsGravatar Fernando Sahmkow2019-07-053-7/+33
| | | | | |
| * | | | | nv_services: Correct buffer queue fencing and GPFifo fencingGravatar Fernando Sahmkow2019-07-058-57/+70
| | | | | |
| * | | | | nvflinger: Implement swap intervalsGravatar Fernando Sahmkow2019-07-055-8/+21
| | | | | |
* | | | | | Merge pull request #2687 from lioncash/tls-processGravatar bunnei2019-07-183-14/+30
|\ \ \ \ \ \ | | | | | | | | | | | | | | kernel/process: Allocate the process' TLS region during initialization
| * | | | | | kernel/process: Allocate the process' TLS region during initializationGravatar Lioncash2019-07-073-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | kernel/process: Move main thread stack allocation to its own functionGravatar Lioncash2019-07-072-12/+17
| | |_|/ / / | |/| | | | | | | | | | | | | | | | Keeps this particular set of behavior isolated to its own function.
* | | | | | Kernel: Downgrade WaitForAddress and SignalToAddress messages to Trace.Gravatar Fernando Sahmkow2019-07-171-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This messages were originally set as warnning since few games used these svcs and it was needed for debugging. This is no longer the case.
* | | | | | Merge pull request #2726 from lioncash/accessGravatar Rodrigo Locatti2019-07-172-7/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | core: Remove CurrentArmInterface() global accessor
| * | | | | | core: Remove CurrentArmInterface() global accessorGravatar Lioncash2019-07-122-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces the final usage of the global accessor function and removes it. Removes one more enabler of global state.
* | | | | | | Merge pull request #2690 from SciresM/physmem_fixesGravatar Fernando Sahmkow2019-07-148-41/+477
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Implement MapPhysicalMemory/UnmapPhysicalMemory
| * | | | | | Remove unicorn mappings/unmappingsGravatar Michael Scire2019-07-111-19/+0
| | | | | | |
| * | | | | | Prevent merging of device mapped memory blocks.Gravatar Michael Scire2019-07-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.