Commit Graph

128 Commits (1582b2ae5d6032bea3695af777dbd98e383f9578)

Author SHA1 Message Date
Connor McLaughlin 837fb6128b GPU/HW: Fix mask bit when rendering with transparency and no DSB
Fixes some sprites in Bloody Roar on Mali GPUs.
5 years ago
Connor McLaughlin 43bb69fb6b GPU/SW: Fix 576-line scanout of PAL games 5 years ago
Connor McLaughlin 23e102b90a GPU: Make display texture 720x576 instead of 1024x512
Some PAL games render in the full permissable 576 height, not 512.
5 years ago
Connor McLaughlin 516d685dd0 System: Add memory-only save states and rewind 5 years ago
Connor McLaughlin 2ec26e54b7 GPU/HW: Disable downsampling when using 24-bit display
It's dropped to 1x first anyway.
5 years ago
Connor McLaughlin 3cb2cd8235 GPU: Add adaptive and box downsampling modes 5 years ago
Connor McLaughlin aa1543271e GPU: Support emulating a depth buffer from PGXP depth values 5 years ago
Connor McLaughlin 7b6d30a994 GPU/HW: Fix possible VRAM corruption when live switching resolutions
Mask bit was getting lost based on guest state.
5 years ago
Connor McLaughlin b45bee5954 libretro: Work around crash in RetroArch Vulkan driver 5 years ago
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 5 years ago
Connor McLaughlin d468814a6d GPU: Disable texture filters when dual-source blend is unsupported 5 years ago
Connor McLaughlin 92a4551bb2 GPU/OpenGL: Support GL_EXT_blend_func_extended for dual-source blend 5 years ago
Connor McLaughlin ae1e4b1b8f GPU: Add chroma smoothing for 24-bit display enhancement 5 years ago
Connor McLaughlin 2eaebd8921 GPU: Implement support for multisample antialiasing 5 years ago
Connor McLaughlin cacf7a7cc9 GPU: Precompute texture window expression [SAVEVERSION+] 5 years ago
Connor McLaughlin 6f250a4ff7 GPU/HW: Add JINC2 and xBRZ texture filtering options
Shaders ported from beetle-psx.
5 years ago
Connor McLaughlin 10a46a7fd8 OSD: Add option to show display resolution 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 9b7512f7b8 GPU/HW: Implement automatic resolution scale from window size 5 years ago
Connor McLaughlin 96ba9198ef GPU/HW: Expand lines into triangles before rendering
Fewer batches, consistent upscaling behavior.
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 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 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 e368dbbadc GPU: Implement non-interleaved interlaced rendering
Fixes screen shaking in True Pinball.
6 years ago
Connor McLaughlin e058beb4b0 GPU/HW: Fix oversized VRAM copies writing out of bounds
Fixes jittering in Duke Nukem - Land of the Babes water effect.
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 5ad133a278 GPU/HW: Implement oversized copies on GPU
Fixes slowdown caused by this.
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 3cfead36c4 Revert "GPU: Clamp coordinates to 11 bits after applying drawing offset"
This reverts commit 5302f83818.

This is not the correct fix, and breaks other games.
6 years ago
Connor McLaughlin 2aecb570c1 GPU: Implement interlaced rendering in hardware backends 6 years ago
Connor McLaughlin 5302f83818 GPU: Clamp coordinates to 11 bits after applying drawing offset
Fixes flickering in some scenes (e.g. Galbadia Missile Base).
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 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
Connor McLaughlin 9ac7b002e2 GPU/HW: Improve dirty rectangle tracking
Fixes title screen of Activision Classics and performance regression
from Vagrant Story motion blur fix.
6 years ago
Connor McLaughlin 4a3478b360 HostInterface: Add function to switch between sw/hw rendering 6 years ago
Connor McLaughlin 504510c242 GPU: Fix reading of write-combined GPU buffers
+100fps in recompiler modes
6 years ago
Connor McLaughlin ffe90083d3 GPU: Refactor draw mode setting 6 years ago
Connor McLaughlin 67c67bbb66 GPU: Add basic texture filtering support
Still has issues around the edges of text.
6 years ago
Connor McLaughlin 024ed01bbb GPU/HW: Set alpha to mask bit setting 6 years ago
Connor McLaughlin bc5a247a4b GPU/HW: Use dual-source blend to split alpha and mask 6 years ago
Connor McLaughlin 9ea7a8418c GPU: Eliminate temporary buffer when reading back 6 years ago
Connor McLaughlin 3998b9684e GPU/HW: GPU-based RGBA8->RGB5551 conversion for readbacks 6 years ago
Connor McLaughlin cc7483ad58 GPU/HW: Only copy the dirty area to the VRAM read texture 6 years ago
Connor McLaughlin da51d49d18 GPU/HW: Track VRAM fills/writes in dirty rectangle instead of invalidating 6 years ago
Connor McLaughlin 2c631aba5e GPU: Move stats from renderer class to base classes 6 years ago
Connor McLaughlin afbec85f89 GPU/HW: Track dirty area of VRAM shadow texture via drawing area 6 years ago
Connor McLaughlin 9de9cf3be2 GPU/HW: Add D3D11 renderer and refactor host interface/display 6 years ago
Connor McLaughlin be81d08109 GPU/HW: Split shadergen to seperate class 6 years ago
Connor McLaughlin 91c99f0226 GPU/HW: Use uniform blocks for batch rendering 6 years ago
Connor McLaughlin f7f5d45d7a GPU: Fix incorrect VRAM fill colours in GL renderer 6 years ago
Connor McLaughlin ba1a5a5ca9 GPU: Fix batching regression (draws split on texture page) 6 years ago
Connor McLaughlin 4143469353 GPU: Use texture buffer/fragment shader for VRAM writes 6 years ago
Connor McLaughlin 2b17cfd365 GPU: Use streaming buffers for CPU->VRAM transfers 6 years ago
Connor McLaughlin 407fee9ec3 GPU: Add base functionality for GL streaming buffers 6 years ago
Connor McLaughlin c52c0608ae GPU: Move resolution scale to hardware backend only 6 years ago
Connor McLaughlin c9feb7ea07 GPU: Add force true color setting 6 years ago
Connor McLaughlin ac82383abe GPU: Implement dithering on OpenGL backend 6 years ago
Connor McLaughlin 1c79737021 GPU: Simplify batch state 6 years ago
Connor McLaughlin 5626d4f282 GPU: Fix texcoord off-by-one error in rectangles 6 years ago
Connor McLaughlin 9b56499afa Refactoring settings/support changing GPU renderer at runtime 6 years ago
Connor McLaughlin 2d0dd03705 GPU: Implement weave deinterlacing 6 years ago
Connor McLaughlin 7448cbaf9d GPU: Copy-less processing from DMA 6 years ago
Connor McLaughlin 5627955900 GPU: Two-pass rendering for B-F transparency 6 years ago
Connor McLaughlin bc8e035e37 GPU: Implement texture window 6 years ago
Connor McLaughlin c2baa7e834 GPU: 24-bit display depth support 6 years ago
Connor McLaughlin a9313b2958 GPU: Fix transparency not being enabled in shader 6 years ago
Connor McLaughlin 4d22bec8fd GPU: Add some missing state reset 6 years ago
Connor McLaughlin bddbab9d60 Rename to DuckStation 6 years ago