Commit Graph

2232 Commits

Author SHA1 Message Date
Rémi 6c47f02bdf Fixing OpenGL shader rotation 2019-11-16 19:52:47 +01:00
Rinnegatamante 2a77dc5600 Make code C89 compliant. 2019-11-13 21:44:59 +01:00
Rinnegatamante 96845f4a7e [VITA] Removing a no more used ifndef. 2019-11-13 00:45:48 +01:00
Rinnegatamante 2b20c8d350 [GL1] Fixed core frame renderer. 2019-11-12 19:46:37 +01:00
Rinnegatamante f3ca57e6f0 [VITA] Add vita video driver context. 2019-11-12 16:33:36 +01:00
Rinnegatamante 6b7673f806 [VITA] Fixing gl1 video driver crashes. 2019-11-12 15:37:37 +01:00
Rinnegatamante 1533d618e5 [VITA] Allow usage of null context with gl1. 2019-11-12 13:50:14 +01:00
Rinnegatamante 6394342b9c [VITA] Add gl1 video driver support through vitaGL. 2019-11-12 11:54:00 +01:00
Francisco Javier Trujillo Mata fd75ae487e Disable the duplication FPS in PSP 2019-10-16 00:46:29 +02:00
Rinnegatamante 26b0bc771d Add vulkan context logging. 2019-10-13 17:47:08 +02:00
Twinaphex 2d769d4bfb
Merge pull request #9558 from justinweiss/ctr-gfx-fix-flickering-with-osd
Fix 3DS screen flickering when OSD is enabled
2019-10-06 03:39:23 +02:00
Justin Weiss 64dc3dde40 Fix 3DS screen flickering when OSD is enabled
On the 3DS, for some cores, the screen will flicker if OSD is enabled,
and sometimes when going in and out of the menu.

As far as I can tell, this happens when a frame is dup'd, and we send
0x0 as the frame to the gfx driver. When that happens, we still draw
the OSD, using a vertex shader to transform and render it at the right
size.

When the frame is 0x0, though, the vertex shader uniforms are never
_reset_ to redraw the previous frame, so it's drawn with different
params, and gets drawn the wrong size. It will draw as the correct
size when the correct vertex shader uniforms are set, and the
incorrect size when the incorrect uniforms are set, causing
flickering.

At least, that's what I think is happening. Forcing the vertex shader
to be set regardless of whether the frame data is set fixes it, at
least during some light testing with PCSX.
2019-10-05 14:21:42 -07:00
Francisco Javier Trujillo Mata c48ccdb1fc Fix memory leak in the PS2 GFX and PS2 Font 2019-10-03 23:41:56 +02:00
twinaphex 547f8968aa (GL1) Buildfix + cleanups 2019-10-01 03:14:18 +02:00
GH Cao 27d2877106 gl1: take care of const 2019-10-01 06:51:29 +08:00
GH Cao 897488862e gl1: adapt C89 2019-10-01 06:24:06 +08:00
driver1998 0212567d75 Support GLDirect (D3D9 to OGL1.1 wrapper) in gl1 driver 2019-10-01 06:02:30 +08:00
twinaphex c5b3428408 Add sdl2_common.c/.h 2019-09-22 12:40:40 +02:00
twinaphex c7fd375120 Create video_driver_display_userdata_{set/get} 2019-09-22 07:35:05 +02:00
twinaphex 03bddff8e6 Cleanups of update_window_title functions 2019-09-22 03:05:06 +02:00
twinaphex 302e2fdc53 Move show memory details outside of the video context driver and
into retroarch.c - avoid lots of code duplication
2019-09-21 07:49:33 +02:00
twinaphex b28c405377 Backport and rebase initial FPGA port that was done in 2017 (port
done for Z-Turn board) - has some outstanding issues such as
very slow framebuffer software rendering output that needs to
be overcome before this becomes usable - community help needed
2019-09-17 08:16:50 +02:00
twinaphex 861262ef3a (network gfx) Cleanup 2019-09-17 05:04:57 +02:00
Brad Parker c7c7d0988e initial network video driver, sends raw frames over TCP 2019-09-17 04:18:44 +02:00
jdgleaver 3a680df733 (glcore) Ensure correct scaling of menu texture (RGUI) 2019-09-03 12:52:26 +01:00
twinaphex cb8107a154 remove video_context_driver_init_image_buffer 2019-08-29 11:26:28 +02:00
twinaphex d406fee72e Remove video_context_driver_suppress_screensaver 2019-08-28 22:52:41 +02:00
twinaphex c50cc7b010 Remove video_context_driver_show_mouse 2019-08-28 21:36:58 +02:00
twinaphex aeedeb14a9 (Vita) Vita has no video context driver set, so this can go 2019-08-28 21:30:17 +02:00
twinaphex fa3b927ece Get rid of video_context_driver_get_proc_address 2019-08-28 21:26:43 +02:00
twinaphex 88720b540e Get rid of video_context_driver_swap_interval 2019-08-28 21:12:51 +02:00
LazyBumHorse a882901e39 save unmodified auto-shaders as a reference instead of a copy, see:
- implement #reference directive for auto-shaders
 - replace usual preset saving and loading functions with video_shader_read_preset() and video_shader_write_preset()
 - apply saved presets automatically for console menus
 - move auto-shader saving logic from menus into menu_shader.c menu_shader_manager_save_auto_preset()
 - refactor menu_shader_manager_save_preset() into menu_shader_manager_save_preset_internal()
