Commit Graph

274 Commits

Author SHA1 Message Date
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 e426bc8058 android: call eglMakeCurrent() before rendering or deleting context
Flush texture cache and terminate gui before releasing the EGL context
2019-02-18 13:14:12 +01:00
Flyinghead 666205d2a1 Define gl_term for all platforms. Delete all textures on context close. 2019-02-18 09:35:27 +01:00
Flyinghead 5701227e55 build fix 2019-02-18 00:38:11 +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 dcbdf3a59d set glClearStencil to 0 before clearing, just in case
fix printf format string
2019-02-16 14:30:08 +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
Marcel Szewczyk d370fd6709 PR requested changes; Adreno 506 generalized to Adreno 2019-02-11 19:02:52 +01:00
Marcel 3b951c0232
Vertical scale factor support added - typo fix 2019-02-11 11:15:01 +01:00
Marcel Szewczyk 8d4188159e Vertical scale factor support added - fixes Crazy Taxi pause menu background positioning 2019-02-10 11:51:14 +01:00
Marcel Szewczyk 7869a84f88 Additional fixes/cleanup 2019-02-10 01:10:51 +01:00
Marcel Szewczyk 8893f97435 Handle odd screen resolution (POCOPHONE fix) 2019-02-08 22:20:02 +01:00
Marcel Szewczyk a65436cc6c Handle dynamic resolution change during emulation (LRR mode) 2019-02-08 22:15:45 +01:00
Flyinghead 1802c022fd UI with ImGui 2019-02-06 19:57:13 +01:00
Flyinghead 78fd92f95a No custom textures if no threads 2019-02-06 18:50:56 +01:00
Marcel Szewczyk b26b12054b Merge branch 'master' of https://github.com/reicast/reicast-emulator into mar753/render-to-texture-with-options 2019-02-06 17:39:12 +01:00
Flyinghead 2ff6d1b819 Fix render to texture buffer alpha channel for 1555
Saturate alpha when strictly greater than threshold, not >=
Don't put rendered texture in cache if rendering to texture buffer
(VRAM)
Fixes Skies of Arcadia start menu

