Commit graph

101 commits

Author SHA1 Message Date
Connor McLaughlin 70209db402 GPU/HW: Implement oversized VRAM fills in hardware
Fixes downscaling in Bugs and Taz PAL.
2021-07-21 19:24:10 +10:00
Connor McLaughlin 98af6e7228 GPU/ShaderGen: Use [unroll] for resolve loops 2021-07-11 13:08:25 +10:00
Connor McLaughlin 98f0e5908b GPU/HW: Fix incorrect UV range for upscaled direct texturing 2021-06-24 14:45:15 +10:00
Connor McLaughlin f4242f390b GPU/HW: Use a larger epsilon for PowerVR 2021-05-25 20:01:37 +10:00
Connor McLaughlin eaab0cc033 GPU/ShaderGen: Use smaller position epsilon on PowerVR 2021-05-25 18:42:21 +10:00
Connor McLaughlin 08876d132f GPU/HW: Don't generate always/never-discarding discard shaders
Might fix the PowerVR driver...
2021-05-25 13:38:33 +10:00
Connor McLaughlin 22d664b210 GPU/ShaderGen: Move discard to end of shader
Possible workaround for this PowerVR driver issue.
2021-04-08 03:07:10 +10:00
Connor McLaughlin 0cbba59e88 GPU/ShaderGen: Add readonly/restrict qualifier to VRAM write SSBO 2021-03-04 13:08:32 +10:00
Connor McLaughlin 837fb6128b GPU/HW: Fix mask bit when rendering with transparency and no DSB
Fixes some sprites in Bloody Roar on Mali GPUs.
2021-02-06 20:14:28 +10:00
Connor McLaughlin 701edb335a Various warning fixes 2021-02-06 19:19:55 +10:00
Connor McLaughlin 97971464d1 GPU/ShaderGen: Remove texcoord offset
Doesn't seem to be needed anymore, and causes issues in some games (e.g.
flickering polygons in Evil Dead)
2021-01-11 15:12:16 +10:00
Connor McLaughlin 3cb2cd8235 GPU: Add adaptive and box downsampling modes 2020-12-30 17:41:39 +10:00
Connor McLaughlin e71f6aa80a GPU/HW: Improve round-trip accuracy of RGBA5551->RGBA8
Fixes smudging in some games with true colour rendering enabled.
2020-12-27 00:50:08 +10:00
Connor McLaughlin aa1543271e GPU: Support emulating a depth buffer from PGXP depth values 2020-12-23 01:39:49 +10:00
Connor McLaughlin 1c9d0967b1 GPU/OpenGL: Fix shader compile error on GLES 2020-12-06 00:35:54 +10:00
Connor McLaughlin 59ac365b52 GPU/HW: Extend the UV range to all "upscaled" pixels
Extend the UV range to all "upscaled" pixels. This means 1-pixel-high
polygon-based framebuffer effects won't be downsampled.