2019-08-22 16:57:28 +02:00
twinaphex d52c573e13 Merge slang_preprocess.cpp into slang_process.cpp 2019-08-18 18:55:22 +02:00
twinaphex 6c671faed6 Start preparing for menu_widgets_ready to be moved to retroarch.c 2019-08-15 14:20:51 +02:00
twinaphex 980be6dba3 (GL2) Cleanups 2019-08-14 16:40:47 +02:00
twinaphex 3585d56067 (Vita2D) video_driver_get_size was used for no reason here 2019-08-13 12:34:34 +02:00
twinaphex dc3711b35f (GX2) video_driver_get_size was used for no reason here 2019-08-13 12:33:09 +02:00
twinaphex d43b26348b (Vulkan) Don't use video_driver_get_size 2019-08-13 12:28:16 +02:00
twinaphex e43c55bef3 (GLCore) Don't use video_driver_get_size 2019-08-13 12:23:02 +02:00
twinaphex c3d624267b (GL) Start avoiding usage of video_driver_get_size
from within video drivers
2019-08-13 12:14:53 +02:00
twinaphex 4a09f66c7b (GL drivers) Cleanups 2019-08-12 22:04:27 +02:00
twinaphex ed6f682754 Make code more similar to gl2 video driver 2019-08-12 21:07:12 +02:00
twinaphex fdd45f1f6b (glcore) memset is unnecessary 2019-08-12 20:55:46 +02:00
twinaphex 2a631bd031 (glcore) Turn this into macro 2019-08-12 20:52:33 +02:00
twinaphex a45c9b6eb4 Duplicate aspect ratio code that was being ran twice 2019-08-12 12:52:40 +02:00
twinaphex 211e664e5d (GX2) Cleanups 2019-08-08 14:54:21 +02:00
twinaphex 65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00
orbea 779fbabc79 Fix CXX_BUILD=1 with libsixel. 2019-07-22 14:24:40 -07:00
Roman Fomin e01095a51b Fix maintaining aspect ratio 2019-07-23 01:33:43 +07:00
LazyBumHorse f8b92770d4 simplify video_shader_read_conf_preset() calls 2019-07-21 18:15:28 +02:00
twinaphex b33eb9bacf Cleanups 2019-07-21 12:13:04 +02:00
twinaphex b6b22a9a32 More shader refactors - make sure we can compile entirely
without shader support if HAVE_CG, HAVE_GLSL, HAVE_SLANG
and HAVE_HLSL are all not defined
2019-07-21 00:34:07 +02:00
Twinaphex 388c4857d3
Merge pull request #9140 from LazyBumHorse/shader_paths
much improved handling of relative shader paths
2019-07-20 21:54:58 +02:00
LazyBumHorse 2245af23e9 much improved handling of relative shader paths
- save texture paths in relative format as well
 - always write portable relative paths on Windows using '/' instead of '\'
 - remove an ancient piece of code that could sometimes fail loading relative paths
 - fix absolute path handling between different drives for Windows
 - integrate video_shader_resolve_relative() into video_shader_parse_* functions
