Commit Graph

105 Commits (10a46a7fd84e012a6aba29f2a19585057bd75035)

Author SHA1 Message Date
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 5 years ago
Connor McLaughlin 26aa627deb GPU/HW: Include resolution in scale change message 5 years ago
Connor McLaughlin 17a1719450 GPU/HW: Fix incorrect texel offset when upscaling
Fixes incorrectly coloured triangles in Tomb Raider.
5 years ago
Connor McLaughlin 5c6e92cdfc GPU/HW: Disable coordinate clamping when unnecessary 5 years ago
Connor McLaughlin b95ce993e0 GPU/HW: Clamp interpolated UVs to polygon limits
Fixes texture filtering and PGXP issues in some games.
5 years ago
Connor McLaughlin 23df239469 GPU/HW: Debug build compile fix 5 years ago
Connor McLaughlin f712c42c21 GPU/HW: Add more details to debug window 5 years ago
Connor McLaughlin 9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 5 years ago
Connor McLaughlin b527118c0a GPU/HW: Fix macOS compile 5 years ago
Connor McLaughlin 92975b2e81 GPU/HW: Tiny performance optimization in polygon loading 5 years ago
Connor McLaughlin 96ba9198ef GPU/HW: Expand lines into triangles before rendering
Fewer batches, consistent upscaling behavior.
5 years ago
Connor McLaughlin bd0c403672 GPU/HW: Fix mask bit test regression
Fixes white boxes in Silent Hill. Again.
5 years ago
Connor McLaughlin 0c1b637549 PGXP: Add initial implementation 5 years ago
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
5 years ago
Connor McLaughlin d711baaa31 GPU/HW: Fix lines being one pixel too short
Fixes lines in screen wipe effect in Vagrant Story.
5 years ago
Connor McLaughlin 2dc62ab987 GPU/HW: Fix VRAM updates when Y >= 512 5 years ago
Connor McLaughlin d1a2ebd8f3 GPU/HW: Eliminate CPU round trip on oversized VRAM writes 5 years ago
Connor McLaughlin a08c398d4b GPU/HW: Provide depth in vertex rather than computing
Fixes mask bit effects in Vulkan (e.g. Silent Hill).
Significantly reduces the number of mask bit refreshes in OpenGL/Vulkan.
5 years ago
Connor McLaughlin 49d11988bf Core: Add Vulkan GPU renderer 5 years ago
Connor McLaughlin fc0560087f GPU: Skip primitives where clip area is invalid
Fixes palettes being overwritten/menus being broken in
Yoshimoto Mahjong Club Deluxe.
5 years ago
Connor McLaughlin bda528d70a GPU: Alter timings to reflect new clock 5 years ago
Connor McLaughlin c8e1881ea9 GPU/HW: Clear dirty rectangle when updating shadow texture
Fixes high GPU usage in Robbit mon Dieu in D3D11, should improve overall
performance slightly when VRAM copies are heavily used.
6 years ago
Connor McLaughlin 23436f08ba GPU/HW: More improvements to GPUSTAT.31
Fixes True Pinball without breaking intros to Final Fantasy 7/8.
6 years ago
Connor McLaughlin 237f469baa GPU: Mask variable sprite/rectangle sizes
Fixes broken sprites in Gradius Deluxe Pack (Gradius II).
6 years ago
Connor McLaughlin b25ed6c151 GPU: Fix interlaced rendering in vblank breaking 6 years ago
Connor McLaughlin 9446587e8f GPU/HW: Mask bit handling in hardware renderers
Fixes:
 - Menu effect in Ghost in the Shell
 - Incorrect text colours in menu of Dragon Quest VII
 - Fade effect in TwinBee RPG
 - Fog in Silent Hill
 - Water in Duke Nukem - Land of the Babes
 - Shadows in Ultraman - Fighting Evolution

and probably others.
6 years ago
Connor McLaughlin ce46dbeeca GPU/HW: Fix another vertex culling error 6 years ago
Connor McLaughlin 304391bd00 GPU: Truncate sprite/rectangle positions to 12 bits before rendering
Fixes disappearing objects in Skullmonkeys.
6 years ago
Connor McLaughlin dc1e1b5adf GPU/HW: Fix too-large polygon culling
Fixes graphical corruption in some levels of Point Blank 2.
6 years ago
Connor McLaughlin ec5b52b3fb GPU/HW: Tweak vertex shader offsets
Fixes Doom/Dark Forces/etc in hardware renderer, but only at 1x
resolution. Fixes missing lines in Castlevania SOTM, Ridge Racer Type 4,
etc.
6 years ago
Connor McLaughlin 834f3768a1 GPU/HW: Line coordinate typo fix 6 years ago
Connor McLaughlin 1ee418aebf GPU/HW: Fix additional polyline vertices drawing 6 years ago
Connor McLaughlin aaf9dcaf02 GPU/HW: Fix possible crash when drawing polylines 6 years ago
Connor McLaughlin 5ad133a278 GPU/HW: Implement oversized copies on GPU
Fixes slowdown caused by this.
6 years ago
Connor McLaughlin 6ef3626599 GPU/HW: Fix a possible crash in rectangle expansion 6 years ago
Connor McLaughlin 1757932b3a GPU: Implement FIFO and timings
This will cause a slight performance loss. I've left some knobs in which
can be tweaked to mitigate this, but the goal is to be compatible with
all games which require them.
6 years ago
Connor McLaughlin 65ca8b9fe0 GPU/HW: Move logic from backend to GPU_HW class 6 years ago
Connor McLaughlin 86df077ffe GPU/HW: Slight refactor to vertex culling 6 years ago
Connor McLaughlin c483a78889 GPU: Implement interlaced VRAM fills 6 years ago
Connor McLaughlin 2aecb570c1 GPU: Implement interlaced rendering in hardware backends 6 years ago
Connor McLaughlin 7f5c6f8b4f GPU/HW: Move some flush checks to command time 6 years ago
Connor McLaughlin 148279e2f2 GPU: Rewrite CRTC display modeling and overscan handling 6 years ago
Connor McLaughlin 0b347e2151 GPU/HW: Implement flipped quad coordinate hack from beetle-psx
Fixes graphical glitches around the edges of flipped sprites.
6 years ago
Connor McLaughlin e2e2b573c0 GPU/HW: Move drawing offset to CPU-side
Saves updating the uniform buffer.
6 years ago
Connor McLaughlin 6bb6249e86 GPU/HW: Print capabilities to log 6 years ago
Connor McLaughlin 635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
6 years ago
Connor McLaughlin 0690491883 GPU/HW: Fix potential crash in rectangle expansion 6 years ago
Connor McLaughlin 07ba2ecd3d Settings: Simplify resolution scale enumeration 6 years ago
Connor McLaughlin 82eb14efb1 Core: Apply DPI scaling to debug windows 6 years ago
Connor McLaughlin 149cbf6457 GPU/HW: Properly implement too-large polygon culling
Replaces triangle strips with triangle lists, which has the added bonus
of not requiring flushing as many batches.

Fixes missing geometry in Vagrant Story.
6 years ago