Commit Graph

1672 Commits

Author SHA1 Message Date
Themaister c007e5860c Add extern "C" to glsym headers. 2013-08-11 00:56:53 +02:00
Themaister 26d74be8b8 Disable blending per frame with HW render. 2013-08-11 00:56:53 +02:00
Themaister 335c32d95d Support creating debug contexts. 2013-08-11 00:56:53 +02:00
Themaister 6b4924c844 Be more conservative about texture memory usage. 2013-08-11 00:56:53 +02:00
Themaister 911558462a Use core blend correctly when using core context. 2013-08-11 00:56:00 +02:00
Themaister c71777f5ec Clear out uniform struct and use stock shader. 2013-08-11 00:56:00 +02:00
Themaister 108d2e5c12 Add fixups for GLfixed. 2013-08-11 00:56:00 +02:00
Themaister db7d600184 Apply glsym APIENTRY fixups. 2013-08-11 00:56:00 +02:00
Themaister c2c88e2462 Append checks for OES_image ext. 2013-08-11 00:56:00 +02:00
Themaister 5045fc4a4f Fix GLSL regression. 2013-08-11 00:56:00 +02:00
Themaister b292caf92b Experimental support for PassPrev/PASSPREV.
Allows to access passes in a "negative index"
way. Helps stitching together multipass shaders from
other multipass shaders.

Also adds new, cleaner symbols, IN.mvp_matrix, IN.tex_coord, etc.
2013-08-11 00:56:00 +02:00
Themaister f00394e0af Add license statement to glgen.py. 2013-08-11 00:56:00 +02:00
Themaister 0b6f92e433 Allow explicitly banning specific exts in glsym. 2013-08-11 00:56:00 +02:00
Themaister 60b7d633a1 Don't append #version if it's already done. 2013-08-11 00:55:05 +02:00
Themaister 94b57197aa Purge cruft. 2013-08-11 00:55:05 +02:00
Themaister f8eb0c5a62 Query extensions more explicitly. 2013-08-11 00:55:05 +02:00
Themaister 318b26cc0d Fix Android build. 2013-08-11 00:55:05 +02:00
Themaister d64c24248d Use glsym wrapper in libretro-test-gl. 2013-08-11 00:55:05 +02:00
Themaister 2e397b1d6b Win32 fixups. 2013-08-11 00:55:05 +02:00
Themaister e44249b73f Use glsym symbol loader instead of ugly poking. 2013-08-11 00:54:27 +02:00
Themaister 805e623779 Use 3.1 in libretro-test-gl when CORE is used. 2013-08-11 00:53:46 +02:00
Themaister 9ab274a51a Use glXSwapIntervalEXT when available instead. 2013-08-11 00:53:46 +02:00
Themaister 913ad7753a Merge fixes. 2013-08-11 00:53:46 +02:00
Themaister 4e5c6b0f9a Fix RGUI when using bottom-left. 2013-08-11 00:53:46 +02:00
Themaister e5abd138ea More fixes to core context. 2013-08-11 00:53:46 +02:00
Themaister 6df083fc0f Add support for bottom-left origin in libretro GL. 2013-08-11 00:53:46 +02:00
Themaister feebb78f75 Support cached contexts on Win32.
Only tested on Wine, but works.
2013-08-11 00:53:46 +02:00
Themaister e18af77412 Add path to cache GL context on reinit.
If successful, can avoid libretro GL reset context callback being
called.
2013-08-11 00:53:19 +02:00
Themaister b090f5ab36 Implement WGL core context. 2013-08-11 00:51:05 +02:00
Themaister e28f5d7cc1 Fix incompatibilities with GL core. 2013-08-11 00:50:38 +02:00
Themaister b9fce188ea Initial work on core GL context support. 2013-08-11 00:50:04 +02:00
Themaister 51b17039d4 Completely new approach for threaded video.
Allows a good compromise between jitter and avoiding audio stutter.
2013-08-02 23:54:07 +02:00
twinaphex f7622d3294 Add OMAP graphics driver (Tobias Jakobi) 2013-07-28 18:37:31 +02:00
ToadKing b01856d166 remove reinit hack, turned out to be an emscripten bug 2013-07-20 00:30:54 -04:00
ToadKing ff3de25636 fix error on video re-init, other cleanup 2013-07-18 23:58:35 -04:00
twinaphex 627c30b10c Take out GRIFFIN macro hacks 2013-07-18 19:54:00 +02:00
ToadKing ace8ead2db Merge branch 'master' into emscripten
Conflicts:
	config.def.h
	gfx/gfx_context.c
