Flyinghead
b1686a8f6a
Do not allow inf z value in the vertex shader. Clamp w to a very small value.
...
Fixes ground triangles clipping in Soulcalibur intro sequence.
2018-07-24 16:55:48 +02:00
Flyinghead
07a36ee256
avoid named struct initializers
2018-07-24 11:22:56 +02:00
Flyinghead
2e08d7a6c9
round() not available in GLES2. Using floor() instead
2018-07-23 20:55:53 +02:00
Flyinghead
86235bb4a3
Float math in alpha calculation causes some punch-through textures to have alpha noise.
2018-07-23 15:15:05 +02:00
Flyinghead
4b5e863aa7
Use log2 depth scaling in fragment shader when available.
...
Currently a compile time option (!GLES). Fixes many depth issues (Dynamite Cop, Cannon Spike, etc.)
2018-07-23 10:25:55 +02:00
Flyinghead
09eab8cb03
Saturate alpha channel for YUV textures
2018-07-18 22:35:55 +02:00
Flyinghead
e637dcf8f9
reinstate line deleted by previous commit
2018-07-18 16:07:17 +02:00
Flyinghead
cc8569fcf8
Fix 8888 high-quality textures on GLES/arm
...
GLES doesn't support uint 8888 so bytes must be swapped on little endian
architecture.
2018-07-18 16:01:40 +02:00
Flyinghead
dc835dd64d
Dump shaders source if compile fails
2018-07-16 16:52:11 +02:00
Flyinghead
0284d635d2
Upscale rendered-to textures
...
Increase the size of RTT textures by a given integer factor. Defaults to
1.
This gives much better quality textures, particularly visible when used
fullscreen for transition or pause screens.
2018-07-16 16:28:48 +02:00
Flyinghead
bb2d860902
Use red channel for fog table in GL but continue using alpha channel in
...
GLES. Alpha channel is supported only in GL compat mode, not core.
2018-07-14 10:48:16 +02:00
Flyinghead
87f8c5194f
Better fix for texture cache key needing StrideSel
...
StrideSel and ScanOrder are no longer part of the texture cache key
since that breaks RTT texture matching. But they are updated at lookup
time so they will be used if the tex is updated later.
Fixes RTT-based xfade screens in Skies of Arcadia.
2018-07-11 22:08:10 +02:00
Flyinghead
d5d711cf32
Clipping scissor fix: x offset must only be added once
2018-07-11 20:06:43 +02:00
Flyinghead
1be4203ffe
Far plane is at depth 0 in classic renderer.
2018-07-09 23:25:18 +02:00
Flyinghead
c035635341
Clipping scissor Y coordinates must be inverted when rendering to screen
...
Fixes top of screen missing in San Francisco Rush 2049
2018-07-09 23:22:13 +02:00
Flyinghead
889f722e73
Fix PAL4 textures
2018-07-09 19:20:33 +02:00
Flyinghead
18b2d8273f
Improve paletted and YUV texture quality.
...
Paletted textures using a 32-bit palette and YUV textures are now
converted to 8888 format, which results in a lossless conversion.
Fixes background texture quality in Alone in the Dark.
2018-07-09 14:59:53 +02:00
Flyinghead
a89ff1e432
Ignore depth func for autosort TR polys.
...
This was a remain of the previous Always depth hack.
2018-07-07 08:46:29 +02:00
Flyinghead
e067534f26
When sorting translucent triangle, keep the third vertex in place.
...
In flat shading mode, the third vertex of a triangle defines its color
so we must maintain its index.
Fixes the remaining color polygons seen in Evolution - The World of
Sacred Device.
2018-07-06 20:02:43 +02:00
Flyinghead
a1997637bb
Trilinear filtering limited implementation.
...
Fixes lighter field areas in NFL 2K2
2018-07-03 20:36:13 +02:00
Flyinghead
3c4913a35a
Merge remote-tracking branch 'upstream/master'
2018-07-03 15:46:25 +02:00
Flyinghead
69263eddc0
Bump mapping support
2018-07-02 15:23:47 +02:00
Flyinghead
295395c680
Flat shading support
2018-07-01 20:25:06 +02:00
Flyinghead
3ddcc272bf
Fix autosort/presort mode selection. Per render pass sort mode.
...
The previous algorithm to determine the sort mode for TR polys was
faulty. And the sort mode can vary between passes for multipass
rendering. This also removes the need for the hack to support Always
depth mode with autosorted TR polys. Should fix the Resident Evil 3 menu
problem.
2018-06-30 12:33:11 +02:00
Flyinghead
7ecd384612
StrideSel is now part of the texture cache and must be set by RTT
2018-06-29 19:03:43 +02:00
Flyinghead
f18aa63a67
Add stride and scan order to texture cache key as they are used to update the texture
...
Fixes glitchy FMV title screen in Bomberman Online
2018-06-29 11:59:48 +02:00
Flyinghead
a94f01ee78
Force autosort TR triangles using depth func Always to be drawn on top of others
...
When autosorting triangles, ignore the depth of triangles using the depth func Always and force
them to be on top. Seems to help Psyvariar 2.
2018-06-28 13:21:40 +02:00
Flyinghead
6871061ca0
Modifier Volumes: summing up with triangles is faster than using a quad.
2018-06-26 15:38:55 +02:00
Flyinghead
7c93727b5e
Improve modifier volume parsing and drawing logic.
...
Parse modifier volumes similarily to other polys (first, count, params).
Draw all triangles in one shot and use quad to sum up instead of
redrawing entire strip. Use OR operation for open volumes/quads
(Soulcalibur).
2018-06-26 14:45:58 +02:00
Flyinghead
846d02d9d2
Optimize RTT to VRAM. Add US version of THPS2 to per-game settings.
2018-06-25 16:55:22 +02:00
Flyinghead
3256e02813
Workaround for Virtua Tennis ball color problem.
...
There's a texture corruption of the tennis ball and other textures,
notably the players' bags in the first intro sequence. The corruption is
due to render to texture squashing existing textures. Not sure what's
going on but this avoids the texture corruption. The original problem
remains.
2018-06-25 15:53:28 +02:00
Flyinghead
08b8d30589
Implement clipping. Enabled by default.
2018-06-09 18:11:47 +02:00
Flyinghead
7640a35720
Draw modifier volumes only if enabled in settings (defaults to true)
2018-06-09 17:22:01 +02:00
Flyinghead
2fdcf0d821
Use float constants in GLSL
2018-06-07 18:26:02 +02:00
Flyinghead
b9fe9332cf
GLES 2 fix for fog table: use float only for vars and consts
2018-06-05 13:36:49 +02:00
Flyinghead
828990b926
Texture based fog table
2018-06-05 12:18:09 +02:00
Flyinghead
a345fcc4c7
Draw modifier volumes after punch-through so they can be shadowed as
...
well.
2018-05-23 14:31:11 +02:00
Flyinghead
2f9dcfabd8
Use FPU_SHAD_SCALE.scale_factor for shadow intensity instead of
...
hardcoded value.
2018-05-23 12:26:24 +02:00
Flyinghead
bccfb5b70c
Faster implementation for translucent polys depth pass. Disabled by
...
default. Auto-enabled for Cosmic Smash.
2018-05-22 15:47:02 +02:00
Flyinghead
23a2af0a28
Add setting for THPS2. Move RenderToTextureBuffer option to rend
...
section.
2018-05-22 15:34:33 +02:00
Flyinghead
4c7ffeb520
Per-pixel fog shading. Shaders cleanup.
2018-05-22 13:04:21 +02:00
Flyinghead
8d01bbe145
Increase Z scaling factor to 100k (fixes background menu in VR2). Set
...
depth mask before clearing buffers.
2018-05-21 16:44:18 +02:00
Flyinghead
9098fd5a22
Autosort poly: Write to the depth buffer in a second pass, and only if
...
multipass rendering.
2018-05-20 21:41:31 +02:00
Flyinghead
2d904372a9
Multipass issues: depth mask must be enabled for autosorted tr poly.
...
Depth buffer must NOT be cleared b/w passes, same for stencil I guess.
2018-05-20 14:16:43 +02:00
Flyinghead
c35aa4262c
Fix OpenGL errors with modvols and multipass
2018-05-19 18:51:30 +02:00
Flyinghead
c427997269
Enable modifier volumes. Fix for exclusion volumes. Prevent overflow of modifier triangles (JGR).
2018-05-19 10:13:00 +02:00
Flyinghead
d596f988c8
Revert 99bc20220e
2018-05-17 11:17:51 +02:00
Flyinghead
99bc20220e
Simplify clipping
2018-05-17 10:32:52 +02:00
Flyinghead
80c193b3de
Cache texture parameters. Fixed exclusion volume modifiers.
2018-05-16 19:34:45 +02:00
Flyinghead
e73d11d0ab
glHint nicest->fastest, and just once
2018-05-15 22:37:40 +02:00
Flyinghead
b469f05b9d
Fix wrong fog calculation issue
2018-05-15 21:19:58 +02:00
Flyinghead
d8165376be
GL cache fix
2018-05-15 16:09:50 +02:00
Flyinghead
de046c4620
Use OpenGL state cache. Allocate texture ids in bulk. Avoid modifier
...
volumes entirely when not needed.
2018-05-15 15:22:26 +02:00
Flyinghead
2d834c7396
Revert glChecks
2018-05-15 11:54:14 +02:00
Flyinghead
833a616122
Merge OSX fixes
2018-05-15 11:41:44 +02:00
Flyinghead
b30f715796
Fix paletted textures mismatch in texture cache
2018-05-14 16:14:15 +02:00
Flyinghead
699c2986a5
WIP
2018-05-14 12:48:22 +02:00
Flyinghead
46f28cfb27
Fog fix
2018-05-13 23:07:35 +02:00
Flyinghead
95120690ef
Use log2 depth scaling when opengl 3 is available
2018-05-13 20:19:36 +02:00
Flyinghead
b68f0a16a8
Increase FPS font size
2018-05-13 16:45:20 +02:00
Flyinghead
c30548eb6a
Added on-screen FPS counter. Fix clear screen issue when widescreen
...
enabled but not currently on.
2018-05-13 16:01:08 +02:00
Flyinghead
50a2e7e842
Revert dd9f77b4ab0b4c66fe7a2a717ed4b8cc1835e343: no gl_FragDepth in GLES 2 :(
2018-05-12 14:39:06 +02:00
Flyinghead
dd9f77b4ab
Changed z normalization to log scale
2018-05-12 13:26:50 +02:00
Flyinghead
717ee0b3ce
Make rendering to texture buffer optional
2018-05-11 19:33:17 +02:00
Flyinghead
43c125c208
Better texture cache: avoid duplicate. Attempt to put the RTT texture in
...
the cache to avoid copy to/from vram.
2018-05-11 15:29:24 +02:00
Flyinghead
683cbbba3e
Multipass rendering
2018-05-10 21:28:20 +02:00
Flyinghead
b77843b927
Handle RTT texture stride (VT)
2018-05-09 15:08:13 +02:00
Flyinghead
c13a42611b
Implemented other RTT format conversions.
2018-05-09 13:04:48 +02:00
Flyinghead
5710aa08ed
Remove all vram locks before reading back RTT buffer. Use RGBA/ubyte
...
format when RGB/565 is not available.
2018-05-09 12:28:38 +02:00
Flyinghead
2e4ec3a1ed
Added RTT support
2018-05-08 18:47:00 +02:00
Flyinghead
9f13ded502
Enable Modifier Volumes. Fix modtrig buffer overflow and stencil reset.
2018-05-04 18:18:04 +02:00
Flyinghead
cc88561d4a
Implemented clipping (Daytona USA menus)
2018-05-02 15:41:42 +02:00
Flyinghead
db0534d5dd
Fix PunchThrough texturing on JGR with nvidia
2018-05-02 12:29:47 +02:00
Flyinghead
35d3bd98d4
Disable fog table logging. Small optimization
2018-04-27 10:58:10 +00:00
Nicolas HOUDELOT
5c343a219c
fix typo
2018-03-05 01:57:00 +01:00
Stefanos Kornilios Mitsis Poiitidis
3ed70a26fb
Merge pull request #914 from ghost/issue-883
...
Update softrend.cpp
2016-09-12 22:19:39 +02:00
twinaphex
ccfb6b635a
Delete spurious code - fixes sprite palette issue with games like
...
Street Fighter III 3rd Strike/Capcom Vs SNk 2, possibly others
2016-05-13 14:37:47 +02:00
pvezien
e093f679a8
Update softrend.cpp
2016-04-13 09:20:33 +12:00
Jan Holthuis
52afec6f7d
Merge pull request #832 from reicast/holzhaus/sdl-opengl
...
Move to SDL2 for OpenGL 3.1 and GLES support
2016-03-04 15:13:25 +01:00
Stefanos Kornilios Mitsis Poiitidis
6c3c726019
softrend: Fix windows build
2015-12-14 03:11:40 +01:00
Stefanos Kornilios Mitsis Poiitidis
af01baae75
linux/softrend: Optional via makefile, sse4.1 detection
2015-12-14 02:40:23 +01:00
Stefanos Kornilios Mitsis Poiitidis
f3e4416bb4
linux/softrend: Cleanup accidental file changes
2015-12-13 14:08:16 +01:00
Stefanos Kornilios Mitsis Poiitidis
62018cf203
linux/softrend: Fix porting bugs, hackplement X11 drawing
...
- Fix RECT fields oder (initialized via {} on the code)
- Initialize shuffle_alpha (duh ...)
- X11 Image drawing (hacky, depends on internal X11 details)
- Untwidle code w/ optional flipping (X11 doesn't use inverted bitmaps)
- rgba shuffling (not needed yet, but left for documentation)
2015-12-13 14:00:25 +01:00
Stefanos Kornilios Mitsis Poiitidis
5e377399d3
linux/softrend: builds & runs, doesn't push to screen yet
2015-12-13 14:00:25 +01:00
Jan Holthuis
098e208a57
SDL: Drop SDL1.2 support and use SDL2 for GLES, too
2015-10-11 18:41:23 +02:00
Jan Holthuis
4267d51f90
stdclass: Make path getter function names more verbose
2015-09-02 15:49:00 +02:00
Jan Holthuis
b6d0cddcaa
stdclass: Add support for separate config/data dirs and system wide dirs
...
This adds support for separate config and data dirs.
On Linux, these will be compliant XDG Basedir Specification, i.e.
XDG_CONFIG_HOME and XDG_CONFIG_DIRS (or XDG_DATA_HOME and XDG_DATA_DIRS
respectively). On all other platforms, there currently just set to the
homedir path (so no previous behaviour has been changed).
If reicast wants to read and write a data file, it just calls
get_data_path("/samplefile.txt"). If it does not need to write to
that file, it just uses get_data_path("/samplefile.txt", false). That
way, we can also use system-wide dirs (like /usr/share/reicast on
linux), that the user usually doesn't have write access to.
The same applies for config file, where you use get_config_path(args)
respectively.
2015-09-02 15:48:53 +02:00
Jan Holthuis
fc2d1edea9
linux-dist/x11: Enable fullscreen toggling via F11 button
2015-08-19 18:47:42 +02:00
Stefanos Kornilios Mitsis Poiitidis
67ecd6d9f9
vmem: Automatic fallback to slowpath if alloc fails
...
This consolidates some of the work done for TARGET_NO_NVMEM and
feat/no-direct-memmap. If nvmem is disabled at compile time or alloc
fails _nvmem_enabled() will return false. Various other fixes
and cleanups all around.
2015-08-12 03:09:44 +02:00
Stefanos Kornilios Mitsis Poiitidis
eeeb2d6a62
texcache: Correctly compute size for STRIDE PLANAR textures
2015-08-12 03:09:44 +02:00
Stefanos Kornilios Mitsis Poiitidis
13b2c4d8aa
naomi: Don't lock vram mirrors if vram isn't mirrored
2015-08-11 19:13:12 +02:00
Stefanos Kornilios Mitsis Poiitidis
c3c2c68f21
Merge pull request #729 from reicast/wip/softrend
...
Basic and buggy software renderer
2015-08-11 17:43:47 +02:00
Stefanos Kornilios Mitsis Poiitidis
91039911ce
softrend/gltex: Fix non-windows builds
...
_mm* are windows only, and so is softrend for now
2015-08-11 16:12:18 +02:00
Stefanos Kornilios Mitsis Poiitidis
26cfcd79e9
OSX: Fiddling to get the rec-cpp/noexcept path running
2015-08-11 07:57:22 -04:00
Stefanos Kornilios Mitsis Poiitidis
dfc341a5fe
softrend: OpenMP support, fix present overflow during untiling
...
- Uses vertical slicing
- Efficiency wins are best for 2-3 rendering threads
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
19fa2f1678
softrend: Limits on #defines, scissor area as rect
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
3e9431b2b7
softrend: billinear filtering, perspective uv, alpha test, ARGB1555
...
- Texture pixels are predecoded and expanded to quads for filtering
- bilinear input ordering might be wrong
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
e6a9d3e661
softrend: Resembling a pixel pipeline, textures, sort, cull
...
- Basic pixel pipeline, a bit better triangle tests, specialized render handlers
- Textures w/ point filtering. Not very smart is it goes 32 -> 16 -> 32 bpp, but works.
- The texture cache is shared rather inelegantly w/ OpenGL one
- Culling
- PParam sorting (shared w/ GL)
The texturing and color blending paths are ugly and slow
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
fcf273dd11
softrend: Add support for culling
2015-08-11 00:26:02 -04:00
Stefanos Kornilios Mitsis Poiitidis
bedd2db7b6
softrend: WIP floating interpolation to handle big numbers
...
Still not 100% correct pixel fill
2015-08-11 00:26:02 -04:00