flyinghead
ef506d49aa
libretro: pvr2 postprocessing filter
2021-07-06 21:37:47 +02:00
flyinghead
c205a888a9
options: anisotropic filtering, oit pixel buffer size, fast gdrom load
2021-07-06 16:19:12 +02:00
Flyinghead
7dbd79750c
WIP libretro core update
2021-07-05 19:44:08 +02:00
flyinghead
5359e9a09d
allow gpu-handled palette textures to be replaced by custom version
...
Issue #219
Fix incorrect texture size calculation for VQ textures.
Reorder BaseTextureCacheData fields to have hottest on top
2021-04-17 18:40:58 +02:00
Flyinghead
24d172bd51
gl: use async PBO to copy texture back to vram
2021-04-08 10:33:14 +02:00
Flyinghead
9e9aa5b4d9
gl: proper vao use. define palette uniforms only when needed
2021-03-28 20:08:02 +02:00
Flyinghead
1abfa19636
set rendering resolution in discrete steps instead of scaling
2021-03-21 18:03:22 +01:00
scribam
d715836c40
clang-tidy: run modernize-use-override
2021-03-13 17:28:32 +01:00
Flyinghead
c3a95594f9
New option system
...
Fix per-game settings (Issue #115 )
Automatic load/save state (Issue #173 )
Reload Naomi/AW BIOS after per-game settings are loaded to allow
per-game BIOS region. (Issue #96 )
Restrict Soul Reaver widescreen cheat to the EU version (Issue #188 )
Disable UI elements for overridden settings
Clean up/simplify legacy Naomi ROM loading
2021-03-01 10:13:40 +01:00
flyinghead
f3b86f6c14
gl: TextureCache -> GlTextureCache
2021-01-15 10:14:24 +01:00
Flyinghead
a859effa04
build fix
2020-12-27 09:10:19 +01:00
Flyinghead
a0b099df7c
gl: when loading custom textures, don't delete regular textures until after the current frame
...
regular textures might be referenced by the current frame and deleting them cause gl errors
Issue #144
2020-12-27 08:58:48 +01:00
Flyinghead
a7a70f9900
gl: don't present a frame if no previous render
2020-12-16 17:25:33 +01:00
Flyinghead
c03cf8eb45
rend: multi-render, delay swap, refactor main ui loop
...
move ui loop out of hw/pvr
vk: implement multi-rendering, delay swap. Load fb before render pass
fps counter now counts frames, not renders
vk: force ignoreTexAlpha for 565 texture in case the supporting texture
has an alpha channel (RTT). Fixes Alone in the Dark cinematic scenes.
pvr: better detection of frame swapping (FB_R_SOF/FB_W_SOF)
pvr: synchronous rendering now always waits for render in progress
(speed measurement not reliable, render skipped when multi-rendering)
vk: limit swap chain size to 2
2020-12-15 15:09:42 +01:00
Flyinghead
7744e1a262
vk: use-after-free if inFlight texture is deleted or cache cleared
2020-11-24 18:01:09 +01:00
Flyinghead
125c1ff37d
gles: use int for palette_index uniform to avoid precision issues
...
Issue #104
2020-07-31 12:16:10 +02:00
Flyinghead
7449230af8
handle some palette textures on the GPU
...
get rid of PixerPacker templates
no need for GLSL precision qualifier in GL4
2020-07-08 18:17:15 +02:00
Flyinghead
fec79624df
gl/gl4: simplify clipping. share code with vulkan
2020-05-11 16:11:31 +02:00
scribam
a155282fd0
Cleanup compiler warnings (mostly sign-compare)
2020-03-30 23:00:43 +02:00
scribam
4bf6802855
Cleanup include headers
2020-03-29 14:26:21 +02:00
Flyinghead
5894992f70
android: don't use storage for default buttons.png
2020-03-24 23:31:34 +01:00
Flyinghead
03f096384b
generate mipmaps for custom textures when needed
2020-03-09 22:49:05 +01:00
Flyinghead
99f04ec753
nuke softrend
2020-02-26 23:41:05 +01:00
Flyinghead
9826afa063
upload all texture mipmap levels to gpu
...
implemented for gl/gl4/vulkan/oit
don't auto-generate mipmaps in vulkan
simpler/smaller detwiddle table
use std::lock_guard with cMutex
2020-02-07 16:55:32 +01:00
Flyinghead
f7655091b0
gl4: only use per-pixel sorting when needed
...
if not using autosort, there's no need to use per-pixel sorting
fixes issues with Psyvariar2 and HeadHunter
2020-01-05 20:44:39 +01:00
Flyinghead
78eb1829d8
gles2: calculate fog depth in vertex shader in case highp not supported
...
Mali-400/450 don't support highp floats in the fragment shader. This
causes overflows when computing fog density in some game scenes. To work
around that, calculate fog density in vertex shader and use
interpolation.
vulkan,gl: Get rid of extra_depth_scale in fragment shader by
integrating it in fog density
2019-11-14 22:10:40 +01:00
Flyinghead
07958f08ae
refactor xform matrix out of gles. use xform matrix in vulkan
2019-10-23 18:13:28 +02:00
Flyinghead
2f363a7355
Merge remote-tracking branch 'origin/fh/gl-scale-mat' into fh/vulkan
...
# Conflicts:
# core/rend/TexCache.h
# core/rend/gl4/gles.cpp
# core/rend/gles/gles.cpp
# core/rend/gles/gles.h
# shell/apple/emulator-osx/reicast-osx.xcodeproj/project.pbxproj
2019-10-21 19:49:53 +02:00
Flyinghead
86818389ac
move texture cache to a template class. vulkan: OSD on android
...
store texture in the cache map instead of the heap
make related functions member of the class (CollectCleanup, killtex ->
Clear)
refactor common OSD stuff into rend/osd
vulkan support for OSD
2019-10-21 16:39:16 +02:00
Flyinghead
6611e9bf5e
gl: refactor wsi into their own class.Allow dynamic vk<->gl switch
2019-10-18 21:57:08 +02:00
Flyinghead
2bac2afe98
gles: fix depth issue when drawing quads on gles2
...
Fix Gunlord black screen on GLES 2
2019-10-12 13:48:41 +02:00
Flyinghead
8202ac420b
pvr,rend: more refactoring out of gles. Change texture id to 64b
2019-10-04 13:33:08 +02:00
Flyinghead
24b973f763
rend: refactor texture cache and poly/triangle sorters out of gles
2019-10-04 12:22:18 +02:00
Flyinghead
537c2a4ed6
pvr: reset face and offset colors when not set in poly param
...
Fixes black ice in NHL 2K2 and black players in NHL 2K
Clean up
Don't build soft renderer
2019-09-21 22:53:09 +02:00
Flyinghead
8792c06adc
gl4: use same depth direction as gles. Round scale_y value.
2019-09-17 13:35:23 +02:00
scribam
61382316c9
Use __ANDROID__ to handle specific Android code
2019-08-28 20:37:53 +02:00
Flyinghead
93e009bf1a
gl: use matrices for ndc and viewport calculations
...
Support VO_STARTX and VO_STARTY for shifting displayed frame
Add glm to deps
Calculate NDC, scissoring and viewport matrices once
Reduce code duplication
2019-08-12 19:56:44 +02:00
Flyinghead
60ec054b59
support for VQ compressed paletted textures
2019-07-12 15:34:10 +02:00
Flyinghead
dbbc1819e8
remove NACL
2019-07-07 22:56:23 +02:00
Flyinghead
d9f2f9ae1d
rend: define GLES2 and GLES3
...
GLES2 will only use GL ES 2.0 API functions, compile-time linked
GLES3 loads functions dynamically and supports both GL ES 2.0 and 3.0
2019-05-15 12:54:03 +02:00
Flyinghead
0dd555c5c8
Merge branch 'master' into fh/gles-dynload
2019-05-15 11:49:57 +02:00
Flyinghead
0445542ec2
gl: 90deg screen rotation option. Fix scissor/clip wrt scale/stretch
...
90deg CC screen rotation option for some arcade games
Fix scissoring and clipping when screen scaling/stretching/rotating
Clear shader cache when screen rotation changes
Properly delete all gl programs and shaders when needed
2019-04-09 15:18:48 +02:00
Flyinghead
47bb509f02
Add horizontal screen stretching option
...
fix scissor test when scaling/stretching
fix infiniloop when starting a game fails
2019-04-08 00:21:06 +02:00
Flyinghead
4b7e4f4677
custom textures: fix race conditions
2019-04-06 19:38:00 +02:00
Flyinghead
05df2f06e2
imgui: use glcache, don't save/restore state
...
gl4: backport shader map changes from gl renderer
2019-04-04 22:26:21 +02:00
Flyinghead
994d52e012
gl: put shaders in a map and set uniforms once for all before each frame
2019-04-04 19:08:21 +02:00
Flyinghead
eadf3047c0
gles: no runtime load of libGLESv2 on non-android platforms
2019-04-03 20:24:28 +00:00
Flyinghead
1ef8caff88
include TCW in HD texture hash
...
Soul Calibur has textures sharing the same data but with different
formats
2019-03-26 21:14:39 +01:00
Flyinghead
ee0161e9c4
build fix
2019-03-05 03:15:11 +01:00
Flyinghead
e0de4210ac
VJoy: decouple from emulator rendering. Use same code for gl and gl4
2019-03-02 14:20:05 +01:00
Flyinghead
41e4c805de
OSX: support new input system. Use existing emulator thread.
...
Added new OSD notification feature, combined with FPS counter, moved to
GUI
OSX: don't create and manage a new emulator thread but use existing one
OSX: keyboard and mouse use new input system
2019-02-27 23:02:25 +01:00
Flyinghead
0f1630a1b7
Use proper VAOs for the per-pixel renderer
2019-02-20 19:22:24 +01:00
Flyinghead
3a847bf4da
use GL_UNSIGNED_BYTE instead of GL_UNSIGNED_INT_8_8_8_8
2019-02-19 23:15:34 +01:00
Flyinghead
054b4662fd
getting rid of `#ifdef GLES` to use the same code for all envs
...
Added latest GL 4.6 header files
2019-02-19 21:40:21 +01:00
Flyinghead
a808a8f36f
dynamically bind GLES functions
...
Compile with GLES 3.2 headers but no library
split gl_term into generic and platform-/loader-specific stuff
allow full desktop GL context creation with EGL
2019-02-19 17:21:50 +01:00
Flyinghead
9526fada5e
Added RenderLastFrame() to Renderer interface
...
implement screen scaling for per-pixel renderer
fix output FBO not being freed/recreated when GL context is reset
refactor DrawQuad on per-pixel renderer
2019-02-19 11:36:59 +01:00
Flyinghead
810182c4fe
Scale down native resolution setting
2019-02-19 00:49:24 +01:00
Flyinghead
e2c839dde3
GLES: detect gl extensions and use packed depth/stencil buffer for RTT
2019-02-18 17:42:07 +01:00
Flyinghead
4c1acfeab1
android: native egl surface
...
fps counter using imgui
restart emulator with new game in same process
2019-02-18 00:25:06 +01:00
Flyinghead
edba937b6f
Save last rendered frame if gl driver doesn't preserve the swap buffers
...
Fixes flashing screen with nvidia shield when no frame is rendered
2019-02-14 12:40:17 +01:00
Flyinghead
3320669bd4
android: use new input system
...
support for gamepads and mice on android
2019-02-13 20:29:49 +01:00
Flyinghead
3f98c2ba3c
Don't delete a texture when async load is pending
2018-12-30 19:19:27 +01:00
Flyinghead
dd280ee24d
Custom textures loading and dumping
2018-12-30 18:42:55 +01:00
Flyinghead
655d36a719
Convert vertex indices to u16 wih GLES2
...
GLES2 doesn't support 32-bit indexes so convert them to u16 when needed
2018-12-13 22:26:25 +01:00
Flyinghead
2ef90152c9
GL: add #if in shader for trilinear filtering
2018-11-23 22:33:51 +01:00
Flyinghead
6177a5b33a
Clear texture cache on exit
2018-10-29 18:02:47 +01:00
Flyinghead
7203681202
Less code dup
2018-10-04 14:49:20 +02:00
Flyinghead
3a929aeeb1
Terminate A-buffers cleanly. Call renderer Term() at shutdown.
...
Less code dup.
2018-10-04 14:04:15 +02:00
Flyinghead
0260b00c00
Less code dup
2018-10-04 12:32:26 +02:00
Flyinghead
3f791d6f04
Merge OIT renderer into master
2018-10-04 10:29:23 +02:00
Flyinghead
f202b3b143
Add new ExtraDepthScale setting to scale huge Z values.
...
Use 1e26 for Samurai Shodown 6 (NAOMI)
2018-09-04 18:37:59 +02:00
Flyinghead
96e9bce0e0
(Fog) Color clamping support
2018-09-01 12:56:37 +02:00
Flyinghead
e59d7eaf3d
Direct framebuffer writes support
2018-08-26 16:58:10 +02:00
Flyinghead
c0c06ed8ff
Renderer: select shader at runtime based on the GL context version
...
The GL renderer now detects the version of the current GL context and
compiles the shaders accordingly. Supports GLES2, GLES3 and desktop GL.
Android: use 8,8,8 framebuffer instead of 5,6,5. Requests a 8-bit
stencil buffer (modifier volumes)
2018-08-07 09:44:52 +02:00
Flyinghead
31d8c1f091
Backport texture upscaling with xBRZ
2018-08-01 19:43:01 +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
a1997637bb
Trilinear filtering limited implementation.
...
Fixes lighter field areas in NFL 2K2
2018-07-03 20:36:13 +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
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
828990b926
Texture based fog table
2018-06-05 12:18:09 +02:00
Flyinghead
2d834c7396
Revert glChecks
2018-05-15 11:54:14 +02:00
Flyinghead
699c2986a5
WIP
2018-05-14 12:48:22 +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
683cbbba3e
Multipass rendering
2018-05-10 21:28:20 +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
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
26cfcd79e9
OSX: Fiddling to get the rec-cpp/noexcept path running
2015-08-11 07:57:22 -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
f2f9a041e1
Merge pull request #727 from reicast/wip/import-drkpvr-softrend
...
rend/soft: Import the experimental core from nulldc/drkpvr, modularize
2015-08-05 04:25:06 +02:00
Stefanos Kornilios Mitsis Poiitidis
8cce1a4976
rend/soft: Import the experimental core from nulldc/drkpvr, better renderer modularization
...
- Adapted for indexed, async rendering, shared ta decoder
- This blits via a quick-and-hacky GDI blitter for now
- SSE/MMX intrins based, so not very portable
- A rather not good "reference" implementation
- At least, it's not terribly slow though
- GetTexture moved to Renderer interface
2015-08-05 02:43:40 +02:00
Stefanos Kornilios Mitsis Poiitidis
373cb6e24e
nacl: Working towards GLES2. Will init, shaders won't compile
2015-07-29 04:30:21 +02:00
Stefanos Kornilios Mitsis Poiitidis
2eb9d7908f
A first hackthrough to get nacl compiling working
2015-07-29 04:17:31 +02:00
Stefanos Kornilios Mitsis Poiitidis
65ca1382d8
Merge remote-tracking branch 'remotes/origin/skmp/ios-wip' into feat/segfault-context-consolidation
...
Android/windows builds fine again. Android not tested yet, iOS/OSX not compiled yet
2015-05-16 07:12:19 +02:00
Stefanos Kornilios Mitsis Poiitidis
7d75ee3839
gles: revert e5965e356d
.
...
glCheck was already an option, and gcc sanely doesn't like if (do { ... } while(0))
2015-05-08 01:06:40 +02:00
Stefanos Kornilios Mitsis Poiitidis
e5965e356d
gles: Disable glChecks by default, glGetError can be painfully slow
2015-05-07 23:27:22 +02:00
Stefanos Kornilios Mitsis Poiitidis
64b2fcbb1c
Disable glCheck by default, move to validate:OpenGlChecks config
2015-04-12 22:48:16 +02:00
~skmp
0783875b84
Linux GLX/3.1 support
...
My setup is only 2.1 right now, so this is totally untested
2014-12-30 13:21:05 +02:00