Restore VRAM lock if null
2019-02-03 17:53:02 +01:00
Marcel Szewczyk 377fb6ace0 rend.ResolutionPercentage acceptable values are now from 1 to 100; naming fix 2019-01-25 16:43:46 +01:00
Marcel Szewczyk aa3475738a Revert "LRR: Support for OpenGL 2 added"
This reverts commit c33c0cade8.
2019-01-20 11:05:53 +01:00
Marcel Szewczyk 88b9debc89 Revert "RTT: Support for OpenGL 2 added"
This reverts commit 86339c337d.
2019-01-20 11:03:30 +01:00
Marcel Szewczyk 86339c337d RTT: Support for OpenGL 2 added 2019-01-18 19:46:46 +01:00
Marcel Szewczyk c33c0cade8 LRR: Support for OpenGL 2 added 2019-01-18 18:42:46 +01:00
Marcel Szewczyk f0c4fe6fdc Additional improvements/fixes 2019-01-18 18:39:48 +01:00
flyinghead ed3f866835 win32 build fix 2019-01-16 17:42:36 +01:00
Marcel Szewczyk 77d997401b RTT: Performance improved for DC RGB565 and ARGB4444 textures - glReadPixels() removed 2019-01-14 20:42:48 +01:00
Marcel Szewczyk 6499a82513 RTT: Additional small fixes 2019-01-14 19:32:56 +01:00
Marcel Szewczyk a9affb8ac2 RTT: Stencil support for full OpenGL >= 3.0 added 2019-01-13 19:04:33 +01:00
Marcel Szewczyk 82bbe690b1 Stencil support for OpenGL added - requires OpenGL >= 3 2019-01-13 17:33:23 +01:00
Marcel Szewczyk 27360a1c41 Lgtm warnings fixed 2019-01-12 13:17:43 +01:00
Marcel Szewczyk 7e900a4e86 Merge branch 'master' of https://github.com/reicast/reicast-emulator into lowering_rendering_resolution_option 2019-01-09 00:01:03 +01:00
Marcel Szewczyk e285d7f9ba Additional improvements to lowering rendering resolution feature 2019-01-08 23:35:48 +01:00
Marcel Szewczyk 8571be39fd Rendering resolution lowering (horizontal and vertical) is possible from the configuration menu 2019-01-07 23:55:43 +01:00
Marcel Szewczyk 2aadb3cdd4 RTT: Stencil support added (extension required) 2019-01-07 21:37:16 +01:00
Marcel Szewczyk 7e26a172f4 Changing screen resolution: Rendering quad created 2019-01-06 22:16:21 +01:00
Flyinghead 15fa475f8a Move DumpTexture() to CustomTexture and other fixes 2019-01-02 09:33:19 +01:00
Flyinghead ecb689051f Custom textures fixes 2018-12-30 22:23:23 +01:00
Flyinghead 9a3dd1c2d1 build fix 2018-12-30 19:44:18 +01:00
Flyinghead 3f98c2ba3c Don't delete a texture when async load is pending 2018-12-30 19:19:27 +01:00
Flyinghead e7fee139e4 build fix 2018-12-30 18:50:24 +01:00
Flyinghead dd280ee24d Custom textures loading and dumping 2018-12-30 18:42:55 +01:00
Marcel Szewczyk 302bfcd582
Merge branch 'master' into mar753/render-to-texture-with-options 2018-12-30 18:26:31 +01:00
Marcel Szewczyk 7450c247d3 Minor formatting fixes 2018-12-30 12:17:39 +01:00
Marcel Szewczyk 127072ec8d RTT: Fixed slow rendering of RGBA5551 framebuffer format on Adreno 506 2018-12-30 12:16:34 +01:00
Marcel Szewczyk 0761ee713e RTT: glReadPixels() functions are now compatible with OpenGL ES 2.0 2018-12-30 12:13:45 +01:00
Marcel Szewczyk e981dd14f8 Render to texture full multipass support added; RTT stride textures support added 2018-12-30 12:08:51 +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 5664bfb9b6 pvr: use u32 for vertex indices to avoid overflow
Fixes alpilot glitches
2018-12-13 10:57:51 +01:00
Flyinghead 9fe13e20e8 Clip high z vertices
Fixes Soul Calibur intro bogus triangles
2018-12-06 20:46:23 +01:00
Flyinghead 93436c5ec1 Partially revert previous commit as it causes problems with RTT 2018-11-30 18:15:47 +01:00
Flyinghead 284dcf35a7 Add StrideSel to texture cache key as well 2018-11-30 18:06:32 +01:00
Flyinghead 63337d5178 Add ScanOrder to texture cache key
Fixes corrupted title screen in Grandia II
2018-11-30 17:56:57 +01:00
Flyinghead 2ef90152c9 GL: add #if in shader for trilinear filtering 2018-11-23 22:33:51 +01:00
Marcel Szewczyk 4d39c10c91 Build fixes 2018-11-11 23:22:17 +01:00
Marcel Szewczyk 5f19eb7ae8 Rtt menu options are now handled by GLES 2018-11-11 22:01:18 +01:00
Marcel Szewczyk 4fd9de54ce Added rtt menu options 2018-11-11 17:55:18 +01:00
Flyinghead 4bce2bbbbf OSX wants GLSL 1.4 or later 2018-10-30 11:48:44 +01:00
Flyinghead 6177a5b33a Clear texture cache on exit 2018-10-29 18:02:47 +01:00
Flyinghead ffb72cd0b6 Texture-based fog table 2018-10-29 00:31:24 +01:00
Flyinghead 96157de639 Enable log2 depth at runtime when supported (GL, GLES 3)
Fix issues with pixel scaling and scissoring.
Wacky Races should not be playable.
2018-10-28 22:09:36 +01:00
Marcel Szewczyk f309a59fac Render to texture single pass implemented 2018-10-28 20:16:45 +01:00
Flyinghead 77fae1ef09 Backport changes from libretro 2018-10-05 15:07:30 +02:00
Flyinghead 124f920170 Backport GL 2.0 support from libretro core 2018-10-04 22:37:35 +02: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 b8ae998252 If GL4 renderer is not supported, fall back to default. Fix SDL GL init. 2018-10-04 13:37:45 +02:00
Flyinghead 0260b00c00 Less code dup 2018-10-04 12:32:26 +02:00
Flyinghead 1dfc9902b7 Share scale_x and scale_y between GL and GL4 renderers. Don't use
ShaderUniforms in OSD.
2018-10-04 12:03:00 +02:00
flyinghead ef5e8593fa GL4: Initialize atomic buffer correctly. Limit size of pixel buffer.
SetupMainVBO should be static
2018-10-04 10:58:33 +02:00
Flyinghead 3f791d6f04 Merge OIT renderer into master 2018-10-04 10:29:23 +02:00
Flyinghead 0627530e33 GL: avoid white lines on the screen sides due to rounding 2018-10-02 12:28:42 -04:00
Flyinghead 5d8d1bd107 GL: Partial redraws. OSD fixes
EGL: Request the surface to be preserved between two rendering
Clear the sides of the screen when not rendering widescreen.
Do not re-create GL resources multiple times (android)
2018-09-30 12:39:47 +02:00
Flyinghead 9de8379434 GL: clear gl framebuffer before drawing a direct FB write 2018-09-29 18:10:43 +02:00
Flyinghead 407a579bfc GL: take pixel scaling into account for OSD buttons and text coords
Fixes OSD with Wacky Races and JoJo's Bizarre Adventure
2018-09-29 14:48:18 +02:00
Flyinghead c49e6c17d0 gl: isinf() issues with GLES3. Use it with GL only
Fixes black screen in PSO and Sonic Adventure 2 on Android
2018-09-27 21:45:03 +02:00
Flyinghead 7ce4fccb37 Merge remote-tracking branch 'origin/master' into fh/mymaster 2018-09-20 17:28:41 +02:00
Flyinghead df61073c39 Clip textures that extend past the end of VRAM.
Only load the valid portion of it.
Fixes Shenmue Space Harrier mini-arcade game.

