Commit graph

144 commits

Author SHA1 Message Date
Stenzek 09e7a5843f GPU: Add scaling shader support
Currently only Bilinear (Sharp).
2023-08-31 23:38:11 +10:00
Stenzek b217f64bcf PostProcessing: Refactor config to use separate sections 2023-08-30 00:44:01 +10:00
Stenzek 8db8baf33f GPUDevice: Move display logic to GPU 2023-08-30 00:44:00 +10:00
Stenzek e3d9ba4c99 Rewrite host GPU abstraction
- Don't have to repeat the same thing for 4 renderers.
 - Add native Metal renderer.
2023-08-20 21:55:38 +10:00
Connor McLaughlin db364d0e95 Timers: Convert to namespace 2023-01-11 19:15:59 +10:00
Connor McLaughlin b74eb37996 ImGuiOverlays: Display PAL/NTSC in resolution 2023-01-09 22:20:27 +10:00
Connor McLaughlin 8c7a192128 Misc: Add copyright/license statement to applicable files
Should've did this in the beginning.
2022-12-04 21:03:49 +10:00
Connor McLaughlin a9038133c8 HostDisplay: Common texture base class for all APIs 2022-10-04 00:00:56 +10:00
Connor McLaughlin 06ecc50797 System: Fix CPU usage not showing for sw-renderer-for-readbacks 2022-08-05 17:17:29 +10:00
Connor McLaughlin a899ca88f2 Build: Make OpenGL/Vulkan renderers optional
And disabled on Windows/arm64.
2022-07-31 01:14:28 +10:00
Connor McLaughlin b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin 628dc36e77 GPU: Add GPU::GetFullDisplayResolution() 2021-08-24 11:57:09 +10:00
Connor McLaughlin 14e7f8fd13 GPU: Add D3D12 renderer 2021-07-10 21:45:10 +10:00
Connor McLaughlin ddea2818d9 Qt: Add renderer/resolution to status bar 2021-03-28 13:47:53 +10:00
Connor McLaughlin b13c51a2e2 GPU/SW: Use new 5-to-8 converters for RGBA8 display 2021-03-18 13:00:58 +10:00
Connor McLaughlin 6c05413220 GPU: Improve precision of 5-to-8 bit conversion for HW renderers
Fixes VRAM transfers being corrupted in fallback OpenGL path.
2021-03-18 13:00:58 +10:00
Connor McLaughlin 516d685dd0 System: Add memory-only save states and rewind 2021-01-25 01:15:45 +10:00
Connor McLaughlin 2b5cfb272c Qt: Add dump VRAM and SPU RAM actions 2021-01-13 19:24:41 +10:00
Connor McLaughlin affffca3da GPU/HW: Set max resolution scale to 32
The UI is intentionally left at 16x. Going too high **will** make you
run out VRAM and your system will start acting strangely. But for those
people who really want to do it, you can go 32x in Vulkan with the SDL
frontend, or by setting it in the ini.
2021-01-04 03:11:14 +10:00
Connor McLaughlin 0de34d7bf7 DMA: Increase precision for large transfers
Also gets rid of the delay on the GPU side for writing to VRAM (doesn't
make sense), and it's not needed since we slice the block transfers now.

