Commit graph

49 commits

Author SHA1 Message Date
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 2020-11-21 18:39:04 +10:00
Connor McLaughlin b3c5c0f852 GPU/OpenGL: Eliminate some redundant per-draw state calls 2020-10-31 14:27:58 +10:00
Connor McLaughlin 2df06225ee GPU/OpenGL: Don't keep shader cache open 2020-10-09 18:09: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 96ba9198ef GPU/HW: Expand lines into triangles before rendering
Fewer batches, consistent upscaling behavior.
2020-08-02 17:17:11 +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 08ef8c1e8d GPU/HW: Support SSBOs instead of texture buffers for VRAM writes 2020-06-24 01:39:53 +10:00
Connor McLaughlin e368dbbadc GPU: Implement non-interleaved interlaced rendering
Fixes screen shaking in True Pinball.
2020-05-26 03:18:05 +10:00
Connor McLaughlin 257c86930f GPU/OpenGL: Fix GLES again 2020-05-03 19:38:27 +10:00
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.
2020-05-03 17:11:31 +10:00
Connor McLaughlin 5ad133a278 GPU/HW: Implement oversized copies on GPU
Fixes slowdown caused by this.
2020-04-19 22:30:55 +10:00
Connor McLaughlin 65ca8b9fe0 GPU/HW: Move logic from backend to GPU_HW class 2020-04-18 15:30:46 +10:00
Connor McLaughlin 197b193ca3 GPU/HW/OpenGL: Use geometry shaders for upscaled line rendering 2020-04-16 21:29:11 +10:00
Connor McLaughlin c483a78889 GPU: Implement interlaced VRAM fills 2020-04-04 00:24:37 +10:00
Connor McLaughlin 2aecb570c1 GPU: Implement interlaced rendering in hardware backends 2020-04-04 00:24:37 +10:00
Connor McLaughlin d0be5618ec GPU/HW/OpenGL: Use shader cache 2020-04-04 00:24:37 +10:00
Connor McLaughlin 6f78fea159 GL: Improve error handling with texture creation 2019-12-11 00:02:12 +10:00
Connor McLaughlin 9ea7a8418c GPU: Eliminate temporary buffer when reading back 2019-11-14 17:17:22 +10:00
Connor McLaughlin 3998b9684e GPU/HW: GPU-based RGBA8->RGB5551 conversion for readbacks 2019-11-14 17:16:21 +10:00
Connor McLaughlin ff8cef4da3 GPU/HW: Support OpenGL ES 2019-11-06 01:33:09 +10:00
Connor McLaughlin 15c42f032f GPU/HW: Fallback path for VRAM writes for GPUs w/o texel buffers 2019-11-05 23:16:03 +10:00
Connor McLaughlin cc7483ad58 GPU/HW: Only copy the dirty area to the VRAM read texture 2019-11-05 22:34:36 +10:00
Connor McLaughlin 2c631aba5e GPU: Move stats from renderer class to base classes 2019-11-05 19:44:17 +10:00
Connor McLaughlin afbec85f89 GPU/HW: Track dirty area of VRAM shadow texture via drawing area 2019-11-05 19:19:49 +10:00
Connor McLaughlin 9de9cf3be2 GPU/HW: Add D3D11 renderer and refactor host interface/display 2019-11-04 00:39:48 +10:00
Connor McLaughlin d68f7085d6 Common: Move GL classes to subdirectory 2019-11-03 15:22:37 +10:00
Connor McLaughlin be81d08109 GPU/HW: Split shadergen to seperate class 2019-11-03 13:36:59 +10:00
Connor McLaughlin 91c99f0226 GPU/HW: Use uniform blocks for batch rendering 2019-11-03 13:18:43 +10:00
Connor McLaughlin aa1f3ad8f7 GPU: Don't truncate clear colour to 15-bit with true colour on 2019-11-03 01:05:37 +10:00
Connor McLaughlin 4143469353 GPU: Use texture buffer/fragment shader for VRAM writes 2019-11-02 23:43:20 +10:00
Connor McLaughlin 2b17cfd365 GPU: Use streaming buffers for CPU->VRAM transfers 2019-11-02 22:31:15 +10:00
Connor McLaughlin 407fee9ec3 GPU: Add base functionality for GL streaming buffers 2019-11-02 22:21:56 +10:00
Connor McLaughlin c9feb7ea07 GPU: Add force true color setting 2019-11-02 00:31:25 +10:00
Connor McLaughlin ac82383abe GPU: Implement dithering on OpenGL backend 2019-11-01 23:11:30 +10:00
Connor McLaughlin 1d1da1d82c GPU: Add VRAM read/write stats to GL renderer 2019-11-01 22:06:24 +10:00
Connor McLaughlin 1c79737021 GPU: Simplify batch state 2019-11-01 21:47:45 +10:00
Connor McLaughlin 9b56499afa Refactoring settings/support changing GPU renderer at runtime 2019-10-26 12:55:56 +10:00
Connor McLaughlin 2d0dd03705 GPU: Implement weave deinterlacing 2019-10-23 15:36:37 +10:00
Connor McLaughlin c048679044 GPU: Don't create explicit framebuffers 2019-10-23 00:35:20 +10:00
Connor McLaughlin 0f68c8c5d3 Add debugging for GPU/Timers 2019-10-12 22:15:38 +10:00
Connor McLaughlin 5627955900 GPU: Two-pass rendering for B-F transparency 2019-10-06 13:09:04 +10:00
Connor McLaughlin 431313156a GPU: Fix invalid rectangle passed to glScissor 2019-10-05 14:36:48 +10:00
Connor McLaughlin c2baa7e834 GPU: 24-bit display depth support 2019-10-05 12:31:48 +10:00
Connor McLaughlin a9313b2958 GPU: Fix transparency not being enabled in shader 2019-10-04 23:31:26 +10:00
Connor McLaughlin 004c22f031 Frontend: Prevent drawing imgui into the vram texture 2019-10-04 22:27:18 +10:00
Connor McLaughlin 4fa79f1503 GL: Eliminiate most redundant state setting calls at draw time 2019-10-04 22:10:43 +10:00
Connor McLaughlin 8987fa93c2 GPU: Set line width at higher internal resolutions 2019-10-04 21:08:53 +10:00
Connor McLaughlin 8362b8e43b UI: Beginning of customizable settings, debug menu 2019-10-04 15:00:32 +10:00
Connor McLaughlin bddbab9d60 Rename to DuckStation 2019-10-04 13:54:09 +10:00
Renamed from src/pse/gpu_hw_opengl.h (Browse further)