2019-07-20 18:29:46 +02:00
twinaphex a0060182e3 Add more ifdefs covering HAVE_THREADS and HAVE_AUDIOMIXER 2019-07-20 16:09:39 +02:00
twinaphex d905986a52 Rename functions - change rarch_ prefix to retroarch_ 2019-07-20 12:43:43 +02:00
twinaphex c0787accc3 Use config_file_new_from_path_to_string 2019-07-18 12:13:09 +02:00
twinaphex 27a65714f2 Remove some globals 2019-07-12 00:21:31 +02:00
twinaphex a867e3916e (D3D9) Silence warning when neither HAVE_MENU or HAVE_OVERLAY
is defined
2019-07-11 01:10:00 +02:00
twinaphex dc40a2ab66 (Travis) Another Travis buildfix 2019-07-11 01:03:35 +02:00
twinaphex 09f5d2c95d Fix compilation when configuring with --disable-overlay 2019-07-10 05:39:50 +02:00
twinaphex f0f5c32b51 Remove state tracker - legacy code - we can revisit this later
and integrate it in a way so that it scales across all drivers
2019-07-09 07:39:38 +02:00
LazyBumHorse f5497a4249 fix some bugs found through Clang Static Analyzer:
- task_content.c, load_content_from_compressed_archive: fix use after free
 - platform_win32/uwp: fix frontend_..._get_powerstate never returning FRONTEND_POWERSTATE_NONE
 - platform_win32/uwp: fix whitespace
 - cheevos.c: fix potential use after free in a loop, just to be save
2019-07-04 21:15:19 +02:00
LazyBumHorse c4530eb3f4 d3d9: add Cg/HLSL shader runtime check depending on the used renderchain 2019-06-25 10:57:46 +02:00
LazyBumHorse 17ec59ff21 enable Cg shader flag for d3d9 2019-06-24 23:41:05 +02:00
Twinaphex f23497fd80
Merge pull request #9014 from LazyBumHorse/fix_d3d9
fix d3d9 not rendering xmb and temporarily disable widgets due to segfault
2019-06-24 16:07:03 +02:00
LazyBumHorse 1f69f3960a fix d3d9 not rendering xmb and temporarily disable widgets due to segfault 2019-06-24 15:42:55 +02:00
twinaphex 405d3fec67 (CXX_BUILD) Silence warning 2019-06-24 15:09:56 +02:00
Twinaphex 596b375da5
Merge pull request #9001 from LazyBumHorse/metal_cocoa_flags
fix shader flags for metal
2019-06-22 14:53:18 +02:00
LazyBumHorse b8258a711a workaround for metal not being able to poll shader flags during init 2019-06-22 14:22:34 +02:00
Twinaphex 98c1f04635
Merge pull request #8998 from LazyBumHorse/fix_gl_set_shader
fix black screen in gl if video shaders were switched from on to off in the shader menu
2019-06-22 13:18:25 +02:00
LazyBumHorse b5199d7921 fix black screen in Metal 2019-06-22 11:07:08 +02:00
LazyBumHorse e5421940be fix gl's and d3d9's set_shader not returning to stock if path is NULL 2019-06-21 14:10:55 +02:00
twinaphex 761636a540 (Wiiu) add forward declaration 2019-06-20 21:10:07 +02:00
twinaphex 3a9a8d8d70 (WiiU) Buildfix 2019-06-20 08:38:40 +02:00
Twinaphex c523acbfe7
Merge pull request #8989 from LazyBumHorse/fake_context
temporary workaround for d3d10-12, gx2 not being able to poll flags during init
2019-06-20 00:37:53 +02:00
twinaphex 71e86bcc9c (GLSL) Put this around HAVE_GLSL ifdefs 2019-06-19 22:34:05 +02:00
LazyBumHorse 7b6444d911 temporary workaround for d3d10-12, gx2 not being able to poll flags during init 2019-06-19 19:10:40 +02:00
twinaphex 5d91af629e Set SHADERS_SLANG flag for D3D10/11/12 and query the video driver poke
interface's 'get flags' function before querying the video context
driver's 'get flags' function (D3D10/11/12/WiiU don't have a context
driver at all)
2019-06-19 03:18:28 +02:00
Brad Parker d01f04c146 d3d10/11/12: add GPU selection 2019-06-18 16:35:50 -04:00
Twinaphex a9a1ff0047
Merge pull request #8979 from LazyBumHorse/fix_dolphin_crash
workaround for crash due to glcore not always using at least OpenGL 3.2
2019-06-18 20:18:14 +02:00
LazyBumHorse c20c67bd3a proper shader compatibility checks
- move shader flags from the video drivers to the context drivers
 - rework config_load_shader_preset() from configuration.c into retroarch_load_shader_preset() in retroarch.c with proper compatibility check
 - implicitly call retroarch_load_shader_preset() in retroarch_get_shader_preset() once per core/content life cycle
 - use video_shader_is_supported() instead of video_driver_test_all_flags() where appropriate
 - remove GFX_CTX_FLAGS_NONE because it is meaningless