Fixes palette corruption in Vigilante 8, and missing rider in
Championship Motocross 2001 featuring Ricky Carmichael.
2021-01-03 16:11:42 +10:00
Connor McLaughlin 4860313bef NamcoGuncon: Add an option to scale X coordinates
Fixes what appears to be curvature correction at the edges of the
screen.
2020-12-19 17:02:01 +10:00
Connor McLaughlin bd8613b120
Merge pull request #1227 from ggrtk/auto-aspect-ratio
GPU: Add auto aspect ratio and various fixes
2020-12-17 11:35:48 +10:00
Connor McLaughlin 7b6d30a994 GPU/HW: Fix possible VRAM corruption when live switching resolutions
Mask bit was getting lost based on guest state.
2020-12-17 01:20:06 +10:00
Albert Liu 2c76ad204a GPU: Fix operator warning 2020-12-14 19:28:59 -08:00
Albert Liu 866cbdca4b GPU: Prevent potential overflow in CRTC visible area calculation 2020-12-14 19:28:59 -08:00
Albert Liu 78e42d9b4c GPU: Clean up CRTC variable naming 2020-12-14 19:28:59 -08:00
Connor McLaughlin d757056891 GPU: Implement dot clock timer (Timer 0)
Fixes softlock in Evil Dead - Hail to the King.
2020-12-06 00:35:54 +10:00
Connor McLaughlin b45bee5954 libretro: Work around crash in RetroArch Vulkan driver 2020-11-25 23:06:41 +10:00
Connor McLaughlin e06f85a328 GPU: Fix VRAM palette changes not being detected in hw renderer
Fixes wall texture animation in Mega Man Legends.
2020-11-22 13:22:29 +10:00
Connor McLaughlin 2595e31575 GPU: Split software to frontend/backend 2020-11-21 18:39:04 +10:00
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 2020-11-21 18:39:04 +10:00
Connor McLaughlin fe25f005c2 GPU: Fix incorrect sign extension of positions
Fixes missing objects in Skullmonkeys (again).
2020-10-11 12:21:08 +10:00
Connor McLaughlin 50b025c75a GPU: Use triangle area for ticks rather than bbox
Fixes slow transitions in Tales of Phantasia.
2020-10-04 00:12:01 +10:00
Connor McLaughlin 27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
Connor McLaughlin cacf7a7cc9 GPU: Precompute texture window expression [SAVEVERSION+] 2020-09-30 23:03:52 +10:00
Connor McLaughlin d73271ec0a GPU: Add option to force 4:3 for 24-bit content (e.g. FMVs) 2020-09-26 15:11:45 +10:00
Connor McLaughlin 1d5af57f71 GPU: Halve draw ticks for 480i even with force progressive
Fixes some of the games broken with the enhancement on.
2020-09-20 01:36:49 +10:00
Connor McLaughlin c9c2c00c1a GPU: Update GPUSTAT.13 with field
Doubt this'll change much..
2020-08-19 00:02:37 +10:00
Connor McLaughlin f65651823e GPU: Simplify hsync handling
Fixes character lighting in Monkey Hero.
2020-08-17 01:22:03 +10:00
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 2020-08-16 00:20:11 +10:00
Connor McLaughlin d4665e8b22 GPU: Tweaks to ODE handling
Fixes Team Buddies and The Next Tetris.
2020-08-16 00:20:10 +10:00
Connor McLaughlin 818892cb1b GPU: Claer interlaced field buffer when enabling
Fixes old frames getting briefly displayed.
2020-08-03 03:26:13 +10:00
Connor McLaughlin 9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 2020-08-03 03:06:03 +10:00
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
Connor McLaughlin b6f871d2b9
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args

* JitCodeBuffer: Support using preallocated buffer

* CPU/Recompiler/AArch64: Use bl instead of blr for short branches

* CPU/CodeCache: Allocate recompiler buffer in program space

This means we don't need 64-bit moves for every call out of the
recompiler.

* GTE: Don't store as u16 and load as u32

* CPU/Recompiler: Add methods to emit global load/stores

* GTE: Convert class to namespace

* CPU/Recompiler: Call GTE functions directly

* Settings: Turn into a global variable

* GPU: Replace local pointers with global

* InterruptController: Turn into a global pointer

* System: Replace local pointers with global

* Timers: Turn into a global instance

* DMA: Turn into a global instance

* SPU: Turn into a global instance

* CDROM: Turn into a global instance

* MDEC: Turn into a global instance

* Pad: Turn into a global instance

* SIO: Turn into a global instance

* CDROM: Move audio FIFO to the heap

* CPU/Recompiler: Drop ASMFunctions

No longer needed since we have code in the same 4GB window.

* CPUCodeCache: Turn class into namespace

* Bus: Local pointer -> global pointers

* CPU: Turn class into namespace

* Bus: Turn into namespace

* GTE: Store registers in CPU state struct

Allows relative addressing on ARM.

* CPU/Recompiler: Align code storage to page size

* CPU/Recompiler: Fix relative branches on A64

* HostInterface: Local references to global

* System: Turn into a namespace, move events out

* Add guard pages

* Android: Fix build
2020-07-31 17:09:18 +10:00
Connor McLaughlin 4d1880091e GPU: Ignore display start bit 0 instead of reducing width 2020-07-10 20:31:58 +10:00
Connor McLaughlin 93abf8e53d GPU: Drop least significant bit of display start address
Fixes extra column in some games, e.g. Nascar Thunder 2004,
U.S. Navy Fighters.
2020-07-10 20:23:27 +10:00
Connor McLaughlin 8a8ce8d41c NamcoGunCon: Use correct GPU clock as reference 2020-07-03 01:51:05 +10:00
Connor McLaughlin 936d92dfb8 System: Add option to force start in software mode 2020-06-30 02:44:19 +10:00
Connor McLaughlin 49d11988bf Core: Add Vulkan GPU renderer 2020-06-19 00:18:17 +10:00