Disable verify on non-square twiddled textures for Quake 3.
2018-09-18 12:01:16 +02:00
Flyinghead 663b77cee6 Fix OpenGL compile error with VMWare WS14 driver 2018-09-17 13:02:07 +02:00
Flyinghead 2a8591798f Only clamp color if tsp.ColorClamp is set. Thanks p1pkin 2018-09-12 17:50:42 +02:00
Flyinghead e54ac36544 Texture cache optimization for frequent palette updates
Some old 2D games change palettes very frequently, which causes the
texture to be updated for each render.
This change uses a hash of the palette to detect changes, and include
the palette type in the cache key to distinguish textures of different
depth.
2018-09-06 12:11:55 +02:00
Flyinghead 4a08856775 Render-to-texture upscaling must be accounted for when clipping 2018-09-05 15:07:30 +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 239e178226 Simplify framebuffer drawing and fix OSD 2018-09-03 15:05:37 +02:00
Flyinghead 228b40136f Only do color clamp when fog is on 2018-09-02 22:57: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
Ender's Games 75215ec0d1 Core: Address some obvious lgtm issues 2018-08-21 02:52:03 -04:00
Abandoned Cart 62837f4db0
Merge pull request #1235 from reicast/fh/alpha-pt-rounding-fix
Float math in alpha calculation causes some punch-through textures to…
2018-08-21 00:09:06 -04:00
Flyinghead ba78184461 Fix per-polygon sort option 2018-08-20 15:51:55 +02:00
Ender's Games 8d9d40dffc Core: Changes provided by Android NDK compiler 2018-08-19 01:54:15 -04:00
Flyinghead ffb25a470d Fix Wacky Races missing half screen 2018-08-17 18:33:24 +02:00
Flyinghead f3bbb06d8c GL: Missing float precision qualifier in Bump Map calc 2018-08-13 18:21:52 +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 fddf56c5a2 Fix TA overrun detection. Bump up verts to 2 MB, idx to 120K and TR
polys to 8K
2018-08-03 09:55:53 +02:00
Flyinghead 3a7a08f3fb Do not clear the framebuffer before rendering. Fix scissoring coords.
The framebuffer is cleared by the background plane using global clipping
coordinates. This allows multiple rendering to different locations on
the framebuffer.
Fixes flashing menus in Vanishing Point, loading screens in Test Drive
Le Mans and Vigilante 8.
Better rear view mirror in Metropolis Street Racer.
2018-08-02 17:20:18 +02:00
Flyinghead 31d8c1f091 Backport texture upscaling with xBRZ 2018-08-01 19:43:01 +02:00
Flyinghead 1533091151 Clipping: do pixel scaling only when not rendering to a texture 2018-07-30 18:57:32 +02:00
Flyinghead 63a70e0f62 isinf not available in GLES 2 2018-07-29 19:24:14 +02:00