Commit Graph

217 Commits

Author SHA1 Message Date
Autechre 2d3c63f545
Merge pull request #11248 from justinweiss/update-libctru
[3DS] Update to libctru 2.0
2020-09-10 06:49:54 +02:00
twinaphex 5f08605680 Refactor joypad drivers 2020-08-30 05:29:32 +02:00
Justin Weiss f53c137459 [3DS] Enable threading 2020-08-27 19:36:39 -07:00
Justin Weiss 9ae2514009 [3DS] Update to libctru 2.0
Set USE_CTRULIB_2=1 to build with libctru 2.0. When unset, this code
is compatible with the older toolchain.

Some 2.0 changes addressed rare problems in earlier versions:

- Save / restore stack pointer for init / exit
  Otherwise, it could be outside of the range we deallocate.
- Run aptMainLoop in the audio driver to react correctly to sleep events

Other changes for 2.0:

- Remove ninjhax1 -- requires outdated APIs that have been removed
- Switch from __sync_arbiter to syncArbitrateAddress
- Use implicit gxCmdBuf
- Use gpuPresentBuffer for double buffering
2020-08-26 19:08:12 -07:00
twinaphex 72afa2f932 Cleanups 2020-08-03 16:33:54 +02:00
twinaphex 3e41cbc381 Revert "Add get_metrics to poke interface"
This reverts commit 119689c940.
2020-08-02 23:44:28 +02:00
twinaphex 119689c940 Add get_metrics to poke interface 2020-08-02 19:25:45 +02:00
bulzipke 1c0fb50877
Update ctr_gfx.c
It fixed the sound cracking when opening or closing the 3DS screen.
2020-07-28 15:03:43 +09:00
twinaphex 3d893b7602 Add extra parameter to unload_texture 2020-07-27 10:15:28 +02:00
twinaphex 1ae20ea17c Style nits - turn macro names into upper-case - some while style nits 2020-06-26 20:00:19 +02:00
jdgleaver 1fde6f8aed Fix 3DS build 2020-06-09 10:57:00 +01:00
Guo Yunhe e9916df9d0 Change keys to upper case 2020-06-02 10:28:00 +03:00
twinaphex 9ace693ec0 Refactor menu_driver_frame 2020-05-19 16:20:43 +02:00
valadaa48 6e4228b054 Add drm_go2_ctx for odroidgo2
- Revert odroidgo changes to drm_ctx
- Introduce new drm_go2_ctx specifically for odroidgo2 (and libgo2)
- Add hw_scaling option to mitigate builtin gl scaling/filtering and to
use libgo2 and rga's hw scaling and bicubic filtering via librga. The
quality of the image is improved by this and should be a bit faster.

Credits to CrashOverride for the initial libgo2 port and
commit to RA. And to natinusala for the initial cleanup/commit in the original
drm_ctx driver. NOirBRight for finding this setting and testing.
2020-03-28 03:30:28 +00:00
twinaphex c4dfa1e12a (Gfx drivers) Cleanups 2020-03-10 19:52:05 +01:00
twinaphex f4c5036c3c Get rid of video_frame_info dep for fonts 2020-03-10 03:24:59 +01:00
twinaphex b7da58b40b (Gfx) Video driver cleanups 2020-03-09 16:15:53 +01:00
twinaphex ee2f25b1dc (Gfx drivers) Cleanups 2020-03-09 05:18:02 +01:00
Justin Weiss a96be2cdce [3DS] Keep the bottom screen hidden on sleep/wakeup
When the 3DS wakes back up after being closed, the bottom screen needs
to be reinitialized. Adding the condition here will cause the screen
to be turned on or off based on the state of
ctr_bottom_screen_enabled, as you'd expect.
2020-02-28 23:01:22 -08:00
twinaphex a4c19457ce Found one instance where userdata was not implicitly set to NULL 2020-02-21 20:48:11 +01:00
twinaphex d36941b81d (CTR) Buildfix 2020-02-19 00:23:45 +01:00
twinaphex 3a94c52426 (gfx drivers) Start reducing settings pointer usage 2020-02-18 14:51:40 +01:00
twinaphex ec302bc4fc video_set_nonblock_state - remove settings dependency 2020-02-16 22:26:07 +01:00
twinaphex 47af95469a (font_driver.c) Remove configuration.h dependency 2020-02-16 21:59:03 +01:00
twinaphex f0e889b552 Change prototype of video_driver_set_size 2020-01-31 15:06:50 +01:00
twinaphex f92a507a9b Change function signature of font_driver_render_msg 2020-01-04 16:24:14 +01: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
twinaphex a45c9b6eb4 Duplicate aspect ratio code that was being ran twice 2019-08-12 12:52:40 +02:00
twinaphex 65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +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
Huw Pascoe 2c56011f84 video_layout interface 2019-05-11 09:58:48 +01:00
twinaphex f349410082 (CTR/3DS) hide 'Take Screenshot' since screenshots are not implemented
anyway
2019-05-05 14:14:14 +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
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
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
orbea bfc366decc Squeeze extra blank lines with cat(1).
Example:

