Commit Graph

  • b9296dd354 Add stdint.h to netplay_private.h master U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 17:55:18 +02:00
  • 6adeffd85c (winraw_joypad) Optimizations: * scale_axis — float→integer arithmetic (called per axis per report) Replaced the double division, multiply, clamp, and convert chain with a single int64_t multiply-divide * hat_value_to_bitmask — switch→LUT (called per hat per report) Replaced the 8-case switch (which the compiler may or may not optimize into a jump table) with an explicit static const uint8_t[8] lookup table * parse_hid_report — targeted memset + hoisted locals (hottest function) * joypad_state — fully inlined (called every frame per port) * WM_INPUT handler — stack buffer fast path The old code always called GetRawInputData twice per message: once to get the size, once to read. Since most gamepad HID reports fit in ~64-128 bytes, the new code tries a 256-byte stack buffer first. On the common path this cuts the syscall count in half. * joypad_poll — removed TranslateMessage Our message-only window only gets WM_INPUT and WM_INPUT_DEVICE_CHANGE. TranslateMessage is for keyboard virtual-key translation — calling it here was pure overhead. * Struct layout — hot/cold field separation Moved connected, hDevice, num_buttons, axes[], hats[], buttons[] to the top of the struct so the fields touched on every poll and every report share cache lines. Cold fields like name[256], caps, and the capability pointers are pushed to the bottom. U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 16:20:30 +02:00
  • 668ce8a754 (winraw_joypad) Disconnecting and reconnecting controller should work now without registering double inputs U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 16:11:20 +02:00
  • 69d74b9807 (input_driver.c) have extra guard around winraw_joypad inclusion so it only gets picked up for Windows U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 16:07:21 +02:00
  • 24779c1c2a (Windows) Implement winraw joypad driver Experimental, read notes in winraw_joypad.c file U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 16:02:04 +02:00
  • 8352da8627
    Merge 5ddcebd1b9fc2d43ab9f688690af292e46869b71 into f5a41dbb045c909ee9dd826f4201c8499adf07b8 Ecco 2026-04-05 15:32:47 +02:00
  • f5a41dbb04 (xinput_hybrid_joypad.c) Performance improvements U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 14:50:10 +02:00
  • 4dbef7db8f (dinput_joypad) Performance optimizations: * Float division → integer threshold (dinput_joypad_state) * Removed redundant ZeroMemory (dinput_joypad_poll) * Loop bound g_joypad_cnt (dinput_joypad_poll) * Offset-table axis lookup (dinput_joypad_get_axis_val) * Fixed dangling rumble pointers (struct + dinput_create_rumble_effects) * Named POV constants (dinput_joypad_button_state) * Removed free(NULL) guards (dinput_joypad_cleanup_pad) U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 14:36:55 +02:00
  • 90f1a4d313
    Merge 17e0df23dcf9f1b030337db3bb8c549230677ad4 into 4d9e5f25d4f1347ff849523492da09a5135e3853 Craig 2026-04-05 06:08:40 -05:00
  • 4d9e5f25d4 (tpool) Improvements: * NULL check after calloc in tpool_work_create — prevents NULL dereference on allocation failure. * Simplified tpool_work_destroy — removed redundant NULL guard since free(NULL) is a no-op. * Fixed race condition in tpool_worker — changed the if condvar wait to a while loop that also checks tp->stop, so spurious wakeups and shutdown broadcasts are handled correctly. The stop flag is now rechecked after waking. * working_cnt only incremented when work is actually obtained — avoids inflating the counter when a thread wakes but finds no work, which previously could block tpool_wait unnecessarily. * Moved the decrement/signal block inside the if (work) branch — since working_cnt is no longer incremented without work, the decrement path only runs when there was real work. * Full NULL checking in tpool_create — checks calloc, slock_new, scond_new, and sthread_create return values. Tracks thread_cnt based on actually created threads. Cleans up and returns NULL if everything fails. * scond_signal instead of scond_broadcast in tpool_add_work — only one thread can consume each work item, so waking all threads is wasteful. * Queue pointers cleared in tpool_destroy after draining — prevents dangling pointers. This thread pool only seems to be used by the ffmpeg core anyways U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 11:26:51 +02:00
  • 8e09ee04ba
    Merge 7eaf7aa449be1b7e92832cdc7440ec7e7e816214 into feb7fa0ffa857b0115e404d8534a850bce0ee699 1150654748m-dev 2026-04-05 10:48:30 +02:00
  • feb7fa0ffa (dinput/xinput) inline headers U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 10:40:57 +02:00
  • a65a2208bf move winsock2.h header include into .c file instead of .h U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:23:31 +02:00
  • 825ba49af6 Revert "Merge header files into respective files" U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:21:47 +02:00
  • 99f58e3cc0 Revert "* Integrate headers into dinput_joypad.c/xinput_joypad.c/xinput_hybrid_joypad.c" U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:21:28 +02:00
  • d2b72ac09d Revert "Add winsock2.h header include in input_driver.c" U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:21:21 +02:00
  • ab652d1f11 Revert "Make symbols unique" U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:21:14 +02:00
  • 9e72cf3db1 Make symbols unique U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:19:30 +02:00
  • 179c7477c8 Add winsock2.h header include in input_driver.c U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:12:04 +02:00
  • 69dcc9203f * Integrate headers into dinput_joypad.c/xinput_joypad.c/xinput_hybrid_joypad.c * Take out winsock2.h include in input_driver.h and put it in input_driver.c instead U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 09:08:13 +02:00
  • 28cddf2746 Merge header files into respective files U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 08:57:31 +02:00
  • 5b1f31897e Add dinput_joypad_cleanup_pad for dinput_joypad_excl.h U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 08:47:15 +02:00
  • 145cd5ddb1 Mark TODO/FIXME for globals that are not thread-safe U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 08:17:05 +02:00
  • 6c3fb714ab (DXGI) Initialize r, g, b, a in FORMAT_PROCESS U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 08:15:44 +02:00
  • 3cc04278e5 Attempt to make code reentrant - still won't work on second content load U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 07:07:13 +02:00
  • 1e297d4909 ffmpeg improvements: * Excessive global mutable state - consolidate core state - put all static global variables inside a struct * print_ffmpeg_version calls swresample unconditionally - put behind HAVE_SWRESAMPLE ifdef * fix Mixed declaration style for i in for loops inside #if blocks U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 07:02:17 +02:00
  • ad692b3699 (ffmpeg_core) Improvements: * Fix magic number * Fix C++ comments U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 06:38:39 +02:00
  • c22f160661 (ffmpeg core) replace string_is_equal with memcmp U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 06:34:32 +02:00
  • ea91f87cc2 (ffmpeg core) Fix issue - variable declared mid-block, C89 violation U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 06:29:18 +02:00
  • 20e4c5f91e (ffmpeg core) fix issue - av_freep misuse av_freep is called on the target frame's data before av_frame_free frees the frame itself, but the cast to (AVFrame*) is wrong — av_freep expects a pointer-to-pointer and will interpret the frame struct's first bytes as a pointer, corrupting memory. This should be av_freep(&video_buffer->buffer[i].target->data[0]) to free the image buffer allocated by av_image_alloc, followed by av_frame_free. U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 06:27:50 +02:00
  • a398eb0abb Merge packet_buffer and video_buffer into fffmpeg_core U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 05:32:03 +02:00
  • 86ed47cc94 Optimize core_info_does_support_file further: 35% faster. strlcpy concatenation into a stack buffer, the tolower() calls (vs the cheaper bitwise OR), and the second comparison loop against the prefixed string that could never match anyway U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 05:04:08 +02:00
  • be449dc778 Simplify info core_info_does_support_file without breaking its functionality U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 05:01:18 +02:00
  • 990f35d814 (state_manager) Remove dead function U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 04:56:18 +02:00
  • 5641cc1590 core_info_does_support_file: rollback, fix regression U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 04:53:59 +02:00
  • 7764540f4e
    Merge 02ca3ec7b8cd68b2c0ef30c3f48029a2908043d1 into 2c1667ad639844e8b76dbf2fc42360058b6c461d diekleinekuh 2026-04-04 22:11:58 -04:00
  • e6069973b2
    Merge 6b8830172ca6deeeeeeb45e31773df4bca532c93 into 2c1667ad639844e8b76dbf2fc42360058b6c461d Dragoon Dorise 2026-04-04 21:52:13 -04:00
  • dbe6920a6c
    Merge ae13e4ec6b690a24a11be27fb86bc103c014ece3 into 2c1667ad639844e8b76dbf2fc42360058b6c461d Rob Loach 2026-04-04 21:51:02 -04:00
  • cf90a8c5a0
    Merge c6eb401578daf8ca158b0a615a4233caa5e720b1 into 2c1667ad639844e8b76dbf2fc42360058b6c461d Iansboro 2026-04-04 21:50:54 -04:00
  • 2c1667ad63 Fixed conditional - History and Favorites were no longer showing up for RGUI U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 02:56:50 +02:00
  • 9f353c412f Fetch translations from Crowdin github-actions 2026-04-05 00:26:35 +00:00
  • bbb50af3e1 menu_setting.c; * remove string_is_empty * replace string_is_equal with memcmp U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 00:38:40 +02:00
  • 479891b549 menu_explore: remove string_is_empty and replace string_is_equal with memcmp U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 00:32:57 +02:00
  • 8485d150d7 win32_get_client_rect - use GetClientRect instead of GetWindowRect U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-05 00:12:57 +02:00
  • 85d770507d
    Merge 0424a5e76bf5e8ac83dc771a9b4e74a8570e5aff into b28cf7c2603371b01c43b3d7a8b909456e2e3378 David Hedlund 2026-04-04 17:30:48 -04:00
  • b28cf7c260 Fix win32_key_name_to_meta - get rid of the static buffer, would be overwritten after first use U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 23:28:07 +02:00
  • b54384a12b win32_browser - no more strdup/free of startdir U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 23:17:38 +02:00
  • 2d8d60bba3 (win32_common) Fix issues in pick_core_proc U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 23:08:46 +02:00
  • 39c6eb1f7e Fix win32_get_video_output U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 23:00:43 +02:00
  • c6e5a23725 (win32_common) Changes: * Fix WM_IME_COMPOSITION case in wnd_proc_common_dinput_internal * We cannot close the handle for power requests, make TODO/FIXME note U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 22:48:35 +02:00
  • 538a21bd07 (win32_common) Fix memory leaks in win32_browser and win32_suspend_screensaver U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 22:39:25 +02:00
  • a7f1e4eb34 (glslang_util) Optimizations: * Reduced allocations * Eliminated redundant work * Faster format lookup U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 22:01:28 +02:00
  • eb6a7220d2
    Merge 5493ce0600ff2922a6e5fec145f1f0b531180746 into 07ccc1314f74b593a531c806890a9836f36bf3d1 Matt Akins 2026-04-04 21:57:42 +02:00
  • 07ccc1314f (state_manager) Reduced memory allocation U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 21:33:39 +02:00
  • 4822a5f7ac
    Merge 2a63a2b38af81d60664697eafc3df38f0e66d791 into fce1da4b170114df95c6b4b6ec0caf04e53f6f06 eadmaster 2026-04-04 14:18:34 -05:00
  • ab808ee422 Fix C89_BUILD U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 21:17:42 +02:00
  • fce1da4b17 (video_shader_parse) Reduce heap use U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 21:05:42 +02:00
  • 194e867974 Reduce stack usage and move some memory to heap; safer on systems with low stack size U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 20:56:56 +02:00
  • 9d9c1bc07b configuration.c - reduce memory allocations - less heap use, still safe for low stack size platforms like consoles * eliminates heap fragmentation * reduced allocator contention U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 20:43:27 +02:00
  • c57b054cd9
    Merge e1ad2ca070f5c2b120c9e2351c4745d479e385d9 into 460e579da17808058d827ab59ebb077af6e83b86 Brandon T. Kowalski 2026-04-04 16:34:32 +00:00
  • a5e7af5a46
    Merge c565b89d99956c3c0cb58b778f0a0bb65e54b547 into 460e579da17808058d827ab59ebb077af6e83b86 Craig 2026-04-04 18:21:50 +02:00
  • 460e579da1 Slang: sync semantic names array with BrightnessNits rename MajorPainTheCactus 2026-04-04 07:38:08 +01:00
  • 2a176c62e0
    Slang: sync semantic names array with BrightnessNits rename MajorPainTheCactus 2026-04-04 07:38:08 +01:00
  • 2ce32b883d (core_info) Optimizations: core_info_does_support_file: 45% faster, no more path_basename, replaced string_list_find_elem_prefix with string_list_find_elem core_info_qsort_cmp: 44% faster U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 07:42:52 +02:00
  • 9484832691 Replace strncpy calls with strlcpy U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 06:36:47 +02:00
  • 5024b07060 Buildfix U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 06:20:49 +02:00
  • 8c2a2b9f09 Replace some string_is_equal calls U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 06:00:05 +02:00
  • 7eaf7aa449 Fix VFS crash - Add null pointer and buffer overflow protection 1150654748m-dev 2026-04-04 11:48:25 +08:00
  • 7b9785fdca C89_BUILD buildfix U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 04:25:03 +02:00
  • df617a3439 retroarch_parse_input - RA_OPT_SIZE no longer uses sscanf - up to 4-5x faster U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 04:15:53 +02:00
  • 9b20bbdf2d (libretro-db) query_parse_integer: no longer use sscanf. Up to 5-10x faster U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 03:57:25 +02:00
  • eb3d8482bd glslang_parse_meta: reduced memory allocation config_get_size: no more sscanf dependency U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 03:51:34 +02:00
  • ae08ed2aec glslang_parse_meta - no longer uses sscanf but strtod. about 3x faster than sscanf original function U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 03:43:00 +02:00
  • d6b974c007 (menu_setting) No longer use sscanf for float/uint/int callback functions - significantly faster when doing it with strtoull/strtod U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 03:36:53 +02:00
  • 8f27f13d92 Move msg_hash_lbl_str.h outside of intl/ directory, it was getting messed with by crowdin U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-04 03:06:14 +02:00
  • fbd0dc8e12 Fetch translations from Crowdin github-actions 2026-04-04 00:24:33 +00:00
  • 99a7af84f3 fix processing of MODE1_RAW/MODE2_RAW CHD tracks Jamiras 2026-04-03 18:19:59 +00:00
  • 12adf36121 Ozone: Fix thumbnail stream delay regression Ryunam 2026-04-03 22:54:15 +02:00
  • bc6dcd599a
    Merge ffe9e858ca0ebd86a4ec4db0f1e8bd0b4f02acf5 into 94ec5bdb0d5f9da17bacc73c02fddc1cc7e46d89 ma-moon 2026-04-03 23:01:09 +02:00
  • 28c31f017c Ozone: Fix thumbnail stream delay regression Ryunam 2026-04-03 22:54:15 +02:00
  • 90150540d2
    Merge 4e17090269084a98efaca35c91218b40ecbaa13e into 94ec5bdb0d5f9da17bacc73c02fddc1cc7e46d89 ma-moon 2026-04-03 22:15:59 +02:00
  • d5e021617e
    Merge 2a40432f89bd712d87cdb3b82177166b858aba82 into 94ec5bdb0d5f9da17bacc73c02fddc1cc7e46d89 Andre Leiradella 2026-04-03 21:53:57 +02:00
  • c565b89d99 make assets update optional on first run and enable by default for webOS Craig Carnell 2026-03-30 16:38:44 +01:00
  • 5e97b182b9 Download various asset files on startup if necessary. Eric Warmenhoven 2024-01-08 12:37:26 -05:00
  • 69d25c9e40 fix processing of MODE1_RAW/MODE2_RAW CHD tracks Jamiras 2026-04-03 18:19:59 +00:00
  • 94ec5bdb0d
    Update README.md LibretroAdmin 2026-04-03 17:07:14 +02:00
  • 42577ff5dc Take out msg_hash_to_str from some files U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 17:00:47 +02:00
  • c34a1ccb79 Fix filestream_tell_cb guard in file_stream.c. Clownacy 2026-04-03 13:20:25 +01:00
  • 05bcbd19ab
    Fix filestream_tell_cb guard in file_stream.c. Clownacy 2026-04-03 13:20:25 +01:00
  • 7d4616bbde net_http: Optimized versions of net_http_urlencode and net_http_urlencode_full. net_http_urlencode should be anywhere from 7 to 12x faster and with 26-66% less memory allocation U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 13:46:21 +02:00
  • c907a12c07 (RGUI) Simplify code for RGUI_ASPECT_RATIO_AUTO in rgui_set_aspect_ratio U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 13:18:44 +02:00
  • 702fd881d4 (compat_ifaddrs) Buildfix U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 13:14:20 +02:00
  • e6fbf8434b New implementation of strlcpy based on OpenBSD - should be dramatically faster the bigger the string is. Anywhere from 47x faster with 1KB strings to 819x faster with very long, truncated strings. It's a naive two-pass implementation using strlen and memcpy. These builtins are often SIMD accelerated in the standard library, hence much faster throughput vs the naive hand rolled version U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 13:00:09 +02:00
  • b97939c428 compat_ifaddrs - cleanups, C89_BUILD fixes U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 12:41:45 +02:00
  • 02b248c8eb (Menu drivers) Don't call string_to_unsigned twice needlessly U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 12:08:12 +02:00
  • 1dcd874272 (ozone) Don't call string_to_unsigned twice U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 12:05:57 +02:00
  • 46daea0180
    Merge 884ce45915fff4f4a6e0c5f1cdc64fa88db176d4 into ff8b7dcd89568cc83a02585463946348b347bbd9 Joe Osborn 2026-04-03 04:08:24 -04:00
  • ff8b7dcd89 remove more msg_hash_to_str instances U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 09:47:16 +02:00
  • 1314871282 Use label string literal constants more U-DESKTOP-SPFP6AQ\twistedtechre 2026-04-03 08:45:25 +02:00
  • dd6eb0531b UWP/MSVC: Small Tweaks GABO1423 2026-04-02 23:21:47 -04:00