Commit Graph

69 Commits

Author SHA1 Message Date
stoofin
cafb14279a wip so far 2020-06-16 22:53:15 +02:00
ggdrt
c59938f264 parallel-psx: Remove unnecessary includes from renderer.cpp 2020-03-21 21:37:02 -07:00
ggdrt
f62af0b8ed Rework UpdateDisplayMode and rsx set_display_mode functions 2020-02-25 13:04:35 -08:00
ggdrt
66ff3830ba parallel-psx: Decouple MDEC and SSAA filter logic 2020-02-21 15:01:00 -08:00
ggdrt
fe3cb3394e VK renderer: Add Display VRAM core option support 2020-02-21 15:00:19 -08:00
ggdrt
e3e511be78 Add GP1(05h) command to rsx and parallel-psx, update rsx_dump
Delay VRAM framebuffer size calculation to latest possible moment in
Vulkan renderer; don't rely on external timing of UpdateDisplayMode.
2020-02-20 20:58:09 -08:00
ggdrt
2bcb026ed5 Update READMEs 2019-12-25 11:04:17 -08:00
Hans-Kristian Arntzen
9c6351702b parallel-psx: Fix precision bug with resolve roundtrip.
This is a big problem when using paletted textures. It is very easy to
trigger scenarios where we roundtrip resolve unscaled -> scaled ->
unscaled.

We need to round in pack_abgr1555 because we can get an off-by-one
otherwise, especially when resolving large upscaling factors.

Also, remove mediump from the resolve shaders, since we need pretty
decent precision to ensure there is a 1:1 roundtrip.
2019-12-18 21:26:20 +01:00
ggdrt
980b24b4ef Update RSX dump and playback for recent additions 2019-11-22 07:19:55 -08:00
ggdrt
49828593ce Add horizontal offset option to GL and VK 2019-11-19 15:54:49 -08:00
ggdrt
592708520c Implement initial/last scanline options for Vulkan 2019-11-17 19:47:05 -08:00
ggdrt
3215862705 Implement display range code for Vulkan renderer
* VK renderer now outputs psx vram fb within proper display area
* Implement and reenable horizontal overscan cropping option
* Update rsx and Vulkan rsx playback for new VK renderer code
2019-11-13 20:47:56 -08:00
twinaphex
45d307778b Use system path include 2018-12-27 16:37:06 +01:00
twinaphex
3d2d1c3fd8 Buildfix for JNI - hopefully 2018-12-27 01:02:06 +01:00
Hans-Kristian Arntzen
06d33e3c9e Remove some dead code. 2018-12-15 23:29:13 +01:00
Hans-Kristian Arntzen
75581b8768 Fix blit_vram shaders for scaled images and MSAA. 2018-12-15 22:45:56 +01:00
Hans-Kristian Arntzen
99e83f88f1 Support SSAA with 16x IR.
64-tap resolve shader, why not?
2018-12-15 22:19:03 +01:00
Hans-Kristian Arntzen
f8f972f425 Use libretro log callbacks. 2018-12-15 21:48:02 +01:00
Hans-Kristian Arntzen
8480a0722d Verify that scaling factor is sensible. 2018-12-15 21:31:24 +01:00
Hans-Kristian Arntzen
b4a1841540 Also blit/copy between non-MSAA attachment. 2018-12-15 18:12:39 +01:00
Hans-Kristian Arntzen
f9429349d7 Fix MSAA check. 2018-12-15 17:15:15 +01:00
Hans-Kristian Arntzen
ca0c77e3aa Rewrite MSAA support. 2018-12-15 17:06:26 +01:00
Hans-Kristian Arntzen
67a0c5f614 More MSAA shenanigans. 2018-12-15 15:32:05 +01:00
Hans-Kristian Arntzen
9bc8b8e656 Experiment with MSAA support. 2018-12-15 14:56:01 +01:00
Hans-Kristian Arntzen
824f5f3a5f Experiment with GPU readbacks.
Avoids having to rely on software raster to run in parallel with HW rendering.
2018-12-14 17:54:13 +01:00
Hans-Kristian Arntzen
c46b03ab70 "Fix" resolver shader with 16x IR.
Fallback to 8x shader instead of 2x.
2018-12-13 16:29:00 +01:00
Hans-Kristian Arntzen
fdff9565fb Add native ABGR1555 dithered scanout. 2018-12-13 15:24:31 +01:00
Hans-Kristian Arntzen
bc9ec6de83 Add MDEC YUV Chroma filter.
Removes some pixellation from certain MDEC sequences which feature stark
red or blue detail (RE1 for example).