find . -type f -iname '*.c' | while read -r i; do
  cat -s "$i" > "$i.new"
  mv "$i.new" "$i"
done
2019-01-08 11:04:58 -08:00
jdgleaver ca13805937 (3DS) Add 'bottom screen' enable to User Interface menu 2018-11-14 16:41:19 +00:00
twinaphex c4c8699ee3 Only show max swapchain images if supported by video driver and/or
context driver
2018-04-23 13:34:30 +02:00
Brandon Wright 7a00534378 Add poke interface for get_refresh_rate. 2018-04-15 17:56:11 -05:00
twinaphex 9b8713aebd Fix Coverity defects 2018-03-24 11:59:01 +01:00
twinaphex 4d1b4f905f Start adding OSD statistics - doesn't work yet for SDL2/SDL 2018-03-23 17:43:49 +01:00
twinaphex 08e61230e9 Update video_poke_interface 2018-01-30 22:29:57 +01:00
twinaphex 82d44e9ad3 Cut down on more HAVE_MENU ifdefs 2017-12-31 18:02:14 +01:00
twinaphex cf3a010ead Remove some HAVE_MENU ifdefs 2017-12-31 17:42:07 +01:00
aliaspider 1f143927ca (CTR) build fix. 2017-12-25 08:51:50 +01:00
gblues 6904101c44 Clean up trailing whitespace
== DETAILS