(e.g. Mega Man Legends 2 haze effect)
2020-12-04 00:33:04 +10:00
Connor McLaughlin 7e944103c2 GPU/OpenGL: Work around rasterization/interplation issue on V3D/Pi4 2020-12-01 15:14:23 +10:00
Connor McLaughlin 03d4f80883 GPU: Move enums/types into separate file 2020-11-21 18:39:04 +10:00
Connor McLaughlin ae1e4b1b8f GPU: Add chroma smoothing for 24-bit display enhancement 2020-11-03 16:17:45 +10:00
Connor McLaughlin 858f39827d GPU/HW: Add 'Disable Edge Blending' variants of texture filters 2020-11-02 00:56:05 +10:00
Connor McLaughlin 2eaebd8921 GPU: Implement support for multisample antialiasing 2020-10-31 14:27:58 +10:00
Connor McLaughlin d39c9f5d1c Clean up some compiler warnings 2020-10-11 12:21:08 +10:00
Connor McLaughlin cacf7a7cc9 GPU: Precompute texture window expression [SAVEVERSION+] 2020-09-30 23:03:52 +10:00
Connor McLaughlin 2b4568df6a ShaderGen: Split HW shadergen from base 2020-09-13 01:23:43 +10:00
Connor McLaughlin ccaff2e7cd Settings: Fix incorrect UI for xBR texture filter 2020-09-13 01:21:14 +10:00
Connor McLaughlin 6f250a4ff7 GPU/HW: Add JINC2 and xBRZ texture filtering options
Shaders ported from beetle-psx.
2020-09-12 00:26:34 +10:00
Connor McLaughlin 9254fc9e63 GPU/HW: Fix UB with reverse subtract and texture filtering on 2020-08-24 00:22:49 +10:00
Connor McLaughlin e6156e2adb GPU/ShaderGen: Move transparent compensation to bilinear function 2020-08-12 02:27:52 +10:00
Connor McLaughlin 5c6e92cdfc GPU/HW: Disable coordinate clamping when unnecessary 2020-08-10 23:28:37 +10:00
Connor McLaughlin b95ce993e0 GPU/HW: Clamp interpolated UVs to polygon limits
Fixes texture filtering and PGXP issues in some games.
2020-08-10 23:28:37 +10:00
Connor McLaughlin dd9705ef31 GPU/HW: Fix last row of oversized writes not applying
Combined with the wrap changes, fixes Namco Museum motherboard scene.
2020-08-04 14:40:00 +10:00
Connor McLaughlin 0b0bc32afb GPU/HW: Use texture samplers rather than fetching for batches
Enables wrap-around.
2020-08-04 14:40:00 +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 0c1b637549 PGXP: Add initial implementation 2020-08-02 00:25:07 +10:00
Connor McLaughlin caf9943418 GPU/Vulkan: Possible workaround for Adreno GS shader compiler bug 2020-07-25 15:17:29 +10:00
Connor McLaughlin 08a8434140 GPU/HW: Fix off-by-one in wrap-around VRAM writes 2020-07-23 02:35:03 +10:00
Connor McLaughlin d1a2ebd8f3 GPU/HW: Eliminate CPU round trip on oversized VRAM writes 2020-07-11 20:35:33 +10:00
Connor McLaughlin b94de1924d GPU/ShaderGen: Round normalized colours before converting to integer
Fixes broken rendering/precision issues on Intel Ivy Bridge GPUs.

Many thanks to linkmauve from Dolphin for the idea - seems Dolphin also
had a similar problem a few years ago.
2020-06-26 21:40:53 +10:00
Connor McLaughlin 34d7b752d8 GPU/ShaderGen: Enable GL_ARB_shader_storage_buffer_object on <GL4.3 2020-06-26 21:39:12 +10:00
Connor McLaughlin b8a2487abf GPU/HW: Fix incorrect offset application in line upscaler
Fixes green line in pause screen of Spyro.
2020-06-26 03:26:06 +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 eb1b6b6272 GPU/HW: Fix D3D11 upscaled line GS 2020-06-22 15:53:05 +10:00
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.
2020-06-20 20:21:33 +10:00
Connor McLaughlin 49d11988bf Core: Add Vulkan GPU renderer 2020-06-19 00:18:17 +10:00
Connor McLaughlin 9ea163e666 GPU/D3D11: Fix mask test in same vertex batch
Fixes shadows in Bust a Groove 2, probably others.
2020-06-02 20:52:07 +10:00
Connor McLaughlin 38fc843541 GPU/HW: Use upscaled texture coordinates for non-paletted textures
Fixes games which use render-to-texture effects not being upscaled.
2020-05-30 02:19:01 +10:00
Connor McLaughlin 445bd02cad GPU/HW: Interlace at native resolution rather than 1x
Also fixes screen bobbing when interlacing is disabled.
2020-05-27 00:27:27 +10:00
Connor McLaughlin 23436f08ba GPU/HW: More improvements to GPUSTAT.31
Fixes True Pinball without breaking intros to Final Fantasy 7/8.
2020-05-26 22:57:58 +10:00
Connor McLaughlin cb66889856 GPU/OpenGL: Fix non-interleaved interlaced display 2020-05-26 13:44:05 +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