2019-06-18 13:46:41 +02:00
LazyBumHorse 692dc9f6a9 refactor shader checks affected by last commit and more:
- gl.c: refactor backend fallback into more general gl2_get_fallback_shader_type
 - d3d9-12, gl_core, gx2_gfx, gl, vulkan: more consistent shader init and `set_shader` behavior
 - configuration.c: remove check_shader_compatibility
 - shader_glsl.c, shader_gl_cg.c: use `video_shader_get_type_from_ext`
 - shader_gl_cg.c: add shader type check with fallback to stock like in shader_glsl.c
 - menu_shader.c: use `enum rarch_shader_type` instead of `unsigned`
 - video_shader_parse.c: add `video_shader_to_str` for easier logging
 - remove `type` from `struct video_shader`, which was always set to CG and wrongly used in lang_process.cpp's `slang_process()` (has no further consequences because the code is unused)
2019-06-18 13:44:19 +02:00
LazyBumHorse 42e35c825f refactor some video_shader_parse functions
- video_shader_parse_type()'s fallback only worked for NULL paths and was wrongly used, now returns RARCH_SHADER_NONE like video_shader_get_type_from_ext().
 - video_shader_get_type_from_ext() should not be checking video driver flags, this is instead done by video_shader_is_supported()
 - video_driver_get_all_flags() did not actually 'get' flags, changed to video_driver_test_all_flags()

