aboutsummaryrefslogtreecommitdiff
path: root/src/core/hw/gpu.cpp
AgeCommit message (Collapse)Author
2015-07-23Qt/GPU Breakpoints: Added three more breakpoint types:Subv
* 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-19GPU/DisplayTransfer: Implemented bit 5 in the transfer flags.Subv
It tells the GPU to not swizzle/de-swizzle the input during the transfer.
2015-07-13Add CiTrace recording support.Tony Wasserka
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-13GPU: Be robust against nullptr addresses; properly reset busy bits in the ↵Tony Wasserka
trigger registers.
2015-07-10Merge pull request #876 from linkmauve/include-cleanupsYuri Kunde Schlesner
Cleanup includes, mostly in common
2015-06-28GPU: Implement blended downscaling for display transfers.Emmanuel Gil Peyrot
2015-06-28GPU: Use shifts instead of multiplications to calculate the actual size of ↵Emmanuel Gil Peyrot
the output.
2015-06-28Core: Cleanup hw includes.Emmanuel Gil Peyrot
2015-06-28CitraQt: Cleanup includes.Emmanuel Gil Peyrot
2015-05-31Merge pull request #811 from archshift/commonifyarchshift
Commonify video_core utility headers
2015-05-31Merge pull request #832 from yuriks/refresh-rate-optionbunnei
Remove gpu_refresh_rate configuration option
2015-05-30Move video_core/color.h to common/color.harchshift
2015-05-29Remove gpu_refresh_rate configuration optionYuri Kunde Schlesner
Changing it makes emulation inherently inaccurate. It also had a wrong default value (30, whereas the real system has a refresh rate of 60 Hz) which, even if changed, would continue to be used unless people manually removed it from their config files.
2015-05-29Remove every trailing whitespace from the project (but externals).Emmanuel Gil Peyrot
2015-05-22OpenGL renderertfarley
2015-05-15Memmap: Re-organize memory function in two filesYuri Kunde Schlesner
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-09Memory: Add GetPhysicalPointer helper functionYuri Kunde Schlesner
2015-05-01HW: Properly initialize and shutdown all modules.bunnei
2015-04-07gpu: Fix a missing format specifierLioncash
2015-04-02Services: Stubs and minor changespurpasmart96
2015-03-17Merge pull request #650 from Subv/scalingbunnei
GPU: Fixed the bit 25 in the display transfer flags.
2015-03-16GPU/DisplayTransfer: Made the scaling bits a single 2bit valueSubv
Rephrased some comments.
2015-03-14GPU: Implemented the flip_data (bit 0) bit in display transfers.Subv
2015-03-11Merge pull request #642 from bunnei/touchpadbunnei
Touchpad support
2015-03-10HID: Complete refactor of pad/touch input to fix threading issues.bunnei
2015-03-10Merge pull request #629 from archshift/lcdfbbunnei
Implement SetLcdForceBlack and add implementation for color filling in the GPU code
2015-03-10GPU: Fixed the bit 25 in the display transfer flags.Subv
It is used to downscale the input image horizontally and vertically, previously we were only downscaling it vertically so this caused a hard-to-debug memory corruption problem.
2015-03-09GPU: Corrected the 24 bit memory fills component orderSubv
2015-03-05Implement SetLcdForceBlack, move register enum to hw.harchshift
2015-03-03GPU: Added RGB565/RGB8 framebuffer support and various cleanups.bunnei
- Centralizes color format encode/decode functions. - Fixes endianness issues. - Implements remaining framebuffer formats in the debugger.
2015-02-26GPU: Implemented bits 3 and 1 from the display transfer flags.Subv
Bit 3 is used to specify a raw copy, where no processing is done to the data, seems to behave exactly as a DMA. Bit 1 is used to specify whether to convert from a tiled format to a linear format or viceversa.
2015-02-22GPU: Fixed RGBA8 as output format in a display transfer.Subv
Verified with hwtests
2015-02-22Merge pull request #471 from archshift/pp3ports3bunnei
GPU: Add support for more framebuffer formats in display transfers.
2015-02-22GPU: Add support for more framebuffer formats in display transfers.Tony Wasserka
2015-02-21GPU: Fixed the RGBA8 input format and RGB8 output formatSubv
in Display Transfers, tested with hwtests.
2015-02-18GPU: Properly implement memory fills.Tony Wasserka
2015-02-03core: Fix some warnings on OSXLioncash
2015-01-14GPU: Fix buffer overrun in Display TransfersYuri Kunde Schlesner
Display transfers with the horizontal downscaling flag were calculating the wrong output size, causing them to write double the amount of data intended. It is likely that this was perceived as correct due to a separate bug in calculating source indices which caused the image to be padded unless the previous bug was present. This fixes both issues, correcting flickering issues in 3dscraft, blargSnes and more (caused by the transfer overwriting the back buffer which followed) as well as potentially fixing other crashes.
2015-01-14GPU: Do periodic VBlank updates using CoreTimingYuri Kunde Schlesner
2015-01-14GPU: Correct wrong default framebuffer address for sub-screen.Yuri Kunde Schlesner
It appears this is a mistake, since the sub-screen has no right framebuffer.
2015-01-14GPU: Fire GPU interrupts at the correct places.Yuri Kunde Schlesner
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-09Move ThreadContext to core/core.h and deal with the falloutYuri Kunde Schlesner
2015-01-05DSP: Signal (faked) interrupt on every frame.bunnei
- Hack to work around games checking that the DSP event has been signaled by a real DSP interrupt.
2014-12-31GPU: Pseudo-implement horizontal scaling.Tony Wasserka
It's not really known how this actually works. Some testing has shown that this probably performs no filtering, and common usage in games suggests it's not actually resizing the image at all. However, this patch does seem to fix some homebrew showing quasi-duplicated images while still keeping other applications in a working state.
2014-12-28GPU: Implement frameskip and remove forced framebuffer swap hack.bunnei
2014-12-25GPU: Further improve synchronization.bunnei
2014-12-20License changepurpasmart96
2014-12-13Convert old logging calls to new logging macrosYuri Kunde Schlesner
2014-12-09GPU: Fixed bug in command list size decoding.bunnei
2014-11-27Fixed formatting and switch statement warningsvaguilar