Really simple code cleanup, because my editor flags trailing whitespaces
and it's pretty annoying.
2017-12-12 00:24:18 -08:00
twinaphex 683c437941 Updates 2017-11-14 21:34:03 +01:00
twinaphex b11620e1eb Add retro_timers.h/retro_math.h 2017-06-28 04:41:38 +02:00
Daniel Jimenez 22fc07a839 Fix mirrored images in vertical games on 3DS (bug #4817)
On branch master
 Your branch is up-to-date with 'origin/master'.
 Changes to be committed:
	modified:   ctr_gfx.c
2017-06-11 18:12:37 -07:00
twinaphex 80d9d1f143 Rewrite task_queue 2017-05-14 20:43:48 +02:00
twinaphex d4756f83e5 Stop calling video_driver_context_has_windowed from within video
drivers
2017-05-13 19:11:32 +02:00
twinaphex e84adb504f Don't try to call video_driver_is_threaded from outside
gfx/video_driver.c - only exception right now - menu_display.c
2017-04-29 16:52:52 +02:00
twinaphex c8bf28842f Get rid of some calls to video_driver_viewport_get_custom 2017-04-29 16:11:31 +02:00
twinaphex 6930262ec2 Update/buildfixes 2017-04-29 12:44:45 +02:00
twinaphex 552845a94d Buildfixes 2017-04-29 02:39:32 +02:00
twinaphex 87106b03c1 (3DS) Buildfix 2017-04-28 22:14:34 +02:00
twinaphex cc095e56fc Start refactoring bool variables 2017-04-28 00:53:20 +02:00
twinaphex 2a13af52fc Revert "video_init function - video_info_t should not be const -"
This reverts commit c8bcbad4a7.
2017-04-24 12:25:14 +02:00
twinaphex e5b38315fe Revert "Add real_width and real_height to video_info struct - let"
This reverts commit 831ea1a507.
2017-04-24 12:25:07 +02:00
twinaphex 831ea1a507 Add real_width and real_height to video_info struct - let
the drivers set this depending on the video width/height they
get back from the video context driver
2017-04-24 12:18:28 +02:00
twinaphex c8bcbad4a7 video_init function - video_info_t should not be const -
try to set video_driver_width/video_driver_height outside
of video driver init function
2017-04-24 12:03:21 +02:00
twinaphex 5a3b78bad3 Get rid of more performance counters 2017-04-24 11:24:16 +02:00
twinaphex 34852e159a Cut down on amount of times video_driver_build_info is called 2017-04-23 22:20:11 +02:00
twinaphex a9164b7124 Try to use performance counter plus functions in most cases 2017-01-25 17:12:43 +01:00
twinaphex 6661c0fb94 Rewrite performance counter stop/start/init into macros 2017-01-25 16:53:06 +01:00
twinaphex e0a560f60a Turn C++ comments into C comments 2017-01-23 01:37:19 +01:00
twinaphex 2f504b4057 (gfx/drivers) Get rid of remaining runloop.h / runloop_ctl
references inside gfx/drivers
2017-01-22 18:17:48 +01:00
twinaphex 96c8ca5a09 Header update #1 2017-01-22 13:40:32 +01:00
twinaphex 27ae782a8e (CTR) Add this header 2017-01-19 17:17:20 +01:00
twinaphex e0ff0541a2 Pass video_info pointer to font drivers 2017-01-19 16:30:40 +01:00
twinaphex d010a852e4 Call menu_driver_frame once per video_frame call 2017-01-18 22:20:47 +01:00
twinaphex bf511b72e6 Create menu_driver_frame 2017-01-18 21:23:18 +01:00
twinaphex a6a4808e94 Refactor frame monitor code 2017-01-18 17:41:27 +01:00
twinaphex c1c35c5120 More platform build fixes 2017-01-10 21:15:52 +01:00
twinaphex 76ae7ac4a0 Cleanup some of the video drivers - add some members to
video_info_t to reduce the need for accessing the settings
struct
2017-01-10 18:16:22 +01:00
twinaphex be2f921ee2 Don't use settings pointer inside video_frame function 2017-01-09 14:25:59 +01:00
twinaphex 5fc1b0c88e Remove obsolete font_driver_has_render_msg 2016-11-20 17:51:16 +01:00
Higor Eurípedes 6f2cb9742d (font) Create font_data_t and update font_driver_init_first() 2016-10-18 20:07:00 -03:00
aliaspider f9e7d4dc3f (3DS) fix gfx corruption when closing content. 2016-10-13 12:16:07 +01:00
aliaspider d48445fc1e (3DS) video driver:
- texture handling improvement.
- flush pending tasks while waiting for vsync.
2016-10-10 22:25:25 +01:00
aliaspider 4edbb48f34 (3DS) missing return value. 2016-10-08 01:17:48 +01:00
aliaspider d87adcd226 (3DS) fix texture combiner stages in 32bit mode. 2016-10-04 20:38:00 +01:00
aliaspider 23eef2c6ee (3DS) video driver: (cont.) 2016-10-04 15:55:30 +01:00
aliaspider c4daa087d4 (3DS) video driver: add some checks for the validty of incoming data. 2016-10-04 15:49:55 +01:00
twinaphex 23ed63f33a move device_aspect variable 2016-10-02 20:37:14 +02:00
aliaspider 056224bf50 (3DS) avoid using ctrGuCopyImage during font init for now. (fixes freeze
on cia builds)
2016-09-30 16:16:18 +01:00
aliaspider afd5e85a31 (3DS) add experimental font and menu_display drivers. 2016-09-29 20:14:12 +01:00
aliaspider 5db13323f6 (3DS) create gfx/common/ctr_common.h.
remove depthbuffer.
use vramalloc.
2016-09-28 20:59:54 +01:00
aliaspider dc16477c46 (3DS) fix tearing, the displayed framebuffer was being set to the
currently selected drawbuffer.
2016-09-28 18:34:38 +01:00
aliaspider 8266a423cd (3DS) update for latest ctrulib. 2016-09-28 18:09:17 +01:00
twinaphex 3cf24afc44 (CTR) Buildfix 2016-09-11 16:43:56 +02:00
twinaphex 51b0e61712 Cleanups 2016-09-11 16:24:02 +02:00
twinaphex 202e3e796e Get rid of more general.h includes 2016-09-11 14:46:53 +02:00
twinaphex acd4dd527b Header include cleanups 2016-09-05 18:31:32 +02:00
twinaphex 281a33d61f Rename function to performance_counter_init 2016-05-16 09:58:45 +02:00
twinaphex f5bc75c640 Rename retro_perf_start/retro_perf_stop 2016-05-16 09:53:54 +02:00
twinaphex 18355d4748 Rename retro_perf_stop 2016-05-16 09:48:14 +02:00
twinaphex b79b2dca13 Create performance_counters 2016-05-10 08:53:14 +02:00