workaround for crash due to glcore not always using at least OpenGL 3.2
2019-06-18 13:12:56 +02:00
LazyBumHorse 76438fa098 workaround for crash due to glcore not always using at least OpenGL 3.2 2019-06-17 18:28:04 +02:00
twinaphex f061941456 Integrate record_driver.c into retroarch.c 2019-06-17 16:23:46 +02:00
twinaphex ee3208ac39 Integrate video_driver.c into retroarch.c 2019-06-17 15:10:22 +02:00
twinaphex f60306b232 Rename read_conf_cgp/write_conf_cgp to
read_conf_preset/write_conf_preset
2019-06-15 09:00:35 +02:00
jdgleaver e6c236d275 (Wii) Add widescreen RGUI support 2019-06-11 15:57:50 +01:00
Tatsuya79 3b31dafa7e
glcore rotation fix for desmume 2019-06-06 20:11:08 +02:00
Tatsuya79 1cc307a879
glcore fix wrong rotation with HW cores 2019-06-06 17:05:07 +02:00
Ash Logan 24fba02a9f (GX2) Display menu texture at full opacity
rgui does its own transparency effects in the texture, so we don't have 
to add another 50% on that
2019-06-05 23:19:35 +10:00
Ash Logan 87be0d366f (GX2) Use correct pixelformat ordering for menu texture
This fixes up some backwards colours on wiiu, resulting in all the
themes looking lovely.
2019-06-05 23:18:09 +10:00
jdgleaver 736ff13e35 (GEKKO) Add optional overscan correction 2019-06-04 15:50:47 +01:00
Ash Logan 3d40a3bcaf (GX2) Respect filtering settings for menu 2019-06-03 21:41:03 +10:00
Ash Logan 3461955dae (GX2) Scale menu to viewport size 2019-06-03 21:38:40 +10:00
Ash Logan ab4ca8cf1b (GX2) Use correct menu coordinates to render menu 2019-06-03 20:35:46 +10:00
LazyBumHorse 9ab49b7b2c Add FrameDirection for metal and gx2_gfx 2019-05-29 21:06:44 +02:00
LazyBumHorse b54ad4d67f implement FrameDirection slang semantic for d3d10,11,12 2019-05-29 18:09:37 +02:00
Brad Parker 086b3ccfb7 gl1: ignore alpha in core video, fixes XRGB8888 rendering in some cores 2019-05-25 17:08:30 -04:00
LazyBumHorse ee3cda8abf added "FrameDirection" slang semantic and implementation for glcore and vulkan 2019-05-24 22:11:12 +02:00
twinaphex 6aed230930 Reimplement 'Take Screenshot' - if GPU-accelerated viewport screenshots
are not available, resort to raw screenshots instead
2019-05-22 07:08:11 +02:00
Brad Parker 711ea77390 glcore: store GPU device/version string 2019-05-21 21:43:31 -04:00
Dwedit 24fa0cd5b5 Move `pool_info.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;` to after the other variable declaration (so all variable declarations happen before any other code) 2019-05-17 14:29:23 -05:00
twinaphex ecb6318f40 Some buildfixes 2019-05-13 01:07:02 +02:00
Huw Pascoe acb28a38c4 video_layout gl basic implementation 2019-05-11 14:23:26 +01:00
Huw Pascoe 2c56011f84 video_layout interface 2019-05-11 09:58:48 +01:00
Nathan S edb37ccf70 menu widgets: cleanup fix and draw above overlay for gl and vulkan (#8732)
* menu_widgets: cleanup properly all widgets when loading or closing content

* gl: draw menu widgets above overlay

* vulkan: draw menu widgets above overlay

* vulkan: draw OSD above overlay

* menu_widgets: better cleanup
2019-05-11 06:26:40 +02:00
twinaphex 360f8189e0 (D3D8/D3D9) Screenshots don't seem to work, disabling 2019-05-05 14:25:16 +02:00
twinaphex f349410082 (CTR/3DS) hide 'Take Screenshot' since screenshots are not implemented
anyway
2019-05-05 14:14:14 +02:00
twinaphex 3b110c0e3b (D3D8) Add 'Screenshots supported' 2019-05-05 13:55:12 +02:00
twinaphex c3d2b190f2 (dispmanx) Implement get_flags 2019-05-05 13:49:06 +02:00
twinaphex a0b2d97ca3 Hide 'Take Screenshot' for video drivers that don't support
taking screenshots yet
2019-05-05 13:46:26 +02:00
orbea 9e9849170d Silence unused function with --disable-menu.
gfx/drivers/gl_core.c:1529:13: warning: ‘gl_core_draw_menu_texture’ defined but not used [-Wunused-function]
 static void gl_core_draw_menu_texture(gl_core_t *gl, video_frame_info_t *video_info)
             ^~~~~~~~~~~~~~~~~~~~~~~~~
2019-05-04 08:26:49 -07:00
twinaphex 066643ac6e (GX2) Buildfix 2019-05-01 00:11:43 +02:00
twinaphex bc2bdd5734 config_file_read not needed anymore 2019-04-30 13:37:10 +02:00
twinaphex c2f95940fb (GL1) Whether GL1 driver has windowed mode support or not
depends on the video context driver and not the video driver itself
2019-04-29 07:21:37 +02:00
twinaphex 3e72c502a8 strlen optimizations :
- use STRLEN_CONST for constant strings, translates to sizeof
which should be computed at compile-time
- found some places where we are needlessly calling strlen two
times instead of just once
2019-04-27 04:21:10 +02:00
Twinaphex e9bbc8d8dd (gl_core.c) Remove unused variable 2019-04-24 03:49:34 +02:00
twinaphex 04d062b3d4 (MSVC2003) Enable HAVE_OPENGL1; make HAVE_OPENGL1 independent from
HAVE_OPENGL
2019-04-22 22:48:23 +02:00
twinaphex 146b4ccc50 Use config_file_read in more places 2019-04-22 02:20:04 +02:00
twinaphex 499235cd40 (CXX_BUILD) Another buildfix 2019-04-20 19:55:50 +02:00
Brad Parker e7dbac7eb0 prevent null derefs found by scan-build 2019-04-18 11:46:53 -04:00
jdgleaver a9a5782cc0 (3DS) Fix screen tearing when running 50Hz content 2019-04-16 15:44:47 +01:00
jdgleaver 54e1711f9a (3DS) Sanitise/Improve display mode selection 2019-04-15 17:05:55 +01:00
Brad Parker 95145ec0d4 remove debug code 2019-04-12 21:17:04 -04:00
Brad Parker b8471aa3dc gl1: add gpu hard sync support and print osd statistics 2019-04-12 19:28:34 -04:00
Huw Pascoe fed06044c4 silence warnings 2019-04-12 17:32:11 +01:00
twinaphex 702c889cd1 (D3D10/11/12) Menu widgets can now appear ingame 2019-04-11 02:22:21 +02:00
Themaister f82601c4a8 glcore: Fix GLES build. 2019-04-08 21:17:13 +02:00
twinaphex 0af7167586 (GL1) Add menu widgets support 2019-04-08 18:58:26 +02:00
twinaphex c12e8dea07 (D3D10/11) All struct members are already being set 2019-04-08 18:42:52 +02:00
jdgleaver 9fff07e589 (Menu Widgets) Fix text alignment issues with Vulkan and D3D video drivers 2019-04-08 13:35:35 +01:00
Brad Parker 9579804c72 gl1: add overlay support 2019-04-05 23:07:59 -04:00
twinaphex ab33d16da1 Small cleanup 2019-04-03 16:33:16 +02:00
twinaphex 25ba8f4ab0 (GL1) GL1.x won't have mipmapping support 2019-04-03 16:13:01 +02:00
orbea 3fb4ed753d Fix caca warning.
One too many lines were removed in
commit f67bfa24ef.
2019-03-19 21:54:51 -07:00
twinaphex 794f9c8968 (GL) Add comments 2019-03-18 16:02:28 +01:00
twinaphex 7c93da1360 (GL2) Simplifications 2019-03-18 15:57:43 +01:00
twinaphex 819016b00c Move video_shader_driver_init to gl.c 2019-03-18 15:52:21 +01:00
twinaphex 27928081cf Cleanups 2019-03-18 15:27:37 +01:00
twinaphex f67bfa24ef Get rid of video_poke_interface set_mvp 2019-03-18 15:19:11 +01:00
twinaphex fe1255094f Get rid of now unused set_coords in video_driver_poke_interface 2019-03-18 05:04:23 +01:00
Brad Parker a8a06d498c gl1: fix matrix not loading when threaded video is on 2019-03-17 12:46:01 -04:00
Francisco Javier Trujillo Mata adf2743464 Implement CDFS and custom file descriptor support 2019-03-15 20:19:14 +01:00
Themaister e3a88e8806 glcore: Set frame count in shader interface. 2019-03-15 15:36:18 +01:00
twinaphex c8eb85ec2e Implement gl_core_wrap_type_to_enum 2019-03-14 20:04:04 +01:00
twinaphex 643cd1923e CXX_BUILD / C89_BUILD buildfixes 2019-03-14 14:14:44 +01:00
Brad Parker 8064672f11 gl: set shader data to null after deinit 2019-03-13 16:22:04 -04:00
Brad Parker 97247dbaec gl1: check for vender/renderer was in the wrong place 2019-03-13 14:44:03 -04:00