2013-07-17 22:58:14 -04:00
ToadKing 49398698b5 initial emscripten port (no audio/files, input broken) 2013-07-17 20:26:01 -04:00
Themaister c54af19076 Purge SDL/GL context.
Conflicts:
	gfx/context/sdl_ctx.c
2013-07-18 01:48:23 +02:00
twinaphex a5e4b5e7f8 (APPLE) Take out SDL/GL context parts for OSX 2013-07-16 23:17:55 +02:00
twinaphex 119ee6d538 (XDK1) Fix build 2013-07-16 00:47:09 +02:00
twinaphex 63aaa7b2b0 (GL) Log vendor/renderer 2013-07-13 01:47:11 +02:00
meancoot a0d22d7c44 (Apple) Build fixes (hope I didn't break anything else with that merge) 2013-07-07 16:24:28 -04:00
meancoot b924302464 Merge branch 'master' of https://github.com/libretro/RetroArch
Conflicts:
	griffin/griffin.c
2013-07-07 16:20:08 -04:00
meancoot 3d9d672a38 (Apple) On OSX, a call to apple_run_core will actaully run the game 2013-07-07 13:05:05 -04:00
meancoot 99ba3ccea3 (Apple) Start setting up the OSX code 2013-07-06 23:54:47 -04:00
OV2 b9cbcd0b81 win32: add simple menu to opengl context 2013-07-07 02:22:11 +02:00
meancoot a852da4e88 Start spliting ios port into dual OS X and iOS ports 2013-07-06 18:24:25 -04:00
twinaphex df6dfb4970 (OSX/iOS) Start renaming ios_ namespace -functions we're going to implement for
OSX as well
2013-07-05 04:10:05 +02:00
twinaphex d215a2a0f5 remove ifdefs around puts PACKAGEVERSION line 2013-07-04 15:06:28 +02:00
twinaphex 77d5190a01 (OSX) Make dummy context file - compile in RetroArch with Griffin 2013-07-04 15:01:38 +02:00
OV2 bfd11dd1a4 win32: add _WIN32_WINNT define for multimon in mingw32 2013-06-20 16:08:39 +02:00
twinaphex ef2406e8f6 (Android) Another Xperia Play hack
(Context) Context file changes to do with FPS reporting
2013-06-16 18:18:47 +02:00
twinaphex c84750a752 (XDK) Move FPS printing code over to window_update_title function
as well
2013-06-14 17:28:53 +02:00
twinaphex 53df912321 (PS3) Move PS3-specific FPS printing code to ps3_ctx.c 2013-06-14 17:21:44 +02:00
twinaphex 1697be1908 (iOS) Build fix 2013-06-14 02:18:48 +02:00
twinaphex 43e6637768 (iOS/QNX) Add FPS/refresh rate monitoring 2013-06-14 02:17:20 +02:00
twinaphex 559c4a7964 (RARCH_CONSOLE) Add refresh rate FPS statistics 2013-06-08 01:45:25 +02:00
Themaister 02264f4d56 Fix Win32 derp. 2013-06-05 22:00:38 +02:00
Themaister 321ffcbca6 Calculate 1:1 PAR from right dimensions.
Frame cache can be stale or have awkward dimensions which
don't really reflect 1:1 PAR semantics.
2013-06-05 21:29:52 +02:00
Themaister 6dd0839a01 Use common monitor refresh rate estimator.
Ditch custom timing code in KMS.
2013-06-05 18:12:29 +02:00
Themaister 79275b28ff Fallback when initial shader init fails. 2013-06-05 10:44:27 +02:00
Themaister 1389346cbf Make sure that palette entries don't exceed max. 2013-06-04 14:26:21 +02:00
Themaister cb8deab105 Add Adam7 interlacing support to RPNG.
Now correctly decodes all basic format and odd size files from:
http://www.schaik.com/pngsuite/
2013-06-04 14:15:29 +02:00
Themaister 9abbd6b279 Support all color/bit formats in RPNG.
Only missing adam7 now.
2013-06-04 14:15:29 +02:00
Themaister 7c57563827 Fix RPNG save_image memleak. 2013-06-03 23:02:59 +02:00
Themaister 850ee9696e Drop broken delay logging in KMS.
Didn't serve any purpose anyways.
2013-06-03 01:37:52 +02:00
Themaister 43a6346d26 Adds video_hard_sync_frames.
Allows to control the maximum amount of frames that can be queued on
GPU.
2013-05-26 13:43:24 +02:00
twinaphex 20fdda8ca9 (RMenu) Move rewind settings to Settings submenu 2013-05-26 00:32:39 +02:00
Hans-Kristian Arntzen f5e1db1506 Fix HAVE_EGL in glx_ctx.c 2013-05-23 18:32:13 +02:00
Themaister 503ce7895c Reset BlendFunc with HW render. 2013-05-22 21:41:10 +02:00
twinaphex 46f29b1178 New define RARCH_MOBILE 2013-05-22 16:02:21 +02:00
Themaister fb934931bc Make SDL/GL last prio. 2013-05-21 22:41:59 +02:00
Themaister b4b83cdf41 Use VBOs in GLSL.
Future proof a bit as future GL versions
require use of VBOs. Also avoids spamming client-side
data to GL all the time.

VAOs are not used, but that is only relevant if we actually
create a GL3+ context.
2013-05-21 10:44:25 +02:00
Themaister b4b669f0e5 Run thread_frame() even when frame = NULL.
Fixes RGUI on cores which use duping.
Also avoid redundant frame.lock locking.
If thr->frame.updated is false, the lock
cannot possible be held by thread.
2013-05-19 22:28:32 +02:00
Themaister 12288e9b8c Avoid potential performance regressions.
PSGL uses GL_ARGB_SCE, and not GL_RGBA for one ...
2013-05-19 11:25:56 +02:00
Themaister 18fd41f77e Avoid Pi hack.
Derp. Was configured to low GPU RAM split ...
2013-05-18 22:10:29 +01:00
Themaister f61cc333e9 Be more explicit about FBO formats.
GLES doesn't support 32-bit FBOs.
They seem to only be exposed via OES_rgb8_rgba8 and ARM_rgba8
extensions.
2013-05-18 21:53:26 +02:00
Themaister c1bd2d25c6 Fix desktop GL build. 2013-05-18 21:23:59 +02:00
Themaister 9406b0a771 More explicit logging of FBO errors. 2013-05-18 16:51:10 +01:00
Themaister e5ba936355 Disallow EGL images when using HW render. 2013-05-18 14:51:36 +01:00
Themaister ef257a6e8e Always use ios_bind_game_view_fbo().
Should hopefully fix libretro-test-gl and co.
2013-05-13 19:33:47 +02:00
twinaphex f5d9d5042d (iOS) No EGL on iOS, and couldn't find an equivalent AGL version of eglGetProcAddress -
so NULLing out for now
2013-05-12 15:09:49 +02:00
twinaphex 9bfebe7d0b (iOS) Implement get_proc_address in iOS context driver 2013-05-12 14:19:54 +02:00
Themaister 179b374c39 Add JNI target to libretro-test-gl.
Fixup GLES build.
2013-05-12 03:40:07 +02:00
twinaphex 71c699b5fc (Android/QNX) get_proc_address was not bound in context driver 2013-05-12 01:15:44 +02:00
Themaister 75c5a04e49 Fix GLES build.
GLES doesn't support glReadBuffer() ...
2013-05-11 16:04:46 +02:00
Themaister 74c8afc492 Fix GPU screenshots in GL.
Had to make sure to use GL_FRONT buffer.
2013-05-11 15:50:19 +02:00
Themaister 7903cc5658 Fix warning. 2013-05-11 13:30:41 +02:00
Themaister 364786e83c Fix matrix_projection().
(3, 3) is zero.
2013-05-09 19:02:32 +02:00
Themaister c2822ded51 Correctly initialize matrices. 2013-05-09 16:44:46 +02:00
twinaphex 435a7dc467 Add matrix_scale/matrix_translate/matrix_projection - file will be
reused for libretro 3D projects so leave this in
2013-05-09 14:04:44 +02:00
Themaister f5d4008018 Check g_settings.video.hard_sync per frame.
Don't use hard_sync default in RGUI.
2013-05-04 22:49:06 +02:00
Themaister 10278786ba Flush before ClientWait. 2013-05-04 00:23:32 +02:00
Themaister 741ed2cc03 Add experimental video_hard_sync. 2013-05-03 14:04:29 +02:00
Themaister 1521113e8f Build fixes. 2013-04-25 00:03:02 +02:00
twinaphex 34619412bc (RARCH_CONSOLE) Get rid of video_stop_func 2013-04-24 16:08:18 +02:00
Themaister 7ab09e9d95 Don't allow resize on OSX with SDL context. 2013-04-23 09:37:06 +02:00
Themaister b92deddd40 Shorten rotation names to avoid overflowing menu. 2013-04-21 18:25:30 +02:00
Themaister ff75660c45 Clear out FBO targets correctly. 2013-04-21 15:39:14 +02:00
Themaister e696f1b18f Clear out backbuffer correctly. 2013-04-21 15:29:44 +02:00
Themaister 37acbc4b7a Fix overlay rotation bug in D3D9. 2013-04-21 15:14:49 +02:00
Themaister 54bf4f68a8 Fix single pass in D3D9. 2013-04-21 14:14:43 +02:00
Themaister dd351c9483 Always clear out backbuffer fully. 2013-04-21 14:09:48 +02:00
Themaister 8bb4cbae46 Avoid complete reinit on apply_state_changes.
Clean up multi-pass logic a bit in D3D9.
2013-04-21 14:04:16 +02:00
Themaister 068beedf3c Verify that RGUI texture is non-zero.
If we're converting, just use ARGB8888 in d3d9.
2013-04-21 12:07:57 +02:00
Themaister c7471ac133 Fix D3D9 viewport when X/Y is < 0. 2013-04-21 11:21:53 +02:00
Themaister 53b7d43b67 Rework to D3D9 aspect ratio handling. 2013-04-21 11:21:07 +02:00
Themaister e95a15d4ed CGP fixes in D3D9. 2013-04-21 11:18:55 +02:00
Themaister 1e4cc2164c Remove some unneeded/unused D3D9 stuff. 2013-04-21 00:54:25 +02:00
Themaister 6dd7ea935e Add GL_SHADER_STOCK_BLEND.
Replace stock shader with a special shader which does not apply color.
This is a necessary on Android.
2013-04-20 15:46:50 +02:00
Themaister 4f7d3b5ea0 Add custom viewport + integer scale mode. 2013-04-20 12:48:33 +02:00
Themaister be01a0ea59 Refactor aspect ratio handling.
Rework aspect ratio handling in RGUI.
Custom viewports work on PC. Ensure that aspect_ratio_idx persist
through reentrancy. Change ASPECT_RATIO_AUTO to ASPECT_RATIO_SQUARE to
better signal that it's the square pixel option.

Add ASPECT_RATIO_CONFIG as an option to use config file defined aspect
ratio.
2013-04-20 10:56:04 +02:00
CatalystG 387f81ba93 (BlackBerry) A working BB10 Cascades frontend to choose rom and core currently 2013-04-19 13:32:17 -04:00
Themaister d2ea83729e Fix uniform integer_scale bug. 2013-04-18 08:57:38 +02:00
Themaister b2fba94850 Don't load state tracker if not necessary. 2013-04-16 22:30:28 +02:00
Themaister 9aab315045 Save lut paths correctly in shader_parse. 2013-04-16 22:22:26 +02:00
twinaphex 98d35ec6df (XDK 360) Add more optimal calls for hlsl_use 2013-04-16 21:33:40 +02:00
twinaphex 671725cfdd (XDK D3D) Replace more functions with optimal inlined functions 2013-04-16 16:47:20 +02:00
Themaister 2b0697205d Set LUT uniforms for vertex shader as well. 2013-04-16 14:27:24 +02:00
Themaister 2c8ddeb109 Add gfx_shader_resolve_relative.
Translates relative paths (from CGP) into absolute paths,
suitable for loading files, and saving cgp some place else.
2013-04-15 23:48:25 +02:00
twinaphex f548b50234 Fix gfx/vg.c - update_window_title param 2013-04-14 23:48:22 +02:00
twinaphex 639ca3bb97 (GL PS3) Take out glClear at start of gl_frame 2013-04-14 15:02:22 +02:00
twinaphex a6f3210593 (GL) Drop glBlendFunc GL_ONE function call - not needed for RMenu at least 2013-04-14 13:18:09 +02:00
Themaister 3d477a04c8 Don't call eglSwapInterval until context is alive. 2013-04-14 12:16:55 +02:00
Themaister 7a8628ff41 Don't ifdef update_tex_filter_frame for FBO. 2013-04-14 01:56:13 +02:00
Themaister ca5ff43b6f Add default filtering option to RGUI. 2013-04-14 01:45:33 +02:00
Themaister e1c1e4d414 Call gl_update_tex_filter in set_shader. 2013-04-14 01:31:32 +02:00
Themaister 67a69d0339 Don't delete RGUI texture on reinit. 2013-04-14 00:26:22 +02:00
twinaphex a2438f7b80 (RMenu) Fix - don't want to glDeletTexture RGUI texture when
game texture has to be reinitialized
2013-04-14 00:11:57 +02:00
OV2 a56ef3e518 win32: allow null pointer as shader path in d3d 2013-04-13 17:10:49 +02:00
OV2 41336a506f win32: respect rgui fullscreen param in d3d 2013-04-13 17:10:49 +02:00
Themaister c17714ffbb Add full screen mode to set_texture_enable. 2013-04-13 16:49:25 +02:00
Themaister ad78c9fd77 Another Win32 fix. 2013-04-13 14:39:14 +02:00
Themaister 70e961e007 Fixes to Win32 build. 2013-04-13 14:38:08 +02:00
Themaister f73f1971f9 Fix threaded driver.
Fix case when no poke interface was implemented.
2013-04-13 14:35:24 +02:00
Themaister e389220df8 Refactor frame_counter.
Graphics drivers get the task of updating this.
If threaded driver is used, main thread cannot update the counter
due to race conditions.
2013-04-13 14:28:12 +02:00
twinaphex 1eadb9fcab Cleanups 2013-04-13 09:16:23 +02:00
twinaphex c51347c532 Drop MODE_VIDEO_SCREENSHOTS_ENABLE 2013-04-13 09:09:56 +02:00
twinaphex 33798edb27 Drop most of the unnecessary GL shader wrapper functions/macros -
these were necessary before we made the shader backends
2013-04-13 09:01:25 +02:00
Themaister a148abf131 Fix build.
Need to include config.h.
2013-04-13 00:01:28 +02:00
twinaphex b7ebfa6945 (GL/PS3) Get rid of gl_cg_reinit - no longer needed anymore 2013-04-12 22:19:37 +02:00
twinaphex 142c3b8892 (GLSL) Same deal here - go through backend interface for functions
and drop public scope for functions
2013-04-12 22:07:17 +02:00
twinaphex a5bbc7da5f (HLSL) Fix build - work with new shader backend 2013-04-12 21:56:43 +02:00
twinaphex a6db35875d (Cg/HLSL) Since everything goes through the shader backend interface now,
we can drop public scope on all the functions and make them static
instead
2013-04-12 21:25:16 +02:00
twinaphex e2039f8bff (360/HLSL) refactor shader_hlsl.c 2013-04-12 20:06:08 +02:00
twinaphex 52a9a3d10a (360) No longer need to deploy the shaders dir 2013-04-12 18:20:08 +02:00
twinaphex 5a9194a95c (360) Cleanup shader_hlsl.c 2013-04-12 15:14:34 +02:00
Themaister b9e6d04379 Fix Win32 build. 2013-04-12 09:21:41 +02:00
twinaphex 30e190bdae Remove superfluous wcstombs / mbstowcs wrappers 2013-04-11 17:18:23 +02:00