This filtering is done in one pass, so it's rather heavy, but the
resolution is low enough it shouldn't matter.
2018-12-13 13:17:25 +01:00
Hans-Kristian Arntzen
6966638c76 parallel-psx: Add (OG)SSAA scanout mode.
Looks a bit more coherent with mixed 2D and 3D in cases where adaptive
smoothing fails.

Also allows CRT-style shaders to work better as they expect 240p input
usually.

Also fixes a small regression in which shaders are built for
downsampling and cleans up some ugly code w.r.t filters.
2018-12-13 12:06:41 +01:00
Hans-Kristian Arntzen
9d5987f827 Merge UVLimit attributes. 2018-12-12 12:47:21 +01:00
Hans-Kristian Arntzen
0c9178f999 Actually use new glslc build to build shaders. 2018-12-12 12:36:08 +01:00
Hans-Kristian Arntzen
06ff560876 parallel-psx: Update to latest Granite. 2018-12-12 12:23:05 +01:00
Hans-Kristian Arntzen
361112b6f0 Remove unused CMake build. 2018-12-12 11:25:22 +01:00
Hans-Kristian Arntzen
3e2a696d9f Add updated Khronos headers. 2018-12-12 11:24:09 +01:00
Hans-Kristian Arntzen
5f50f3fcc3 Update shaders.
Add a simple script from hunterk which rebuilds all shaders from Make
instead of CMake.
2018-12-12 11:23:28 +01:00
iCatButler
b8ee73b4eb Fix chain allocator behaviour
- Originally had a single host pointer to the last block allocated. If more than one block was allocated when the allocator was reset using discard() this caused a mismatch between the block allocated from and the one written to.
- Now stores a pointer to the data in each block and returns the correct one when allocating.

Also changed the vertex declaration for UV clamping values to be single channel floats (doesn't appear to have been causing errors, but seems more correct).
2018-12-04 13:03:49 +00:00
iCatButler
1e0e774ad2 Refactor UV offset and limit code to be shared by all renderers.
- Calculate and apply offset for quads with flipped UVs earlier.
- Reduce offsets applied in software renderer as resolution scaling increases (fixes line artefacts).
- Calculate UV limits used for filtering earlier and pass these to the individual renderers.
2018-11-30 12:11:39 +00:00
orbea
f417bab4e4 vulkan: Remove assert.
This allows games to boot with amdgpu and vulkan.
It may also affect other drivers.

Vulkan error at parallel-psx/vulkan/semaphore.hpp:40.
terminate called without an active exception
2018-11-26 09:38:10 -08:00
hizzlekizzle
526448b0c0
removed state.textured conditional
It was keeping pre-rendered backgrounds and some menus from updating with the new texture filters.
2018-09-02 19:59:45 -05:00
hizzlekizzle
d3d895f5ba
[squash and merge] runtime update for vulkan texture filtures (#417)
* make texture filter a runtime setting

* only init texture pipelines if the primitive is actually textured

* don't init_pipelines constantly, only when necessary

* these are declared elsewhere so no need to do it here, too

* cleanups courtesy of r5

* flip logic to be more intuitive

* switch back to temporary var
2018-09-01 17:44:42 -05:00
hizzlekizzle
7a4177f9d8
fix bilinear, 3point and jinc2 filters (#409)
clamp texture coords to prevent sampling adjacent textures
2018-08-19 21:05:30 -05:00
hunterk
4bd65b2943 hook up core option 2018-08-10 20:16:10 -05:00
hunterk
23ad3d4042 move some things around, make filter choice a variable 2018-08-09 22:07:00 -05:00
hunterk
1b2f9ee876 initial texture filtering implementation 2018-08-08 22:25:59 -05:00
Dwedit
9086bf32c0 MSVC code fixes for the GL/VULKAN build 2018-04-18 17:54:32 -05:00
Aaron Kling
b68137e0ed Refactor android jni makefiles 2018-04-07 12:57:15 -05:00
iCatButler
07d87fe6c4 Increase Z increment for primitives.
- Fixes Z-fighting when drawing with multi-pass blending with W (passes were too close).
- Solves issue #303: Silent hill glitches with pgxp
2018-03-03 18:13:10 +00:00
iCatButler
6475c19172 Fix PGXP bugs
- Pass clamped precise Z value to prevent divide by 0 on GPU (causes errors on Nvidia GPUs)
- Offset texture coordinates by 1/2 texel to avoid error on 1D look ups using Nvidia GPUs (issues #85)
- Prevent Vulkan renderer offsetting texcoord lookups by 1 during 1D lookups (caused error with above fix)
2018-03-02 21:46:44 +00:00
Brad Parker
5a3093be0f need stdlib.h for malloc 2017-08-27 23:31:48 -04:00
Brad Parker
a743392186 FreeBSD buildfix 2017-08-27 20:48:29 -04:00