summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/gsp_gpu.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-06-01gsp::gpu: Reset g_thread_id in UnregisterInterruptRelayQueuemailwl1-15/+21
2016-05-28GSP_GPU: Remove use of Memory::GetPointerMerryMage1-33/+50
2016-05-13Kernel/SharedMemory: Properly implemented shared memory support.Subv1-2/+3
Applications can request the kernel to allocate a piece of the linear heap for them when creating a shared memory object. Shared memory areas are now properly mapped into the target processes when calling svcMapMemoryBlock. Removed the APT Shared Font hack as it is no longer needed.
2016-04-29Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner1-1/+0
This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI.
2016-04-23return checks if event and memory createdmailwl1-1/+8
2016-04-22gsp::Gpu: implement AcquireRight, ReleaseRight functionsmailwl1-8/+37
2016-04-21HWRasterizer: Texture forwardingtfarley1-17/+14
2016-03-31Add gsp functions: SetAxiConfigQoSMode, UnregisterInterruptRelayQueuemailwl1-6/+41
2016-03-31GSP: Return proper error codes for register writespurpasmart961-79/+95
2016-03-12gsp_gpu: Change 0 literal to nullptrLioncash1-1/+1
2016-03-09renderer_base: Don't directly expose the rasterizer unique_ptrLioncash1-4/+4
There's no reason to allow direct access to the unique_ptr instance. Only its contained pointer.
2016-02-12BitField: Make trivially copyable and remove assignment operatorMerryMage1-3/+3
2015-12-08VideoCore: Unify interface to OpenGL and SW rasterizersYuri Kunde Schlesner1-4/+4
This removes explicit checks sprinkled all over the codebase to instead just have the SW rasterizer expose an implementation with no-ops for most operations.
2015-12-07VideoCore: Rename HWRasterizer methods to be less confusingYuri Kunde Schlesner1-4/+4
2015-09-14GSP: Implement command 0x05, used for flushing cachesYuri Kunde Schlesner1-9/+19
May fix additional texture caching issues. (Though mostly in homebrew, I haven't seen any commercial software use this to flush anything but command lists.)
2015-08-25Integrate the MicroProfile profiling libraryYuri Kunde Schlesner1-0/+5
This brings goodies such as a configurable user interface and multi-threaded timeline view.
2015-08-16GPU: Implement TextureCopy-mode display transfersYuri Kunde Schlesner1-10/+15
Fixes glitchy garbage in Fire Emblem 3D scenes.
2015-08-16Memory: Move address type conversion routines to memory.cpp/hYuri Kunde Schlesner1-1/+0
These helpers aren't really part of the kernel, and mem_map.cpp/h is going to be moved there next.
2015-07-24GSP: Don't try to write memory fill registers if start address is 0Yuri Kunde Schlesner1-13/+18
Verified to be what GSP does via REing. Fixes invalid virt->phys translation error spam in some games.
2015-07-23Qt/GPU Breakpoints: Added three more breakpoint types:Subv1-0/+7
* IncomingDisplayTransfer: Triggered just before a display transfer is performed. * GSPCommandProcessed: Triggered right after a GSP command is processed. * BufferSwapped: Triggered when the frames flip
2015-07-17Ensure all kernel objects are released during shutdownYuri Kunde Schlesner1-1/+6
This commit fixes several kernel object leaks. The most severe of them was threads not being removed from the private handle table used for CoreTiming events. This resulted in Threads never being released, which in turn held references to Process, causing CodeSets to never be freed when loading other applications.
2015-07-13Add CiTrace recording support.Tony Wasserka1-1/+1
This is exposed in the GUI as a new "CiTrace Recording" widget. Playback is implemented by a standalone 3DS homebrew application (which only runs reliably within Citra currently; on an actual 3DS it will often crash still).
2015-07-12Applets: Add infrastructure to allow custom drawing and input handling in Applets.Subv1-2/+2
2015-06-28CitraQt: Cleanup includes.Emmanuel Gil Peyrot1-1/+3
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot1-12/+12
2015-05-26Service/GSP: Implemented ImportDisplayCaptureInfo.Subv1-1/+47
2015-05-23OpenGL renderertfarley1-0/+9
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner1-0/+1
memory.cpp/h contains definitions related to acessing memory and configuring the address space mem_map.cpp/h contains higher-level definitions related to configuring the address space accoording to the kernel and allocating memory.
2015-05-11fixup! GSP: Small tweaks to shared memory initializationYuri Kunde Schlesner1-1/+1
2015-05-11GSP: Small tweaks to shared memory initializationYuri Kunde Schlesner1-9/+11
2015-05-11Kernel: Capture SharedMemory attributes at creation, not when mappingYuri Kunde Schlesner1-7/+9
2015-04-06Clean-up mem_map constants and fix framebuffer translation errorsYuri Kunde Schlesner1-4/+6
2015-04-03Services: Stubs and minor changespurpasmart961-0/+3
2015-03-09Added LCD registers, and implementation for color filling in OGL code.archshift1-17/+15
2015-03-06Implement SetLcdForceBlack, move register enum to hw.harchshift1-5/+39
2015-02-18GPU: Properly implement memory fills.Tony Wasserka1-17/+17
2015-02-12Build: Fixed some warningsSubv1-31/+47
2015-02-11Implemented WriteHWRegsWithMask for GSP.Kevin Hartman1-6/+91
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift1-4/+2
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
2015-02-11GSP: Fixed typo in SignalInterruptbunnei1-1/+1
2015-02-11GSP: Call SetBufferSwap for each screen on corresponding signal interrupt.bunnei1-4/+3
2015-02-02Kernel: Stop creating useless Handles during object creationYuri Kunde Schlesner1-1/+1
They're finally unnecessary, and will stop cluttering the application's handle table.
2015-02-02Service: Clean-up InterfaceYuri Kunde Schlesner1-1/+1
2015-01-30Kernel: Convert Event to not use HandlesYuri Kunde Schlesner1-8/+11
2015-01-30Kernel: Convert SharedMemory to not use HandlesYuri Kunde Schlesner1-7/+9
2015-01-14GSP: Fix appending of interrupts to the shared memory bufferYuri Kunde Schlesner1-2/+2
The code was previously appending the interrupt to after the end of the buffer, instead of at the end.
2015-01-14GSP: Update framebuffer info on all interruptsYuri Kunde Schlesner1-12/+13
Hardware testing determined that the GSP processes shared memory framebuffer update info even when no memory transfer or filling GX commands are used. They are now updated on every interrupt, which isn't confirmed correct but matches hardware behaviour more closely. This also reverts the hack introduced in #404. It made a few games behave better, but I believe it's incorrect and also breaks other games.
2015-01-14GPU: Fire GPU interrupts at the correct places.Yuri Kunde Schlesner1-6/+0
PDC0 and PDC1 are both VBlank interrupts. PDC0 was being treated as a HBlank interrupt and fired many more times than it should. They now both fire together at 60 Hz. This puzzlingly *improves* apparent framerate on many applications. A few other interrupts were being fired inside the GSP command processing instead of on the actual GPU register writes, so they were moved there, which should cover direct writes tho those registers not going through the GX command queue.
2015-01-10Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance.archshift1-3/+0
2015-01-08GSP: Toggle active framebuffer each framebunnei1-1/+4
2014-12-26More services & small clean upspurpasmart961-3/+0
2014-12-21License changepurpasmart961-1/+1
2014-12-19GSP_GPU: Shut up FlushDataCachepurpasmart961-1/+25
2014-12-15Remove SyncRequest from K::Object and create a new K::Session typeYuri Kunde Schlesner1-5/+5
This is a first step at fixing the conceptual insanity that is our handling of service and IPC calls. For now, interfaces still directly derived from Session because we don't have the infrastructure to do it properly. (That is, Processes and scheduling them.)
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner1-9/+9
2014-12-10GSP: Trigger GPU interrupts at more accurate locations.bunnei1-7/+6
2014-12-10GSP: Updated TriggerCmdReqQueue to return success code.bunnei1-0/+3
2014-12-10GSP: Updated RegisterInterruptRelayQueue to return expected magic number.bunnei1-1/+4
2014-12-10GPU: Fixed bug in command list size decoding.bunnei1-1/+1
2014-11-24HLE: Revamp error handling throrough the HLE codeYuri Kunde Schlesner1-11/+6
All service calls in the CTR OS return result codes indicating the success or failure of the call. Previous to this commit, Citra's HLE emulation of services and the kernel universally either ignored errors or returned dummy -1 error codes. This commit makes an initial effort to provide an infrastructure for error reporting and propagation which can be use going forward to make HLE calls accurately return errors as the original system. A few parts of the code have been updated to use the new system where applicable. One part of this effort is the definition of the `ResultCode` type, which provides facilities for constructing and parsing error codes in the structured format used by the CTR. The `ResultVal` type builds on `ResultCode` by providing a container for values returned by function that can report errors. It enforces that correct error checking will be done on function returns by preventing the use of the return value if the function returned an error code. Currently this change is mostly internal since errors are still suppressed on the ARM<->HLE border, as a temporary compatibility hack. As functionality is implemented and tested this hack can be eventually removed.
2014-11-18core: Mark some hle functions as staticLioncash1-8/+8
These functions are not referred to by their linkage name outside of the translation unit, so they can be marked as static.
2014-10-29Renamed souce files of services to match port namesGareth Poole1-1/+1
2014-09-30added "StoreDataCache" to the function tablepurpasmart961-0/+1
seems simple enough
2014-09-09core: Prune redundant includesarchshift1-1/+0
2014-08-25Pica/citra-qt: Replace command list view and command list debugging code with something more sophisticated.Tony Wasserka1-5/+0
2014-08-25GSP: Update framebuffer information when necessary.Tony Wasserka1-2/+23
2014-08-25GSP: Implement SetBufferSwap.Tony Wasserka1-1/+35
2014-08-25GSP: Add a helper function for convenience.Tony Wasserka1-17/+22
2014-08-12Pica/GPU: Change hardware registers to use physical addresses rather than virtual ones.Tony Wasserka1-9/+9
This cleans up the mess that address reading/writing had become and makes the code a *lot* more sensible. This adds a physical<->virtual address converter to mem_map.h. For further accuracy, we will want to properly extend this to support a wider range of address regions. For now, this makes simply homebrew applications work in a good manner though.
2014-08-12GSP: Fix a major regression introduced in ffda035c, due to which no display transfers were triggered at all anymore.Tony Wasserka1-4/+13
2014-08-12Remove the fancy RegisterSet class introduced in 4c2bff61e.Tony Wasserka1-18/+18
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures. Instead, we now use a more conventional approach which is a lot more clean to use.
2014-08-07GSP: Cleaned up command buffer decoding.bunnei1-42/+42
GSP: Cleaned up code and added additional comments. GSP: Removed unnecessary TODO comment. GSP: Changed u32 iterators in TriggerCmdReqQueue to unsigned.
2014-08-06GSP: Added reinitialization of other state objects.bunnei1-0/+3
2014-08-06GSP: Removed dumb GX prefixes to functions/structs in GSP namespace.bunnei1-64/+24
- Various other cleanups.
2014-08-06GSP: Removed unnecessary GX_FinishCommand function.bunnei1-13/+5
2014-08-06GSP: Implements preliminary command synchronization via GPU interrupts.bunnei1-18/+93
Core: Added a comment to explain the logic for the RunLoop iterations.
2014-07-23GSP: Add a few comments.Tony Wasserka1-1/+7
2014-07-23GSP: Clean up GX command processing a lot and treat command id as a u8 rather than a u32.Tony Wasserka1-26/+38
Anonymous structs are not standard C++, hence don't use them.
2014-07-23GPU: Make use of RegisterSet.Tony Wasserka1-21/+28
2014-07-23GPU: Emulate memory fills.Tony Wasserka1-0/+8
2014-07-23GSP: HLE GXCommandId::SET_DISPLAY_TRANSFER and GXCommandId::SET_TEXTURE_COPY.Tony Wasserka1-2/+9
2014-07-23GSP: Implement ReadHWRegs and WriteHWRegs properly.Tony Wasserka1-27/+46
2014-07-05GSP: Fixed to use real shared memory object, various cleanups.bunnei1-25/+34
- Previously, used a hard-coded shared memory handle of 0x10002000 (as used by libctru homebrew) GSP: Added name for shared memory. GSP: Cleaned up assertion message.
2014-06-13HLE: Updated all uses of NULL to nullptr (to be C++11 compliant)bunnei1-28/+28
2014-06-13HLE: Updated various handle debug assertions to be more clear.bunnei1-1/+1
2014-06-12GPU debugger: Add functionality to inspect command lists.Tony Wasserka1-0/+4
2014-06-12GPU: Cleanup register definitions.Tony Wasserka1-3/+3
2014-06-12Rename LCD to GPU.Tony Wasserka1-8/+8
2014-06-12Add initial graphics debugger interface.Tony Wasserka1-0/+6
2014-06-12GSP: Define more GX commands.Tony Wasserka1-14/+37
2014-06-01gsp: always pass through synchronization barrier for commandsbunnei1-1/+16
2014-05-30hle: cleaned up log messagesbunnei1-2/+2
2014-05-19- renamed NewHandle to CreateHandlebunnei1-3/+1
- updated CreateHandle/DeleteHandle to use KernelObject's
2014-05-08removed unknown fields from GX_CmdBufferHeaderbunnei1-5/+0
2014-05-08- removed HLE mem "hack" and replaced with kernel mem regionbunnei1-5/+71
- added a helper function for getting command buffer for services - fixed bug where GSP DMA was incorrectly being done in DataSynchronizationBarrier (instead of gsp_TriggerCmdReqQueue)
2014-04-27hackish but working way to set the framebuffer location to VRAM (used in ARM11 demos tested thus far, e.g. yeti3DS)bunnei1-3/+9
2014-04-26added simple GSP GPU ReadHWRegs function to support returning the framebuffer addressbunnei1-1/+37
2014-04-25added GSP::RegisterInterruptRelayQueue functionbunnei1-31/+40
2014-04-17updated service commentsbunnei1-0/+3
2014-04-16- added stubbed out GSP::Gpu service interfacebunnei1-0/+56
- various cleanups/refactors to HLE services