CD-i discs have a unique quirk: they store data in tracks labeled as
AUDIO in both CUE and CHD formats. The scanner normally skips AUDIO
tracks when looking for data, causing CD-i games to never match the
database.
* Update 800x240 mode for n3DS models
- Backported 800x240 display settings from libctru
- Removed/renamed old 800x240 display functionality
- Readded menu option for non-2DS models
* replace bannertool.exe with a working version
* Update ctr_defines.h
* Fix missed rename
* improved vulkan_create_swapchain() to handle swapchain creation better and avoid crashes
* As requested by PR review, reverted back to original create_swapchain function with only minimal changes made for this bug fix on Android only
* fixed oepsie with copy paste
* fixed oepsie with copy paste
* Fixed random crash on Android when destroying old swapchain before new one is created with minimal changes to original vulkan_create_swapchain() function
* Restored all my initial changes without all the reformatting of the code (#3)
* The VK_DATA_FLAG_CREATED_NEW_SWAPCHAIN should be cleared otherwise every call to this function can be handled as a new swapchain creation while it might not be the case, it fixes crashes on Android
In talking with @BinBashBanana it became clear this wasn't necessary,
and it has started to conflict with some code in emscripten's
libpthread in recent versions.
* Fix an OOB memory access in x11 input if >16 devices
It looks like the mouse device list was meant to be initialized with
-1, but the mouse device list should contain only up to `j` values
where j is the number of actual mice.
* Also make sure j stays under max mouse idx
This is just to be safe in case we have... more than 16 master pointers
* Add a work-in-progress Storage Access Framework backend to libretro-common/vfs
* Fix compilation error in `retro_vfs_file_open_impl()` on Windows
* Don't gate the contents of vfs_implementation_saf.h behind `HAVE_SAF`
* Add a button to the file browser on Android for opening a directory picker
* Fix a bug in `retro_vfs_path_split_saf()`
* Don't include inaccessible directories in the file browser in Google Play Android builds
* Fix missing return statement in `action_ok_open_picker()`
* Improve the documentation for the SAF VFS backend in libretro-common
* Implement opening the path in the file browser when selected using the SAF tree picker
* Change indentation style in VfsImplementationSaf.java to 3 spaces
* Check if `vfs_saf_get_jni_env` is null in vfs_implementation_saf.c before performing VFS operations
* Fix stat function in SAF VFS backend
* Don't gate the definition of `safTreeAdded()` behind `HAVE_SAF`
* Fix memory leak when calling `retro_vfs_closedir_impl()` on a SAF directory
* Fix `NullPointerException` in `SafStat` constructor
* Create global references for all Java classes used by the SAF VFS backend
* Improve the readdir implementation for the SAF VFS backend
* Fix a bug in `retro_vfs_path_join_saf()`
* Show the list of SAF trees that the app can access in the file browser on Android
* Improve error handling in VfsImplementationSaf.java
* Check if the directory already exists in the mkdir implementation in VfsImplementationSaf.java
* Enforce a minimum Android API level of 21 in VfsImplementationSaf.java
* Remove the comma at the end of `enum vfs_scheme` in libretro-common/include/vfs/vfs.h
* Fix nonstandard C89 in libretro-common/vfs/vfs_implementation.c
* Fix mkdir implementation in VfsImplementationSaf.java
* Fix open implementation in VfsImplementationSaf.java not creating files that don't exist
Xcode 26 keeps reordering things, I don't know why, I'm tired of
fighting it.
The Metal capture doesn't work with tvOS 13 so default disable that,
it's easy to turn back on if needed. Only affects debugging.
* Announce netplay player information to the lobby server
This information is optional and merely informational. The lobby
might ignore it (and it ignores it at the current version).
* Display lobby information on player/spectator counts
The issue is that a replay frame read on core frame K stores the
inputs for frame K along with the core state as of *the end of frame
K*, in other words the beginning of frame K+1. To fix it, and to make
sure existing replays play back properly, the `core_unserialize` call
in bsvmovie.c has been deferred to the following invocation of
`bsv_movie_read_next_events`, so that frame K+1 is deserialized just
before reading the inputs for frame K+1.
Some refactoring has also been done to simplify the number and timing
of calls to bsv_movie functions from runloop.c.
Holding on to the task pointer is risky, because when the task queue
is popped a message is pushed but the task may be freed. I made a
very small-scale fix to just the new use-after-free that started
happening with the alternative look.
Lets the core query the frontend for the desired target output samplerate.
Will return false if the output samplerate cannot be queried, will return
true if it's implemented. data returned will be of unsigned type
* Add save checkpoint, prev/next checkpoint commands and hotkeys
* Fix copy paste error in meta binds
* Implement save_replay_checkpoint command
* Implement prev/next checkpoint commands
* Update per @jamiras review
* add command to seek to a specific frame number
* Add message queue toasts for seek forward/back
* Fix basis for seek, produce full message on reply
* fix bugs seeking back during record
* Tidy up
* Allow back and forwards seeking of recording replays while paused
* Update changelog
* Simplified onNewIntent content detection logic and added activity state tracking
* Added activity state detection to prevent parameter conflicts when resuming from home screen
Enables launchers to use the FLAG_ACTIVITY_CLEAR_TOP launch flag to open games. It checks if the launched game is already running or if it's a new game to launch over the existing one. This provides an alternative to launchers using FLAG_ACTIVITY_CLEAR_TASK which results in a crash on many Android 13 devices if RetroArch is already running in the background.
* Implement fallback OpenGL symbol loader for Linux devices with EGL < 1.5
The `eglGetProcAddress` in old versions of EGL can only get extension
functions, so we need to supplement it with another symbol loader that
can get non-extension functions.
* Close `g_egl_gl_dll` if `egl_init_context()` fails
* Close `g_egl_gl_dll` when VideoCore driver is destroyed
* Defer loading of `g_egl_gl_dll` until needed
* Fix typo in `egl_destroy_gl_dll`
* Remove redundant `ptr` variable in `egl_init_context`
* Remove redundant call to `egl_destroy_gl_dll` in `egl_init_context`
* Remove another redundant call to `egl_destroy_gl_dll` in `egl_init_context`
device will set the samplerate set by the OS as well
NOTE: There is still something wrong with the XAudio2 driver
and the 'devices' it enumerates and shows in the menu. It seems
the index is wrong, i.e. the entries seem swapped around. This
was an issue even before this commit. WASAPI seems to work correctly
* Add mmdevice_samplerate
* _WIN32_WINNT checks will fail on modern MSYS2/MIngw-w64 setups (Win10/11) -
_WINN32_WINNT will be 0x0601 (1537) - i.e. Win7 and up. We can assume MMDevice
is available since Vista, so lower these checks to Vista and up
override the 'sampling rate' variable, and set the new sampling rate in
case it gest overwritten by a new value. Next step will be to query the
OS device's default sampling rate and use that
* Put back log messages but this time implement them properly, we first
show the requested spec, then show the received spec afterwards
* Implement floating point sample support, should be more optimal
* Change "Start in fullscreen" item name
https://github.com/libretro/RetroArch/issues/9515
I agree that current wording does not cover the functionality, this may be better.
* Refine fullscreen menu items.
Apply an aggressive set of ultimately deterministic optimizations to
raster image files where an actual file size reduction of not less than
50% was possible without the removal of intrinsic properties such as
alpha channels. Rendered image dimensions were always left unchanged.
The primary mechanisms employed during optimization are:
- PNG color mode conversion from TrueColor to indexed palette
+ Accomplished using NeuQuant neural-net color quantization algorithm
- Stripping of data blocks containing irrelevant information, such as:
+ XMP metadata fields
+ Embedded comment fields
+ ICC color profiles (simple graphics with basic color schemes only)
+ EXIF profiles
- Re-compression using "best" or "smallest" profile presets
All modifications are performed on lossless image formats and closely
visually inspected after processing to ensure no loss of apparent
details or introduction of new, unwanted artifacts.
Toolset used:
- RIOT (Radical Image Optimization Tool), v2024.1.0 64-bit
- AdvanceCOMP (part of the Advance Projects), v2.6 64-bit
- optiPNG, v7.9.1 64-bit
- PNGOUT, v2015.02.13 32-bit
Signed-off-by: Peter J. Mello <[email protected]>
- A touch pointer controlling the mouse/lightgun/pointer will ignore hitboxes if it slides into any.
- A touch pointer pressing a button will not control the mouse/lightgun/pointer if it slides out of the hitbox.
* Merge microphone drivers
* Some buildfixes
* * Merge audio/common/wasapi.c into audio/drivers/wassapi.c
* Buildfix for alsa/drivers/alsathread.c
* Merge more files
* Attempted buildfix
* Try to use enum values instead of eRender/eCapture
* Simplification of mmdevice_name
This commit extends the RetroArch desktop entry
file—responsible for integrating the app with
Linux desktop environments—to include all relevant
properties. Some notable aspects:
- **`TryExec`**/**`Exec`**: TryExec _should_
contain the canonical path to the executable,
however the RA buildsystem lacks a ready
mechanism for populating the correct value for
the target at build time, so we fallback to
searching $PATH here. To Exec we add the %F
token, meaning that RA is a "file handler" that
users are able to drag files onto the launcher
icon that become arguments to the launch command.
- **`MimeType`**: This key determines which file
extensions the system should offer to open with RA.
It should be regularly reviewed for any new MIME
registrations which need to be represented going
forward.
- **`PrefersNonDefaultGPU`**: Linux by default offers
hardware to processes in order from least capable to
most performant. This key reverses that behavior so
more demanding emulation cores will run more
smoothly.
- **`SingleMainWindow`**: Changes the default behavior
when the launcher is clicked while an instance is
already running from launch a second instance to
elevate the main window of the already running one.
Version 1.5 of the Freedesktop [Desktop Entry
Specification](https://specifications.freedesktop.org/desktop-entry-spec/latest/) was the reference for these changes.
Signed-off-by: Peter J. Mello <[email protected]>
When loading and saving states taken during a replay, their contents
should be compared with the current replay.
- If in playback mode, states from past the end of the current replay
should be disallowed, as should states from an alternate timeline of
the current replay (inconsistent input history)
- This is because in playback mode, RA replays are read-only
- If in recording mode, states from the future or from another
timeline should overwrite the current replay's data with a warning
- In either playback or recording, loads of states from the past that
have a consistent series of inputs (same timeline) should be loaded
and the replay should be rewound (and truncated in case of recording)
This behavior is as specified in
https://tasvideos.org/LawsOfTAS/OnSavestates
The existing code only implemented some of these checks.
On systems where pipewire is installed but the build is configured with
--disable-pipewire, HAVE_PIPEWIRE_STABLE is set to 1 while HAVE_PIPEWIRE
is 0. Checking only HAVE_PIPEWIRE_STABLE leads to a build failure.
```
LD retroarch
/usr/lib/gcc/x86_64-pc-linux-gnu/15/../../../../x86_64-pc-linux-gnu/bin/ld: obj-unix/release/camera/camera_driver.o:(.data.rel+0x0): undefined reference to `camera_pipewire'
collect2: error: ld returned 1 exit status
```
Downstream Bug: https://bugs.gentoo.org/960043
This can optionally encode and compress checkpoints. For now, only
raw encoding is supported, but e.g. delta encoding, block-based
encoding, or deduplicated encoding could be supported in the future.
Three compression schemes are included (selected automatically based
on compilation flags): ZSTD, ZLIB, or NONE.
All three schemes are supported for decompression if available.
For compression, ZSTD is preferred over ZLIB is preferred over NONE.
- rewinding past the start clobbers part of the header
- during recording & rewind, should not push input events
- during recording or playback, getting to the end of the rewind
buffer should not halt the movie
Performance improvements:
* Various optimizations
* Reduced memory allocations - file_list_insert would call malloc
for every single item that would need to be shifted downwards. instead
it does a memmove call now
Some enhancement possibilities found while investigating another
issue - shift keys were swapped (especially noticeable in menu),
enter may be mapped to DPAD_CENTER by the system, but unfortunately
the 102. key can not be mapped separately.
This can avoid unnecessary waste of performance at runtime to use static data instead of filling out an array on the stack every time. Some of the CBS functions are called for every menu item created so this improves performance of menu navigation, especially large menus like playlists.
This brings it in line with 2.6.0. Previously it had been taken from a
development branch somewhere between 2.5.1 and 2.6.0.
Only return VERIFY_FAILED from a single point
Everything else is a fatal error. Also improve documentation about that for
the vrfy callback.
Improve comments
Update doc of return value of verify()
Fix potential integer overflow parsing DER CRL
This patch prevents a potential signed integer overflow during the
CRL version verification checks.
Fix potential integer overflow parsing DER CRT
This patch prevents a potential signed integer overflow during the
certificate version verification checks.
Prevent signed integer overflow in CSR parsing
Modify the function mbedtls_x509_csr_parse_der() so that it checks the
parsed CSR version integer before it increments the value. This prevents
a potential signed integer overflow, as these have undefined behaviour
in the C standard.
Rename time and index parameter to avoid name conflict.
As noted in #557, several functions use 'index' resp. 'time'
as parameter names in their declaration and/or definition, causing name
conflicts with the functions in the C standard library of the same
name some compilers warn about.
This commit renames the arguments accordingly.
Update version number to 2.6.0
add mic usage to info.plist
enable micorphone in xcconfig
mic device selection macos
snapshot
revert ios driver
macos only driver, doesn’t deadlock now
macos driver seems to be doing something
looooooop
well, at least it doesn’t spin lock, no audio
audio capture working!
seems to be working now
cleanup some extra logging
clean up some extra logging
rename ios driver for clarity
remove some locks
better performance, but some noise
remove unused fifo_lock
clear the fifo
fix noise in buffer
some improvements, might not need
remove superfulous silent check
reduce latency
Signed-off-by: Joseph Mattiello <[email protected]>
Linux terminal settings were lost after restarting via menu.
This was caused by udev_input_init calling linux_terminal_disable_input multiple times.
New code follows the restore pattern of linuxraw_input.c
- Use the password stored in the connection profile instead of asking
each time to the user
- `Disconnect` menu item wasn't shown even when connected
When entering the Wi-Fi menu first, `nmcli_connection_info` is called with
`NULL`. If we return `false` here, the menu doesn't show the `Disconnect`
menu item even when the wifi is on and connected.
- Don't consider wired connections when checking if the device is connected
`cmd_file = popen("nmcli -f NAME c show --active | tail -n+2", "r");`
That command returns all active connections, even the wired ones. That
means that if the wifi is not connected but we have a wired connection,
retroarch shows the Disconnect menu item to disconnect ... a
non-existent wifi connection.
There is a type mismatch between selection (size_t) and how it's passed
to some functions. In 4f3ae82 I got it backwards and changed the type in
savestate thumbnail function definitions to size_t, but in that case we
can assume that there won't be more than 999. So in this case it's OK to
keep the unsigned int and cast selection to that type.
Thumbnails on playlists are the other case and the limit is not so clear
to me, so I assume it's reasonable to promote the type of the function
parameter i from unsigned to size_t.
-ffast-math was added in ff14092d8d with a comment that it "helps SINC
resampler to auto-vectorize". The flag is an alias for "-fno-math-errno
-funsafe-math-optimizations -ffp-contract=fast -fno-honor-infinities
-fno-honor-nans". The last two of those cause compiler complaints
because while the flag was meant for this file, it's shared across the
codebase that includes statements that operate on infinities and NaNs.
GCC 13.3 with -fopt-info-vec reports 18 vectorizations for `-O3
-ffast-math`, 17 for `-O3 -fno-math-errno -funsafe-math-optimizations
-ffp-contract=fast` and also 17 for plain `-O3`. So using the subset of
-ffast-math without the offending flags buys nothing and loses 1
vectorization.
Both GCC and Clang provide the "fast-math" pragma directive, which I add
to this one file that benefits from it, under the condition that it's
supported. -ffast-math is removed from most of the makefiles.
These makefiles provide the info target that will print contents of each
variable that is not printed (unless V=1, which is not the case here) on
command invocation. Making this information available in the logs should
help debugging, but it doesn't need to be printed on each command
invocation.
The point of making the default "semi-silent" (each target is printed,
but not the entire invocation verbatim) was to factor out information
about invocation to a one-time target (info) and not repeating it ever
again. With V=1, the info target is silent, because each command
invocation will be printed verbatim, which needs no herald.
The undesired side effect of me introducing the info target and making
it a dependency of the default all target is that info doesn't respect
the --silent make option, so in this use case it was more noisy, not
less.
I believe the most elegant solution that satisfies all use cases is to
stop printing info unconditionally, and instead list it explicitly in
make invocations in CI, together with the all target. Then this info is
kept available for inspection from logs, but it's not repeated on each
invocation. The intention was to make the logs easier to read and scroll
in search for new compiler warnings.
The Windows builds have been missing some libraries, notably
avdevice-58.dll, avfilter-7.dll, and prostproc-55.dll as reported by a
user on Discord. I suspect it's caused by cc842fd, although I don't
fully understand why that would happen.
In core downloader, description can be brought up by pressing
Select. However, for those cores where the description is longer
than what would be possible to display, nothing was displayed.
Several such cores exist, one example is Dosbox-Core.
Since this array is used for the messagebox, it is needless to make
it larger than what would be displayed anyway, and it makes other
safeguards act reasonably, so now there is info, just truncated.
Add multi-mouse support for X11, by using XInput2 extensions. Only
master pointers are considered as mice.
New behavior put behind HAVE_XI2 and configure script extended with
necessary detection.
Added resolution picker/forcing.
Rewrote logic for finding ALSA audio devices in enumerate_audio_devices function
Added a skip for some of the interface queries that fail and aren't required for magewell usb.
Check network fd/socket validity using INVALID_SOCKET on Windows
(requiring conditional winsock2.h include) and < 0 otherwise.
Fixes -Wsign-compare warning.
Change the flags parameter to int32_t for explicit sizing. Add a check
and cast for MSVC __cpuid compatibility when int is 32-bit.
This silences a -Wincompatible-pointer-types warning where int32_t is
long int.
waitUntilDeviceIsReady() should take a const char pointer as a
parameter, because it doesn't use it for writing. Since the function
prototype asks for a char pointer, cast it here.
They are absent even in upstream, so I decided against copying to the
local copy of libogc. And a couple of function prototypes doesn't seem
to warrant a new header file.
Move SWITCH_CPU_* array definitions from header to platform_switch.c.
Use extern declarations in the header. Add NULL/0 terminators to the
arrays and update size calculation and loops to use the terminators
where the number of elements can't be calculated.
The motivation for this change is to remove code duplication and silence
warnings about unused arrays in translation units that only used a
subset of them.
This is to silence a stringop warning that I believe to be a false
positive. Nevertheless, this change reduces verbosity of the code
and introduces a couple of checks that weren't there previously.
Note that the base parameter of this strtoul call is changed from 0
to 10, because previously the while loop rejected characters other
than 0-9 so strtoul didn't have to. Now that the loop is gone, the
call has to reject characters that are not decimal digits to keep
the logic as it was.
Add "Reset core options" menu to two more places:
- Manage Cores, where it can delete the options for the selected core
- Configuration, where it can delete the options for the loaded core
Current reset function is updated to delete the core options file if
reset is wanted for a specific core, or core was loaded but not yet
started. Meant as a recovery method for possibly fatal core option
changes.
While here:
* remove input_overlay and task_overlay from linking blacklist
* move -Werror to CC invocation since C++ refuses to use it
* copy the quiet build mode from the main Makefile and make it the
default
* temporarily define DEPRECATED for gpu_old.h to allow succesful build
* replace the call to command_event() with one to retroarch_main_quit()
in a failure case
While here:
* remove input_overlay and task_overlay from linking blacklist
* move -Werror to CC invocation since C++ refuses to use it
* copy the quiet build mode from the main Makefile and make it the
default
* temporarily define DEPRECATED for gpu_old.h to allow succesful build
* replace the call to command_event() with one to retroarch_main_quit()
in a failure case
* add missing uncompr.o in Makefile.common for HAVE_BUILTINZLIB
- Ensure other touchscreen input is blocked when overlay buttons pressed
- Limit physical+overlay mouse input to iOS for now
- Reset overlay mouse deltas when there is no touch input
- Disable touch mouse in android_input.c for now. Too buggy
The keyboard support for linuxraw driver was a bit spotty. Extended
with missing keyboard query, callback, and a few fixes against
over-indexing the status array.
Before this change, there was at least one scenario in which the UI
would seemingly freeze and a restart was needed. That's when an update
of cores was attempted with threaded rendering enabled.
Fixes https://github.com/libretro/RetroArch/issues/17727
Before this change, an 8-bit value was guaranteed to be lesser than the
size of this array (256). Instead of removing the check, I make it
meaningful by reducing the size of the array.
Only limit extensions under the condition that the valid_extensions list
is not empty and the user wishes to limit the extensions. Otherwise
present files of all recognized extensions.
Part of this logic was implemented in 8f32801292 where the
point was to show supported files when core info file is missing. The
other part is the filter_by_current_core option.
Cheevos define a special macro defined to -1 and uses it as one of the
values for enum event_command. Make this value a part of the enum
definition so that this type is not optimized to be unsigned.
Also simplify this part; the point here is to start the copy later, but
otherwise the buffer size is the same, and it's still a string, so needs
no special handling.
At optimization level -O3, GCC generates a warning about its own
optimizations, likely due to loop unrolling. Manually unroll the loop to
eliminate any ambiguity and prevent the warning.
One of the GCC14's optimization heuristic triggered here, suggesting
that the special value of len (size_t) could potentially be lesser than
the file's size (int64_t) but greater than "maximum object size" (set by
byte-size, PTRDIFF_MAX by default).
Use the same type as the file size it's compared to, and adjust the
sentinel value to spell INT64_MAX.
* unsigned vs signed comparison
* copy DEBUG_VAR from wiiu - this one prints pointer values in a
portable way
* prove GCC14 that a date formatted as "00/00/0000" can fit into 11
bytes
* explicitly mention previously unhandled enum constants
* Adding GFX widgets in b9849f78f7 and 1235a7435e orphaned
ctr_set_osd_msg(). Reinstate it instead of removing, since it's
effectively the same as calling font_driver_render_msg, but with
checks.
* remove sp from clobber list in inline assembly
Due to touchscreen quick tap function, binding runs into problems
with the default setting that works well on other platforms. Using
a nonzero value avoids that problem.
PATH_MAX_LENGTH is pretty short on CTR and not really adequate here
since this buffer is not storing a path.
Allocate and possibly reallocate from heap instead of using the
stack here.
symlinking manifest entries and using a baseurl gives us a way to
create just a single fetchfs backend (and a single thread) since
emscripten upstream is not willing to integrate manifest support to
fetchfs directly.
Retroarch embedders could use this to get assets or other resources
lazily or chunk-by-chunk for large files.
Value of HAVE_GDI is always 1 unless explicitly disabled, however
it only takes effect on Windows platforms. Actual functionality
is behind multiple #ifdef's, but the feature indication was showing
up even on platforms like Linux.
* Actually read CLI args in emscripten
* Fix fetchfs manifest parsing, increase download chunk size
The chunk size should probably be made a parameter in the future. The
larger chunk size trades longer hitches for fewer hitches.
* Add exec command driver and API functions for emscripten.
Under WASMFS, stdin/stdout can't be customized the way they can with
the JS FS implementation. Also, this approach frees up stdin/stdout
and simplifies interaction with the command interface for web embedders.
* fixup upload paths, show use of new emscripten cmd interface
* Add JS library function names to EXPORTS as well as EXPORTED_FUNCTIONS for older emsdk versions
* workerized RA
* Workerized (non-async) web player, using OPFS
This patch eliminates the need for asyncify and uses modern filesystem
APIs instead of the deprecated, unmaintained BrowserFS.
This is a WIP patch because it won't fully work until these two
Emscripten PRs land and are released:
https://github.com/emscripten-core/emscripten/pull/23518https://github.com/emscripten-core/emscripten/pull/23021
The former fixes an offscreen canvas context recreation bug, and the
latter adds an equivalent to BrowserFS's XHR filesystem (but without
the hazardous running-XHR-on-the-main-thread problem).
The biggest issue is that local storage of users who were using the
old version of the webplayer will be gone when they switch to the new
webplayer. I don't have a good story for converting the old BrowserFS
IDBFS contents into the new OPFS filesystem (the move is worth doing
because OPFS supports seeking and reading only bits of a file, and
because BrowserFS is dead).
I've kept around the old libretro webplayer under
pkg/emscripten/libretro-classic, and with these make flags you can
build a non-workerized RA that uses asyncify to sleep as before:
make -f Makefile.emscripten libretro=$CORE HAVE_WORKER=0 HAVE_WASMFS=0 PTHREAD=0 HAVE_AL=1
I also moved the default directory for core content on emscripten to
not be a subdirectory of the local filesystem mount, because it's
confusing to have a subdirectory that's lazily fetched and not
mirrored to the local storage. I think it won't impact existing users
of the classic web player because they already have a retroarch.cfg in
place.
* Get fetchfs working without manifest support
* makefile fixes
* fix scaling, remove zip dependency
* Support asset/cheats/etc downloaders for emscripten
- Add http transfer support for emscripten
- At the task_http level, not the net_http level --- so no netplay
or webdav.
- Change default paths to be more like other platforms
- Gives us smaller bundles and a faster boot time
- Had to work around a task queue bug on Emscripten
- I made the smallest possible change to do it, but it may be better
to fix in rthread.c
* Load an emscripten file_packager package on first run
If no ozone assets are present, load a libretro_minimal package
created using Emscripten's built-in file packager.
* updated readme, removed indexer from wasmfs libretro-web
* Put back zip dependency, load asset bundle into opfs on first run
* fix upload path
* Remove unused function
* easy testing setup for two multithreaded conditions
1. make PROXY_TO_PTHREAD=1 (slower)
2. make PROXY_TO_PTHREAD=0 (bad audio, because doesn't sleep in
openal.c)
* Remove condition on sleep in openal
also make input_driver check existence of drv->axis, drv->button
before calling them.
* Fix resizing under EGL
* Don't force config file path on emscripten
* Add time.h include to netplay, default HAVE_NETPLAYDISCOVERY to 0
* Remove nearly all proxied joypad calls under emscripten
* Fix file uploads under firefox
* Fix safari API uses, but Safari still hangs in OPFS filesystem mount
I think this can be fixed by moving the backend creation off the main
thread.
* Move filesystem init into emscripten C entry point
* Setup filesystems off of main thread
* re-set default player to async
Also improve Safari compatibility under proxy-to-pthread condition
* Safari upload file fixes
* Remove some excess prints
* Fix typo
the previous method does not remove the pairing of the selected device,
user must remove the pairing manually by modifying filesystem.
change tested on real system (Lakka-RPi4.aarch64).
Use yellow for warnings and red for errors, keep the current blue for everything else.
Additionally, flip the 'i' info icon upside down for warnings and errors so it becomes a '!' exclamation mark icon.
* for iOS: update launch screen to match UI
* use higher resolution invader
* adjust Y constraint (diff invader body proportion)
* for iOS: update Launch Screen to match app icon/ui
* update iOS icon—match shadow on other platforms
* icon source svgs to media folder for others’ reuse
* iOS App Icon revision, fix asset index mismatch
* workerized RA
* Workerized (non-async) web player, using OPFS
This patch eliminates the need for asyncify and uses modern filesystem
APIs instead of the deprecated, unmaintained BrowserFS.
This is a WIP patch because it won't fully work until these two
Emscripten PRs land and are released:
https://github.com/emscripten-core/emscripten/pull/23518https://github.com/emscripten-core/emscripten/pull/23021
The former fixes an offscreen canvas context recreation bug, and the
latter adds an equivalent to BrowserFS's XHR filesystem (but without
the hazardous running-XHR-on-the-main-thread problem).
The biggest issue is that local storage of users who were using the
old version of the webplayer will be gone when they switch to the new
webplayer. I don't have a good story for converting the old BrowserFS
IDBFS contents into the new OPFS filesystem (the move is worth doing
because OPFS supports seeking and reading only bits of a file, and
because BrowserFS is dead).
I've kept around the old libretro webplayer under
pkg/emscripten/libretro-classic, and with these make flags you can
build a non-workerized RA that uses asyncify to sleep as before:
make -f Makefile.emscripten libretro=$CORE HAVE_WORKER=0 HAVE_WASMFS=0 PTHREAD=0 HAVE_AL=1
I also moved the default directory for core content on emscripten to
not be a subdirectory of the local filesystem mount, because it's
confusing to have a subdirectory that's lazily fetched and not
mirrored to the local storage. I think it won't impact existing users
of the classic web player because they already have a retroarch.cfg in
place.
* Get fetchfs working without manifest support
* makefile fixes
* net_http: refactor net_http_new
The goal is to move calls to getaddrinfo() and connect() into
net_http_update(). This will make it possible for them to be replaced
with non-blocking alternatives later.
The net_http calling pattern right now allows callers to create the
http_connection_t, call net_http_new() which creates the http_t from
the http_connection_t, free the http_connection_t, and then start
calling net_http_update(). In order to preserve that, the http_t needs
to copy the values out of the http_connection_t on create. This also
preserves the http_connection_t values instead of freeing them, so the
connection would be able to be used later.
* net_http: implement dns cache
* net_http: separate out address resolution, connect, and request send
* net_http: perform getaddrinfo on separate thread
* net_http: implement basic connection pool
* net_http: refactor receive calls to read faster, do fewer reallocs
* net_http: build fix for platforms without SSL
* net_http: build fix for non-griffin builds
* net_http: build fix for non-threaded platforms
* Add dummy game ai subsystem
* First working prototype of a machine learning model that can override player input
* Update README.md
* Update README.md
* Fix loading path on Windows
* Change ai override to player 2
* Added quick menu show game ai option
* Implemented Quick Menu entry for Game AI options
* Redirect debug logs to retroarch log system + properly support player override
* Added support to use framebuffer as input to the AI
* Added pixel format parameter to API
* Fix game name
* code clean-up of game_ai.cpp
* Update README.md - Windows Build
* Update README.md
* Update README.md
* Update README.md
* Update config.params.sh
turn off GAME_AI feature by default
* Fix compile error in menu_displaylist.c
* Add missing #define in menu_cbs_title.c
* Added new game_ai entry in griffin_cpp
* Remove GAME_AI entry in msg_hash_us.c
* Fix compile error in menu_displaylist.h
* Removed GAME AI references from README.md
* Fixes coding style + add GameAI lib API header
* Convert comment to legacy + remove unused code
* Additional coding style fixes to game_ai.cpp
* Fix identation issues in game_ai.cpp
* Removed some debug code in game_ai.cpp
* Add game_ai_lib in deps
* Replace assert with retro_assert
* Update Makefile.common
* Converting game_ai from cpp to c. First step.
* Convert game_ai from CPP to C. STEP 2: add C function calls
* Convert game_ai from CPP to C. Final Step
* Added shutdown function for game ai lib
* Update game_ai_lib README
* Fix crash when loading/unloading multiple games
* frontend/drivers/platform_unix.c
(libretro_cheats_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_CHEATS to the value of
the LIBRETRO_CHEATS_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_cheats_directory>: New variable. Use the values of
the LIBRETRO_CHEATS_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document it.
* retroarch.c (retroarch_print_help): Extend help text.
* Partially revert a change made in 69ceb95ddc.
The change caused the 'libretro_directory' config option to always
revert to the default value, which was not intended behavior.
Reported-by: Michael Cook
* platform: Honor the LIBRETRO_DATABASE_DIRECTORY environment variable.
This is a follow-up to commit 69ceb95ddc.
* frontend/drivers/platform_unix.c
(libretro_database_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_DATABASE to the value of
the LIBRETRO_DATABASE_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration.c (config_load_file)
<libretro_database_directory>: New variable. Use the values of
the LIBRETRO_DATABASE_DIRECTORY environment variables instead of their
corresponding configured values, when set.
* docs/retroarch.6: Document.
* retroarch.c (retroarch_print_help): List supported environment
variables, and cross-reference the man page.
## Description
Before there was no clear way of running msys2, and even if there was, there is no guarantee of it working, well I fixed it, and added a CI, so that we can always know if it works. Furthermore I added 2 targets more: UCRT64 and CLANG64, yes, compilation with clang64 means we can also compile with clang for windows on arm :D, plus clang has better error messages overall, anyway.
## Related Issues
#17367
## Reviewers
Anyone, it's my first PR here.
* platform_win32: Fix sizeof for DEFAULT_DIR_PLAYLIST.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Check
the size of correct destination array.
* frontend: Honor the LIBRETRO_ASSETS_DIRECTORY environment variable.
This builds on 763fcd8267 ("unix, win32: Allow set the default
libretro_directory via environment variable") to also allow specifying
the assets directory via an environment variable.
* frontend/drivers/platform_unix.c (frontend_unix_get_env)
<libretro_assets_directory> New variable. Use it to set
DEFAULT_DIR_ASSETS, when available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.
* platform: Honor the LIBRETRO_DIRECTORY environment variable.
Until now, and unlike the defaut core directory, the default
core *info* directory would be hard-coded relative to the installation
directory. Honor the LIBRETRO_DIRECTORY environment variable the same
instead.
* frontend/drivers/platform_unix.c (frontend_unix_get_env): Set
DEFAULT_DIR_CORE_INFO default to the value of the LIBRETRO_DIRECTORY
environment variable, if available.
* frontend/drivers/platform_win32.c (frontend_win32_env_get): Likewise.
* platform: Honor the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_autoconfig_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_AUTOCONFIG to the value of
the LIBRETRO_AUTOCONFIG_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_video_filter_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_VIDEO_FILTER to the value of
the LIBRETRO_VIDEO_FILTER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_video_shader_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SHADER to the value of
the LIBRETRO_VIDEO_SHADER_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* platform: Honor the LIBRETRO_SYSTEM_DIRECTORY environment variable.
* frontend/drivers/platform_unix.c
(libretro_system_directory): New variable.
(frontend_unix_get_env): Set DEFAULT_DIR_SYSTEM to the value of
the LIBRETRO_SYSTEM_DIRECTORY environment variable, if available.
* frontend/drivers/platform_win32.c: Likewise.
* configuration: Have environment variables override configuration.
Because the configuration file is systematically written when
RetroArch terminates, persisting any previous default/configured
value, setting the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY, etc.
environment variables would not have an effect unless the
retroarch.cfg configuration file was cleared.
This seems to go against the common expectation that environment
variables are set by users to *override* the default behavior or
configuration of an application.
* configuration.c (config_load_file) <libretro_directory>
<libretro_assets_directory, libretro_autoconfig_directory>
<libretro_system_directory, libretro_video_filter_directory>
<libretro_video_shader_directory>: New variables. Use the values of
the LIBRETRO_DIRECTORY, LIBRETRO_ASSETS_DIRECTORY,
LIBRETRO_AUTOCONFIG_DIRECTORY, LIBRETRO_SYSTEM_DIRECTORY,
LIBRETRO_VIDEO_FILTER_DIRECTORY and LIBRETRO_VIDEO_SHADER_DIRECTORY
environment variables instead of their corresponding configured
values, when set.
* docs/retroarch.6: Document the environment variables honored and
their behavior.
* add achievement data to netplay save state
* honor achievement state from netplay server
* keep processing achievements if menu doesn't pause game
* remove unused variable
* only CRC coremem
* force send savestate on join and hardcore change
* allow hardcore enablement to be synced to clients
* still calculate cheevos_size for non-server
* use appropriate buffer
* optimizations for when achievements are disabled
* support interfacing with older protocols
* formatting
* c89
* Use given latency
* Fix (non)blocking microphone
* Mute microphone on startuo
* Reset buffer when the microphone stops
* Delete client-info handler
* Refactor the naming conventions, styling
* playlist_get_old_format_metadata_value - now returns size_t
* fix bug where string copy was being made with strdup before
anything got written to the string
* disable default overlays except on Android and iOS
* add flicker warnings to BFI/Subframes/rolling scan
and remove the prohibitions against other settings, since those conflicts are handled automagically anyway
* formatting nit
- Fix the "Allow Off-Screen" setting not working since #17308
- Prevent offscreen shot from disabling the lightgun with some cores
- Fullscreen pointer coordinates no longer needed
Cocoa driver specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- enable pointer offscreen query
Adapt the sanitized pointer handling, discussed at #17196 :
Overlay "driver" specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- enable pointer offscreen query
- report -0x8000 for lightgun if pointer is at the edge
- align lightgun offscreen reporting and button ID conversion with other drivers
Android driver specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- remove extra "inside" checks, general simplification
- enable pointer offscreen reporting
- report same value for all ports when querying mouse and lightgun
- fill missing lightgun support, with fixed button map
Udev and X11 driver specific changes:
- simulate max. 3 touches instead of 1 using different mouse buttons
Wayland driver specific changes:
- integrate touch input better to the overall handling (enabling overlay usage with mouse)
- simulate max. 3 touches instead of 1 using different mouse buttons
* Less string copies
* Some general cleanups
* Add extra param to runloop_message_queue_push so we can pass size_t
of the message
* Consistent conventions for local variable usage for certain things
closes https://github.com/libretro/RetroArch/issues/15540
we can still tick through to higher values quite fast, but there's not much reason for someone to exceed, say, 3x without just setting it to 0 anyway, so I don't think there's any real usability loss.
Adapt the sanitized pointer handling, discussed at libretro#17196 :
winraw and dinput driver specific changes:
make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
remove extra "inside" checks, general simplification
enable pointer offscreen reporting
use common functions for edge detection and lightgun button ID conversion
sdl driver specific changes:
pointer handling aligned with the other input drivers, as above
added TODO for lightgun part - no suitable test env at the moment where SDL input can be used
Adapt the sanitized pointer handling, discussed at #17196 :
X11 driver specific changes:
make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
remove extra "inside" checks, general simplification
enable pointer offscreen reporting
Udev driver specific changes:
remove custom calculation and use common viewport translation
unify pointer query instead of separate _x and _y
enable pointer offscreen reporting
Other changes:
more tuning of pointer conversion in video_driver.c for edges
lightgun button ID conversion moved to input_driver.c
Adapt the sanitized pointer handling, discussed at #17196:
Wayland driver specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff]
by using the confined wrapper
- enable lightgun to report -0x8000 if pointer is really offscreen
- remove extra "inside" checks
- report same pointer/lightgun coordinates for all ports
- simplify pointer and lightgun handling
Other changes:
- unify "offscreen" condition through input_driver.c
- slight tuning of pointer conversion in video_driver.c
- update libretro.h with explanation and pointer offscreen value
- small fixes on remote retropad test screen
and bandwidth for our server but none of thse Named_Logos have been added to
any repos for now. We will also need to have settings for specifying how much
stuff we fetch at the same time (Named_Logos, Named_Snaps, Named_Titles, Named_Boxarts).
Trying to fetch all this stuff at the same time is prob a mistake
* Draft: Add Named_Logos
* Allow selecting Content Logo as a thumbnail display
* Increase pl_thumbnail_download index
to 4 to match the 4 available thumb types
---------
Co-authored-by: Rob Loach <[email protected]>
Add another version of the coordinate translation that will not
report -0x8000 for offscreen values, but instead map the position
to the respective edge (0x7fff/-0x7fff). Not yet in use.
Udev driver updated to use the wrapper, as all other input drivers do.
- remove a lot of duplicated code across mac/ios/appletvos
- restore ability to use either login or app_store_connect_api_key
- pull version string from version.all instead of app store connect
- allow building from alternate branch
- allow skipping upload or making it publicly available
* First crack at light sensor support for Linux
* Add light-sensor support to most Linux input drivers
* Fix a compiler error
- Whoops, forgot to declare `sdl`
* Refactor linux_illuminance_sensor_t
- Allow the poll rate to be specified
- Poll the sensor on a separate thread
- Open a file handle each time we poll the sensor, since sysfs doesn't update the contents of an existing handle
* Set the `done` flag when closing the light sensor
- Whoops
* Avoid a division by zero when updating the poll rate of an existing sensor
* Don't try to open illuminance sensors from ".", "..", or hidden files
* Never mind
* Fix some silly mistakes
* Skip hidden files, ".", and ".."
* Cancel the sensor poll thread mid-sleep when closing it
- POSIX says it's fine
* Add to CHANGES.md
* Address feedback given on PR
* Use libretro-common's file system instead of stdio
- Unlike some other drivers, the camera driver is only initialized when a core actually asks for it
- Therefore, the driver context isn't available when it's time to ask for devices
- I could refactor the camera driver to be created earlier, but then I'd need to refactor the other drivers as well
- That'll come later in another PR
Changed the logic of the classic toggle turbo mode code such that the pressing order of the turbo button and the button to enable/disable does not matter.
Due to node v20 being incompatible with some of the CI images
(too old glibc), the checkout action is replaced by an alternative
which does not need node, and upload is removed for now.
Due to node v20 being incompatible with some of the CI images
(too old glibc), the checkout action is replaced by an alternative
which does not need node, and upload is removed for now.
* Make paths portable for CloudSync when building manifest
* Enable CloudSync on Windows builds
* Fix "fetech server file" - Forgot to commit this, oops!
* Fix definition conflict with gzguts.h
* "Enable Cloud Sync for Windows UWP builds"
---------
Co-authored-by: WindowsDEV <[email protected]>
* (Qt) Migrate to Qt6
* basic support Qt6 with minimal changes required for compiling
* look `moc` in QT_HOST_LIBEXECS
* (Qt) Backward compatibility with Qt5
This enhancement is particularly useful when using RetroArch with a touchscreen, as it allows you to resume content without needing to navigate back to the quick menu, thereby preserving the current menu screen.
Because shift keys were ignored in the event message and only issued during polling, a quick key press and release between polling would get ignored.
This change also fixes left alt up key events getting issued (and sent to the core) twice.
* Initial implementation of CoreAspect uniform
* float -> float_t
* Possibly fix wii_u building
* vulkan: use float instead of float_t;
* slangp: Advertise support of CoreAspect uniform
by defining _RARCH_HAS_COREASPECT_UNIFORM early in the shader source, just after "#extension GL_GOOGLE_cpp_style_line_directive : require"
* CoreAspect + glsl fix: use glUniform1f()
* Add CoreAspectRot uniform.
It reports CoreAspect value or 1/CoreAspect when the content is rotated by 90 or 270 deg.
* Fixed stupid typo
* Just use _HAS_COREASPECT_UNIFORMS to check for CoreAspect uniforms support (was _RARCH_HAS_COREASPECT_UNIFORMS)
* Rename CoreAspect, CoreAspectRot, _HAS_COREASPECT_UNIFORMS to OriginalAspect, OriginlAspectRot, _HAS_ORIGINALASPECT_UNIFORMS
* GLCore: void Pass::build_semantic_float needs glUniform1f.
...how on earth did it worked for UBO !?
* d3d10,11,12, wrong function called by overlook.
* Add test shader, will remove that before PR
* Fix metal rotated aspect reporting
* remove test shader
* Fix C89 Build
* Use OriginalAspectRotated instead of OriginalAspectRot
* Add CoreFPS and FrameTimeDelta Uniforms.
_HAS_ORIGINALASPECT_UNIFORMS is (#)defined and can be used to query for them.
* add test shader
* remote test shader
* Wrong paste.
* gx2: use float
* wrong indentation
* resolved merge conflict
* fix indentation
* Fix comment/Formatting
* Change uniform name from CoreFPS to OriginalFPS
* underliyng references: core_fps -> original_fps
New environment set call to enable a bit more sensible handling of
absolute pointing devices (pointer and lightgun). With the
confinement enabled, pointing devices will not return neither
-0x8000 nor (0,0), which was anyway dependent on the input driver,
instead they will stay at the extreme edge.
User slot (player #) and joypad driver port is by default the same, but
it can be changed either manually or automatically (reserved device).
Use the correct index for detecting values associated with the port.
* Initial implementation of CoreAspect uniform
* float -> float_t
* Possibly fix wii_u building
* vulkan: use float instead of float_t;
* slangp: Advertise support of CoreAspect uniform
by defining _RARCH_HAS_COREASPECT_UNIFORM early in the shader source, just after "#extension GL_GOOGLE_cpp_style_line_directive : require"
* CoreAspect + glsl fix: use glUniform1f()
* Add CoreAspectRot uniform.
It reports CoreAspect value or 1/CoreAspect when the content is rotated by 90 or 270 deg.
* Fixed stupid typo
* Just use _HAS_COREASPECT_UNIFORMS to check for CoreAspect uniforms support (was _RARCH_HAS_COREASPECT_UNIFORMS)
* Rename CoreAspect, CoreAspectRot, _HAS_COREASPECT_UNIFORMS to OriginalAspect, OriginlAspectRot, _HAS_ORIGINALASPECT_UNIFORMS
* GLCore: void Pass::build_semantic_float needs glUniform1f.
...how on earth did it worked for UBO !?
* d3d10,11,12, wrong function called by overlook.
* Add test shader, will remove that before PR
* Fix metal rotated aspect reporting
* remove test shader
* Fix C89 Build
* Use OriginalAspectRotated instead of OriginalAspectRot
A core needs to have "/" in its list of supported extensions to indicate support for loading directories.
If a core additionally supports the disk control interface, also support loading of directories as disk images.
Sensor screen is extended with a pointer (a single white pixel)
and a few indicators for the mouse and lightgun buttons. Pointer
type is selectable from core options (mouse, lightgun, pointer,
old relative lightgun). An extra square indicator shows when
absolute pointer types get near the edge / to the very edge /
return to 0,0 position.
* slang shaders: add support for __has_include like C++17 macro.
This adds a new #pragma include_if_exist "filename" directive that acts like #include statements,
but does not return error if the file does not exists.
* removed unuseful define
* Silence GCC 14 warning [-Warray-bounds=]
GCC reports a couple of warnings like this example:
libretro-common/cdrom/cdrom.c:395:14: warning: array subscript 6 is outside array bounds of 'unsigned char[6]' [-Warray-bounds=]
395 | cmd[6] = cmd[3];
| ~~~~~~~^~~~~~~~
libretro-common/cdrom/cdrom.c: In function 'cdrom_unlock':
libretro-common/cdrom/cdrom.c:1268:18: note: at offset 6 into object 'cdb' of size 6
1268 | unsigned char cdb[] = {0x1E, 0, 0, 0, 0x2, 0};
The static analysis heuristic doesn't consider the fact that the writes to cmd[6] and later only happen under the condition that `if (cmd[0] == 0xBE || cmd[0] == 0xB9)` and that in all of those cases the array passed is wide enough. So this is a false positive.
Nevertheless, there seems to be an easy way to silence the warning without disabling it: just require all arrays passed to be at least 9 bytes long and explicitly set the size of those arrays that have been shorter to 9.
* Work around the requirement of C89
I used a C99 construct, but this is easy to work around
with a run-time check.
* Restore the check for non-null cmd
It was obsoleted in a previous version, but is needed back now.
---------
Co-authored-by: pstef <[email protected]>
* fixed audio drivers in RARCH_NETPLAY_CTL_USE_CORE_PACKET_INTERFACE
fixed audio problem with menu toggle with the new network fuction
* Fix type space
- replays now start each frame with the number of key events (8 bit
unsigned int, then key events) and the number of input events (16 bit
unsigned int, then the input events)
- this makes it possible to parse replay files without any core
loaded, and makes replays more portable if cores change their polling
strategies
- external tools can now parse replay files
- old (vsn 0) replays will still play back, but new (vsn 1) replays
will not play on old RA
- replay files grow faster now, with each input poll now taking 8
bytes instead of 2
This changes the replay movie's frame_ptr (a 20-bit number used to
point to a log of file offsets) into a frame counter, which is masked
against the 20-bit pattern for use in the file offset log but also
functions as a time index into the replay. Right now that is reported
in `GET_CONFIG_PARAM active_replay` but in the future it could be used
to show how far into the replay we are during playback or how long the
replay is during recording.
The build with `--enable-wayland --disable-kms` has a part where an
unsigned long is passed as a void*, but GCC 14 enforces
-Werror=int-conversion, causing the build to fail.
https://gcc.gnu.org/gcc-14/porting_to.html#int-conversion
If there are several variants of a controller, but their button
layout is exactly the same, allow alternative identifiers, e.g.:
input_device_alt1
input_vendor_id_alt3
input_product_id_alt9
Two new settings added to Settings / Input / Menu Control:
- disable left analog stick in menu navigation
- disable right analog stick in menu navigation
Since the corresponding logic is already a distinct logic flow in
input driver, no change was necessary to analog-to-digital settings
or the like.
This commit imports a series of patches from the FreeBSD port of RetroArch to
improve build compatibility and address specific issues encountered in the
FreeBSD environment. These patches, sourced from the FreeBSD Ports collection
(https://cgit.freebsd.org/ports/tree/games/retroarch/files), have been adapted
and tested to ensure they integrate seamlessly with the current build process.
* sort remaps by connected controller if option is enabled
* ensure dir name is valid based on input device name
* Fix comments
* Fix forbidden mixed declarations and code
* fixing build errors
* fix additional build warning/error
* Resolved code review change requests
* Changed strlcat to strlcpy as per recommendation
* Retrigger checks
* Use proper path separator.
* Ensure default value is toggled off.
* Ensure that gamepad device name is valid.
* Added check for null thumbnail path. Applies to 16951
* Moved null check up the code to cover multiple accesses to the thumbnail path.
* Checked for null values before trying to get logo icons for playlists
* Rolled back the thumbnail_path_gfx changes and instead added
deinitialization of the icon thumbnails when a list was not a playlist.
* Massive reduction in heap space allocation, going from settings struct
264kb to 119Kb
* Use NAME_MAX_LENGTH for base paths/names, etc
* Use DIR_MAX_LENGTH for directory sizes
- add reserved device check against device display name as well
- selected device name matching in menu with or without vid:pid
- cosmetical change in test input file
When save state auto indexing is enabled, and maximum kept states
are limited, wrap around after reaching the configured maximum.
A gap in the indexing is used to keep track of most recent state.
If e.g. maximum kept amount is 5, then indexes 0..5 will be used,
if 3 is empty, most recent state is 2.
* This change allows playlist icons to be replaced with Logos. the art is loaded to the Thumbnail Named_Logos folder. It is treated the same as other thumbnails for naming and for automatic download. There is a settings menu option to turn it on and off. It is off by default. This only applies to the xmb menu driver.
* Removed commented out code against the style guide.
* Code cleanup for C89 compatibitity
* Cleaned up errors from Automated CI.
* Cleaned up comments.
* Update gfx_display.c
change strcpy to strlcpy
* Update gfx_thumbnail_path.c
fix code formatting
* Update xmb.c
code formatting changes
Appears to be enough to silence any lingering notes when midi is playing
and core is suddenly closed. Tried adding this on the core side but
midi_free comes first before retro_deinit/retro_unload_game so the
driver was already closed.
Another way to fix this in the core's side is to call 'flush'
immediately after any midi writes, but that doesn't appear to be the
api's design, flush is supposed to get called at the end of the
retro_run.
Im open for any better methods. but this should work for the issue
without causing other problems.
Co-authored-by: negativeExponent <[email protected]>
Allow thumbnails (boxart, title, screenshot) to be loaded in any
other supported format as well, currently jpg, bmp, tga.
Support is for local thumbnails only, downloads are not changed.
PNG format is always preferred. Menu option added for control,
since trying for multiple thumbnail files may impact performance
on slow storage media.
In some cases, set_sensor_state and get_sensor_input are
more related to the joypad driver, e.g. in desktop platforms
where sensors are associated rather with the joypad.
If input driver supports the sensors, it is still preferred.
Placeholder inserted for all input drivers, no functionality
added yet.
Since Vulkan doesn't support negative x or y viewport positions, this
patch concatenates a translation matrix to the projection matrix used in
Vulkan rendering. In this way, if a negative x or y coordinate would
be necessary, we can instead use a 0 coordinate and a
leftwards/upwards translation to achieve the same effect. This seems
to work alright with overlays, so as far as I can tell this patch
seems sufficient to get the behavior we want?
A new input driver (test_input), similar to test joypad driver.
Takes its inputs from a json file provided in options. Supports
keyboard input and sensor input (accelerometer, gyroscope,
illuminance).
Remote Retropad extended with a sensor test screen.
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.
Support added for extra mouse buttons. Since these buttons were
not returned by XQueryPointer(), some additional logic was needed
which fit best to scroll wheel handling.
This mirrors the use of video_viewport_get_scaled_integer for
non-integer scaling at various aspect ratios. Two variants are
provided, one with implicit device and desired ratios and one with
explicit ratios.
Also added a flag to video_viewport_get_scaled_integer to indicate the
direction of positive y.
- Add missing numlock mod to dinput
- Add missing scrolllock mod to x11
- Add missing capslock, numlock, scrolllock and meta mods to android
- Add missing scrolllock mod to sdl
- Add missing capslock, numlock, scrolllock and meta mods to switch
- Add missing numlock mod to winraw
- Add missing numlock mod to uwp
This puts the code into the binary's .text section, which is needed
for platforms without the ability to map it as RWX (WiiU). Using
GNU/AT&T syntax for the assembly here.
Will return 0 for non-file streams. I didn't want to mess around with
memory_stream (which could in theory have a truncate impl that sets
size) because there were globals and stuff and I got nervous (also
truncate might *grow* a file if the new length is longer than the old
one and then I'd have to think about realloc, etc).
Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.
Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.
<compat/posix_string.h> gets included which should redefine strtok_r
for MSVC usage but it just doesn't work and fails at linking stage, will have to figure this out
later
Change GL2, GL3 and Vulkan drivers to behave as fullscreen if context driver
(such as KMS/DRM or KHR) does not support windowed mode at all.
Take it into account also for refresh rate switch.
For each player, 2 new options are added:
- a reservation type (no reservation, preferred, reserved)
- a reserved device name
When handling port - player assignments, reserved devices
will be assigned to the respective player port. If reservation
type is "reserved", no other device can take that port
automatically.
Reservation config option and matching function lifted from:
PatrickStankard https://github.com/libretro/RetroArch/pull/16269
Test joypad driver was extended for more tests.
Co-authored-by: Patrick Stankard <[email protected]>
A rationale is given in the comments, but even a class 6 or class 10 SD card can handle reads and writes on the order of MB/s, which means a 4KB chunk size is just wasting time in syscalls. This could maybe be fixed with a buffering reader but I don't feel comfortable tweaking libretro-common's VFS to handle that. Instead, I thought it would be good to both remove an ifdef and increase the chunk size to 128KB. For cores with small states this will should make state saving virtually instantaneous, and for cores with large states it should be a 32x speedup.
it is more convenient to provide the URL via make option rather than
rely on hardcoded value in the code base. it provides more flexibility
in case of different servers for stable, daily, canary, community, ...
and instead of parsing a file in the filesystem to obtain target name of
the device on which lakka is running, we can provide the target name at
build time as well. the target name is used for the full path URL for
the download of updates.
there is no need to have these values editable via retroarch frontend
and saved in the config file. it is safer to provide them at build time
and have them set this way.
On Win32, the numlock and pause keys need special handling. But the existing code did only handle it correctly for pressing and not releasing. It separately called GetKeyState for the two keys which only returned true while pressing a key and not while releasing it. This then caused the releasing of the pause key to be treated as releasing the numlock key and vice versa. This fix handles releasing the two keys correctly.
This fixes a warning of the `include_hidden` parameter not being used outside of `_WIN32`.
```
vfs/vfs_implementation.c:1063:30: error: unused parameter ‘include_hidden’ [-Werror=unused-parameter]
1063 | const char *name, bool include_hidden)
| ^
cc1: all warnings being treated as error
```
Extended RETROK_ values with 18 new items, commonly found on
"multimedia" keyboards.
Mapping added for SDL, X11, Wayland, dinput, winraw keymaps.
Keyboard tester function of Remote Retropad extended to cover new keys.
One fix in Android mapping for #12986
Added analog button indication for those buttons that may have use for it
- primarily L2/R2, but support was added for all buttons where at least
one controller is known to support it. Added also core option to hide
mismatching inputs where analog value is not sent (like keyboard
hotkeys assigned to retropad buttons). Analog button inputs are not
set up for remote transmission, only for local test.
Analog axes have now also dynamic coloring.
Added a keyboard tester screen which includes a standard 102-key PC
keyboard + extra blocks for all RETROK_ values present in the code.
Screen adapted from DOSBox-Pure onscreen keyboard with permission.
Keyboard button A+B switches between the two screens. Keyboard
inputs are not set up for remote transmission, only for local test.
Core option added to select start screen.
Other small improvements: core reset will take new option values,
input driver applies received values more carefully.
* iOS/tvOS: Hide MoltenVK from Core List, again
* iOS/tvOS: Don't show certain core management options
* apple: Manage macOS/iOS/tvOS from one workspace
* iOS/tvOS: update-cores.sh tweaks
* Add FlatUX Theme, Remove Retired Themes
With some help from @gouchi, I decided to try and add the FlatUX theme, which has been in the retroarch-assets repository for years. FlatUX was designed to merge the FlatUI and Retroactive themes into a single, unified design.
With the addition of FlatUX, the Retroactive and Neoactive themes will be retired. This PR removes them both from the menus. The theme files will be removed from retroarch-assets, but are archived on baxy-retroarch-themes.
* Edited Language Files to Add FlatUX, Remove Retired Themes
Edited the language files to Add FlatUX and remove the Retroactive and Neoactive themes.
* Fixed Language Files Again
I apologize for my errors. Let's see if this gets it right.
* Updated IT Language File
* iOS/tvOS: bundle cores as frameworks as opposed to dylibs
* iOS/tvOS: update plist to indicate controller support
* iOS/tvOS: living within the sandbox
* iOS/tvOS: import content through share sheet
* iOS/tvOS: default audio sync off due to crash on background
* iOS/tvOS: don't try altkit if there's no reason to
* iOS/tvOS: enumerate cores for appstore distribution
* This PR contains Add To Favorite functionality. It allows moving content to another playlist or to Create a new playlist with the selected content.
* Update retroarch.c
Fixed ISO C90 variable declaration at top of code.
* Update menu_cbs_ok.c
Fixed variable declaration for ISO requirement.
* This commit is to amend a previous PR where the mesg andd label hashs were in the wrong file.
* provide more information during achievement load process
* update rcheevos version
* do disconnected processing even when no game is loaded
* make loading widget unique
* only show loading indicator with verbose messages on
These "support" bindings made sense in older versions of iOS/mfi
controllers that didn't have full support for L3/R3 but now just get
in the way of the ones that do.
* This PR contains Add To Favorite functionality. It allows moving content to another playlist or to Create a new playlist with the selected content.
* Update retroarch.c
Fixed ISO C90 variable declaration at top of code.
* Update menu_cbs_ok.c
Fixed variable declaration for ISO requirement.
* Add grab_mouse interface for Android
Makes mouse grabbing and 'Game Focus' work on Android with a real mouse
Properly handle relative mouse motion events on Android (SDK 28 and newer)
* Enable workflow_dispatch on CI Android
* Update android_mouse_calculate_deltas callsites
* Add RETRO_DEVICE_MOUSE to android_input_get_capabilities
* Use Handler to trigger UI events (toggle mouse, immersive mode) with 300ms delay
* Enable input_auto_mouse_grab by default for Android
* Handle RARCH_DEVICE_MOUSE_SCREEN in Android input driver
* Add android.hardware.type.pc to manifest
* Don't attempt to set pointer speed via scaling in android_mouse_calculate_deltas
* Keep x/y values within viewport resolution for screen mouse
* Use video_driver_get_size to get width/height
---------
Co-authored-by: Bernhard Schelling <[email protected]>
* Test driver for joypad inputs
Add a new joypad input driver:
- hide driver behind #ifdef and enable it in config_params.sh
- add a new config parameter to specify the test input file
- add aux files: additional config files that cancel out any binds
that may be present in RA config, autoconfig profile for
test joypads, test input file that matches controller test
sequence
* Fixes and comments for test input driver.
- When enabled, any touch inputs not in a hitbox are used to create pointing device input for the core.
- Mouse: 1-, 2-, 3-touch inputs are LMB, RMB, and MMB
- Lightgun: allows input from overlay buttons or multi-touch mappings
Add input test capability for Remote Retropad core:
- read an .ratst file (JSON format) with test steps
- display instruction (via libretro SET_MESSAGE)
- highlight input to be activated
- display summary when test is finished
Refine the display for Remote RetroPad, as a preparation for
using it as a test tool:
- added display for analog axes
- all inputs that were hit at least once, receive a light green color
- removed useless extra button (could never be sent)
* Touch up the documentation for a few environment calls
* Touch up more comments
* Update docs for more environment calls
* Add doc comments for more environment calls
* Change various @returns to indicate that the environment call is available
- Some environment calls might be recognized but ignored (e.g. when fast-forwarding during netplay)
* Note some deprecated symbols
* Touch up the docs for RETRO_ENVIRONMENT_SET_MESSAGE
* Touch up the docs for RETRO_ENVIRONMENT_SET_PIXEL_FORMAT
* Add more doc comments
* (libretro) Add more doxygen documentation for the libretro API
* (libretro) Add doxygen comments for the callbacks
* Document retro_init and retro_deinit
* Add comments for retro_log-related symbols
* Add a comment
* Clean up some camera-related comments
* Clean up frame time-related callbacks
* Correct some information about major callbacks
* Clarify some parameter info
* Fix incorrect info about retro_set_environment
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* (libretro) Add doxygen docs on RETRO_THROTTLE
* Touch up the docs for RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK
* Touch up the docs for some macros
* Touch up the docs for some more environment calls
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Tidy up the doc comments for clamping.h
- It was a low-hanging fruit
* Define some sections for constants
- Doxygen will group all contained symbols on one page
* Fix a duplicate @see
* Polish up the docs for the rumble interface
* Polish up the docs for RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Document INLINE
* Clean up some tags
* Touch up the docs for the sensor interface
* Add docs for RETRO_ENVIRONMENT_SET_PROC_ADDRESS_CALLBACK
* Update docs for RETRO_ENVIRONMENT_GET_INPUT_BITMASKS and accompanying names
* Update some group definitions
* Spiff up the docs for retro_dirent.h
* Document dylib.h
* Document base64.h
* Document crc32.h
* Touch up the docs for audio conversion functions
* Clean up some Doxygen tags
* Refine the docs for RETRO_ENVIRONMENT_GET_PERF_INTERFACE
* Fix incorrect infor in dylib.h
* Touch up the docs for RETRO_ENVIRONMENT_GET_CAMERA_INTERFACE
* Revise the docs for RETRO_ENVIRONMENT_SET_GEOMETRY
* Revise the docs for RETRO_ENVIRONMENT_GET_LOCATION_INTERFACE
* Revise a function's doc
* Touch up most of the rthreads docs
* Touch up the retro_timers.h docs
* Revise the subsystem docs
* Fix some incorrect @see's
* Touch up the docs for RETRO_ENVIRONMENT_GET_LED_INTERFACE
* Give the RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT docs a makeover
* Slight cleanup to the microphone docs
* Slight cleanup to the device power docs
* Touch up serialization quirk docs
* Give the MIDI docs a haircut
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Freshen up rtime's docs
* Improve the docs and accompanying definitions for RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE
- Revise the text of the documentation
- Introduce an enum that defines the flags (it's still an int, so ABI compatibility will be fine)
- Move the documentation for each bit to its corresponding enum
* Shine the shoes of RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS's docs
* Freshen up the docs for fifo_queue.h
* Document most of task_queue.h
* Put retro_dirent's symbols in a group
* Finish documenting task_queue.h
* Document some compatibility headers
* Document read_stdin
* Document file_stream_transforms.h
* Document the VFS API
- Not the wrappers, just the plain API itself
* (Docs) Add doxygen notes about RETRO_DEVICE_*
* Fix some line breaks
* Revise RETRO_DEVICE docs
* Document strl.h
* Update the features_cpu.h docs
* Rewrite the docs for file_stream.h
* Update the docs for retro_endianness.h
* Update the docs for retro_miscellaneous.h
* Document the RETRO_VFS_SEEK_POSITION constants
* Finish documenting rthreads.h
* Document network_stream.h
* Put the RETRO_MEMORY defines in a defgroup
* Move a doc comment in retro_common.h to file scope
* Revise the docs for RETRO_ENVIRONMENT_SET_CONTROLLER_INFO, and accompanying symbols
* Fix the @param/in/out order in libretro.h's @param declarations
* Tidy up the docs for RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION
* Spiff up the docs for RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER
* Fix some tags
* Polish up RETRO_ENVIRONMENT_GET_HW_RENDER_INTERFACE's docs
* libretro: Add header doxygen
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Update libretro-common/include/libretro.h
Co-authored-by: Rob Loach <[email protected]>
* Clean up the docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY
* Clean up the docs for RETRO_ENVIRONMENT_SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE
* Touch up some comment syntax for RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE
* Fix some inaccuracies
* Re-add the license statement for libretro.h
* Touch up the docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2
* Touch up docs for RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY
* Touch up docs for some options-related symbols
* Fix some syntax that was preventing most doc files from being generated
* Express retro_core_option_definition docs in terms of retro_core_option_v2_definition
* Finalize some core option-related docs
* Fix some incorrect info about achievements
* Polish up the docs for RETRO_ENVIRONMENT_SET_MEMORY_MAPS
* Polish up the docs for RETRO_ENVIRONMENT_GET_DISK_CONTROL_INTERFACE_VERSION
* Add a notice for `RETRO_ENVIRONMENT_GET_LOG_INTERFACE`
* Update the disk control interface docs
* Add a sentence to a doc comment
* Update a comment
* Remove an irrelevant @todo
* Touch up the docs for `retro_message_target`
* Touch up the docs for `retro_message_type`
* Touch up the docs for `RETRO_ENVIRONMENT_SET_MESSAGE_EXT`
* Touch up the docs for `RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK`
* Touch up the docs for `RETRO_ENVIRONMENT_SET_MINIMUM_AUDIO_LATENCY`
* Revise a comment
* Revise the docs for `RETRO_ENVIRONMENT_SET_VARIABLE`
* Add a `@see`
* Clean up the `RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE` docs
* Update the Doxyfile
* libretro: Add three more environment callback doxygen docs
* doxygen: Remove @example reference
---------
Co-authored-by: Rob Loach <[email protected]>
Triggered by #16320, a few things are adjusted:
- device name is shown correctly (this was preventing config save)
- driver name fixed in autoconfig related calls
- hotplug reconnect was not working
- some logging added
This fixes a recurrent bug where context initialization fails due to the major/minor being both set as 0, causing an OpenGL ES 1.1 context to be created.
* [WINRT] Enable logging on __WINRT__ and bypass verbosidy in debug
* [UWP] wrong configuration prevents GLES to compile, common functions defines GL symbols
* [UWP] configure project to allow OPENGL on default configuration and copy MESA DLLs into UWP release
* [UWP] add MESA headers
* [UWP] add MESA EGL.lib needed for GLES context. However HAVE_OPENGL is better as GL cores use desktop version, so this is left for reference and to make the solution build with HAVE_OPENGLES
* [UWP] UWP is missing some GDI function definitions, implemented into MESA Gallium
* [UWP] Configure Release project too
* [UWP] Add mesa alpha-2 release dlls
* [UWP] allow griffin and vide_driver to have an OPENGL context
* [UWP] allow wgl context to work with mesa under WINRT
* [UWP] BUG: have to modify height/width getters and align them to MESA because the screen resolution is not right in gl context. Pending further investigation
* [UWP] fix ANGLE build
* [UWP] remove duplicate import code.
* (UWP) Cleanup filters file
* MESA screen destroy fix and Yabasanshiro hack. Align to alpha-2-hack tag
---------
Co-authored-by: Gabriel Morazán <[email protected]>
This puts the History and Favorites playlists (up to five items each)
in the Top Shelf menu. In order for this to be enabled you must build
it yourself and change the app identifiers for the TV app and Top
Shelf extension, and add both of them to an app group.
* (Ozone) Fix crash when deleting last playlist from sidebar
* (Ozone) Respect navigation wraparound in sidebar
* (Ozone) Fix sidebar after loading configuration
Autoconfig profile may be useful for e.g. submitting to autoconfig
repo. Construction of the filename is moved to a separate function
and reused for message.
* Add sublabels for "port x controls" entries
Due to the port-specific indexes, sublabels for these entries
are handled specially. Some simplification/generalization was
applied and hand-crafted string joining was removed from a few
places, though it remains still in other places.
Preparation for #16121 (this commit does not do anything yet with
file names).
* Further simplifications around joypad_index
Removed a few labels, now unused, and the left/right check, as it
fell back to the default which is given anyway in advance.
Adds support for sub-frame shaders to vulkan/glcore/dx10-11-12.
Builds on the concept already present for frame duplication in use for BFI, to present multiple 'sub' frames per real frame to the shaders, so they can run at a higher framerate than the content framerate. Must be enabled via subframe shaders setting under synchronization settings to be active.
Will allow BFI to be implemented inside of the shaders, among any other use for the higher framerate shader authors can devise.
CurrentSubFrame and TotalSubFrames have been available inside the shaders to track what they want to do on an given subframe. TotalSubFrames will always be 1 when the setting is disabled (and when in menu/ff/pause). Framecount will not increment on sub-frames, as it does not for injected bfi frames now. Should not interfere with any existing shaders that do not check for subframes.
Loading the last used disc for multi-disc content was automatic.
However, in some cases it is not wanted, as described in #16018
Option is added for controlling the function. Disabling the
option will also implicitly disable index saving.
The check for sleeping to sync to a specific speed that is meant for fast forward/vrr could be true for a non-vrr normal core running state causing a possible sleep in a situation it was not intended for, especially at higher hz, and thus interfering with frame pacing.
commit 793d41c303206b43932ddcefd44a45836def55eb
Author: Ophidon <[email protected]>
Date: Fri Jan 19 23:12:31 2024 -0500
Build Fix 2
Move declarations of iterators.
commit c0e959b3d3cd773a66a17cfe034f08eaa53d525a
Author: Ophidon <[email protected]>
Date: Fri Jan 19 22:57:01 2024 -0500
Build Fix
Help string was 14 characters too long for c89.
commit fc5506c7906bf82d6f88b7b0d7e4764d58d90622
Author: Ophidon <[email protected]>
Date: Fri Jan 19 22:40:45 2024 -0500
BFI Updates
Significant BFI updates.
- Adds BFI to dx10/11/12 in general.
- Updates existing BFI menu option descriptions to be somewhat more clear in how to use correctly.
- Adds Variable Strobe length via new 'Dark Frames' bfi sub-choice. Only valid at 180hz and above, as it must work with whole frames.
- Algorithm to auto select 'decent' Dark Frames choice, for any given selected BFI refresh rate. Will also avoid defaults that can cause Image Retention at any Hz higher than 120. (Impossible to avoid at 120 if you have an affected screen... get an OLED :D ) .
- Some sanity checking on selecting BFI or the other synchronizations options like Swap Interval > 1, that don't play well with BFI.
Some controllers show up as both HID and mFI. In that case we probably
want to let the user pick which driver to use, rather than balance
across them.
This fixes issues with the analog stick moving in the wrong direction
on the y axis.
Thumbnail packs are no longer available, but the option was still
present as "legacy thumbnail downloader". Since it serves no
purpose any more, it is removed from the code.
- Move flag logic to task_push_pl_entry_thumbnail_download - this
enables individual "download thumbnails" entry to be also flexible
- Add a message when this download has been tried enough times
(i.e. 3)
- Optimize cases when full or short name is the same as standard
name, skip queries if so (both download and local file)
* Minor thumbnail improvements
- set standard name if only one entry is in the playlist
- use first database name for thumbnails if core has multiple
* Fix playlist thumbnail downloader
Playlist thumbnail downloader function was missed from the flexible
thumbnail name update, now it is added.
Auto savestate (and its optional thumbnail) is generated on core unload
(quit, netplay start, etc). This ends up using the task-queue, which in
many cases deadlocks and/or causes a crash due to its asynchronous
nature.
Given that this is a state that must be generated before quiting or
reloading the core, it makes no sense to use the task queue, it should
be a synchronous job like for instance SRAM saving.
This should fix#15248 (tested by @schmurtzm)
* Simplify autosave command function
* Simplify and split save and savestate logic
save.c contains "SRAM" saves and their logic, which uses no task/queue.
Add logic to handle 3 possible thumbnail names, in following order:
- most exact name derived from content file (same name, with .png extension)
- usual name derived from playlist (usually coming from database)
- shortened name up to first bracket, chopping off region/publisher etc. info
For local file system, names are checked always.
For thumbnail downloads, names are checked each time the item comes up
in the playlist, meaning that it may take going back and forth 3 times
for a thumbnail to appear. However, as a positive change, failed thumbnail
downloads are not repeated for the same playlist, which was not the case
earlier.
In the commit [1], a global configuration "thumbnail match with filename"
was added which allows thumbnail match with filename.
This commit adds playlist level "thumbnail match with filename" for more
flexible configuration.
[1] 32ed9b6041 ("플레이리스트 롬파일 이름으로 썸네일 이미지를 찾도록 옵션 추가 (#15731)")
Signed-off-by: masky2012 <[email protected]>
Before this fix with the folder setting enabled a core using the netpacket interface would append the sort folder name twice thus breaking existing save states
Right now close is based on core unload. There are several places where
cores are unloaded without the intention of stopping the emulation (for
instance whenever Netplay is started, core is updated, etc).
Moreover scheduling a quit under some of those events causes a task
queue deadlock (as per issue #15313) and freezed retroarch.
This fix moves the quit on close to a "manual" check, placed in the
relevant places (close content menu option, close content event (which
also covers hotkeys), etc.)
- Allow starting netplay host while a netpacket core is running without restart
- Allow connecting to a host while a netpacket core is running without restart
- Avoid clients getting stuck in connection loop if the host has the content paused while a client connects by automatically unpausing
* Rename the `MIN_MATCH` defined by xdelta3 to `XD3_MIN_MATCH`
- zlib defines its own macro by that name, but with a different value
* Don't redefine `SIZEOF_ARRAY` in xdelta3 if it already exists
* Don't define ssize_t in xdelta3, rely on libretro's definition instead
* Enable xdelta3 support in MSVC 2015-2019
* Fix some invalid MSBuild condition syntax
* Always build xdelta with XD3_USE_LARGESIZET as 1
* Fix an `#if` in task_patch.c
* Enable `HAVE_XDELTA` in the UWP build
* First crack at fixing Xdelta support for Android
* ensure game placard is loaded on main thread
* show on-screen indicator while disconnected
* show server unreachable message in achievements menu
* remove comment
iOS 7+ supports gles3, which is backwards compatible with gles2. This
doesn't enable the glcore driver (which isn't working on ios yet), it
just changes the underlying context.
This fixes some of the rendering performance problems on mupen64plus_next.
* Add xdelta in deps
* Include <assert.h> in xdelta3.h
- Otherwise the static_assert calls can fail
* Build xdelta3 in Makefile.common
* Add xdelta support to the softpatching infrastructure
- The patching itself isn't fully implemented yet
* Adjust how xdelta3.h checks the sizes of some types
- Now checks max values instead of relying on autotools
* Add some enums that were excluded by the cherry-pick
* Remove stray whitespace
* Adjust SIZE macros in xdelta3.h
- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX
* Reintegrate xdelta support
* Enable support for xdelta's secondary compressors
- Necessary for some patches
* Fix some format specifiers
* Remove unnecessary files from xdelta
* Include xdelta3.h with a relative path
* Add xdelta3 headers to HEADERS variable
* Gate Xdelta support behind HAVE_XDELTA
- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found
* Disable HAVE_XDELTA on platforms where the build recently failed
- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong
* Fix a potential memory leak
- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream
* Split the --help printout for --xdelta into its own strlcat call
- GCC was complaining about #ifdefs within macro arguments being non-portable
* Fix some incorrect printf format specifiers
* Modify Xdelta to adhere to C89
- It's mostly using RetroArch's INLINE macro instead of the inline keyword
* Slight cleanups
* Remove a stray comma that was hindering C89 builds
* Add XDelta support to CHANGES.md
* Change how the xdelta patch's name is computed
- To be in line with other recent refactoring
* Fix an incorrect merge
- Whoops, this part was from before I figured out how to get the size of a patched file
* Explain the song-and-dance behind computing a patched file's size
* Define some XDelta3-related constants to 0 on 32-bit platforms
* Adjust some Xdelta-related macro definitions
- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using
* Fix Xdelta support
* Wrap an encoder-only function in `#if XD3_ENCODER`
- Contentless support and populated content paths are not mutually exclusive in practice
- It just looked that way because most cores that support contentless mode to date don't use softpatching very much
* wip
* fix mount path
* Fix path for zip bundle
* fix case where idbfs sets up correctly and filesystem initializes too early
* Use partfiles to keep each zip small
* use bufferview slices instead of resize to support firefox
* Change rotation type to int to maximize compatibility and to match glUniform1i
* Change to C style comment; Make comment more useful (hopefully)
* Add support for FinalViewportSize in GLSL
* Updates to the netplay netpacket interface
- Switch environment call number from 76 to 78 (retire 76 as it was never used by any core)
- Simplify broadcasts by removing the option to send to all but one client
- Separate explicit flushing and querying of incoming packet into two operations (RETRO_NETPACKET_FLUSH_HINT and retro_netpacket_poll_receive_t)
- Enable a core to specify a protocol version string which can get used instead of core version to determine compatibility between two players
- Log and notify a separate message when there is a content crc mismsatch to convey it being less severe (as different games may be able to do network communication with each other)
* C89 compile fix
- Make sure logs are written before frontend deinit
- Add memory stats
- Add process_args to frontend to fix some cases when salamander cfg was not filled
- Add a missing include in case someone wants to compile for PS2 with HAVE_THREADS
There are cases when mixer exists without ffmpeg. In such cases,
some music content can still be added to the mixer for playback.
Logic added to separate the two cases.
* Increase emscripten stack size and decrease path size to fix emscripten builds broken since de45fc2
* use modularize flags for better-behaved javascript output
* makefile and loader changes
* use specialHTMLTargets to support modular access to canvas
* bind key events to canvas, not document
This way focus means focus and we can have multiple RA instances in
one page.
* Work around an emscripten bug in strict mode
* (Emscripten) Use console.error() for error messages
* increase asyncify stack size
* Fix `-lm` flag-related compile warnings in emscripten
---------
Co-authored-by: Rob Loach <[email protected]>
This line generates a warning during compilation:
menu/menu_displaylist.c:11925:46: warning: '%d' directive output may be truncated writing between 1 and 3 bytes into a region of size 2 [-Wformat-truncation=]
11925 | "Mode %d", toc->track[i].mode);
| ^~
menu/menu_displaylist.c:11925:40: note: directive argument in the range [0, 255]
11925 | "Mode %d", toc->track[i].mode);
| ^~~~~~~~~
In file included from /usr/include/stdio.h:936,
from ./libretro-common/include/file/file_path.h:26,
from menu/menu_displaylist.c:27:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 7 and 9 bytes into a destination of size 7
64 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Since the value of the track mode should be either 1 or 2, a modulo 10 should not limit the displayed value, and it removes the warning.
* Input: Udev: Fix touch support building against older kernel headers
* Input: Udev: Fix Touch Deep Debug compile issues
* Input: Joypad: Udev: Joypad: Add Change detection for udev events
This is handy with controllers like the Nintendo Joycons that have a daemon
app in the background to handle combining them into one controller(Joycond)
Since the device was already added, but joycond clamped permissions on evdev
retroarch was never updating the controller input change, this fixes that issue.
Note: Needs a patch in joycond as well, to send change uevent.
This shouldnt cause any issues with other controllers, as the kernel probably
will never send change events for these device types.
* Lakka: Add canary builds to updater
* AI service rework
* File missing
* Fixed C89 build
* Fixed usage of inline for C89 build
* Fixed an overlay unloading bug
Made sure to unload the overlay on release and when the server returns empty values in automatic modes.
* Fixed forward decl (c89)
* Fixed OpenGL texture loading
Moved image display to the main thread for now
* Changed some formatting slightly
* Fixed struct variable order and put brackets on newlines
* Moved pointer, fixed retroarch.cfg, and replaced strlcat with strlcpy
* Fixed catenation issue
* Fixed a few other catenation issues
* Fixed one more concatenation issue
* Fixed concatenation issue
* Fixed a few other concatenation issues
* Fixed one more concatenation issue
* potential fix for parsing issue
---------
Co-authored-by: Xunkar <[email protected]>
* High Hz Synchronization
Makes adjustment to driver_adjust_system_rates and related functions to handle Hz skew adjustment for high refresh rates better, especially when using effective refresh modifiers like swap interval or BFI.
* Reorder for Build Fix
Reorder declaration for build fix
* Lakka: Switch: Decouple From LibNX builds.
* Lakka: Always show Power Management Settings menu
* Lakka: Switch: Add Nintendo Switch Options Menu, and First Option
* Lakka: Switch: Add CEC Toggle
* Lakka: Switch: Add Bluetooth ERTM Toggle
* Retroarch: unix platform: Always display battery meter even when the device reports it as unknown
This is useful for most arm devices that have unknown battery status until charger state changes
* Retroarch: Lakka: Remove Gamemode stuff from build
Lakka will never include this, as it only runs base system, and retroarch.
* Enqueue replay record/playback until next frame
This fixes a bug where stdin commands activated via polling would
trigger replay record/playback in the middle of a frame, then input
checking would pull from them before the next frame came around---it
only makes sense to change the active replay in between frames, not
during them.
* fix comment syntax
The menu item for matching the thumbnails with filenames was just "Use Filename", which isn't that descriptive. This change tweaks it a bit so that the option is a bit more clear.
So happy to have this feature in place.
title_length is originally calculated to be the msg length, but later
if the task has a title then that is used instead, but the length is
not updated. If msg is longer than title, we read past the end of the
buffer.
Canada's default language is often picked up as `en_CA.UTF-8`, which inadvertently gets discovered as `ca`, or Catalan. This means that if you're in Canada, you would end up getting Catalan as your default language.
Adding `en_CA` to the language list as British English fixes the language detection for Canadians. This must be indexed above Catalan's `ca` so that it uses English instead of Catalan.
* Update uwp_main.cpp
Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform.
* Update uwp_main.h
Fix modifier keys ( shift, ctrl, alt ) as well as F10 not being detected on the UWP platform.
* First crack at RETRO_ENVIRONMENT_GET_POWER_STATUS
* First crack at RETRO_ENVIRONMENT_GET_POWER_STATUS
* Remove a stray comma
* Rename some symbols for clarity
* Change some references to the old environment call's name
* Fix some mixed-up cases in checking the power state
- I misunderstood the meaning of these enums
* Add a comment
* Rename seconds_remaining to seconds
* Clarify some comments about the power state
* Adjust power state behavior
- Don't return 0 seconds; instead, return NO_ESTIMATE
- Don't force percent to 100 in the CHARGED state
* Adhere to C89
* Mention the environment call in CHANGES.md
* added 21:9 as an option to RGUI
* reverted files that weren't supposed to be changed
* fixed issue with 21:9 not showing in the menu and corrected buffer width
Due to an error in 631301b3f7, the
runtime display string was working well only when the label had
a length of 7. Even the English "Runtime:" was a bit truncated
as a space was supposed to be added after the :, but it was
even more noticeable in other languages.
* Remove deps/switchres to update it right after
* Squashed 'deps/switchres/' content from commit 4df022c68a
git-subtree-dir: deps/switchres
git-subtree-split: 4df022c68a43b6481e18d5aa8e0ea27481291d1a
Add keyboard overlay preset, keyboard submenu, and osk_toggle hotkey. Use overlay caching for osk_toggle.
For now, keyboard menu has only preset path, auto-scale toggle, and opacity.
Related fixes:
- input_keyboard_event: Don't check hotkey binds when device is RETRO_DEVICE_POINTER
- Add input_keymaps_translate_rk_to_ascii() for correct character input to input_keyboard_event
- input_overlay_poll: Delay clearing INPUT_OVERLAY_BLOCKED flag until there is no overlay input (Avoids stray input after osk_toggle)
- Send keyboard events for modifiers before other keys (for correct modifier+key input if hitboxes overlap)
Adds overlay_cache_ptr to keep a disabled overlay in memory when it's expected to be shown again.
Most input_overlay_deinit calls are replaced with input_overlay_unload, which caches the overlay unless initing/deiniting core or disabling overlays.
Loading a cached overlay is done as a swap, intended for osk_toggle.
Related updates:
- Fewer parameters for the overlay loading task. Use current settings when enabling an overlay
- Add input_overlay_check_mouse_cursor() to preserve show/hide mouse behavior
- Don't apply input_overlay_show_mouse_cursor in windowed mode (controlled by mouse grab only)
- Remove some dead code
- Enable core host to refuse connecting new players to limit the number of connected players
- Enable a core to flush outgoing packets and read incoming packets without waiting for the next frame (can be used for lower latency or blocking reads)
Adds a new libretro interface for a core to send and receive custom network packets for implementing a communication based multiplayer system instead of using the default state serialization based multiplayer. Connection management is still done by the frontend while a core gains the ability to easily support tunneling of multi-console data communication traffic.
assignments for strings longer than 2 chars
- Use strlcpy concatenation instead of strlcat
- Make sure that what remains of iteration of the '_len' variable
for manual char assignment
is done in a safer way so mistakes are less possible
usage of strlcpy (when position/offset of previous strlcpy/snprintf call
is known. strlcat implementation in libretro-common makes implicit strlen
call, using strlcpy avoids this
* Reduce a bunch of local char variables by use of said clever usage,
should save up on local stack size usage
- Use one set of properties with conditions
- Include all headers in ui/drivers/qt instead of naming them all
- Update griffin_cpp.cpp to reflect these changes
* Some slight fixes
* Update libretro.h
* Log calls to RETRO_ENVIRONMENT_GET_MICROPHONE_INTERFACE
* Finish proof-of-concept for mic support
- It works, but doesn't support floating-point audio yet
- It may need to be resampled, too
* Add macros that aren't available in SDL 2
* Comment out a variable definition for now
- For C89 compliance
* Add some comments for clarity
* Let ALSA tolerate a null new_rate
* Partial ALSA microphone support
- Not yet tested
- Mic is created and destroyed
- Mic can also be paused or unpaused
- Mic is paused or unpaused with the rest of the driver
- Microphone is not yet read
* Install error logging in the ALSA driver
- It defers to RARCH_ERR
* Free the ALSA microphone in alsa_free
* Fix an indent
* First draft of alsa_read_microphone
* Deinitialize SDL Audio in sdl_audio_free
* Save and restore the ALSA error logger
- You should always practice safe global state
* Add newlines to some RARCH_ERRs
* Add some logging
* Check for the mic being active via settings instead of via flags
* Adjusted a log entry to be less misleading
- A frequency of 0Hz looks weird to the uninformed
- In reality, it means the driver used the requested frequency
* Fix an incorrect format string
* Tidy up logging in alsa.c
* Rename audio_enable_microphone to audio_enable_input
* Rename microphone_device to audio_input_device
* Add audio_input_latency and audio_input_block_frames settings
* Add all mic-related settings to the options menu
* Adjust logging for alsa.c
- Log the ALSA library version
- Add errno details
* Refer to the microphone in logs by name
* Use %u instead of %d for some log items
* Add input_samples_buf
* Remove an inaccurate comment
* Change type of input_samples_buf
* Clean up audio_driver_flush_microphone_input
* Comment convert_float_to_s16
- It helped me understand what it's doing
- Turns out it'll work just fine on mono audio
* Don't use the resampler for mic input
* Fix crash in the ALSA driver when reading from a mic
* Update some logging messages
* ALSA support now works for mics
* Reuse some common functions in alsa.c
* Add alsa_thread_microphone_t
* Refactor alsa.c
- Introduce alsa_init_pcm to init any PCM that we're using
- Vastly simplifies the implementation of alsa_init and alsa_init_microphone
- Will be used for the read-based versions next
* Make ALSA logging a little more consistent
* Clean up the mic with alsa_free_microphone if alsa_init_microphone fails
* Remove an unused function
* Move some cleanup in alsa.c to a common function
* First crack at mic support for alsathread
- Refactor some duplicate code into functions
- Use functions introduced in alsa.c
- Create and destroy the mic
* Slight cleanups for clarity
* Implement alsa_thread_set/get_microphone_state
* More work on alsathread
- No more crashing, but the mic just returns silence
* Slight cleanups for clarity
* Add alsa_set_mic_enabled_internal
- For setting the state of a microphone while considering its current state
* Use alsa_set_mic_enabled_internal
* Log a little more info
* Log when the audio driver is started/stopped
* Move base microphone driver code into a new directory
- Add microphone_driver.c to Makefile.common
- Rename functions as needed
* Initialize and deinitialize the microphone driver
* Implement sdl_microphone.c
* Un-const an argument
- In case the driver context needs to do any locking
* Revise comments for microphone_driver.h
* Remove an unimplemented function
* Remove some functions from the mic driver
* Remove mic functions from audio_thread_wrapper
* Remove mic functions from sdl_audio
* Fix microphone_null
* Split the mic code for the alsa audio drivers into microphone drivers
* Fix an extra struct member
* Add a setting for the mic driver
* Add a command to reinitialize the microphone driver
* Rename mic-related settings
* Add DRIVER_MICROPHONE_MASK to DRIVERS_CMD_ALL
* Rename audio_enable_input to microphone_enable
* Remove some labels from qt_options
* Search for microphone_driver within find_driver_nonempty
* Clean up some mic driver code
* Pending mics now return silence
* Adjust some logging and comments
* Some cleanup in the microphone driver
* Invert a flag check
- Oops
* Fix a log message
* Fix the wrong flags being checked
* Slight refactor of wasapi_init_device
- Add a data_flow parameter
- Declare it in a header
- In preparation for WASAPI mic support
* Add some WASAPI macros for _IAudioCaptureClient
* Move some common WASAPI functions to audio/common/wasapi.c
- They'll be used by the mic and the audio drivers
* Add wasapi_log_hr
* Generalize mmdevice_list_new to look for capture devices, too
* Fix a function declaration
* Move driver-specific device_list_new functions into their respective files
* Clean up some declarations
* First draft of wasapi microphone driver
* Add wasapi_microphone_device_list_free
* Change function parameter names to be consistent with microphone_driver
* Partially implement wasapi_microphone_read
- Mostly copied from the audio driver so far
- It doesn't compile yet
- But it'll be beautiful when I'm done with it
* Refactor the mic driver's functions
- Rename get_mic_active to mic_alive
- Split set_mic_active into start_mic and stop_mic
- Refactor the SDL mic driver accordingly
* Edit some WASAPI functions for logging and clarity
* Implement more of the WASAPI mic driver
* Rename write_event to read_event
* Pass the WASAPI driver context to the various read functions
* Mostly implement the read function for the WASAPI mic driver
* Fix a crash in microphone_driver
- Forgot to move the position of the name of null_driver
* Reduce some logging in wasapi common functions
- Only log the chosen audio client format, not all attempted ones
* Add some macro wrappers for IAudioClient methods
* Update mic driver configuration
- Make the mic driver configurable in the menu
- Add config items for WASAPI-related options similar to the audio driver
* Fix a menu entry scrolling through audio devices instead of mic devices
* Add some utility functions
* Expose the new utility functions in wasapi.h
* Add extra logging in the WASAPI common functions
* Add sharemode_name
* Use _IAudioClient_Initialize macro in some places
* Pass channels to wasapi_init_client
- Remember, mics are in mono
* Use _IAudioClient_Initialize macro some more
* Forgot to pass channels in some places
* Add some utility functions
* Forgot an #include
* Add wasapi_select_device_format
* Simplify the format selection logic in wasapi_init_client_sh
* Unset the microphone in wasapi_microphone_close_mic
- Ought to prevent a potential segfault
* Simplify some logging
* Fix incorrect value being passed to _IAudioCaptureClient_ReleaseBuffer
* Remove some unneeded logging
* Add some values to hresult_name
* Polish up wasapi_select_device_format
- Test for formats manually when Windows can't
- Add some debug logging
- Check for channels
* Compute the fields of WAVEFORMATEXTENSIBLE correctly
- As per the doc's stated requirements
* Simplify logic for WASAPI client creation
* Fix a potential hang in wasapi_microphone_read_shared_buffered
* Stop the microphone if the driver is stopped
* Don't name the microphone event
* Ensure that wasapi_init_client reports the correct format and rate
* Implement exclusive microphone read access for WASAPI
* Add _IAudioCaptureClient_GetNextPacketSize macro
* Organize cases in hresult_name
* Clear some extra fields if wasapi_set_format is setting a Pcm format
* Adjust some logs
* Adjust some logs
* Remove unneeded local vars
* Add a log
* Update wasapi.c
* Update wasapi.c
* Fix shared-mode mic support in WASAPI producing broken input
- Turns out it had nothing to do with shared mode
* Reuse a common function
- Remove wasapi_microphone_read_shared_buffered
- Rename wasapi_microphone_read_exclusive to wasapi_microphone_read_buffered
* Remove some code I was using for test purposes
* Clarify some language
* Double the default shared-mode mic buffer length
* Split getting a device's name into a separate function, then use it
* Fix the ALSA mic drivers
- To comply with changes I previously made to the mic driver interface
* Remove unused synchronization primitives from the SDL microphone driver
* Add sdl_microphone_mic_use_float
* Document audio_driver_state_flags
- I needed to understand these to see if similar flags were required for the mic driver
* Remove an unused function in wasapi.c
* Add and document flags in microphone_driver.h
* Remove driver-specific mic start/stop functions
- The mic driver itself doesn't do much processing
- That honor goes to individual mics
* Remove some unused fields in microphone_driver.h
* Add CMD_EVENT_MICROPHONE_STOP/START
* Remove unused functions from microphone_null
* Change how the mic driver state is referenced in some places
* Simplify the SDL microphone driver
- The driver backend no longer keeps a reference to the mic (the frontend does that)
- Remove functions that are no longer needed
- Don't track paused state, just query the mic itself
* Simplify the WASAPI microphone driver
- Don't track the driver running state or the microphone handle, the frontend does that now
- Remove support for unbuffered input (hunterk suggested that it wasn't necessary)
* Make microphone_wasapi_sh_buffer_length a uint, not an int
- It won't be negative anymore
- 0 now represents the default value
* Make the microphone frontend more robust
- Improve documentation for how various functions should be implemented
- Closes all microphones before freeing the driver (so backends don't have to)
- Tracks the enabled state of each microphone, so backends don't have to (but they still can)
* Stop the mic driver in core_unload_game
* Ensure mic support is compatible with the revised menu code
* Move alsa.h into audio/common
* Remove RETRO_ENVIRONMENT_GET_MICROPHONE_ENABLED
- It was never really needed
* Refactor the ALSA microphone driver
- Move common ALSA functions to audio/common/alsa.c
- Replace alsa_set_mic_enabled_internal with alsa_start/stop_pcm
- Don't track the microphone handle in the ALSA driver context
- Remove unneeded fields
* Move some common alsathread code into audio/common/alsathread.c
* Change return type of mic_driver_open_mic_internal to bool
* First crack at resampling mic input
* Remove an extraneous check
- I think something distracted me when I was writing this line
* Add stereo/mono conversion functions
* Make alsa_start_pcm and alsa_stop_pcm more robust
- They now return success if the stream is already running and stopped, respectively
* Revise some mic-related comments in libretro.h
* First crack at resampling mic input
* Simplify an expression
* Simplify an expression
* Fix a log tag
* Allow mic resampler to be configured separately from audio resampler
* Add some comments
* Set the source ratio to something sensible
* Stop deadlock in `alsathread` mic driver
* Allow mics to be initialized even when core is loaded from CLI
- When loading content from CLI, the drivers are initialized a little differently
- That threw off the mic initialization code
* Rename the functions in retro_microphone_interface
* Revise some mic-related comments in libretro.h
* Update retro_microphone_interface
- Add get_mic_rate
- Add a parameter to open_mic
- The modifications don't do anything yet
* Use parameter objects in the microphone handle
* Replace get_mic_rate with get_params
* Add a microphone interface version
* Remove part of a comment
* Set the effective params in mic_driver_microphone_handle_init
* Drop a stray newline
* Change where the mic interface is zeroed
- I was accidentally throwing out the version that the core was asking for
* Reduce logspam for wasapi_set_nonblock_state
- Now it only logs when the sync mode is changed
* Change DEFAULT_WASAPI_SH_BUFFER_LENGTH to 0
- -16 is no longer a valid value
* Set the new_rate in wasapi_init
* Change description of microphone sample rate in the settings
* First attempt at resampling configured mic input
* Forgot a section
* Fix some input samples being skipped
* Rename a variable for clarity
* Add microphone.outgoing_samples
* Update the mic driver
- Processed samples are now buffered
- The resampler is skipped if the ratio is (very close to) 1
* Remove part of a comment
* Update some comments in audio_resampler.h
* Slightly refactor the SDL microphone driver
- Move SDL_AudioSpec to a field of sdl_microphone_handle_t
- Allow SDL to change the requested format and sample rate
- Request floating-point input
- Implement sdl_microphone_mic_use_float
* Fix a non-C89-compliant declaration
* Add new files to griffin.c
* Remove a C++-style comment
* Add two more files to griffin.c
* Remove some unneeded declarations in microphone_driver.h
* Remove a stray comma in configuration.c
- For C89 compliance
* Fix compilation on some platforms
* Change some function signatures
* Make the ALSA drivers always set the audio rate
* Fix the alsathread mic driver
* Make state_manager_frame_is_reversed return false if HAVE_REWIND isn't defined
* Mute the microphone if the core is running in fast-forward, slow-mo, or rewind
* Clarify a comment
* Clarify a comment
* Add a comment
* Don't allocate memory for slowmo samples in the mic driver
- We're not supporting slowmo for mics, so it's not needed
* Fix a {
* Add my name to AUTHORS.h
* Add driver_lifetime_flags
- For drivers that have special setup/teardown needs
* Ensure that resetting the mic driver maintains active mic handles
- Prevents fullscreen toggle from stopping all mic input
* Update CHANGES.md
* Move some default microphone settings to a new part of the config file
* Ensure that RetroArch can use the audio format that Windows suggests
* Remove references to mic support in the SDL audio driver
* Remove unused WASAPI functions
* Return failure if RetroArch couldn't select a WASAPI format
* Ensure that Windows uses the WASAPI mic driver by default
* Treat disabled mic support as a warning, not an error
* Clarify some WASAPI-related microphone settings
* Remove some unused variables
* Add or revise microphone-related comments
* Rearrange doc comments for microphone types in libretro.h
* Remove a space
* Remove some unused flags
* Remove ALSA error logger
- It was never used anyway
* Remove unneeded microphone-related arguments
* Document a parameter
* Remove a logging call
* Add a constant for the microphone's shared buffer length for WASAPI
* Fix stylistic inconsistencies
* Make mic_driver_get_sample_size a macro instead of a function
* Move the microphone implementation to the audio directory
* Make microphone support optional (but enabled by default)
* Fix the griffin build
Add a display server construct for DRM/KMS mode. The main use is
to provide resolution changes (including automatic refresh rate
switch) for this configuration, i.e. DRM context and OpenGL drivers.
To enable refresh rate restoration after automatic refresh rate
change, av_info->timing_fps is also adjusted on core close / RA exit.
No effects expected on CRTSwitchRes.
It's not really usable as a game controller, but it is good for going
through the menu as a simple LRUD.
This also adds better support for names of mFI controllers, as well as
being able to do the expected tvOS behavior of "backing out" of the app.
This reduces the amount of memory Retroarch needs to extract a ROM file.
It will only need the size of the ROM plus 128KiB to extract the file
from the ZIP. Previously it needed as much as twice that amount if the
compression ratio was not great. This is useful on memory constrained
platforms and has no impact on platforms with plenty of memory.
Handles all cases correctly (with and without MMAP, for cores that
require fullpath or not, small and big ZIP files).
After PR #14821 , the contents of msg_hash_xx.c files are present
in the normal translation workflow. Since that time, almost all
languages have either caught up on Crowdin, or are still on such
low level of translation completeness, that removing these entries
does not harm usability.
Only Chinese Simplified and Portuguese Brazilian languages remain
in separate files, as they may still be considered an improvement
over Crowdin status.
See also commit 568ffac8f6.
* 🎵 Fast forward audio resampling. Solves #15160.
Previously, we avoided doing any resampling while fastforwarding based
on the assumption it was impossible to make the audio not crackle due to
both flush-to-flush timing fluctuations and timer accuracy.
However, turns out this is not the case. The audio doesn't "crackle" per
se when the timing fluctuates! It's just that the sounds don't make
sense since the time compression and decompression caused by the flush
time fluctuations mess with the audio consistency.
To work around that, we introduce a running average flush delta time
that makes sure the audio is both resampled to approximately the correct
rate and consistent.
This was tested in two settings:
- Limited rate fastforwarding (2x-4x)
- Unlimited fastforwarding
In both cases it seems to work well, but with unlimited fastforwarding
it's just high pitched and annoying, so this is probably the most useful
in the 2x to 4x range.
* Move declartion to support C89
* resampling ratio upper and lower bounds
* Add toggle for speeding up audio
* Use wp_viewporter
* Set buffer scale to highest of displays the window is touching
* Fixes fullscreen issue mentioned in #15168
* Simplify process of adding new wayland protocols
As mentioned in https://github.com/libretro/RetroArch/issues/14954,
audio device selection works only if respective functions are
implemented in audio driver.
Added sink listing and selection. Common menu code takes care of the rest.
* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_Composite.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.
* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_S-Video.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.
* Update and rename Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_RGB.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Remove "PSX" from the filename because it doesn't seem to work with any currently available PSX core.
* Update Blargg_NTSC_SNES_Custom_pseudo_MD_S-Video.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
* Update Blargg_NTSC_SNES_Custom_pseudo_MD_Composite.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_Composite.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_RGB.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_S-Video.filt
Change "their" to "his" in the credits because it's the appropriate pronoun.
Revert filename to include "PSX" becsuse it works under certain conditions based on feedback.
* Delete e -i HEAD~5
Remove because it's just a garbage file.
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_Composite.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_Composite.filt
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_RGB.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_RGB.filt
* Rename Blargg_NTSC_SNES_Custom_pseudo_PCE_SNES_PSX_S-Video.filt to Blargg_NTSC_SNES_Custom_pseudo_PCE_PSX_SNES_S-Video.filt
Wayland input driver was not selectable from menu. It could still be enforced by
context driver, or enabled in config file, but I saw no reason why it would be
better to skip it from here.
* Prepare to update deps/switchres
* Squashed 'deps/switchres/' content from commit ca72648b32
git-subtree-dir: deps/switchres
git-subtree-split: ca72648b3253eca8c5addf64d1e4aa1c43f5db94
* Add CRT modeswitching to KMS
Display the real refresh rate
Enable the CRT SwitchRes menu
Add another switchres.ini path for Lakka
* Rewind during recording isn't visibly busted anymore but it doesn't rewind the replay properly during playback or record, inputs get clobbered; check frame pos/ptr stuff.
* Fix rewinding during movie recording and playback?
If cores are not deterministic, or if they only have bounded
determinism, we can obtain less drift if replay files also contain
periodic checkpoint states. These are configured by the new retroarch
stting replay_checkpoint_interval (measured in seconds). States are
inserted into the replay file in between frames.
This patch also fixes the settings display for the replay
autoincrement max keep setting.
* change bsv file suffix to replay, update strings
* add trivial RPLY block to save states
* WIP rerecording support, doesn't load states properly yet--issue with checking identifiers?
* Fixed a type error to get time identifiers working right, ready for testing
* handle case where state without replay data is loaded during replay
* cleanups
* whitespace cleanup
* Cleanups, change replay file format magic, fix logic around future states
* Remove failed future message
* Add play-replay-from-slot command, fix load-state-from-slot to use given slot
* build fixes
* Fix race conditions in emscripten build and incorrect replay state incrementing
* Style fix for single line if
---------
Co-authored-by: Joseph C. Osborn <[email protected]>
* Add bsv replay controls (not yet fully implemented), remove toggle
see notes in task_movie.c, make sure command.c calls the right
functions, check retroarch.c and other todos.
bsv files are also now stored with states, not saves.
* Compilation fixes
* Added command impls for play and record replay, and some code in load state to do the right thing there
* Guard some parts of the new code with HAVE_BSV_MOVIE
* wip, menu fixes
* more menu fixes, osd for movie errors, halt recording properly
* Menu and label fixes
* move bsvs to own file suffix series under savestates, fix recording and playback command validity checks
* Fix replay autoincrement
* fix endif placement, whoops
---------
Co-authored-by: Joseph C. Osborn <[email protected]>
* add more documentation to emscripten, pthread support, and flag to not show asset warnings
* typo in docs
---------
Co-authored-by: thelamer <[email protected]>
When a simple preset loads, wildcards which are found in paths inside the presets will
be replaced with values coming from the current RetroArch context. This will operate
on both texture paths and reference paths.
This would allow you to do things like have one preset which could be used with the entire list of images from the Bezel Project
E.G.
"/shaders/MyBackground_$VID-DRV$ _$CORE$.png"
would be replaced with
"/shaders/MyBackground_glcore_YabaSanshiro.png"
If no file found at that path, the path will revert to the original path, so operates as a fallback
"/shaders/MyBackground_$VID-DRV$ _$CORE$.png"
* Possible wildcards/tokens to be replaced:
*
* $CONTENT-DIR$ -> Content Directory of the game rom
*
* $CORE$ -> Core name
*
* $GAME$ -> Game ROM's name
*
* $VID-DRV$ -> Video Driver: Currently active driver, possible replacement values:
* glcore
* gl
* vulkan
* d3d11
* d3d9_hlsl
* "N/A"
*
* $VID-DRV-SHADER-EXT$ -> Video Driver Shader File Extension: The extension of shaders type supported by the current video driver:
* cg
* glsl
* slang
*
* $VID-DRV-PRESET-EXT$ -> Video Driver Preset File Extension: The extension of shaders type supported by the current video driver:
* cgp
* glslp
* slangp
*
* $CORE-REQ-ROT$ -> Core Requested Rotation: Rotation the core is requesting, possible replacement values:
* CORE-REQ-ROT-0
* CORE-REQ-ROT-90
* CORE-REQ-ROT-180
* CORE-REQ-ROT-270
*
* $VID-ALLOW-CORE-ROT$ -> Video Allow Core Rotation: Reflects Retroarch's setting allowing the core requested rotation to affect the final rotation:
* VID-ALLOW-CORE-ROT-OFF
* VID-ALLOW-CORE-ROT-ON
*
* $VID-USER-ROT$ -> Video User Rotation: Rotation the core is requesting, possible replacement values, does not affect the UI:
* VID-USER-ROT-0
* VID-USER-ROT-90
* VID-USER-ROT-180
* VID-USER-ROT-270
*
* $VID-FINAL-ROT$ -> Video Final Rotation: Rotation which is the sum of the user rotation and the core rotation if it has been allowed, does not affect the UI:
* VID-FINAL-ROT-0
* VID-FINAL-ROT-90
* VID-FINAL-ROT-180
* VID-FINAL-ROT-270
*
* $SCREEN-ORIENT$ -> Screen Orientation: User adjusted screen orientation, will change windows from landscape to portrait, including the Retroarch UI:
* SCREEN-ORIENT-0
* SCREEN-ORIENT-90
* SCREEN-ORIENT-180
* SCREEN-ORIENT-270
*
* $VIEW-ASPECT-ORIENT$ -> Viewport Aspect Orientation: Orientation of the aspect ratio of the RetroArch viewport
* VIEW-ASPECT-ORIENT-HORZ
* VIEW-ASPECT-ORIENT-VERT
*
* $CORE-ASPECT-ORIENT$ -> Core Aspect Orientation: Orientation of the aspect ratio requested by the core
* CORE-ASPECT-ORIENT-HORZ
* CORE-ASPECT-ORIENT-VERT
*
* $PRESET_DIR$ -> Preset directory's name
*
* $PRESET$ -> Preset's name
*
* If no wildcards are found within the path, or the path
* after replacing the wildcards does not exist on disk,
* the path returned will be unaffected.
the commit cfe9d60f51
introduces an issues on guns inputs for drivers udev, dinput, winraw and x11.
A local variable called "port" is redefining the function argument variable and
is causing bad calls in subsequent function calls.
In short, functionnally, if you have only 1 gun and 1 pad on your system, all works.
As soon as you use several pads or several guns, you may have issues,
because subsequent calls use the joystick port instead of the device port as argument.
IMPORTANT NOTE : this fix was done originally for the batocera project which uses only the udev driver,
this is why it is focused on udev only.
The same thing must be done and tested for dinput, winraw and x11.
I've not the ability to test them.
Signed-off-by: Nicolas Adenis-Lamarre <[email protected]>
ever implemented for OpenGL2 driver, lots of code debt, best to
instead just keep improving the overlay system instead which is
already available for most video drivers
This reverts #14963 and part of #14942. Instead of forcing a size
change on mac the way we do on tvos, bring back the old way of making
two setContentSize calls.
Prevent double free and null dereference when the controller is quickly reconnected.
Handle error when controller device query returns null instead of crashing.
was troublesome so bumped up max shaders to 10 for now, some style nits in
RSX video driver, variable center_y could be uninitialized so fixed that
in psl1ght_input.c
The initial popup screen advertising the web server did not prevent
keys from passing through, so interactions with the alert would also
be handled by the menu. The alert would pop up any time there was a
network reconfiguration; now it only pops up once per run. Added a way
to turn off the webserver advertisement alert permanently.
Also fixed a bug around filtering the Siri remote out, and turning
controllers off while the app is running.
New driver for controlling system LEDs offered via /sys/class/leds.
Currently it handles led0, led1 etc. type of entries, which are
present on e.g. Raspberry Pi's.
This adds mFI as a controller driver for OSX, as well as adding rumble
support for mFI controllers. Also add support for the Home button.
Also fixed a couple warnings.
Disabling the built in media player should be possible for music files
as well. Without this, sound files can not be opened from file browser
with cores that support them.
* remove var error in psl1ght input
* (psl1ght) add modern_alpha_blend and modern_opaque rsx shaders
* (psl1ght) add perf improvements to the rsx driver
* add rsx gfx for psl1ght
* (psl1ght) set rsx as a compatible video driver
* Do xmb menu scaling for psl1ght
* (psl1ght) update Makefile to use latest shaders and more UI menu options
* [Vulkan] Add v2 of context negotiation interface.
* [Vulkan] Add vkEnumerateInstanceVersion symbol.
* [Vulkan] Implement v2 context negotiation
* [libretro] Add GET_HW_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT.
Works around issues in v1 interface where it was not possible to
query what frontend would do when faces with newer interface versions.
This env-call gives stronger guarantees how things have to work.
* [runloop] Implement GET_HW_CONTEXT_NEGOATION_INTERFACE_SUPPORT.
Fairly trivial. Just report the latest version.
* [Vulkan] Add stricted wording around get_application_info in v2.
* [Vulkan] Be more defensive about get_application_info() in v1.
* Use "Remember window position and size" setting (fixes#14806)
* Implement window opacity
* Enable "Show window decorations" toggle
* Hide "Disable composition" option (osx does not support disabling composition)
This relaxes a warning about save state sizes for cores like
dosbox-pure that don't report accurate save state sizes.
Before, the warning would be issued and the state would not be loaded;
now, the warning is issued and the state is loaded anyway.
Co-authored-by: Joseph C. Osborn <[email protected]>
Add Help button (Select) and Reset to Default (Start) to footer where applicable.
Display Help footer only if there is actual info to be displayed, either
actual help, or sublabel if it is not visible otherwise.
* add keyboard recording support to bsv
BSV movies recorded in older RA *WILL NOT* replay properly after this
patch. While looking to see if the core actually uses a keyboard
device could mitigate this, it is an unavoidable consequence of using
BSV, a format which carries no metadata whatsoever.
* Fix for loop declarations and some whitespace
---------
Co-authored-by: Joseph C. Osborn <[email protected]>
* BSV ergonomics improvements
- Date stamp toggled recordings instead of overwriting or using save
slot number
- Properly stop movie on playback EOF; also pause emulation
- Add recording flag to match playback flag in bsv state enum
- Rename bsv "movie path" to "movie auto path" to clarify role
- Allow stopping movie playback before EOF using record toggle hotkey
---------
Co-authored-by: Joseph C. Osborn <[email protected]>
* Clean up tvos defines, make debug the same as release
* Compile tvOS against libMoltenVK.dylib and enable vulkan driver
* Make sure HAVE_UPDATE_CORE_INFO is set for tvos
* No changes here, just alphabetizing the defines
* No need to define cflags for arch=*
* Bring debug and release more in line with each other
* Make sure to define HAVE_UPDATE_CORE_INFO
* Allow for both -e and -R to start a BSV file recording at a state
The key issue is that loading a state takes some time, and the BSV
recording shouldn't start until that's done.
The minimal patch for this would just be a change to runloop.c which
moves movie initialization after entry state loading, throwing in a
task_queue_wait(). This makes for some awkward repeated autoload OSD
messages and doesn't solve the underlying issue.
Most of this change puts BSV recording start/stop into tasks, like
saving and loading are tasks; this was important to centralize BSV
operations a bit more and is the first part of a refactoring towards
more robust input recording. The necessary wait is introduced in the
begin-recording callback.
Co-authored-by: Joseph C. Osborn <[email protected]>
- Moved BSV initialization before autoload code
- Don't trigger autoload code if there is bsv movie state
Open question: What's the difference between entry state and autoload
state? Should BSV recording use the entry state even if playback does
not?
Co-authored-by: Joseph C. Osborn <[email protected]>
After PR libretro#14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.
One file missed from previous commit and stubbed completely.
Other files trimmed: only translated entries are kept, original English
entries and very partially translated items are removed.
eb9b273298 Merge pull request #2094 from LibretroAdmin/main
5029e30f0a (spirv_glsl.cpp) Fix error: no matching function for call to 'max(uint32_t&, unsigned int)'
git-subtree-dir: deps/SPIRV-Cross
git-subtree-split: eb9b2732982b8eea3395216be825a74dd84fe4be
* Don't start video recording when BSV recording starts
* Don't double-record inputs in BSV recording
- Will this work properly with the part of input handling outside of
input_state_wrap? Who knows?
Co-authored-by: Joseph C. Osborn <[email protected]>
After PR libretro#14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.
These languages had the original English text as help at the time of
commit, so it is safe to assume no translation content is lost.
Some content is preserved until Crowdin translation catches up.
After PR https://github.com/libretro/RetroArch/pull/14821 , the
contents of msg_hash_xx.c files are present in the normal translation
workflow. These files can and should be reduced to stub versions,
since new translations won't take effect otherwise.
These languages have reached 100% completeness on Crowdin at the
time of commit, so it is safe to assume no translation content is
lost.
6bba45d2a3 Fix misc compilation issues with std::max.
49e4117c5f Updates for main branch rename.
88c6b49959 Merge pull request #2085 from KhronosGroup/fix-2075
a085227395 Merge pull request #2084 from KhronosGroup/fix-2069
1047c13d40 GLSL: Handle textureGatherOffsets properly.
f84527346d GLSL: Declare gl_in/gl_out as array more robustly.
38cd214007 Merge pull request #2083 from KhronosGroup/pr-2080
d46c10ebd3 Refactor PHI checks into block_is_noop instead.
bcbe33ad11 Also consider NonSemantic ExtInst in block_is_noop.
9d8ef6b36c Update test for updated block_is_noop check.
a61a541e1c Merge branch 'accept_noop' of https://github.com/loic-sharma/SPIRV-Cross into pr-2080
457fd3db70 Add tests for loops compiled with debug semantics.
07a629f149 Roll dependencies.
d69a2cafe5 Accept no ops
cded61dde3 Merge pull request #2076 from billhollings/ios-tier2-writable-images
284ccf5d2d Fixes from code review of adding writable images to iOS Tier2 argument buffers.
0bb28ef88a Merge pull request #2078 from KhronosGroup/fix-2072
549cde7fae Fix GCC5 build.
cc2b3b61a6 Merge pull request #2077 from EpicGames/fixes_glsl
6371580f51 Fixed typo in CompilerGLSL::should_dereference()
643b7be196 MSL: Add support for writable images in iOS Tier2 argument buffers.
a89dea3c49 Merge pull request #2071 from KhronosGroup/fix-2068
baf38f0593 Merge pull request #2070 from KhronosGroup/fix-2066
68a012a4f2 CFG: Handle implied access to opaque loaded values.
03b1f66ef1 GLSL: Fix row-major workaround wrapper for ES.
3c997e12eb Add C API option for enable row major workaround.
c77b09b57c Merge pull request #2063 from KhronosGroup/fix-2060
451ed10e91 Merge pull request #2062 from cdavis5e/msl-spirv-assembly-fixes
df76a14056 MSL: Refactor member reference in terms of one boolean.
e75c496ec6 Fix MSL Access Chain
540a1e82c6 Merge pull request #2056 from cdavis5e/msl-discarded-frag-checks
061cdd2052 MSL: Don't dereference forwarded copies of `OpVariable` pointers.
5547b25afe Interleave undef values with constants and types.
06ef3de002 GLSL, MSL: Handle `OpUndef` as part of a constant composite.
aa5a8c482e MSL: Prevent stores to storage resources in discarded fragments.
51d2dfe02a MSL: Add missing casts to `Op?MulExtended`.
c7ce92a95b MSL: Manually update `BuiltInHelperInvocation` when a fragment is discarded.
edd66a2fc9 Merge pull request #2055 from KhronosGroup/fix-2053
e8a22a7cf6 Handle ShaderDebugInfo non-semantic extension.
abc31207bf Merge pull request #2052 from KhronosGroup/hlsl-mesh-shader-ext
b606e4f752 HLSL: Fix test for non-block per-primitive IO.
ebf779dcfb HLSL: Do not support ClipCull size > 4 in mesh shaders.
94160e8890 GLSL: Add test for mesh with non-block builtin IO.
3a066cd733 HLSL: Handle case where PerVertex block is not used.
f5ef0a74fb HLSL: Make sure to test deeply nested functions in mesh shaders.
e418266d25 HLSL: Some cleanups and fixes in analyze_meshlet_writes.
892f65b3a6 HLSL: Fix some warnings from review.
a4d5c0c4a5 HLSL: Fix-up some style issues from review.
10f55a11eb HLSL: Add missing reference for mesh shader test.
322f1b9fb3 Fixup glslang reference.
80146a20da HLSL: Implement VK_EXT_mesh_shader
744279ec78 Merge pull request #2050 from cdavis5e/op-spec-constant-op-composite-insert
8cf99e7d44 MSL: Implement `CompositeInsert` `OpSpecConstantOp`.
3cecac74c6 Merge pull request #2051 from KhronosGroup/roll-glslang-dep
605bce39d7 Roll glslang dependency.
677299cc56 Merge pull request #2049 from KhronosGroup/fix-2046
4de9d6c2b6 MSL: Handle implicit integer promotion rules.
c813d8d67b Merge pull request #2044 from KhronosGroup/fix-2038
2a49f7e82d MSL: Fix restrict vs __restrict incompatibility.
3ea057a303 Merge pull request #2045 from KhronosGroup/fix-2037
0851baf9ee Merge pull request #2043 from KhronosGroup/fix-2040
47c7fc16eb HLSL: Add option to bind vertex input smemantics by name.
04af769e85 MSL: Handle partial access chains with array-of-UBO/SSBO.
5763919669 Merge pull request #2039 from cdavis5e/raw-buffer-tess-input
e698633e22 MSL: Account for composite types when assigning locations.
0b679334e4 MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders.
a171087180 MSL: Support "raw" buffer input in tessellation evaluation shaders.
f09ba27777 Merge pull request #2035 from KhronosGroup/fix-2032
f15d465a52 Merge pull request #2034 from KhronosGroup/fix-2028
799d8c9e35 Merge pull request #2033 from KhronosGroup/fix-2029
b5386e3ea9 HLSL: Improve support for VertexInfo aux struct.
4ecdb24e59 MSL: Expose way to query if a buffer needs array length.
f3b1375b13 Add reflection support for shader record buffers.
c821207ae2 Merge pull request #2027 from billhollings/msl-opstore-addr-space-cast
0a1127aa50 MSL: Emit correct address space when casting during OpStore.
81ba8f78f6 Merge pull request #2025 from KhronosGroup/fix-2009
291def0793 MSL: Add more keywords to reserved set.
a7f64a8b90 MSL: Report unsupported 64-bit atomics.
ddaa2da629 Merge pull request #2024 from KhronosGroup/msl-descriptor-aliasing
a915e0bd4b MSL: Do not attempt to alias push constants.
adf0995bb9 Merge pull request #2023 from KhronosGroup/msl-descriptor-aliasing
24dc49e692 MSL: Handle descriptor aliasing of raw buffer descriptors.
1ad6006130 Merge pull request #2021 from siegelaaron94/opengles_texture1d_textureSize
7b4c470f16 GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.
6d3518e238 Merge pull request #2018 from atyuwen/master
7afbbb624a Merge pull request #2019 from billhollings/msl-OpPtrEqual-OpPtrNotEqual-OppPtrDiff
5493b3030e MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.
1b9296e1a5 MSL: only fix up gl_FragCoord if really necessary.
f6ca617825 Merge pull request #2017 from KhronosGroup/roll-deps
a5a7999666 Update mesh/task test references.
d7a6861f64 Update glslang/spirv-tools.
1e7e9fc32b Merge pull request #2015 from FrankXie05/vcpkg-instructions
8553588895 Merge pull request #2014 from cdavis5e/msl-shader-output-fixup
064eaebe72 MSL: Add a mechanism to fix up shader outputs.
d206e54ece Add vcpkg installation instructions
210a800130 Merge pull request #2012 from KhronosGroup/mesh-shaders
4c345166dc GLSL: Implement task shaders.
5762617729 GLSL: Implement GL_EXT_mesh_shader.
6a73e68d30 Update glslang reference.
ec7b9b0ce7 Update SPIR-V headers.
9fcf62784b Merge pull request #2011 from KhronosGroup/roll-deps
d24f41f1d5 Update dependencies.
c93ee9261e Merge pull request #2005 from atyuwen/master
f40dba4919 GLSL: added an option to disable row-major-load workaround.
10f2aa77da Skip remapped vars in 'fixup_reserved_names'
9afa82e7b8 GLSL: disable row major load around on GLES.
33e19e86bf Don't rename remapped variables like 'gl_LastFragDepthARM'
61c603f3ba Merge pull request #1996 from KhronosGroup/fix-1993
bc3987e59a MSL: Fix various bugs with Ptr/U bitcasts.
c084973c67 Merge pull request #1995 from KhronosGroup/fix-1992
05bbcc2d09 Do not optimize OpCompositeInsert for hoisted temporaries.
a725d8fad1 Fix minor style nit from review.
1bc05ef735 Merge branch 'master' of https://github.com/gpx1000/SPIRV-Cross
a9cadd4982 Merged in cts-shared-composite-variables (pull request #1)
fc4a12fd4f MSL: Use a wrapper type for matrices in workgroup storage.
faea931de3 MSL: Also replace `bool` with `short` in structures.
0cccd0a65a Merge pull request #1986 from KhronosGroup/fix-1975
4dfac510ed Handle multiple breaks out of switches.
c24d5a7b90 Merge pull request #1985 from KhronosGroup/fix-1973
8ba0820c9d Merge pull request #1984 from KhronosGroup/fix-1972
095e9e5cee Merge pull request #1982 from RandomShaper/hlsl_subgroup_scan
be904dcc1e Handle collapsed loops similar to collapsed selections.
f7e98c39db Avoid detection of false loop variables.
cb4e310f43 Merge pull request #1983 from KhronosGroup/fix-1979
1fe470b199 HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
06ca9accd7 HLSL: Add option to emit entry point name 1:1 instead of main().
d8d051381f Merge pull request #1970 from KhronosGroup/fix-1969
963fdfdf68 Handle PHI in collapsed switch constructs.
f46745095d Merge pull request #1965 from billhollings/msl-physical_storage_buffer
064a697b18 MSL: Fix implicit conversion precision build error.
4185acc70d MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
78eb5043f9 MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
e6925974d1 Merge pull request #1966 from fred-wang/macos-snprintf
9c44a97faa address more review comments
1310f5ba4d Keep using sprintf on windows.
99f8613847 Fix compilation errors with deprecated sprintf function
ba3e6ffe03 Merge pull request #1964 from sergmister/patch-1
52c7c2dab6 MSL: Add support for SPV_KHR_physical_storage_buffer extension.
1bba4d5137 Fix typo
99b59b3528 Merge pull request #1963 from KhronosGroup/convert-u-to-rtas-fix
e08e0cf28d GLSL: Handle forced temporary OpConvertUToAccelerationStructureKHR.
89b1c24bdc Merge pull request #1961 from RandomShaper/hlsl_more_bitcasts
d8c5e39436 HLSL: Implement bit casts between Half and UShort.
197a273fd4 Merge pull request #1959 from KhronosGroup/fix-1955-1956
df21a99d1a GLSL: Add more extension ladder fallbacks for unusual integer sizes.
a97bbc24c5 Merge pull request #1958 from KhronosGroup/fix-1957
cdafafe93b Merge pull request #1954 from vkaytsanov/patch-1
533aab00b6 GLSL: Add missing KHR barycentric references.
46e4b5a3c8 Fix control flow bug where we missed continue;
612de70b38 Fix missing function in README sample
50b4d5389b Merge pull request #1953 from KhronosGroup/bary-khr
e45d01c41f Emit KHR barycentrics if source enables the KHR extension.
0aedc7d128 Roll dependencies.
af223101c6 Merge pull request #1952 from KhronosGroup/fix-1944
c8ab790163 Merge pull request #1951 from KhronosGroup/fix-1950
88e583d062 GLSL: Add basic support for GL_EXT_shader_atomic_float.
1c88730e12 GLSL: Implement 1D texture emulation for ES.
3f855646f0 Merge pull request #1948 from iwubcode/gl_layer_hlsl
a6976d596a HLSL: fix BuiltInLayer to emit semantic 'SV_RenderTargetArrayIndex' instead of 'SV_RenderTargetIndex'
b3ff97d0fe Merge pull request #1946 from KhronosGroup/fix-1943
48d50fa911 Merge pull request #1945 from KhronosGroup/fix-1938
d08ce828f4 Promote Unreachable cases into break to avoid fallthrough.
4b9e60273c Add tests for OpCompositeInsert edge cases.
23662668dd Attempt more optimal codegen for OpCompositeInsert.
d0c8dc3045 Merge pull request #1942 from KhronosGroup/no-fetch-grad-workaround
a3c4177324 GLSL: Don't apply Grad LOD workarounds for fetch.
bfefb5f511 Merge pull request #1941 from KhronosGroup/fix-1934
832d469048 Merge pull request #1940 from KhronosGroup/fix-1935
05206005ca MSL: Potentially cast loaded Input variables.
92164d38d1 GLSL: Do not analyze precision for Undef variables.
940efca099 Merge pull request #1936 from KhronosGroup/rt-stage-cli
0b303aab16 Add --stage handling for ray tracing.
0c8a79b0b5 Merge pull request #1932 from KhronosGroup/fix-1868
7eb5ced2a0 Refactor out query for operation type/result IDs.
7a6c2da9aa GLSL: Handle more proper semantics for RelaxedPrecision.
d28136cc7a GLSL: Clean up some ways of querying decoration flags.
a9d23d7652 Merge pull request #1931 from EpicGames/fixes_hlsl
65431446f4 HLSL: Add missing BuiltInLayer to HLSL backend.
6ae7ddb92a Merge pull request #1930 from KhronosGroup/fix-1928
960edcd396 Merge pull request #1929 from KhronosGroup/fix-1925
10a7631d50 HLSL: Add more comprehensible reserved identifier list.
40b3053b4c Handle early reads from loop variables with initializers.
c52333b984 Merge pull request #1924 from stefalie/master
ee4ac5c2ce Merge pull request #1927 from billhollings/msl-interface-block-array-length-1
3bca246ad2 MSL: Emit interface block members of array length 1 as arrays instead of scalars.
089cf27119 remove newline at eof
56fd17f552 add qualifiers to reference reflect json output
05c9a14422 cli: display missing memory qualifiers for reflect and dump-resources
d7cae5e7cd Merge pull request #1917 from KhronosGroup/fix-1906
0500f9ed5d Merge pull request #1916 from KhronosGroup/fix-1910
d2a4f9842b GLSL: Support GL_EXT_debug_printf.
5b18fb1bcd MSL: Pass down global RayQuery object to leaf functions.
779138f39f Merge pull request #1914 from RandomShaper/hlsl_view_index
2ea1c9b642 HLSL: Implement ViewIndex.
6a67891418 Merge pull request #1909 from skkkksdkfak/primitive_id
54c00b69a4 Translate gl_PrimitiveID to SV_PrimitiveID.
0d4ce028bf Merge pull request #1903 from KhronosGroup/fix-1900
17c52990d5 MSL: Fix goofy bugs in ray query.
a3996eccf3 Merge pull request #1896 from Roy-AMD/fix-condition-issue
749be80389 Use types have same widths in loop condition.
44691aa975 Merge pull request #1899 from billhollings/forward-volatile-vars-except-builtins
85f98eb0c5 Allow volatile vars that are not builtins to be forwarded.
d000b9e71c Merge pull request #1898 from KhronosGroup/pr-1859
191c57b6cc Merge pull request #1897 from KhronosGroup/fix-1763
a7eefbc114 HLSL: Disable FXC testing for rayquery shaders.
cd209ff46d HLSL: Update test from review.
c95338e03e Merge branch 'ray_query' of https://github.com/k-payl/SPIRV-Cross into pr-1859
7b9eaf0b5e MSL: Handle awkward mix and match of Offset / ArrayStride in constants.
251361bd6f VK_KHR_ray_query implementation
565db34cba Merge pull request #1892 from KhronosGroup/meta-lookup-cleanup
39bad2c1f9 Avoid redundant meta lookups in ParsedIR when setting member decorations.
d5c3bd8b5e Merge pull request #1890 from KhronosGroup/fix-1889
4ab5bbb4e5 Fixup names of anonymous inner structs.
0b51794f01 Merge pull request #1888 from KhronosGroup/msl-ib-variable-name-alias-fix
1ec9d018fd MSL: Handle aliased variable names for resources placed in IB struct.
213c5f42ea MSL: Fix minor nits.
4ec1fb0aa9 Merge pull request #1887 from billhollings/msl-use-var-name-for-flattened-interface-struct-members
0c0fd98322 MSL: Use var name instead of var-type name for flattened interface members.
3915c37bb1 Merge branch 'fixup_gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
c4f9e4fde9 HLSL: Fix Helper Invocation wrongly allowed in compute.
a1803778c2 Merge pull request #1885 from KhronosGroup/helper-invocation-rework
b192b8887a MSL: Consider that gl_IsHelperInvocation can be Volatile.
15d29f00e2 Add test for SPIR-V 1.6 Volatile HelperInvocation.
93b0dc7718 Consider Volatile in should_forward().
476b6541fa Remove forwardable bit in SPIRVariable.
5d9fc2d903 HLSL: Add test for HelperInvocation.
005c14ad6a HLSL: Implement HelperInvocationEXT.
75224c6c7c Merge branch 'gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
278a4c80ed HLSL: Add support for gl_HelperInvocation
6c7a40822f Merge pull request #1881 from KhronosGroup/relax-nan-checks
31be74a853 Add relax_nan_checks options.
b91ecf6077 Merge pull request #1880 from KhronosGroup/fix-1879
2ce1e5c140 Merge pull request #1878 from mysterymath/move
dc62cc792b Handle OpTerminateInvocation.
2a7f436135 Merge branch 'msl-add-nested-structs-to-io-blocks-squash'
7b594c125e Fix formatting nits from review.
bb4ced0280 MSL: Document clarification of location incrementing.
02d588b7e4 MSL: Fix var names in test shaders to avoid reserved identifiers.
3bb3b22b34 MSL: Non-functional fixes from PR code review.
3d4daab29d MSL: Support input/output blocks containing nested struct arrays
44c3333a1c Qualify std::move.
d16183d1d2 Merge pull request #1873 from KhronosGroup/fix-1861
02440e85cf Merge pull request #1872 from KhronosGroup/fix-1867
7af0a5f820 HLSL: Do not emit VPOS fixup unless position is active.
5555f2784b MSL: Refactor and fix use of quadgroup vs simdgroup.
a569680406 Merge pull request #1870 from abrachet/master
0eda71c409 Qualify move as std::move
c08ee860c8 Merge pull request #1869 from xndcn/msl
1b5c406a3d MSL: append entry point args to local variable names to avoid conflicts
188dc8b13c Merge pull request #1862 from flokart-world/feature/flatten-ubo-for-hlsl
64e058aa9b Merge pull request #1863 from KhronosGroup/various-fixes
ed4ded040e HLSL: Make --flatten-ubo work correctly
a56b22bf4e Add more scenarios where we can guarantee forward progress.
c716a9a5dd Add debug option to modify maximum number of compile iterations.
29cc18988c Fix regression from adding 64-bit switch support.
339e61a0e0 Do not emit hoisted access chain temporaries unless backend supports it.
5d9a95370f GLSL: Ensure correct signed integer type for more texture functions.
131278458e Merge pull request #1860 from KhronosGroup/docs-update
a8016a6470 Update documentation for descriptor set support in MSL/HLSL.
1a36968e5d [Spirv_msl] Fix normalize on half3/half2 (#1856)
53d94a982e Merge pull request #1852 from KhronosGroup/fix-1850
5a29181b35 Merge pull request #1851 from KhronosGroup/fix-1835
5b952d2cbf MSL: Rethink how opaque descriptors are passed to leaf functions.
ac46140ba3 Test aliased names in declared LUTs.
48b5a9069f Handle aliased names in spec constants.
08d5f5ed18 Merge pull request #1849 from KhronosGroup/fix-1844
9b25581d49 MSL: Handle constant construct of block-like array types.
79b13813c6 Merge pull request #1848 from KhronosGroup/fix-1843
5a5be7f9b9 MSL: Handle signed atomic min/max.
7dd974b9db Merge pull request #1847 from KhronosGroup/fix-1775
e940577fba Merge pull request #1846 from KhronosGroup/fix-1760
1d13a3e36a Rework how loop iteration counts are validated.
ef6bde6580 Do not forward expressions which carry a huge amount of dependencies.
a1bb29ccbb Merge pull request #1845 from KhronosGroup/pr-1842-fix
017cdfe25b Update references for GL_EXT_texture_buffer.
4407c0dd14 fix: GL_EXT_texture_buffer is more common than GL_OES_texture_buffer
fe5a0aa72f Merge pull request #1839 from KhronosGroup/spv1.6
e8b30cc31d Merge pull request #1838 from KhronosGroup/fix-1811
7c12228359 Add sanity test for SPIR-V 1.6 modules.
7c83fc22fa Add support for LocalSizeId.
35bb328443 Test: Add --allow-localsizeid flag for spirv-val.
eadca962c8 Merge pull request #1837 from KhronosGroup/roll-deps
a10d72e3b1 Merge pull request #1834 from chirsz-ever/chirsz/fix-msl-copy-array
fe8848a6f2 Roll dependencies.
9c0b74f73b Merge pull request #1836 from KhronosGroup/pr-1824-fixup
be333e0cab MSL: Move float2->3 TessCoord fixup to a better location.
2793d22af5 Merge branch 'master' of git://github.com/cfnptr/SPIRV-Cross
e0ae55d5e2 Merge pull request #1822 from etra0/add-diff
55a0291ce5 Merge pull request #1817 from etra0/fix-1784
90c252274d MSL: Allow copy array from UniformConstant storage
2acf0e73dd Fix gl_TessCoord arguments presence. Update reference shaders.
a66984072b Fix incorrect MSL gl_TessCoord variable type
2bb051206b test_shaders: Add the option to generate diff instead.
905b8244e7 Clamp vector element access to vector size.
e9cc640334 Merge pull request #1815 from etra0/fix-1768
25868923da Merge pull request #1819 from sindney/master
6d8302ef14 MSL: Add 64 bit switch support
4b0584ce70 ESSL: Vertex shader input doesn't support array types.
37dfb3f45f Merge pull request #1794 from etra0/master
5345051a85 Removed tracking of OpConstant and OpPhi.
7c3cb0b12c Merge pull request #1810 from billhollings/early-frag-tests-depth-out
248e9ae9ed MSL: Don't output depth and stencil values with explicit early fragment tests.
75e3752273 Added block.cases_32bit and reworked the cases fix
401296d3b8 Merge pull request #1808 from billhollings/depth-img-vs-depth-cmp
03f678dec4 Cast the switch selector in GLSL to uint32_t
fd252b21ff Separate (partially) the tracking of depth images from depth compare ops.
48046646ee Fixed wrong condition and formatting.
2e0fb3a778 Merge pull request #1807 from KhronosGroup/fix-1801
f1b411c9e8 GLSL: Deal with buffer_reference_align.
1adc53b107 Merge pull request #1806 from KhronosGroup/fix-1777
21a15b90e5 Merge pull request #1804 from KhronosGroup/fix-1759
2714f5410c CFG: Handle degenerate selection constructs.
e40d19bdbf MSL: Handle non-thread storage class in Modf/Frexp pointer versions.
f1d4aff85e Merge pull request #1805 from KhronosGroup/fix-1776
2c53d30664 Merge pull request #1803 from KhronosGroup/fix-1802
4561ecddbd Handle Modf/Frexp in more cases.
d295c2a046 Merge pull request #1800 from EddeDev/master
849978653a Merge pull request #1798 from billhollings/tess-output-clip
05e8e5a953 Correctly reflect declared buffer size for out of order members.
4dcf64a99b Fixed potential compilation error in spirv_cross_containers.hpp
250a02967d Removed unnecessary tracking of types.
4ebd56bf9e MSL: Correctly emit user(clip/cullN) for clip/cull builtins in tess output struct.
f099d714f3 Removing logic in the parser
04293e03fd Merge pull request #1797 from KhronosGroup/clone-protocol
0d03516382 Always use https protocol when cloning external test deps.
061397e32e Merge pull request #1792 from billhollings/uniform-struct-packing-nested
3eb5532979 Add 64 bit support for OpSwitch
be812c45e5 MSL: Remove over-zealous check for struct packing compatibility.
66adba17a8 Merge pull request #1791 from billhollings/msl-out-of-order-struct-offsets
76cb807c19 MSL: Fix type redirection when struct members are reordered to align with offsets.
29632959d2 Merge pull request #1787 from KhronosGroup/fix-1786
edf247fb1c MSL: Workaround compiler crashes when using threadgroup bool.
43eecb2360 SPIRV-Cross contribution needed for `INTEL_fragment_shader_ordering`
94dea2507e Merge pull request #1769 from audulus/spm2
f5219f47c3 Add Package.swift.
2a56c2bc04 Merge pull request #1783 from billhollings/more-unpacked-vectors
ab640bc3d3 Merge pull request #1782 from KhronosGroup/fix-1781
974a0818b8 MSL: Support more usecases for unpacked vectors.
2b5e17eca5 MSL: Never used templated array for RayQuery objects.
bc338710e1 MSL: Remove some redundant breaks.
5afb3d313f MSL: Fix some trivial bugs not caught by CI when adding ray query.
345a7d171c Merge pull request #1773 from congyue1977/master
2895a43274 Fix unsupported exceptions for ConvertUToAccelerationStructure & BindingTableRecordOffset.
d52ec1e196 Fix all requested changes, test_shaders.py supports compiling MSL 2.4 shaders, and the Intersection Query currently only supports MSL 2.4 on the iOS platform.
6d13c99273 Merge pull request #1780 from billhollings/out-of-bounds-swizzle-fix
595eb0c21d Per spec, support undefined behavior for out-of-bounds swizzles.
597f29d09d Support Metal 2.4 Intersection Query, Implement GL_EXT_ray_query.
e4243b898c Merge pull request #1766 from KhronosGroup/fix-1765
6382f15470 Test behavior around OpSelect with matrices.
6071df5840 Fix wrong detection of trivial_mix_op.
97a438d214 Merge pull request #1757 from KhronosGroup/fix-1754
f72bb3c6f5 Improve handling of INT_MIN/INT64_MIN literals.
457c00bd07 Merge pull request #1756 from KhronosGroup/fix-1753
91c25e8473 Merge pull request #1755 from KhronosGroup/fix-1751
9b2a8c7622 HLSL: Ensure synthetic NumWorkgroups variable is considered active.
bb04156d3c CLI/HLSL: Don't set explicit binding for synthesized NumWorkgroups CBV.
96d95fbb31 MSVC: Workaround crtdbg macroing free().
9462b90067 Merge pull request #1752 from billhollings/function-constants-opquantize
325f107c5b Merge pull request #1745 from billhollings/location-component-vecsize
ec054dad7f MSL: Support synthetic functions in function constants.
dee35bf3ce Merge pull request #1749 from billhollings/fastmath-quantize
ba66a91402 MSL: Use vec<T, n> in template SpvHalfTypeSelector for function spvQuantizeToF16().
a2671e35b0 MSL: Consolidate spvQuantizeToF16() functions into a single template function.
5742047b24 MSL: Honor infinities in OpQuantizeToF16 when compiling using fast-math.
05ac99ae23 Merge pull request #1748 from billhollings/fastmath-nocontraction
fb3defc9ef MSL: Honor DecorationNoContraction when compiling using fast-math.
548a23da34 MSL: Track location component to match vecsize between shader stages.
fe1af2ae72 Merge pull request #1747 from KhronosGroup/ci-fix
d579444a82 Merge pull request #1744 from billhollings/location-attribute-fix
6628e10fc6 Merge pull request #1746 from billhollings/fast-math-per-vulkan
3ca99bbbcc Remove tests for Ubuntu 16.04.
0f12557695 Remove obsolete Travis CI YML.
40141ffddf MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results.
86dfac12c8 MSL: Fix location and component variable matching between shader stages.
b81334a513 Merge pull request #1738 from billhollings/return-value-after-discard-terminator
2a150f5a2f MSL: Add explanatory comment requested in PR review.
35e92e6ffb MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill).
c2500e504d Merge pull request #1735 from billhollings/add-const-op-exprs
472f9d4f6d Add tests for OpSpecConstantOp ops OpQuantizeToF16 and OpSRem.
5fb1ca4f0d Add support for additional ops in OpSpecConstantOp.
51d8e7be94 Merge pull request #1734 from KhronosGroup/buffer-reference-uvec2
b8f1e71907 GLSL: Emit GL_EXT_buffer_reference_uvec2 as required.
d6fe75df10 Merge pull request #1732 from KhronosGroup/fix-1731
23c4480d8e Fix switch fallthrough case in some cases.
0e2880ab99 Merge pull request #1729 from KhronosGroup/fix-1726
2eea6a579b MSL: Consider that function/private variables can be block-like.
840d4483bc Merge pull request #1728 from KhronosGroup/fix-1727
5b0cafb416 Track temporary access for OpArrayLength result.
c062b6b852 Merge pull request #1725 from billhollings/fix-duplicate-glposition
fad1590786 Merge pull request #1722 from billhollings/row-maj-mtx-store-from-const
27e7abeab1 Merge pull request #1724 from billhollings/msl-const-expr-casting
e76fcf9309 MSL: Add test for fixes to MSL constant expression type down-casting.
3105e82b2e MSL: Fix duplicate gl_Position outputs when gl_Position defined but unused.
a75fe07546 MSL: Fix casting in constant expressions with different sizes.
9552ca5473 MSL: Support row-major transpose when storing matrix from constant RHS matrix.
bab4e5911b Merge pull request #1716 from KhronosGroup/terminator-access-fix
cb613eb675 Handle value access in terminators.
1964799fba Merge pull request #1715 from KhronosGroup/precise-fp16-fp64
ac11a91792 GLSL: Emit precise for fp16/fp64 types as well.
cd22336a38 Merge pull request #1712 from cdavis5e/msl-subgroup-ballot-simplify
03ad13bae6 MSL: Simplify spvSubgroupBallot().
18f3cd6810 GLSL: Ensure ray query object decls are flushed if allocated in Function.
e51630595f Merge pull request #1711 from KhronosGroup/fix-1690
5b227cc57c GLSL: Implement GL_EXT_ray_query.
6196e3b029 MSL: Remove redundant path for SampleMask.
2fcbef398c Merge pull request #1709 from billhollings/fix-sample-mask-in
fe08bf4af4 Remove EXPERIMENTAL from JSON reflection backend.
ebb5098def MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask.
be3988b13c Merge pull request #1706 from SpaceIm/fix/ios-bundle
a70ce5192e Merge pull request #1708 from KhronosGroup/fix-interpolant-access-chain
71b83a18f4 MSL: Add test for scalar access chain pull interpolant.
d42c0b2e08 Merge pull request #1707 from billhollings/fix-interpolant-access-chain
3e04eee491 MSL: Fix setting SPIRVCrossDecorationInterpolantComponentExpr decoration.
d74eaabde0 fix cross-build to iOS/tvOS/watchOS
1ae2b58f19 Merge pull request #1700 from pkasting/master
bf746bd680 Merge pull request #1699 from KhronosGroup/pervertexnv
7cdab07efe Fix -Wunreachable-code-aggressive.
206ee8f171 GLSL: Support pervertexNV in NV barycentric extension.
c5b8022e61 Merge pull request #1669 from KhronosGroup/1560-reuse1
54882ad16d Add GLSL.std.450.h to REUSE.
3781d49d7c .gitignore ignored new license text
c862f8d22d Actually checkout repo into new reuse job
f2a65545b8 Finish adding SPDX tags and setup a reuse checked in Github Actions CI
2ceca64004 Add missing copyright headers.
853e84e8bf Merge pull request #1698 from KhronosGroup/fix-1691
d6b29ab017 HLSL: Rewrite how block IO is emitted.
9338996f3b Merge pull request #1697 from KhronosGroup/fix-1693
3149095585 Merge pull request #1696 from KhronosGroup/fix-1694
d75666b170 GLSL: Emit num_views for OVR_multiview2.
8216e87f02 Handle SPIR-V 1.4 selection constructs.
9cdeefb5e3 Merge pull request #1692 from Kangz/fix_default_copy_dtor
6a85c695cc Fix IVariant -Wdeprecated-copy-with-dtor
2e1b5fb39e Merge pull request #1686 from KhronosGroup/fix-1684
fa42f1ce34 Merge pull request #1685 from KhronosGroup/fix-1683
449f68ef3b Ensure loop control flow hints only appear above loops.
d62b3c2b92 GLSL: Implement control flow hints.
165dbff228 Handle odd type for textureGather component.
585fc6f3cb MSL: Always enable support for base vertex/index on iOS.
a6ce49ca24 Merge pull request #1680 from xndcn/cc
02fb8f2a24 Add comment after inf/nan float number for clarifying.
ff61890722 Merge pull request #1679 from okuoku/fix-c-sample-code
38c6ef1d56 Fix C sample code in README.md
faec1a8643 Merge pull request #1678 from KhronosGroup/fix-1674
9ea0e8b859 Merge pull request #1677 from KhronosGroup/fix-1673
c87cb54499 MSL: Add CLI option for sampler suffix.
bf3793dd35 MSL: Improve handling of split tessellation access chains.
a6c9514856 Merge pull request #1676 from KhronosGroup/fix-1671
0214990e7c Merge pull request #1675 from KhronosGroup/fix-1670
26a4986009 GLSL: Implement noncoherent framebuffer fetch.
99ae0d32e9 MSL: Handle array with component when we cannot rely on user() attrib.
a64ddcdd49 MSL: Handle array of IO variable with Component decoration.
418542eaef Merge pull request #1668 from KhronosGroup/fix-1665
b8115ffbe0 HLSL: Implement invariant as precise.
e47a30e807 Honor NoContraction qualifier.
0eeaffe048 Merge branch '16-bit-int-types-glsl'
6dbab0df47 Update reference output.
0408c592dd Fixed 16 bit int types
72a2ec4c1b MSL: Fix '--msl-multi-patch-workgroup' out of bounds reads when dispatching more threads than control points (#1662)
995c7981cc Merge pull request #1663 from billhollings/metal-arg-buff-padding-patch
098cdd64f6 MSL: Padding for Metal argument buffers should not double-count SampledImages.
c624d5387c Merge pull request #1660 from KhronosGroup/fix-1658
82a77e534e MSL: Use proper array for quad tess levels.
b38e3b4a47 Merge pull request #1661 from KhronosGroup/fix-1659
0e963c62b6 HLSL: Support Shuffle wave ops.
bbcef69a45 Merge pull request #1657 from KhronosGroup/fix-1607
532f65583e Rewrite how non-uniform qualifiers are handled.
d137abeef5 Merge pull request #1655 from KhronosGroup/fix-1640
8e24e0b224 Merge pull request #1654 from KhronosGroup/fix-1641
71eb1754e3 Merge pull request #1653 from KhronosGroup/fix-1638
2cbc7f0f37 Merge pull request #1652 from KhronosGroup/fix-1644
b084f639cb Merge pull request #1651 from KhronosGroup/fix-1645
c89b5a1a3f GLSL: Support shading rate builtins.
3fd148450a GLSL: Implement gl_FragFullyCoveredNV.
f93a8fb1fe GLSL: Support GL_EXT_shader_image_load_formatted.
90c70e6605 MSL: Handle variable access in OpSelect.
96ba044f01 HLSL: Fix automatic location assignment in block IO.
3cb8e7c223 Merge pull request #1643 from KhronosGroup/fix-1639
ae9ca7d73c MSL: Fix copy of arrays to/from stage IO variables.
986196030d MSL: Don't use native arrays for tess level inputs.
4a379a00f3 MSL: Don't emit native array for masked clip/cull distance.
406af8ff4d c: Add C API for builtin stage IO reflection.
b4a380a04c Support reflecting builtins.
852f2da63c Check SPIR-V 1.4 rules when reflecting resources.
682a227f4b MSL: Make builtin argument type declaration context sensitive.
c1edd35d57 MSL: Use spvUnsafeArray for builtin arrays after all.
7b9a591aa7 MSL: Hoist out to_tesc_invocation_id() in more places.
75ed73818c MSL: Handle loading Clip/CullDistance in TESE.
a159334895 MSL: Correctly analyze if builtin block is active.
cea934c03f MSL: Test that we can capture cull distance to buffer.
5826298697 MSL: Handle CullDistance better.
23da445bd4 MSL: Emit multiple threadgroup slices for multi-patch.
b442500204 MSL: Unroll initializations of CullDistance/ClipDistance control points.
c9946296dd MSL: Fix initialization of masked threadgroup variables.
ee85bb345e Fix print_help comment.
faf80b08fc MSL: Don't report fallback location allocations as being "used".
adc5fe3615 C: Add C api for stage output masking.
5e9c2d060e MSL: Cleanup fallback IO block emission.
e32c474911 MSL: Handle masking of TESC IO block members.
dc54f75eec MSL: Fixup gl_PerVertex names if we're emitting masked builtins.
40f628f49c MSL: Add test for complex control point outputs.
46c48ee6b5 MSL: Rewrite how IO blocks are emitted in multi-patch mode.
425e968720 MSL: Handle flattening of patch block outputs as well.
8e2dbe0d38 MSL: Do not declare patch variables on stack.
ff3f5bcba5 MSL: Handle masking of builtin control points.
6ecdd64a91 MSL: Emit a masked builtin IO block if necessary.
436b1250da MSL: Do not perform scalar fixups for control-point outputs.
22c9b63e78 MSL: Fix argument_decl check for builtin.
c635c35c12 MSL: Temporarily allow empty output struct.
a59e25db18 MSL: Small refactors.
74b2acab9b MSL: Always emit block variable for block types.
ae7bb41ef4 MSL: Test that we can mask location writes in TESC.
3255d6cef0 MSL: Explicitly only consider masked variables to be thread-group-like.
ba93b6518d MSL: Fix masking of vertex block outputs.
a393de31e6 MSL: Refactor out variable/block member masking.
857295a9ab MSL: Add tests for masking with --for-tess.
43b6ea2c9a MSL: Remove position mask tests. They will fail compilation.
e7b37392bf MSL: Emit correct address space for masked arguments.
65b5ff7ece MSL: Don't emit weird reference type for spvUnsafeArray types.
e7824c8b6e MSL: Handle masked outputs in extract_global_variables.
50a6bc058a MSL: Force builtin arrays for builtin array types.
88b54f5dab MSL: Add tests for vertex output masking.
394c038bfd MSL: Do not consider effective storage for any composite.
04988b89b9 MSL: Handle effective storage for masked CP outputs.
f2b5fb3f45 MSL: Emit threadgroup storage class for masked control point outputs.
ea91579a7f MSL: Do not redirect tess access chains on masked outputs.
9c1cadd440 Add --mask-stage-output-* CLI options.
f682e89188 MSL: Correctly emit array type for masked outputs.
2a2d57df13 MSL: Sketch out API to aid LTO-style optimization.
9a144bb2b9 Clean up member sorting.
0997e81118 MSL: Sort builtin IO block members by builtin type.
b4aa6dacfa MSVC: Add /bigobj for debug builds.
45818c14e4 Merge pull request #1648 from billhollings/msl-pad-arg-buff-structs
b3bfe22eaa MSL: Fixes to support padding Metal argument buffer entries based on argument index.
daba0dfba6 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9060e5a13c MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9866cf4496 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
6c0e11f907 Merge branch 'master' of https://github.com/billhollings/SPIRV-Cross into msl-pad-arg-buff-structs
582749ac68 Merge pull request #1650 from Dredhog/active-builtins-c-api
edde535574 c: Remove SPVC_PUBLIC_API prefix from API implementation
215f31b33f c: Add missing API to query active builtins.
17dab614dc MSL: Support padding Metal argument buffer entries based on argument index.
d2e1e7ba98 Fix Github CI in PRs.
28ae7b8f35 Merge pull request #1642 from mehmetoguzderin/msl-long-ulong-member
e2f7a753d2 Move condition to default block
0a0c9db9be MSL: Support long ulong types in buffers in 2.3+.
84d1f8aa2a Use Github actions CI tag.
2e000a0be4 Add GitHub Actions script.
60aa24566e Merge pull request #1633 from KhronosGroup/fix-1626
ee31e84e30 GLSL: Handle complex load/store scenarios to gl_SampleMask.
fb1f295aaf Merge pull request #1635 from KhronosGroup/fix-1627
5d846acee5 Merge pull request #1634 from KhronosGroup/fix-1625
0ac70fa7ca Merge pull request #1632 from KhronosGroup/fix-1629
4ca06c7278 Handle edge cases in OpCopyMemory.
aea6d29aa8 MSL: Add test for logical subgroup arith ops.
d6c2c1b39a HLSL: Support logical subgroup ops.
5570043af3 GLSL: Add support for Logical subgroup ops.
bc4cb1b3c5 Throw if SPIR-V module has no entry points.
d57ab68a21 Merge pull request #1630 from KhronosGroup/fix-1628
97796e0609 MSL: Deal with pointer-to-pointer qualifier ordering.
621884d709 Merge pull request #1622 from KhronosGroup/fix-1619
da238e5f12 Merge pull request #1623 from phuang/patch-2
c66a571057 Add two missing source files
b1e36a1f78 Merge pull request #1621 from KhronosGroup/fix-1618
85704f70bc MSL: Handle load and store to TessLevel array in TESC.
ce552f4f91 MSL: Gracefully assign automatic input locations to builtin attributes.
aa271c1460 MSL: Refactor out location consumption count computation.
6f1f6775f3 Add comment where aux image atomic buffers are reflected from.
92d379bab4 Merge pull request #1620 from phuang/patch-1
bc3416a18f Fix build errors on Windows
bae17e8204 Merge pull request #1617 from KhronosGroup/fix-1608
5789e3eed9 Merge pull request #1616 from KhronosGroup/fix-1609
daddbd4078 MSL: Fixup type when using tessellation levels in TESC functions.
0ad12a0036 MSL: Always return [[position]] when required.
05a1a07f70 Merge pull request #1615 from KhronosGroup/fix-1612
09dc76f68a c: Add missing IOS_SUPPORT_BASE_VERTEX_INSTANCE option.
8f5ab50fb8 Merge pull request #1614 from KhronosGroup/fix-1610
21a931613e HLSL: Add vector to illegal names list.
4741bbaa64 Merge pull request #1606 from billhollings/position-invariance
8e03cb60a5 Expose position invariance.
84a41cd488 Merge pull request #1603 from KhronosGroup/small-improvements
ea02a0c03a Check entry point variables in is_hidden_variables.
4bedad3860 Handle nonuniformEXT qualifier for acceleration structures.
7ab3f3f74e Deal better with CompositeExtract from constant composite.
66fb0bd9df GLSL: Handle tracing against incoming payload/callable.
9acb9ec31f Merge pull request #1594 from KhronosGroup/fix-1591
a5eaf2f44a Merge pull request #1595 from KhronosGroup/copyright-update
4704482bbc meta: Update copyright headers to 2021.
4c866e4662 Fix pathological complexity explosion for certain shaders.
820179bf46 Merge pull request #1590 from KhronosGroup/fix-1584
2097c30985 GLSL: Support both SPV_KHR_ray_tracing and NV_ray_tracing.
702c903f98 Merge pull request #1589 from KhronosGroup/roll-deps
ce18d1b8a5 CLI: Fix silly regression with handling of -V.
5d82d32e0f Roll dependencies.
0e5078dc0c Merge pull request #1588 from KhronosGroup/fix-1582
893a011299 MSL: Fix various bugs with framebuffer fetch on macOS and argument buffers.
3136e34215 MSL: Always use input_attachment_index for framebuffer fetch binding.
134a520034 Merge pull request #1587 from KhronosGroup/refactor-active-variable-consideration
03ee71e86c Add test for pure initializer gl_FragDepth.
3776d8978c GLSL: Force block declaration if clip/cull is used in tesc.
014b3bc5ea MSL: Make sure initialized output builtins are considered active.
a4a9b53b5b MSL: Always enable Outputs in vertex stages.
fa76d01203 MSL: Only consider builtin variables if they are part of IO interface.
c8837d7d80 MSL: Very slight refactor.
234c65c0f3 Merge pull request #1585 from KhronosGroup/fix-1569
72e9f619a9 Merge pull request #1583 from KhronosGroup/fix-1567
42ec132357 Merge pull request #1581 from KhronosGroup/fix-1554
c033a93951 GLSL: Fix -Wshadow error.
1a28a04333 GLSL: Update SPIR-V headers for modified ray tracing opcodes.
02b7f9cbe9 CLI: Add stdin support.
efed4c9738 MSL: Fix initializer for tess level outputs.
ab9200ffdf MSL: Don't flatten builtin arrays unless they're part of IO interface.
df4f8ef8fe MSL: Emit correct initializer for tessellation control points.
ad3e1584f9 MSL: Handle initializers for tess levels.
39fee93906 GLSL: Refactor out Output variable initialization.
6a3ea0385e GLSL: Add test for initializing tess level output.
175381fe08 GLSL: Handle some extreme edge cases in Output variable initialization.
7b7a21c405 Merge pull request #1578 from KhronosGroup/fix-1568
1a38fec382 Minor redundant nit.
a1c784f002 More robust handling of initialized output builtin variables.
9a304fe931 Handle output IO block initializers more robustly.
49ab12919c Merge pull request #1577 from KhronosGroup/fix-1574
3514c9ff33 Merge pull request #1576 from KhronosGroup/fix-1571
3a85d1c80c CMake: Disable compiler extensions explicitly.
ddb3c65648 Handle reserved identifiers for functions.
c4ff129fe3 MSL: Handle reserved identifiers for entry point.
e50f7d1ce8 Merge pull request #1566 from KhronosGroup/subgroup-table-fix
c8765a75f2 GLSL: Fix KHR subgroup extension table for subgroups.
762c3082ae Merge pull request #1564 from KhronosGroup/fix-1558
1eb42eb18c Merge pull request #1563 from KhronosGroup/fix-1559
a11c4780d0 GLSL: Emit nonuniformEXT in correct place for late-combined samplers.
dc940846d7 GLSL/HLSL: Disallow VariablePointers capability outright.
6d10da0224 Merge pull request #1553 from comex/no-subgroups-in-vertex-shaders
f41b59b36e Merge pull request #1557 from KhronosGroup/mit-dual-license-api
cf1e9e0643 Add MIT dual license for the SPIRV-Cross API.
0b79db773f Merge branch 'master' of git://github.com/js6i/SPIRV-Cross
c09a65c12d MSL: Added fmin3 and fmax3 library functions to the illegal name list.
5a85fa9400 msl: Don't try to use [[thread_index_in_simdgroup]] in vertex shaders.
be527632a6 Merge branch 'unused' of git://github.com/comex/SPIRV-Cross
c80cbde7aa spirv_msl: Don't add fixup hooks for builtin variables if they're unused.
3d16060c32 Merge pull request #1551 from cdavis5e/msl-subgroup-inactive-ballot-mask
1e67b21ee9 MSL: Don't mask off inactive bits in ballot masks.
1f178be3c9 Merge branch 'msl-sample-rate-position' of git://github.com/cdavis5e/SPIRV-Cross
fd738e3387 MSL: Adjust FragCoord for sample-rate shading.
782916a797 Merge pull request #1549 from KhronosGroup/various-fixes
e07f0a9df5 GLSL: Fix buffer_reference with aliased names.
c5826b4b69 GLSL: Emit storage qualifiers for buffer_reference.
650b5e1b12 HLSL: Fix validation with FXC for test.
6a614cc7f7 Normalize all internal workaround methods to use spv prefix.
35d3b9c3e7 Merge branch 'msl-subgroup-ops-2' of git://github.com/cdavis5e/SPIRV-Cross
dabdf4eff6 Merge pull request #1547 from scribam/cmake-minimum-required
1eb4852856 CMake: Set minimum required version to 3.0
68908355a9 MSL: Expand subgroup support.
58291963c6 Merge branch 'glsl-vertex-attrib-64bit' of git://github.com/rdb/SPIRV-Cross
df5e3730ca GLSL: Require GL_ARB_vertex_attrib_64bit for double input in pre-4.10
b3c59263a0 Merge pull request #1541 from cdavis5e/msl-ios-features
88e25e60ec MSL: Expose some more features on iOS.
1ee2d13873 MSL: Add missing reference file.
ef0256c23e Fix switch fallthrough
0d6fad4ab9 Merge branch 'extract_subgroup_ops' of git://github.com/js6i/SPIRV-Cross
9c2c0a23b9 Merge pull request #1533 from rdb/texture-fetch-size-fallbacks
10fa5f62aa GLSL: Legacy / extension fallbacks for textureSize and texelFetch
f0239bce05 MSL: extract global variables from subgroup ballot operations
6fc2a0581a Run format_all.sh.
71fcf0d9e6 Update texture gather test result.
008f3baad7 Merge branch 'arb-texture-gather' of git://github.com/rdb/SPIRV-Cross
46bf1e99d6 Merge pull request #1525 from cdavis5e/msl-interpolation-functions
509908d8db GLSL: Add error checking and extension fallback for textureGather
683c3f5c3f Merge pull request #1530 from rdb/legacy-glsl-round
ea334c14bc Merge pull request #1527 from rdb/legacy-transpose
2417010046 Merge pull request #1528 from rdb/fix-legacy-vertex-shader-lod
1648747fa7 Merge pull request #1529 from KhronosGroup/fix-msl-gather-regression
b3bd674aa7 GLSL: Remove unused `lod` argument from legacy_tex_op()
bf71994dae GLSL: implement transpose() in GLSL 1.10 / ES 1.00
9e6e5d2738 GLSL: Fix round/roundEven for legacy GLSL.
e8c500ceef GLSL: Fix support for textureLod in legacy vertex shaders
db13762297 MSL: Fix regression in image gather handling.
aca9b6879a MSL: Support pull-model interpolation on MSL 2.3+.
a20c768698 Merge pull request #1524 from rdb/hlsl-round-even
854f566869 HLSL: Support roundEven() in HLSL SM 4.0 and above
2e1bdeb212 Merge pull request #1520 from rdb/dx9-dref-samplers
135933d59e HLSL: Add regression test for SM3.0 texture samplers
18893ba3b9 HLSL: Support depth comparison texture sampling in SM 2/3.
fc644b50e6 Merge pull request #1523 from KhronosGroup/fix-1512
512e851185 Merge pull request #1522 from KhronosGroup/fix-1510
b3344174f7 HLSL: Add option to flatten matrix vertex input semantics.
1f018b0fb8 Parser: Don't assume OpTypePointer will always take a SPIRType.
244839d350 Merge pull request #1516 from billhollings/VK_EXT_descriptor_indexing
4bdd49df3f Syntax and format updates from code review.
c5a3f37a1c Merge pull request #1519 from cdavis5e/msl-mac-comparison-bias-grad
dcd66c283c Merge pull request #1521 from devshgraphicsprogramming/master
6402586015 Updated ref file for subgroups_basicvoteballot.vk.comp
9a1af25f02 Merge pull request #2 from KhronosGroup/master
6c5f394b09 Fix some bad assumptions about emulating `subgroupBarrier`
7f67abe0fe Minor format and typo updates from code review.
547c29f7bb MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3.
8884b34940 Merge pull request #1517 from atyuwen/master
303f813166 Merge pull request #1518 from KhronosGroup/fix-nonuniform-bracket-handling
439b666829 GLSL: Fix nonuniformEXT injection.
871a023877 fixed compile error with -std=c++20
541a801fed Merge pull request #1514 from cdavis5e/msl-mac-framebuffer-fetch
c8a43876c7 added metal keyworld: "level" (#1501)
b7b0e804e5 MSL: Support run-time sized image and sampler arrays (GL_EXT_nonuniform_qualifier/SPV_EXT_descriptor_indexing).
c20d5945a2 MSL: Allow framebuffer fetch on Mac in MSL 2.3.
78c6d2d628 Merge pull request #1509 from cdavis5e/mac-post-depth-coverage
08e49bfd67 Merge pull request #1508 from KhronosGroup/fix-1507
346b0b6c21 Merge pull request #1493 from KhronosGroup/ubo-row-major-load-workaround
d48d2a95c7 MSL: Allow post-depth coverage on Mac in MSL 2.3.
542d460364 Handle case where block is loop header, continue AND break block.
e47561a28b GLSL: Support a workaround for loading row-major matrices.
5ae9153a78 Merge pull request #1505 from cdavis5e/msl-vertex-writes
1b6b9705e6 MSL: For 2.1+, don't disable rasterization for vertex writes.
1a95017d11 Merge pull request #1503 from KhronosGroup/travis-python-update
b3a74f3a22 Merge pull request #1504 from KhronosGroup/fix-1502
f65f259ab7 MSL: Do not use component::x gather for depth2d textures.
1d68cbfb1b Update TravisCI python reference.
dd35821f2f Merge pull request #1499 from cdavis5e/subgroup-fixes
1264e2705e MSL: Cast broadcast booleans to ushort.
065b5bda3c MSL: Mask ballots passed to Ballot bit ops.
781367d083 MSL: Support vectors with OpGroupNonUniformAllEqual.
6ccb902462 MSL: Correct definitions of subgroup ballot mask variables.
a57b4b1b2e Merge pull request #1498 from cdavis5e/msl-swizzle-arrayed-nonconstant
064ed448b9 MSL: Don't remove periods from swizzle buffer index exprs.
7b80307a7d Merge pull request #1495 from cdavis5e/1d-2d-offset-grad
5845e009ea MSL: Handle Offset and Grad operands for 1D-as-2D textures.
0db1569e97 Merge pull request #1492 from KhronosGroup/non-native-matrix-fix
9c220a8247 Merge pull request #1490 from KhronosGroup/fix-1488
23a0cfc842 Merge pull request #1494 from cdavis5e/msl-tesc-tess-level-cast
3e6010d8c5 MSL: Don't use a bitcast for tessellation levels in tesc shaders.
120af42616 GLSL: Use need_transpose when checking for non-native matrix.
bd1ee4344e MSL: Support querying and modifying generated combined sampler suffix.
7332b44c3c Merge pull request #1489 from cdavis5e/msl-fix-atomic-image-coord
21d38f74ce MSL: Fix calculation of atomic image buffer address.
e827a06984 Merge pull request #1487 from cdavis5e/msl-atomic-image-interlock
7a5d0d6b29 MSL: Add missing interlock handling to atomic image buffers.
fab6ad234e Merge pull request #1486 from cdavis5e/atomic-image-argument-buffer
cc7aabce72 Merge pull request #1485 from cdavis5e/msl23-demote-to-helper
9cafea6cf8 MSL: Support atomic access to images from argument buffers.
2219c4a392 MSL: Support SPV_EXT_demote_to_helper_invocation for MSL 2.3.
401af49326 Merge pull request #1482 from KhronosGroup/gl-subgroup-merge
5619329665 Style nits for GL subgroup implementation.
a6f6547cf1 Add missing VK variant of the test file.
28994a3186 Update GL subgroup test file.
819c599ecd Merge branch 'issues1350-2' of git://github.com/devshgraphicsprogramming/SPIRV-Cross into master
db52e277b9 Resolved issues 1350, 1351, 1352
5cc2e4f634 Merge pull request #1475 from KhronosGroup/fix-1474
e0c9aad934 GLSL: Add support for transform_feedback3 geometry streams.
7a99d1cb72 GLSL: Use literal array size for cull/clip array sizes.
e6f5ce6b89 Merge pull request #1471 from KhronosGroup/fix-1467
6254be910e Merge pull request #1470 from KhronosGroup/fix-1469
34a6a45fba Work around MSVC warning.
5ea576ece2 Allow flip_vert_y in all relevant stages.
ea3cd74426 Merge pull request #1468 from dj2/roll-09-22
9880b05572 Roll dependencies.
8891bd3512 Merge pull request #1466 from KhronosGroup/fix-1465
2144274a91 Clean up conditional branch codegen.
54cc0b01f6 Deal with case where a selection construct conditionally merges/breaks.
16d9fea77c Merge pull request #1463 from KhronosGroup/fix-1462
66afe8c499 Implement a simple evaluator of specialization constants.
bdbef7b1f3 Merge pull request #1461 from Kangz/fix-warnings
bcd71536e2 Fix -Wduplicate-enum and -Wrange-for-analysis.
ba2d0e17d3 Merge pull request #1460 from KhronosGroup/fix-1458
446596643a Roll glslang/SPIRV-Tools deps.
18d03b3ea6 Handle OpUndef %void.
bad9dab8df Merge pull request #1457 from cdavis5e/msl-layered-subpass-data
4cf840ee7b MSL: Support layered input attachments.
c7507e39d4 Merge pull request #1456 from KhronosGroup/fix-1455
3360daa6f3 MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
9e3dbdc8d6 Merge pull request #1454 from cdavis5e/msl-multiview-non-layered
cab7335e64 MSL: Don't set the layer for multiview if the device doesn't support it.
4752a44f9e Merge pull request #1453 from cdavis5e/msl-multiview-base-instance
53080ecca8 MSL: Fix multiview view index calculation with a non-zero base instance.
685f86471e Merge pull request #1452 from KhronosGroup/minor-nits
95993f78af Run format_all.sh.
ee1b4e7042 Work around annoying warning on GCC 10.2.
eec76b04c7 Merge pull request #1450 from KhronosGroup/fix-1440
a07441568e Overhaul how we deal with reserved identifiers.
f0fe4442e3 Merge pull request #1448 from KhronosGroup/fix-1437
4f0f0e5a07 Merge pull request #1449 from KhronosGroup/fix-1443
fdbc80d131 HLSL: Fix FragCoord.w.
fad36a6b28 HLSL: Deal with partially filled 16-byte word in cbuffers.
dd1f53ff15 HLSL: Fix bug in is_packing_standard for cbuffer.
4c7944bb42 Merge pull request #1446 from kakashidinho/master
ab8eb70af1 Fix#1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
82d1c43e40 Merge pull request #1441 from cdavis5e/msl-tesc-composite-out
3347b1076d MSL: Fix handling of matrices and structs in the output control point array.
c333445ada Merge pull request #1436 from KhronosGroup/fix-1408
8a1843ab20 Add some test cases for complex type aliasing scenario.
eb580d6656 Ensure that we use primary alias type when emitting flattened members.
aac6885950 GLSL: Be more aggressive about using type_alias.
038b0bf238 Only rewrite type aliases for the base type.
7778792aec Merge pull request #1434 from KhronosGroup/glsl-force-flattened-io
57c93d44ac GLSL: Add option to force flattening IO blocks.
f5e9f4a172 Merge pull request #1432 from ponitka/hlsl-sample-mask
ba58f78395 Adding BuiltInSampleMask in HLSL
0376576d2d Merge pull request #1429 from ponitka/master
18f23c47d9 Enabling setting a fixed sampleMask in Metal fragment shaders.
934825a6a2 Merge pull request #1294 from cdavis5e/msl-multi-patch-workgroup
688c5fcbda MSL: Add support for processing more than one patch per workgroup.
3dcc23a5b3 Merge pull request #1431 from dj2/roll-07-22
ac08a89cf0 Merge pull request #1430 from cdavis5e/msl-refactoring
c4f3d4ae29 Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
884bc6df65 MSL: Factor creating a uint type into its own method.
5e13f7fdf2 MSL: Factor a really gnarly condition into its own method.
6575e451f5 Merge pull request #1423 from KhronosGroup/msvc-2013-fix
36c999ae3f MSVC 2013: Fix silently broken builds.
39ce5b46de Merge pull request #1421 from troughton/patch-3
b74a84e4cb MSL: Ensure OpStore source operands are marked for inclusion in function arguments
559b21c6c9 Merge pull request #1420 from dj2/roll-07-06
63fbdaca93 Roll deps.
3b366db7f1 Merge pull request #1416 from KhronosGroup/fix-1415
711300baed MSL: Do not emit swizzled writes in packing fixups.
fa5b206d97 MSL: Workaround broken vector -> scalar access chain in MSL.
fab75792a9 Merge pull request #1419 from KhronosGroup/msl-input-attachment-index-fallback
e1600d4df8 MSL: Use input attachment index directly for resource index fallback.
c465cd5004 Merge pull request #1417 from KhronosGroup/fix-351
2ac8f51b06 GLSL: Support I/O flattening with arrays as final type.
2d43103a55 GLSL: Support multi-level struct flattening for I/O.
d573a95a9c Run format_all.sh.
8f716947c2 test: Use --hlsl-dx9-compatible when attempting to compile SM 3.0 shaders.
2894b40868 Merge pull request #1412 from KhronosGroup/fix-1411
70f17142de GLSL: Fix nested legacy switch workarounds.
b1082c10af Merge pull request #1410 from KhronosGroup/fix-1406
42096ca4a1 Merge pull request #1409 from KhronosGroup/fix-1405
4d79d634f5 GLSL: Implement switch on ESSL 1.0.
bae76d7915 GLSL: Use for-loop fallback instead of do/while for legacy ESSL.
3afbfdb090 Implement context-sensitive expression read tracking.
05188aca69 Fix bug with control dependent expression tracking.
2e7a562583 Merge pull request #1404 from KhronosGroup/fix-1402
eb0f0323d3 HLSL: Workaround FXC bugs with degenerate switch blocks.
f9ae06512e Merge pull request #1401 from dj2/roll-deps-22
9eb615c63b Merge pull request #1400 from KhronosGroup/fix-1399
0abc017501 Roll deps and update tests.
f9da366ae6 MSL: Remove the old VertexAttr API.
7edaea87cf Merge pull request #1398 from Kangz/fix-deprecation
6add77aa97 Merge pull request #1397 from KhronosGroup/fix-1396
8aee532f56 Fix placement of SPIRV_CROSS_DEPRECATED.
f141521ebe Fix duplicated initialization for loop variables with initializers.
d7976b7b24 Merge pull request #1395 from KhronosGroup/fix-1394
ace4d25222 MSL: Add test case for constructing struct with non-value-type array.
7314f51a32 MSL: Deal with loading non-value-type arrays.
02db4c1f16 MSL: Add tests for array copies in and out of buffers.
03d4bcea68 MSL: Improve handling of array types in buffer objects.
11832b6e14 Clean up some deprecation warnings when building with Makefile.
5e509b159a Remove unused member in MSLShaderInput.
a64484f62b Merge pull request #1392 from cdavis5e/msl-frag-input-vecsize
5281d9997e MSL: Fix up input variables' vector lengths in all stages.
7073ed2edb Merge pull request #1393 from KhronosGroup/fix-1391
d13dc0ce47 HLSL: Fix texProj in legacy HLSL.
9e3df69d4e Merge pull request #1390 from rdb/master
031cbaa5a2 GLSL: Require GL_ARB_draw_instanced for gl_InstanceID in GLSL < 1.40
92fcd7d2b0 Merge pull request #1389 from KhronosGroup/sparse-clamp
f383cc98f2 GLSL: Handle the rest of GL_ARB_sparse_texture_clamp.
bbefea2b02 Merge pull request #1388 from KhronosGroup/uint-sparse-residency-query
857e1c445c GLSL: Support uint code for sparse residency query.
553a7f959b Merge pull request #1385 from KhronosGroup/fix-1237
cbe0cca73b Refactor texture fetch function generation.
b73c047faf Merge pull request #1387 from Lichtso/master
1f5875e23e Fix missing switch cases in Y'CbCr conversion
3ce81c0025 Merge pull request #1384 from KhronosGroup/fix-1380
757c10bbe4 Merge pull request #1383 from KhronosGroup/fix-1381
275974e062 GLSL: Implement sparse feedback.
6600793884 MSL: Remove obsolete MSLVertexAttr members.
2d5200650a HLSL: Add native support for 16-bit types.
d385bf096f Merge pull request #1378 from bbernhar/issue_410
32bead81c8 Prefer set/binding API
999a7b5256 Merge pull request #1379 from KhronosGroup/fix-1377
165392a2b0 Document all CLI options.
d31bc0247e Do not mask writes to remapped variables in all cases.
17bccc9f7e HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.
61cddd6307 Merge pull request #1376 from KhronosGroup/fix-1374
58dad82fcb Handle physical pointers in reflection API.
f992548434 Merge pull request #1372 from KhronosGroup/gl-draw-parameters
ef247e75ec GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
ec558bc98e Merge pull request #1371 from dj2/roll-deps-21
3d01d1bf50 Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
287e93ff80 Merge pull request #1370 from dj2/roll_deps_20
29ad40e93e Merge pull request #1369 from KhronosGroup/more-rt-tests
8bf916f575 Roll dependencies
b4dd0b6fb1 GLSL: Add more test shaders for hit attribute types.
66ec3e3e54 GLSL: Support ray payloads and hit attributes declared as Block.
271ad33380 GLSL: Add some more focused RT test shaders.
3c43f055df Merge pull request #1366 from KhronosGroup/fix-1365
f3a362b1aa HLSL: Implement image queries for UAV images.
d638d2df9c Merge pull request #1363 from KhronosGroup/rt-gl-instance-id
86380acf4d Support gl_InstanceID in RT shaders.
b7823ec389 Merge pull request #1361 from KhronosGroup/msl-single-element-array-refinement
107ab7c2b7 MSL: Avoid packed arrays in more cases.
de3698f0e0 Add missing reference files from PR merge.
b8ba89a1ac Merge branch 'master' of git://github.com/kakashidinho/SPIRV-Cross
9ddfe6db6d Fix#1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.
92f7d36c72 Merge pull request #1356 from KhronosGroup/fix-1354
0ebb88cc39 MSL: Redirect member indices when buffer has been sorted by Offset.
137dbeb7f1 Merge pull request #1355 from Kangz/fix-microsoft-enum-value
a3a590a82e Fix -Wmicrosoft-enum-value
7e0295abf8 Merge pull request #1353 from zoddicus/updateSPIRVHeaders
76658247ac Update SPIR-V Headers to 1.5 rev 3
471990d4dc Merge pull request #1349 from KhronosGroup/fix-1348
35a9b793d6 Work around odd deadlock in test_shaders.py in --parallel mode.
d7d630a0b7 Merge pull request #1347 from KhronosGroup/fix-1343
4330b046be Merge pull request #1346 from KhronosGroup/fix-1340
9b7140e2ba Implement OpAtomicLoad/OpAtomicStore.
cbaaa02af9 Merge pull request #1345 from apayen/master
6ef47d6657 MSL: Fix case where subpassInput is passed to leaf functions.
4edfe96739 Fixed recursion in combined_decoration_for_member Members in nested structs were not properly iterated on, and as a result, flags like row major for matrices could be not propagated properly.
7ba0f8f087 Merge pull request #1342 from dj2/roll
171c646474 Roll GLSLang, SPIRV-Tools and SPIRV-Headers.
1ad1662a2b Merge pull request #1339 from KhronosGroup/fix-1338
5e5d1c27ce GLSL: Support f16x2 <-> f32 bitcast.
c58839bfd4 Merge pull request #1336 from KhronosGroup/fix-1333
bf289c37a2 Merge pull request #1337 from KhronosGroup/nonuniform-propagation-fix
bdb343ea06 Be a bit more careful what nonuniform state is propagated.
6b0e558169 Handle RayQueryKHR type.
78b4d9379b Update SPIR-V headers.
b2e934b53f Merge pull request #1328 from devshgraphicsprogramming/patch-1
5cb0f0a640 Merge pull request #1335 from KhronosGroup/fix-1325
127224d816 Fix issue #1327
58548e25a2 Merge pull request #1334 from KhronosGroup/fix-1332
7b9cba7424 HLSL: Add parens in unpackUint2x32 for clarity.
e4e4791c4e HLSL: Only allow 64-bit integers in SM 6.0.
a396744f89 Ensure unpack/pack2x32 tests are compatible with test suite.
55dfbead2f GLSL/HLSL: Support packUint2x32 and unpackUint2x32
f8592ecdfc MSL: Deal correctly with initializers on Private variables.
3fb86e4385 Merge pull request #1331 from KhronosGroup/fix-1321
17ad62eea4 MSL: Support edge case with DX layout in scalar block layout.
f38cbeb814 Merge pull request #1330 from KhronosGroup/fix-1320
ebf463674d MSL: Allow removing clip distance user varyings.
aa5fbc004b Merge pull request #1329 from godlikepanos/master
b3109b8ad0 Reflection: Add specialization constant name
90198199df Merge pull request #1324 from cdavis5e/msl-disabled-builtin-names
96f7008aa8 MSL: Force disabled fragment builtins to have the right name.
fbc560782c Merge pull request #1323 from cdavis5e/msl-disable-frag-only
495e48de44 MSL: Only disable output variables in fragment shaders.
54658d6255 Merge pull request #1319 from cdavis5e/msl-frag-outputs
b29f83c383 MSL: Add options to control emission of fragment outputs.
fcbc590937 Merge pull request #1316 from Malacath-92/master
4560ee24fd Improve compatibility with clang-cl
a1d9b474b5 Merge pull request #1314 from KhronosGroup/fix-1313
c7b75a8fe6 MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
6637610b16 Merge pull request #1309 from KhronosGroup/fix-1305
941cceedb4 Expose a query if samplers or images are comparison resources.
b691b7d1e3 Do not add NonWritable/NonReadable decorations for regular images.
14f24d71ab Merge pull request #1308 from KhronosGroup/fix-1306
cfcd84319b Merge pull request #1310 from KhronosGroup/msl-force-declare-implicit-builtins
d9d3359ffb MSL: Deal with cases where builtin is implicitly needed, declared, but unused.
01cee74b02 Merge pull request #1307 from troughton/patch-1
28bf9057df HLSL: Add support for treating NonWritable UAV texture as SRV instead.
4cf736d753 MSL: mark BuiltInFragCoord as implicitly used for subpass reads
e58e8d5dbe Merge pull request #1303 from KhronosGroup/fix-1302
3cb6aeb480 MSL: Fix access chain for deep struct hierarchy on array of buffers.
84ec99c531 Merge pull request #1301 from dj2/roll_deps
32307df73a Roll GLSLang, SPIRV-Tools and SPIRV-Headers
9b3c5e12be Merge pull request #1299 from KhronosGroup/fix-1298
b8905bbd95 Add support for forcefully zero-initialized variables.
871c85d7f0 Merge pull request #1297 from KhronosGroup/fix-1295
04e877df12 GLSL: Implement GL_EXT_shader_framebuffer_fetch.
c2655ab291 Run format_all.sh.
c3d216c011 Merge pull request #1296 from KhronosGroup/fix-1292
05004a57ea GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics.
a3d3c80dd7 GLSL/HLSL: Implement nonuniform qualifier for image atomics.
65aa0c35d6 include/spirv_cross: Fix typo.
7d42fd7f7b Merge pull request #1290 from KhronosGroup/fix-1289
185551bfaf HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer.
d19f30a90e Merge pull request #1287 from KhronosGroup/read-write-decoration-tweaks
95cd20f1c7 Add test for disable-storage-image-qualifier-deduction.
c27e1efbf1 HLSL: Add option to always treat SSBO as UAV, even with readonly.
01968c4486 Add option to disable storage image qualifier deduction.
3ebc83da46 Remove old hack which forces NonWritable/NonReadable.
9deb6ffbba Merge pull request #1285 from KhronosGroup/vulkan-semantics-shorthand
3f2de0d5d3 Add -V alias for --vulkan-semantics.
c5f7b55756 Merge pull request #1284 from KhronosGroup/fix-1282
16796e92be MSL: Add C API for force native arrays.
d91e134500 MSL: Add native array test for composite array initialization.
30343f3e95 MSL: Reintroduce workaround for constant arrays being passed by value.
20b28f72fa MSL: Reinstate workaround for returning arrays.
c9d4f9cd74 MSL: Add a workaround path to force native arrays for everything.
f19fdb94d7 Merge pull request #1283 from dj2/roll
7ec16b64c8 Roll GLSLang, SPIRV-Tools and SPIRV-Headers
dffd33dd9d Merge pull request #1280 from KhronosGroup/fix-1278
92a4294c57 Reject SPIR-V modules with garbage ID bound.
c53b34765d Merge pull request #1277 from KhronosGroup/fix-1276
e81c1b1d98 HLSL: Declare undef variables as static.
7ac5c38838 Merge pull request #1275 from KhronosGroup/fix-1274
cec0502ba5 Remove old memory_scope flag from iOS barriers.
6b2add8e2c Merge pull request #1272 from KhronosGroup/fix-1271
6f5cb00148 Use GNUInstallDirs for include path as well.
cb0aca91ef Merge pull request #1273 from orbea/cmake
8b90526911 cmake: Don't hardcode the pkg-config file.
74544caa16 cmake: Use GNUInstallDirs.
d67c3393da CMake: Avoid warning when parent project uses VERSION in project().
68bf0f824c Merge pull request #1270 from KhronosGroup/fix-1266
dfffbb1cf3 Compile fix on older compilers.
655312cb47 GLSL: Support GL_ARB_enchanced_layouts for XFB.
306cb31bad Merge pull request #1239 from cdavis5e/msl-inline-uniform-blocks
ae6c05f6f4 MSL: Move inline uniform blocks to the end of the argument buffer.
fedbc35315 MSL: Support inline uniform blocks in argument buffers.
f9376058ce Merge pull request #1269 from KhronosGroup/fix-1267
8bbb5fb763 Make SmallVector noexcept.
883de24f79 Merge pull request #1268 from barath121/patch-1
eac76d9473 Typo at line 324
f9818f0804 Update license headers to 2020.
7a411258af Run format_all.sh.
af787a8a79 Merge pull request #1264 from KhronosGroup/msl-argument-buffer-persist
4054d650cf Merge pull request #1263 from KhronosGroup/fix-1232
c3bd136df1 MSL: Add support for force-activating IAB resources.
f79c1e2fed Deal with illegal names in types as well.
79700d5412 Merge pull request #1262 from KhronosGroup/json-reflection-improvements
57b70225ef Merge pull request #1261 from KhronosGroup/fix-379
762c87a7bb Reflection: Add array stride/matrix stride reflection.
18e24c3ca2 Reflection: Emit reflection information for array size literalness.
55fe6050fe GLSL: Implement geometry shader passthrough extension.
172e39f039 Merge pull request #1257 from KhronosGroup/fix-1236
74107a04d1 Merge pull request #1256 from KhronosGroup/fix-1252
cc153f8d7f HLSL: Add a resource remapping API similar to MSL.
2bbb012e9c MSL: Deal with sign on wave min/max.
88ddeec49a HLSL: Deal with casting for WaveActiveMin/Max.
5253da9e63 GLSL: Deal with sign in subgroup Min/Max operations.
34ba8ea4f2 Merge pull request #1255 from KhronosGroup/fix-1254
c256525c7b Run format_all.sh.
1cbd71b354 HLSL: Fix bug when reading and writing structs from SSBO.
151ff1e870 HLSL: Implement stores for complex…
* Squashed 'deps/SPIRV-Cross/' changes from 2820ab0b51..49e4117c5f
49e4117c5f Updates for main branch rename.
88c6b49959 Merge pull request #2085 from KhronosGroup/fix-2075
a085227395 Merge pull request #2084 from KhronosGroup/fix-2069
1047c13d40 GLSL: Handle textureGatherOffsets properly.
f84527346d GLSL: Declare gl_in/gl_out as array more robustly.
38cd214007 Merge pull request #2083 from KhronosGroup/pr-2080
d46c10ebd3 Refactor PHI checks into block_is_noop instead.
bcbe33ad11 Also consider NonSemantic ExtInst in block_is_noop.
9d8ef6b36c Update test for updated block_is_noop check.
a61a541e1c Merge branch 'accept_noop' of https://github.com/loic-sharma/SPIRV-Cross into pr-2080
457fd3db70 Add tests for loops compiled with debug semantics.
07a629f149 Roll dependencies.
d69a2cafe5 Accept no ops
cded61dde3 Merge pull request #2076 from billhollings/ios-tier2-writable-images
284ccf5d2d Fixes from code review of adding writable images to iOS Tier2 argument buffers.
0bb28ef88a Merge pull request #2078 from KhronosGroup/fix-2072
549cde7fae Fix GCC5 build.
cc2b3b61a6 Merge pull request #2077 from EpicGames/fixes_glsl
6371580f51 Fixed typo in CompilerGLSL::should_dereference()
643b7be196 MSL: Add support for writable images in iOS Tier2 argument buffers.
a89dea3c49 Merge pull request #2071 from KhronosGroup/fix-2068
baf38f0593 Merge pull request #2070 from KhronosGroup/fix-2066
68a012a4f2 CFG: Handle implied access to opaque loaded values.
03b1f66ef1 GLSL: Fix row-major workaround wrapper for ES.
3c997e12eb Add C API option for enable row major workaround.
c77b09b57c Merge pull request #2063 from KhronosGroup/fix-2060
451ed10e91 Merge pull request #2062 from cdavis5e/msl-spirv-assembly-fixes
df76a14056 MSL: Refactor member reference in terms of one boolean.
e75c496ec6 Fix MSL Access Chain
540a1e82c6 Merge pull request #2056 from cdavis5e/msl-discarded-frag-checks
061cdd2052 MSL: Don't dereference forwarded copies of `OpVariable` pointers.
5547b25afe Interleave undef values with constants and types.
06ef3de002 GLSL, MSL: Handle `OpUndef` as part of a constant composite.
aa5a8c482e MSL: Prevent stores to storage resources in discarded fragments.
51d2dfe02a MSL: Add missing casts to `Op?MulExtended`.
c7ce92a95b MSL: Manually update `BuiltInHelperInvocation` when a fragment is discarded.
edd66a2fc9 Merge pull request #2055 from KhronosGroup/fix-2053
e8a22a7cf6 Handle ShaderDebugInfo non-semantic extension.
abc31207bf Merge pull request #2052 from KhronosGroup/hlsl-mesh-shader-ext
b606e4f752 HLSL: Fix test for non-block per-primitive IO.
ebf779dcfb HLSL: Do not support ClipCull size > 4 in mesh shaders.
94160e8890 GLSL: Add test for mesh with non-block builtin IO.
3a066cd733 HLSL: Handle case where PerVertex block is not used.
f5ef0a74fb HLSL: Make sure to test deeply nested functions in mesh shaders.
e418266d25 HLSL: Some cleanups and fixes in analyze_meshlet_writes.
892f65b3a6 HLSL: Fix some warnings from review.
a4d5c0c4a5 HLSL: Fix-up some style issues from review.
10f55a11eb HLSL: Add missing reference for mesh shader test.
322f1b9fb3 Fixup glslang reference.
80146a20da HLSL: Implement VK_EXT_mesh_shader
744279ec78 Merge pull request #2050 from cdavis5e/op-spec-constant-op-composite-insert
8cf99e7d44 MSL: Implement `CompositeInsert` `OpSpecConstantOp`.
3cecac74c6 Merge pull request #2051 from KhronosGroup/roll-glslang-dep
605bce39d7 Roll glslang dependency.
677299cc56 Merge pull request #2049 from KhronosGroup/fix-2046
4de9d6c2b6 MSL: Handle implicit integer promotion rules.
c813d8d67b Merge pull request #2044 from KhronosGroup/fix-2038
2a49f7e82d MSL: Fix restrict vs __restrict incompatibility.
3ea057a303 Merge pull request #2045 from KhronosGroup/fix-2037
0851baf9ee Merge pull request #2043 from KhronosGroup/fix-2040
47c7fc16eb HLSL: Add option to bind vertex input smemantics by name.
04af769e85 MSL: Handle partial access chains with array-of-UBO/SSBO.
5763919669 Merge pull request #2039 from cdavis5e/raw-buffer-tess-input
e698633e22 MSL: Account for composite types when assigning locations.
0b679334e4 MSL: Don't flatten arrayed per-patch output blocks in tessellation shaders.
a171087180 MSL: Support "raw" buffer input in tessellation evaluation shaders.
f09ba27777 Merge pull request #2035 from KhronosGroup/fix-2032
f15d465a52 Merge pull request #2034 from KhronosGroup/fix-2028
799d8c9e35 Merge pull request #2033 from KhronosGroup/fix-2029
b5386e3ea9 HLSL: Improve support for VertexInfo aux struct.
4ecdb24e59 MSL: Expose way to query if a buffer needs array length.
f3b1375b13 Add reflection support for shader record buffers.
c821207ae2 Merge pull request #2027 from billhollings/msl-opstore-addr-space-cast
0a1127aa50 MSL: Emit correct address space when casting during OpStore.
81ba8f78f6 Merge pull request #2025 from KhronosGroup/fix-2009
291def0793 MSL: Add more keywords to reserved set.
a7f64a8b90 MSL: Report unsupported 64-bit atomics.
ddaa2da629 Merge pull request #2024 from KhronosGroup/msl-descriptor-aliasing
a915e0bd4b MSL: Do not attempt to alias push constants.
adf0995bb9 Merge pull request #2023 from KhronosGroup/msl-descriptor-aliasing
24dc49e692 MSL: Handle descriptor aliasing of raw buffer descriptors.
1ad6006130 Merge pull request #2021 from siegelaaron94/opengles_texture1d_textureSize
7b4c470f16 GLSL: Account for ES sampler1D to sampler2D promotion in textureSize.
6d3518e238 Merge pull request #2018 from atyuwen/master
7afbbb624a Merge pull request #2019 from billhollings/msl-OpPtrEqual-OpPtrNotEqual-OppPtrDiff
5493b3030e MSL: Support OpPtrEqual, OpPtrNotEqual, and OpPtrDiff.
1b9296e1a5 MSL: only fix up gl_FragCoord if really necessary.
f6ca617825 Merge pull request #2017 from KhronosGroup/roll-deps
a5a7999666 Update mesh/task test references.
d7a6861f64 Update glslang/spirv-tools.
1e7e9fc32b Merge pull request #2015 from FrankXie05/vcpkg-instructions
8553588895 Merge pull request #2014 from cdavis5e/msl-shader-output-fixup
064eaebe72 MSL: Add a mechanism to fix up shader outputs.
d206e54ece Add vcpkg installation instructions
210a800130 Merge pull request #2012 from KhronosGroup/mesh-shaders
4c345166dc GLSL: Implement task shaders.
5762617729 GLSL: Implement GL_EXT_mesh_shader.
6a73e68d30 Update glslang reference.
ec7b9b0ce7 Update SPIR-V headers.
9fcf62784b Merge pull request #2011 from KhronosGroup/roll-deps
d24f41f1d5 Update dependencies.
c93ee9261e Merge pull request #2005 from atyuwen/master
f40dba4919 GLSL: added an option to disable row-major-load workaround.
10f2aa77da Skip remapped vars in 'fixup_reserved_names'
9afa82e7b8 GLSL: disable row major load around on GLES.
33e19e86bf Don't rename remapped variables like 'gl_LastFragDepthARM'
61c603f3ba Merge pull request #1996 from KhronosGroup/fix-1993
bc3987e59a MSL: Fix various bugs with Ptr/U bitcasts.
c084973c67 Merge pull request #1995 from KhronosGroup/fix-1992
05bbcc2d09 Do not optimize OpCompositeInsert for hoisted temporaries.
a725d8fad1 Fix minor style nit from review.
1bc05ef735 Merge branch 'master' of https://github.com/gpx1000/SPIRV-Cross
a9cadd4982 Merged in cts-shared-composite-variables (pull request #1)
fc4a12fd4f MSL: Use a wrapper type for matrices in workgroup storage.
faea931de3 MSL: Also replace `bool` with `short` in structures.
0cccd0a65a Merge pull request #1986 from KhronosGroup/fix-1975
4dfac510ed Handle multiple breaks out of switches.
c24d5a7b90 Merge pull request #1985 from KhronosGroup/fix-1973
8ba0820c9d Merge pull request #1984 from KhronosGroup/fix-1972
095e9e5cee Merge pull request #1982 from RandomShaper/hlsl_subgroup_scan
be904dcc1e Handle collapsed loops similar to collapsed selections.
f7e98c39db Avoid detection of false loop variables.
cb4e310f43 Merge pull request #1983 from KhronosGroup/fix-1979
1fe470b199 HLSL: Implement GroupOperation(Inclusive/Exclusive)Scan.
06ca9accd7 HLSL: Add option to emit entry point name 1:1 instead of main().
d8d051381f Merge pull request #1970 from KhronosGroup/fix-1969
963fdfdf68 Handle PHI in collapsed switch constructs.
f46745095d Merge pull request #1965 from billhollings/msl-physical_storage_buffer
064a697b18 MSL: Fix implicit conversion precision build error.
4185acc70d MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
78eb5043f9 MSL: Fixes from review for SPV_KHR_physical_storage_buffer extension.
e6925974d1 Merge pull request #1966 from fred-wang/macos-snprintf
9c44a97faa address more review comments
1310f5ba4d Keep using sprintf on windows.
99f8613847 Fix compilation errors with deprecated sprintf function
ba3e6ffe03 Merge pull request #1964 from sergmister/patch-1
52c7c2dab6 MSL: Add support for SPV_KHR_physical_storage_buffer extension.
1bba4d5137 Fix typo
99b59b3528 Merge pull request #1963 from KhronosGroup/convert-u-to-rtas-fix
e08e0cf28d GLSL: Handle forced temporary OpConvertUToAccelerationStructureKHR.
89b1c24bdc Merge pull request #1961 from RandomShaper/hlsl_more_bitcasts
d8c5e39436 HLSL: Implement bit casts between Half and UShort.
197a273fd4 Merge pull request #1959 from KhronosGroup/fix-1955-1956
df21a99d1a GLSL: Add more extension ladder fallbacks for unusual integer sizes.
a97bbc24c5 Merge pull request #1958 from KhronosGroup/fix-1957
cdafafe93b Merge pull request #1954 from vkaytsanov/patch-1
533aab00b6 GLSL: Add missing KHR barycentric references.
46e4b5a3c8 Fix control flow bug where we missed continue;
612de70b38 Fix missing function in README sample
50b4d5389b Merge pull request #1953 from KhronosGroup/bary-khr
e45d01c41f Emit KHR barycentrics if source enables the KHR extension.
0aedc7d128 Roll dependencies.
af223101c6 Merge pull request #1952 from KhronosGroup/fix-1944
c8ab790163 Merge pull request #1951 from KhronosGroup/fix-1950
88e583d062 GLSL: Add basic support for GL_EXT_shader_atomic_float.
1c88730e12 GLSL: Implement 1D texture emulation for ES.
3f855646f0 Merge pull request #1948 from iwubcode/gl_layer_hlsl
a6976d596a HLSL: fix BuiltInLayer to emit semantic 'SV_RenderTargetArrayIndex' instead of 'SV_RenderTargetIndex'
b3ff97d0fe Merge pull request #1946 from KhronosGroup/fix-1943
48d50fa911 Merge pull request #1945 from KhronosGroup/fix-1938
d08ce828f4 Promote Unreachable cases into break to avoid fallthrough.
4b9e60273c Add tests for OpCompositeInsert edge cases.
23662668dd Attempt more optimal codegen for OpCompositeInsert.
d0c8dc3045 Merge pull request #1942 from KhronosGroup/no-fetch-grad-workaround
a3c4177324 GLSL: Don't apply Grad LOD workarounds for fetch.
bfefb5f511 Merge pull request #1941 from KhronosGroup/fix-1934
832d469048 Merge pull request #1940 from KhronosGroup/fix-1935
05206005ca MSL: Potentially cast loaded Input variables.
92164d38d1 GLSL: Do not analyze precision for Undef variables.
940efca099 Merge pull request #1936 from KhronosGroup/rt-stage-cli
0b303aab16 Add --stage handling for ray tracing.
0c8a79b0b5 Merge pull request #1932 from KhronosGroup/fix-1868
7eb5ced2a0 Refactor out query for operation type/result IDs.
7a6c2da9aa GLSL: Handle more proper semantics for RelaxedPrecision.
d28136cc7a GLSL: Clean up some ways of querying decoration flags.
a9d23d7652 Merge pull request #1931 from EpicGames/fixes_hlsl
65431446f4 HLSL: Add missing BuiltInLayer to HLSL backend.
6ae7ddb92a Merge pull request #1930 from KhronosGroup/fix-1928
960edcd396 Merge pull request #1929 from KhronosGroup/fix-1925
10a7631d50 HLSL: Add more comprehensible reserved identifier list.
40b3053b4c Handle early reads from loop variables with initializers.
c52333b984 Merge pull request #1924 from stefalie/master
ee4ac5c2ce Merge pull request #1927 from billhollings/msl-interface-block-array-length-1
3bca246ad2 MSL: Emit interface block members of array length 1 as arrays instead of scalars.
089cf27119 remove newline at eof
56fd17f552 add qualifiers to reference reflect json output
05c9a14422 cli: display missing memory qualifiers for reflect and dump-resources
d7cae5e7cd Merge pull request #1917 from KhronosGroup/fix-1906
0500f9ed5d Merge pull request #1916 from KhronosGroup/fix-1910
d2a4f9842b GLSL: Support GL_EXT_debug_printf.
5b18fb1bcd MSL: Pass down global RayQuery object to leaf functions.
779138f39f Merge pull request #1914 from RandomShaper/hlsl_view_index
2ea1c9b642 HLSL: Implement ViewIndex.
6a67891418 Merge pull request #1909 from skkkksdkfak/primitive_id
54c00b69a4 Translate gl_PrimitiveID to SV_PrimitiveID.
0d4ce028bf Merge pull request #1903 from KhronosGroup/fix-1900
17c52990d5 MSL: Fix goofy bugs in ray query.
a3996eccf3 Merge pull request #1896 from Roy-AMD/fix-condition-issue
749be80389 Use types have same widths in loop condition.
44691aa975 Merge pull request #1899 from billhollings/forward-volatile-vars-except-builtins
85f98eb0c5 Allow volatile vars that are not builtins to be forwarded.
d000b9e71c Merge pull request #1898 from KhronosGroup/pr-1859
191c57b6cc Merge pull request #1897 from KhronosGroup/fix-1763
a7eefbc114 HLSL: Disable FXC testing for rayquery shaders.
cd209ff46d HLSL: Update test from review.
c95338e03e Merge branch 'ray_query' of https://github.com/k-payl/SPIRV-Cross into pr-1859
7b9eaf0b5e MSL: Handle awkward mix and match of Offset / ArrayStride in constants.
251361bd6f VK_KHR_ray_query implementation
565db34cba Merge pull request #1892 from KhronosGroup/meta-lookup-cleanup
39bad2c1f9 Avoid redundant meta lookups in ParsedIR when setting member decorations.
d5c3bd8b5e Merge pull request #1890 from KhronosGroup/fix-1889
4ab5bbb4e5 Fixup names of anonymous inner structs.
0b51794f01 Merge pull request #1888 from KhronosGroup/msl-ib-variable-name-alias-fix
1ec9d018fd MSL: Handle aliased variable names for resources placed in IB struct.
213c5f42ea MSL: Fix minor nits.
4ec1fb0aa9 Merge pull request #1887 from billhollings/msl-use-var-name-for-flattened-interface-struct-members
0c0fd98322 MSL: Use var name instead of var-type name for flattened interface members.
3915c37bb1 Merge branch 'fixup_gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
c4f9e4fde9 HLSL: Fix Helper Invocation wrongly allowed in compute.
a1803778c2 Merge pull request #1885 from KhronosGroup/helper-invocation-rework
b192b8887a MSL: Consider that gl_IsHelperInvocation can be Volatile.
15d29f00e2 Add test for SPIR-V 1.6 Volatile HelperInvocation.
93b0dc7718 Consider Volatile in should_forward().
476b6541fa Remove forwardable bit in SPIRVariable.
5d9fc2d903 HLSL: Add test for HelperInvocation.
005c14ad6a HLSL: Implement HelperInvocationEXT.
75224c6c7c Merge branch 'gl_helper_invocation' of https://github.com/RandomShaper/SPIRV-Cross
278a4c80ed HLSL: Add support for gl_HelperInvocation
6c7a40822f Merge pull request #1881 from KhronosGroup/relax-nan-checks
31be74a853 Add relax_nan_checks options.
b91ecf6077 Merge pull request #1880 from KhronosGroup/fix-1879
2ce1e5c140 Merge pull request #1878 from mysterymath/move
dc62cc792b Handle OpTerminateInvocation.
2a7f436135 Merge branch 'msl-add-nested-structs-to-io-blocks-squash'
7b594c125e Fix formatting nits from review.
bb4ced0280 MSL: Document clarification of location incrementing.
02d588b7e4 MSL: Fix var names in test shaders to avoid reserved identifiers.
3bb3b22b34 MSL: Non-functional fixes from PR code review.
3d4daab29d MSL: Support input/output blocks containing nested struct arrays
44c3333a1c Qualify std::move.
d16183d1d2 Merge pull request #1873 from KhronosGroup/fix-1861
02440e85cf Merge pull request #1872 from KhronosGroup/fix-1867
7af0a5f820 HLSL: Do not emit VPOS fixup unless position is active.
5555f2784b MSL: Refactor and fix use of quadgroup vs simdgroup.
a569680406 Merge pull request #1870 from abrachet/master
0eda71c409 Qualify move as std::move
c08ee860c8 Merge pull request #1869 from xndcn/msl
1b5c406a3d MSL: append entry point args to local variable names to avoid conflicts
188dc8b13c Merge pull request #1862 from flokart-world/feature/flatten-ubo-for-hlsl
64e058aa9b Merge pull request #1863 from KhronosGroup/various-fixes
ed4ded040e HLSL: Make --flatten-ubo work correctly
a56b22bf4e Add more scenarios where we can guarantee forward progress.
c716a9a5dd Add debug option to modify maximum number of compile iterations.
29cc18988c Fix regression from adding 64-bit switch support.
339e61a0e0 Do not emit hoisted access chain temporaries unless backend supports it.
5d9a95370f GLSL: Ensure correct signed integer type for more texture functions.
131278458e Merge pull request #1860 from KhronosGroup/docs-update
a8016a6470 Update documentation for descriptor set support in MSL/HLSL.
1a36968e5d [Spirv_msl] Fix normalize on half3/half2 (#1856)
53d94a982e Merge pull request #1852 from KhronosGroup/fix-1850
5a29181b35 Merge pull request #1851 from KhronosGroup/fix-1835
5b952d2cbf MSL: Rethink how opaque descriptors are passed to leaf functions.
ac46140ba3 Test aliased names in declared LUTs.
48b5a9069f Handle aliased names in spec constants.
08d5f5ed18 Merge pull request #1849 from KhronosGroup/fix-1844
9b25581d49 MSL: Handle constant construct of block-like array types.
79b13813c6 Merge pull request #1848 from KhronosGroup/fix-1843
5a5be7f9b9 MSL: Handle signed atomic min/max.
7dd974b9db Merge pull request #1847 from KhronosGroup/fix-1775
e940577fba Merge pull request #1846 from KhronosGroup/fix-1760
1d13a3e36a Rework how loop iteration counts are validated.
ef6bde6580 Do not forward expressions which carry a huge amount of dependencies.
a1bb29ccbb Merge pull request #1845 from KhronosGroup/pr-1842-fix
017cdfe25b Update references for GL_EXT_texture_buffer.
4407c0dd14 fix: GL_EXT_texture_buffer is more common than GL_OES_texture_buffer
fe5a0aa72f Merge pull request #1839 from KhronosGroup/spv1.6
e8b30cc31d Merge pull request #1838 from KhronosGroup/fix-1811
7c12228359 Add sanity test for SPIR-V 1.6 modules.
7c83fc22fa Add support for LocalSizeId.
35bb328443 Test: Add --allow-localsizeid flag for spirv-val.
eadca962c8 Merge pull request #1837 from KhronosGroup/roll-deps
a10d72e3b1 Merge pull request #1834 from chirsz-ever/chirsz/fix-msl-copy-array
fe8848a6f2 Roll dependencies.
9c0b74f73b Merge pull request #1836 from KhronosGroup/pr-1824-fixup
be333e0cab MSL: Move float2->3 TessCoord fixup to a better location.
2793d22af5 Merge branch 'master' of git://github.com/cfnptr/SPIRV-Cross
e0ae55d5e2 Merge pull request #1822 from etra0/add-diff
55a0291ce5 Merge pull request #1817 from etra0/fix-1784
90c252274d MSL: Allow copy array from UniformConstant storage
2acf0e73dd Fix gl_TessCoord arguments presence. Update reference shaders.
a66984072b Fix incorrect MSL gl_TessCoord variable type
2bb051206b test_shaders: Add the option to generate diff instead.
905b8244e7 Clamp vector element access to vector size.
e9cc640334 Merge pull request #1815 from etra0/fix-1768
25868923da Merge pull request #1819 from sindney/master
6d8302ef14 MSL: Add 64 bit switch support
4b0584ce70 ESSL: Vertex shader input doesn't support array types.
37dfb3f45f Merge pull request #1794 from etra0/master
5345051a85 Removed tracking of OpConstant and OpPhi.
7c3cb0b12c Merge pull request #1810 from billhollings/early-frag-tests-depth-out
248e9ae9ed MSL: Don't output depth and stencil values with explicit early fragment tests.
75e3752273 Added block.cases_32bit and reworked the cases fix
401296d3b8 Merge pull request #1808 from billhollings/depth-img-vs-depth-cmp
03f678dec4 Cast the switch selector in GLSL to uint32_t
fd252b21ff Separate (partially) the tracking of depth images from depth compare ops.
48046646ee Fixed wrong condition and formatting.
2e0fb3a778 Merge pull request #1807 from KhronosGroup/fix-1801
f1b411c9e8 GLSL: Deal with buffer_reference_align.
1adc53b107 Merge pull request #1806 from KhronosGroup/fix-1777
21a15b90e5 Merge pull request #1804 from KhronosGroup/fix-1759
2714f5410c CFG: Handle degenerate selection constructs.
e40d19bdbf MSL: Handle non-thread storage class in Modf/Frexp pointer versions.
f1d4aff85e Merge pull request #1805 from KhronosGroup/fix-1776
2c53d30664 Merge pull request #1803 from KhronosGroup/fix-1802
4561ecddbd Handle Modf/Frexp in more cases.
d295c2a046 Merge pull request #1800 from EddeDev/master
849978653a Merge pull request #1798 from billhollings/tess-output-clip
05e8e5a953 Correctly reflect declared buffer size for out of order members.
4dcf64a99b Fixed potential compilation error in spirv_cross_containers.hpp
250a02967d Removed unnecessary tracking of types.
4ebd56bf9e MSL: Correctly emit user(clip/cullN) for clip/cull builtins in tess output struct.
f099d714f3 Removing logic in the parser
04293e03fd Merge pull request #1797 from KhronosGroup/clone-protocol
0d03516382 Always use https protocol when cloning external test deps.
061397e32e Merge pull request #1792 from billhollings/uniform-struct-packing-nested
3eb5532979 Add 64 bit support for OpSwitch
be812c45e5 MSL: Remove over-zealous check for struct packing compatibility.
66adba17a8 Merge pull request #1791 from billhollings/msl-out-of-order-struct-offsets
76cb807c19 MSL: Fix type redirection when struct members are reordered to align with offsets.
29632959d2 Merge pull request #1787 from KhronosGroup/fix-1786
edf247fb1c MSL: Workaround compiler crashes when using threadgroup bool.
43eecb2360 SPIRV-Cross contribution needed for `INTEL_fragment_shader_ordering`
94dea2507e Merge pull request #1769 from audulus/spm2
f5219f47c3 Add Package.swift.
2a56c2bc04 Merge pull request #1783 from billhollings/more-unpacked-vectors
ab640bc3d3 Merge pull request #1782 from KhronosGroup/fix-1781
974a0818b8 MSL: Support more usecases for unpacked vectors.
2b5e17eca5 MSL: Never used templated array for RayQuery objects.
bc338710e1 MSL: Remove some redundant breaks.
5afb3d313f MSL: Fix some trivial bugs not caught by CI when adding ray query.
345a7d171c Merge pull request #1773 from congyue1977/master
2895a43274 Fix unsupported exceptions for ConvertUToAccelerationStructure & BindingTableRecordOffset.
d52ec1e196 Fix all requested changes, test_shaders.py supports compiling MSL 2.4 shaders, and the Intersection Query currently only supports MSL 2.4 on the iOS platform.
6d13c99273 Merge pull request #1780 from billhollings/out-of-bounds-swizzle-fix
595eb0c21d Per spec, support undefined behavior for out-of-bounds swizzles.
597f29d09d Support Metal 2.4 Intersection Query, Implement GL_EXT_ray_query.
e4243b898c Merge pull request #1766 from KhronosGroup/fix-1765
6382f15470 Test behavior around OpSelect with matrices.
6071df5840 Fix wrong detection of trivial_mix_op.
97a438d214 Merge pull request #1757 from KhronosGroup/fix-1754
f72bb3c6f5 Improve handling of INT_MIN/INT64_MIN literals.
457c00bd07 Merge pull request #1756 from KhronosGroup/fix-1753
91c25e8473 Merge pull request #1755 from KhronosGroup/fix-1751
9b2a8c7622 HLSL: Ensure synthetic NumWorkgroups variable is considered active.
bb04156d3c CLI/HLSL: Don't set explicit binding for synthesized NumWorkgroups CBV.
96d95fbb31 MSVC: Workaround crtdbg macroing free().
9462b90067 Merge pull request #1752 from billhollings/function-constants-opquantize
325f107c5b Merge pull request #1745 from billhollings/location-component-vecsize
ec054dad7f MSL: Support synthetic functions in function constants.
dee35bf3ce Merge pull request #1749 from billhollings/fastmath-quantize
ba66a91402 MSL: Use vec<T, n> in template SpvHalfTypeSelector for function spvQuantizeToF16().
a2671e35b0 MSL: Consolidate spvQuantizeToF16() functions into a single template function.
5742047b24 MSL: Honor infinities in OpQuantizeToF16 when compiling using fast-math.
05ac99ae23 Merge pull request #1748 from billhollings/fastmath-nocontraction
fb3defc9ef MSL: Honor DecorationNoContraction when compiling using fast-math.
548a23da34 MSL: Track location component to match vecsize between shader stages.
fe1af2ae72 Merge pull request #1747 from KhronosGroup/ci-fix
d579444a82 Merge pull request #1744 from billhollings/location-attribute-fix
6628e10fc6 Merge pull request #1746 from billhollings/fast-math-per-vulkan
3ca99bbbcc Remove tests for Ubuntu 16.04.
0f12557695 Remove obsolete Travis CI YML.
40141ffddf MSL: Selectively enable fast-math in MSL code to match Vulkan CTS results.
86dfac12c8 MSL: Fix location and component variable matching between shader stages.
b81334a513 Merge pull request #1738 from billhollings/return-value-after-discard-terminator
2a150f5a2f MSL: Add explanatory comment requested in PR review.
35e92e6ffb MSL: Return fragment function value even when last SPIR-V Op is discard (OpKill).
c2500e504d Merge pull request #1735 from billhollings/add-const-op-exprs
472f9d4f6d Add tests for OpSpecConstantOp ops OpQuantizeToF16 and OpSRem.
5fb1ca4f0d Add support for additional ops in OpSpecConstantOp.
51d8e7be94 Merge pull request #1734 from KhronosGroup/buffer-reference-uvec2
b8f1e71907 GLSL: Emit GL_EXT_buffer_reference_uvec2 as required.
d6fe75df10 Merge pull request #1732 from KhronosGroup/fix-1731
23c4480d8e Fix switch fallthrough case in some cases.
0e2880ab99 Merge pull request #1729 from KhronosGroup/fix-1726
2eea6a579b MSL: Consider that function/private variables can be block-like.
840d4483bc Merge pull request #1728 from KhronosGroup/fix-1727
5b0cafb416 Track temporary access for OpArrayLength result.
c062b6b852 Merge pull request #1725 from billhollings/fix-duplicate-glposition
fad1590786 Merge pull request #1722 from billhollings/row-maj-mtx-store-from-const
27e7abeab1 Merge pull request #1724 from billhollings/msl-const-expr-casting
e76fcf9309 MSL: Add test for fixes to MSL constant expression type down-casting.
3105e82b2e MSL: Fix duplicate gl_Position outputs when gl_Position defined but unused.
a75fe07546 MSL: Fix casting in constant expressions with different sizes.
9552ca5473 MSL: Support row-major transpose when storing matrix from constant RHS matrix.
bab4e5911b Merge pull request #1716 from KhronosGroup/terminator-access-fix
cb613eb675 Handle value access in terminators.
1964799fba Merge pull request #1715 from KhronosGroup/precise-fp16-fp64
ac11a91792 GLSL: Emit precise for fp16/fp64 types as well.
cd22336a38 Merge pull request #1712 from cdavis5e/msl-subgroup-ballot-simplify
03ad13bae6 MSL: Simplify spvSubgroupBallot().
18f3cd6810 GLSL: Ensure ray query object decls are flushed if allocated in Function.
e51630595f Merge pull request #1711 from KhronosGroup/fix-1690
5b227cc57c GLSL: Implement GL_EXT_ray_query.
6196e3b029 MSL: Remove redundant path for SampleMask.
2fcbef398c Merge pull request #1709 from billhollings/fix-sample-mask-in
fe08bf4af4 Remove EXPERIMENTAL from JSON reflection backend.
ebb5098def MSL: Adjust gl_SampleMaskIn for sample-shading and/or fixed sample mask.
be3988b13c Merge pull request #1706 from SpaceIm/fix/ios-bundle
a70ce5192e Merge pull request #1708 from KhronosGroup/fix-interpolant-access-chain
71b83a18f4 MSL: Add test for scalar access chain pull interpolant.
d42c0b2e08 Merge pull request #1707 from billhollings/fix-interpolant-access-chain
3e04eee491 MSL: Fix setting SPIRVCrossDecorationInterpolantComponentExpr decoration.
d74eaabde0 fix cross-build to iOS/tvOS/watchOS
1ae2b58f19 Merge pull request #1700 from pkasting/master
bf746bd680 Merge pull request #1699 from KhronosGroup/pervertexnv
7cdab07efe Fix -Wunreachable-code-aggressive.
206ee8f171 GLSL: Support pervertexNV in NV barycentric extension.
c5b8022e61 Merge pull request #1669 from KhronosGroup/1560-reuse1
54882ad16d Add GLSL.std.450.h to REUSE.
3781d49d7c .gitignore ignored new license text
c862f8d22d Actually checkout repo into new reuse job
f2a65545b8 Finish adding SPDX tags and setup a reuse checked in Github Actions CI
2ceca64004 Add missing copyright headers.
853e84e8bf Merge pull request #1698 from KhronosGroup/fix-1691
d6b29ab017 HLSL: Rewrite how block IO is emitted.
9338996f3b Merge pull request #1697 from KhronosGroup/fix-1693
3149095585 Merge pull request #1696 from KhronosGroup/fix-1694
d75666b170 GLSL: Emit num_views for OVR_multiview2.
8216e87f02 Handle SPIR-V 1.4 selection constructs.
9cdeefb5e3 Merge pull request #1692 from Kangz/fix_default_copy_dtor
6a85c695cc Fix IVariant -Wdeprecated-copy-with-dtor
2e1b5fb39e Merge pull request #1686 from KhronosGroup/fix-1684
fa42f1ce34 Merge pull request #1685 from KhronosGroup/fix-1683
449f68ef3b Ensure loop control flow hints only appear above loops.
d62b3c2b92 GLSL: Implement control flow hints.
165dbff228 Handle odd type for textureGather component.
585fc6f3cb MSL: Always enable support for base vertex/index on iOS.
a6ce49ca24 Merge pull request #1680 from xndcn/cc
02fb8f2a24 Add comment after inf/nan float number for clarifying.
ff61890722 Merge pull request #1679 from okuoku/fix-c-sample-code
38c6ef1d56 Fix C sample code in README.md
faec1a8643 Merge pull request #1678 from KhronosGroup/fix-1674
9ea0e8b859 Merge pull request #1677 from KhronosGroup/fix-1673
c87cb54499 MSL: Add CLI option for sampler suffix.
bf3793dd35 MSL: Improve handling of split tessellation access chains.
a6c9514856 Merge pull request #1676 from KhronosGroup/fix-1671
0214990e7c Merge pull request #1675 from KhronosGroup/fix-1670
26a4986009 GLSL: Implement noncoherent framebuffer fetch.
99ae0d32e9 MSL: Handle array with component when we cannot rely on user() attrib.
a64ddcdd49 MSL: Handle array of IO variable with Component decoration.
418542eaef Merge pull request #1668 from KhronosGroup/fix-1665
b8115ffbe0 HLSL: Implement invariant as precise.
e47a30e807 Honor NoContraction qualifier.
0eeaffe048 Merge branch '16-bit-int-types-glsl'
6dbab0df47 Update reference output.
0408c592dd Fixed 16 bit int types
72a2ec4c1b MSL: Fix '--msl-multi-patch-workgroup' out of bounds reads when dispatching more threads than control points (#1662)
995c7981cc Merge pull request #1663 from billhollings/metal-arg-buff-padding-patch
098cdd64f6 MSL: Padding for Metal argument buffers should not double-count SampledImages.
c624d5387c Merge pull request #1660 from KhronosGroup/fix-1658
82a77e534e MSL: Use proper array for quad tess levels.
b38e3b4a47 Merge pull request #1661 from KhronosGroup/fix-1659
0e963c62b6 HLSL: Support Shuffle wave ops.
bbcef69a45 Merge pull request #1657 from KhronosGroup/fix-1607
532f65583e Rewrite how non-uniform qualifiers are handled.
d137abeef5 Merge pull request #1655 from KhronosGroup/fix-1640
8e24e0b224 Merge pull request #1654 from KhronosGroup/fix-1641
71eb1754e3 Merge pull request #1653 from KhronosGroup/fix-1638
2cbc7f0f37 Merge pull request #1652 from KhronosGroup/fix-1644
b084f639cb Merge pull request #1651 from KhronosGroup/fix-1645
c89b5a1a3f GLSL: Support shading rate builtins.
3fd148450a GLSL: Implement gl_FragFullyCoveredNV.
f93a8fb1fe GLSL: Support GL_EXT_shader_image_load_formatted.
90c70e6605 MSL: Handle variable access in OpSelect.
96ba044f01 HLSL: Fix automatic location assignment in block IO.
3cb8e7c223 Merge pull request #1643 from KhronosGroup/fix-1639
ae9ca7d73c MSL: Fix copy of arrays to/from stage IO variables.
986196030d MSL: Don't use native arrays for tess level inputs.
4a379a00f3 MSL: Don't emit native array for masked clip/cull distance.
406af8ff4d c: Add C API for builtin stage IO reflection.
b4a380a04c Support reflecting builtins.
852f2da63c Check SPIR-V 1.4 rules when reflecting resources.
682a227f4b MSL: Make builtin argument type declaration context sensitive.
c1edd35d57 MSL: Use spvUnsafeArray for builtin arrays after all.
7b9a591aa7 MSL: Hoist out to_tesc_invocation_id() in more places.
75ed73818c MSL: Handle loading Clip/CullDistance in TESE.
a159334895 MSL: Correctly analyze if builtin block is active.
cea934c03f MSL: Test that we can capture cull distance to buffer.
5826298697 MSL: Handle CullDistance better.
23da445bd4 MSL: Emit multiple threadgroup slices for multi-patch.
b442500204 MSL: Unroll initializations of CullDistance/ClipDistance control points.
c9946296dd MSL: Fix initialization of masked threadgroup variables.
ee85bb345e Fix print_help comment.
faf80b08fc MSL: Don't report fallback location allocations as being "used".
adc5fe3615 C: Add C api for stage output masking.
5e9c2d060e MSL: Cleanup fallback IO block emission.
e32c474911 MSL: Handle masking of TESC IO block members.
dc54f75eec MSL: Fixup gl_PerVertex names if we're emitting masked builtins.
40f628f49c MSL: Add test for complex control point outputs.
46c48ee6b5 MSL: Rewrite how IO blocks are emitted in multi-patch mode.
425e968720 MSL: Handle flattening of patch block outputs as well.
8e2dbe0d38 MSL: Do not declare patch variables on stack.
ff3f5bcba5 MSL: Handle masking of builtin control points.
6ecdd64a91 MSL: Emit a masked builtin IO block if necessary.
436b1250da MSL: Do not perform scalar fixups for control-point outputs.
22c9b63e78 MSL: Fix argument_decl check for builtin.
c635c35c12 MSL: Temporarily allow empty output struct.
a59e25db18 MSL: Small refactors.
74b2acab9b MSL: Always emit block variable for block types.
ae7bb41ef4 MSL: Test that we can mask location writes in TESC.
3255d6cef0 MSL: Explicitly only consider masked variables to be thread-group-like.
ba93b6518d MSL: Fix masking of vertex block outputs.
a393de31e6 MSL: Refactor out variable/block member masking.
857295a9ab MSL: Add tests for masking with --for-tess.
43b6ea2c9a MSL: Remove position mask tests. They will fail compilation.
e7b37392bf MSL: Emit correct address space for masked arguments.
65b5ff7ece MSL: Don't emit weird reference type for spvUnsafeArray types.
e7824c8b6e MSL: Handle masked outputs in extract_global_variables.
50a6bc058a MSL: Force builtin arrays for builtin array types.
88b54f5dab MSL: Add tests for vertex output masking.
394c038bfd MSL: Do not consider effective storage for any composite.
04988b89b9 MSL: Handle effective storage for masked CP outputs.
f2b5fb3f45 MSL: Emit threadgroup storage class for masked control point outputs.
ea91579a7f MSL: Do not redirect tess access chains on masked outputs.
9c1cadd440 Add --mask-stage-output-* CLI options.
f682e89188 MSL: Correctly emit array type for masked outputs.
2a2d57df13 MSL: Sketch out API to aid LTO-style optimization.
9a144bb2b9 Clean up member sorting.
0997e81118 MSL: Sort builtin IO block members by builtin type.
b4aa6dacfa MSVC: Add /bigobj for debug builds.
45818c14e4 Merge pull request #1648 from billhollings/msl-pad-arg-buff-structs
b3bfe22eaa MSL: Fixes to support padding Metal argument buffer entries based on argument index.
daba0dfba6 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9060e5a13c MSL: Fixes to support padding Metal argument buffer entries based on argument index.
9866cf4496 MSL: Fixes to support padding Metal argument buffer entries based on argument index.
6c0e11f907 Merge branch 'master' of https://github.com/billhollings/SPIRV-Cross into msl-pad-arg-buff-structs
582749ac68 Merge pull request #1650 from Dredhog/active-builtins-c-api
edde535574 c: Remove SPVC_PUBLIC_API prefix from API implementation
215f31b33f c: Add missing API to query active builtins.
17dab614dc MSL: Support padding Metal argument buffer entries based on argument index.
d2e1e7ba98 Fix Github CI in PRs.
28ae7b8f35 Merge pull request #1642 from mehmetoguzderin/msl-long-ulong-member
e2f7a753d2 Move condition to default block
0a0c9db9be MSL: Support long ulong types in buffers in 2.3+.
84d1f8aa2a Use Github actions CI tag.
2e000a0be4 Add GitHub Actions script.
60aa24566e Merge pull request #1633 from KhronosGroup/fix-1626
ee31e84e30 GLSL: Handle complex load/store scenarios to gl_SampleMask.
fb1f295aaf Merge pull request #1635 from KhronosGroup/fix-1627
5d846acee5 Merge pull request #1634 from KhronosGroup/fix-1625
0ac70fa7ca Merge pull request #1632 from KhronosGroup/fix-1629
4ca06c7278 Handle edge cases in OpCopyMemory.
aea6d29aa8 MSL: Add test for logical subgroup arith ops.
d6c2c1b39a HLSL: Support logical subgroup ops.
5570043af3 GLSL: Add support for Logical subgroup ops.
bc4cb1b3c5 Throw if SPIR-V module has no entry points.
d57ab68a21 Merge pull request #1630 from KhronosGroup/fix-1628
97796e0609 MSL: Deal with pointer-to-pointer qualifier ordering.
621884d709 Merge pull request #1622 from KhronosGroup/fix-1619
da238e5f12 Merge pull request #1623 from phuang/patch-2
c66a571057 Add two missing source files
b1e36a1f78 Merge pull request #1621 from KhronosGroup/fix-1618
85704f70bc MSL: Handle load and store to TessLevel array in TESC.
ce552f4f91 MSL: Gracefully assign automatic input locations to builtin attributes.
aa271c1460 MSL: Refactor out location consumption count computation.
6f1f6775f3 Add comment where aux image atomic buffers are reflected from.
92d379bab4 Merge pull request #1620 from phuang/patch-1
bc3416a18f Fix build errors on Windows
bae17e8204 Merge pull request #1617 from KhronosGroup/fix-1608
5789e3eed9 Merge pull request #1616 from KhronosGroup/fix-1609
daddbd4078 MSL: Fixup type when using tessellation levels in TESC functions.
0ad12a0036 MSL: Always return [[position]] when required.
05a1a07f70 Merge pull request #1615 from KhronosGroup/fix-1612
09dc76f68a c: Add missing IOS_SUPPORT_BASE_VERTEX_INSTANCE option.
8f5ab50fb8 Merge pull request #1614 from KhronosGroup/fix-1610
21a931613e HLSL: Add vector to illegal names list.
4741bbaa64 Merge pull request #1606 from billhollings/position-invariance
8e03cb60a5 Expose position invariance.
84a41cd488 Merge pull request #1603 from KhronosGroup/small-improvements
ea02a0c03a Check entry point variables in is_hidden_variables.
4bedad3860 Handle nonuniformEXT qualifier for acceleration structures.
7ab3f3f74e Deal better with CompositeExtract from constant composite.
66fb0bd9df GLSL: Handle tracing against incoming payload/callable.
9acb9ec31f Merge pull request #1594 from KhronosGroup/fix-1591
a5eaf2f44a Merge pull request #1595 from KhronosGroup/copyright-update
4704482bbc meta: Update copyright headers to 2021.
4c866e4662 Fix pathological complexity explosion for certain shaders.
820179bf46 Merge pull request #1590 from KhronosGroup/fix-1584
2097c30985 GLSL: Support both SPV_KHR_ray_tracing and NV_ray_tracing.
702c903f98 Merge pull request #1589 from KhronosGroup/roll-deps
ce18d1b8a5 CLI: Fix silly regression with handling of -V.
5d82d32e0f Roll dependencies.
0e5078dc0c Merge pull request #1588 from KhronosGroup/fix-1582
893a011299 MSL: Fix various bugs with framebuffer fetch on macOS and argument buffers.
3136e34215 MSL: Always use input_attachment_index for framebuffer fetch binding.
134a520034 Merge pull request #1587 from KhronosGroup/refactor-active-variable-consideration
03ee71e86c Add test for pure initializer gl_FragDepth.
3776d8978c GLSL: Force block declaration if clip/cull is used in tesc.
014b3bc5ea MSL: Make sure initialized output builtins are considered active.
a4a9b53b5b MSL: Always enable Outputs in vertex stages.
fa76d01203 MSL: Only consider builtin variables if they are part of IO interface.
c8837d7d80 MSL: Very slight refactor.
234c65c0f3 Merge pull request #1585 from KhronosGroup/fix-1569
72e9f619a9 Merge pull request #1583 from KhronosGroup/fix-1567
42ec132357 Merge pull request #1581 from KhronosGroup/fix-1554
c033a93951 GLSL: Fix -Wshadow error.
1a28a04333 GLSL: Update SPIR-V headers for modified ray tracing opcodes.
02b7f9cbe9 CLI: Add stdin support.
efed4c9738 MSL: Fix initializer for tess level outputs.
ab9200ffdf MSL: Don't flatten builtin arrays unless they're part of IO interface.
df4f8ef8fe MSL: Emit correct initializer for tessellation control points.
ad3e1584f9 MSL: Handle initializers for tess levels.
39fee93906 GLSL: Refactor out Output variable initialization.
6a3ea0385e GLSL: Add test for initializing tess level output.
175381fe08 GLSL: Handle some extreme edge cases in Output variable initialization.
7b7a21c405 Merge pull request #1578 from KhronosGroup/fix-1568
1a38fec382 Minor redundant nit.
a1c784f002 More robust handling of initialized output builtin variables.
9a304fe931 Handle output IO block initializers more robustly.
49ab12919c Merge pull request #1577 from KhronosGroup/fix-1574
3514c9ff33 Merge pull request #1576 from KhronosGroup/fix-1571
3a85d1c80c CMake: Disable compiler extensions explicitly.
ddb3c65648 Handle reserved identifiers for functions.
c4ff129fe3 MSL: Handle reserved identifiers for entry point.
e50f7d1ce8 Merge pull request #1566 from KhronosGroup/subgroup-table-fix
c8765a75f2 GLSL: Fix KHR subgroup extension table for subgroups.
762c3082ae Merge pull request #1564 from KhronosGroup/fix-1558
1eb42eb18c Merge pull request #1563 from KhronosGroup/fix-1559
a11c4780d0 GLSL: Emit nonuniformEXT in correct place for late-combined samplers.
dc940846d7 GLSL/HLSL: Disallow VariablePointers capability outright.
6d10da0224 Merge pull request #1553 from comex/no-subgroups-in-vertex-shaders
f41b59b36e Merge pull request #1557 from KhronosGroup/mit-dual-license-api
cf1e9e0643 Add MIT dual license for the SPIRV-Cross API.
0b79db773f Merge branch 'master' of git://github.com/js6i/SPIRV-Cross
c09a65c12d MSL: Added fmin3 and fmax3 library functions to the illegal name list.
5a85fa9400 msl: Don't try to use [[thread_index_in_simdgroup]] in vertex shaders.
be527632a6 Merge branch 'unused' of git://github.com/comex/SPIRV-Cross
c80cbde7aa spirv_msl: Don't add fixup hooks for builtin variables if they're unused.
3d16060c32 Merge pull request #1551 from cdavis5e/msl-subgroup-inactive-ballot-mask
1e67b21ee9 MSL: Don't mask off inactive bits in ballot masks.
1f178be3c9 Merge branch 'msl-sample-rate-position' of git://github.com/cdavis5e/SPIRV-Cross
fd738e3387 MSL: Adjust FragCoord for sample-rate shading.
782916a797 Merge pull request #1549 from KhronosGroup/various-fixes
e07f0a9df5 GLSL: Fix buffer_reference with aliased names.
c5826b4b69 GLSL: Emit storage qualifiers for buffer_reference.
650b5e1b12 HLSL: Fix validation with FXC for test.
6a614cc7f7 Normalize all internal workaround methods to use spv prefix.
35d3b9c3e7 Merge branch 'msl-subgroup-ops-2' of git://github.com/cdavis5e/SPIRV-Cross
dabdf4eff6 Merge pull request #1547 from scribam/cmake-minimum-required
1eb4852856 CMake: Set minimum required version to 3.0
68908355a9 MSL: Expand subgroup support.
58291963c6 Merge branch 'glsl-vertex-attrib-64bit' of git://github.com/rdb/SPIRV-Cross
df5e3730ca GLSL: Require GL_ARB_vertex_attrib_64bit for double input in pre-4.10
b3c59263a0 Merge pull request #1541 from cdavis5e/msl-ios-features
88e25e60ec MSL: Expose some more features on iOS.
1ee2d13873 MSL: Add missing reference file.
ef0256c23e Fix switch fallthrough
0d6fad4ab9 Merge branch 'extract_subgroup_ops' of git://github.com/js6i/SPIRV-Cross
9c2c0a23b9 Merge pull request #1533 from rdb/texture-fetch-size-fallbacks
10fa5f62aa GLSL: Legacy / extension fallbacks for textureSize and texelFetch
f0239bce05 MSL: extract global variables from subgroup ballot operations
6fc2a0581a Run format_all.sh.
71fcf0d9e6 Update texture gather test result.
008f3baad7 Merge branch 'arb-texture-gather' of git://github.com/rdb/SPIRV-Cross
46bf1e99d6 Merge pull request #1525 from cdavis5e/msl-interpolation-functions
509908d8db GLSL: Add error checking and extension fallback for textureGather
683c3f5c3f Merge pull request #1530 from rdb/legacy-glsl-round
ea334c14bc Merge pull request #1527 from rdb/legacy-transpose
2417010046 Merge pull request #1528 from rdb/fix-legacy-vertex-shader-lod
1648747fa7 Merge pull request #1529 from KhronosGroup/fix-msl-gather-regression
b3bd674aa7 GLSL: Remove unused `lod` argument from legacy_tex_op()
bf71994dae GLSL: implement transpose() in GLSL 1.10 / ES 1.00
9e6e5d2738 GLSL: Fix round/roundEven for legacy GLSL.
e8c500ceef GLSL: Fix support for textureLod in legacy vertex shaders
db13762297 MSL: Fix regression in image gather handling.
aca9b6879a MSL: Support pull-model interpolation on MSL 2.3+.
a20c768698 Merge pull request #1524 from rdb/hlsl-round-even
854f566869 HLSL: Support roundEven() in HLSL SM 4.0 and above
2e1bdeb212 Merge pull request #1520 from rdb/dx9-dref-samplers
135933d59e HLSL: Add regression test for SM3.0 texture samplers
18893ba3b9 HLSL: Support depth comparison texture sampling in SM 2/3.
fc644b50e6 Merge pull request #1523 from KhronosGroup/fix-1512
512e851185 Merge pull request #1522 from KhronosGroup/fix-1510
b3344174f7 HLSL: Add option to flatten matrix vertex input semantics.
1f018b0fb8 Parser: Don't assume OpTypePointer will always take a SPIRType.
244839d350 Merge pull request #1516 from billhollings/VK_EXT_descriptor_indexing
4bdd49df3f Syntax and format updates from code review.
c5a3f37a1c Merge pull request #1519 from cdavis5e/msl-mac-comparison-bias-grad
dcd66c283c Merge pull request #1521 from devshgraphicsprogramming/master
6402586015 Updated ref file for subgroups_basicvoteballot.vk.comp
9a1af25f02 Merge pull request #2 from KhronosGroup/master
6c5f394b09 Fix some bad assumptions about emulating `subgroupBarrier`
7f67abe0fe Minor format and typo updates from code review.
547c29f7bb MSL: Allow Bias and Grad arguments with comparison on Mac in MSL 2.3.
8884b34940 Merge pull request #1517 from atyuwen/master
303f813166 Merge pull request #1518 from KhronosGroup/fix-nonuniform-bracket-handling
439b666829 GLSL: Fix nonuniformEXT injection.
871a023877 fixed compile error with -std=c++20
541a801fed Merge pull request #1514 from cdavis5e/msl-mac-framebuffer-fetch
c8a43876c7 added metal keyworld: "level" (#1501)
b7b0e804e5 MSL: Support run-time sized image and sampler arrays (GL_EXT_nonuniform_qualifier/SPV_EXT_descriptor_indexing).
c20d5945a2 MSL: Allow framebuffer fetch on Mac in MSL 2.3.
78c6d2d628 Merge pull request #1509 from cdavis5e/mac-post-depth-coverage
08e49bfd67 Merge pull request #1508 from KhronosGroup/fix-1507
346b0b6c21 Merge pull request #1493 from KhronosGroup/ubo-row-major-load-workaround
d48d2a95c7 MSL: Allow post-depth coverage on Mac in MSL 2.3.
542d460364 Handle case where block is loop header, continue AND break block.
e47561a28b GLSL: Support a workaround for loading row-major matrices.
5ae9153a78 Merge pull request #1505 from cdavis5e/msl-vertex-writes
1b6b9705e6 MSL: For 2.1+, don't disable rasterization for vertex writes.
1a95017d11 Merge pull request #1503 from KhronosGroup/travis-python-update
b3a74f3a22 Merge pull request #1504 from KhronosGroup/fix-1502
f65f259ab7 MSL: Do not use component::x gather for depth2d textures.
1d68cbfb1b Update TravisCI python reference.
dd35821f2f Merge pull request #1499 from cdavis5e/subgroup-fixes
1264e2705e MSL: Cast broadcast booleans to ushort.
065b5bda3c MSL: Mask ballots passed to Ballot bit ops.
781367d083 MSL: Support vectors with OpGroupNonUniformAllEqual.
6ccb902462 MSL: Correct definitions of subgroup ballot mask variables.
a57b4b1b2e Merge pull request #1498 from cdavis5e/msl-swizzle-arrayed-nonconstant
064ed448b9 MSL: Don't remove periods from swizzle buffer index exprs.
7b80307a7d Merge pull request #1495 from cdavis5e/1d-2d-offset-grad
5845e009ea MSL: Handle Offset and Grad operands for 1D-as-2D textures.
0db1569e97 Merge pull request #1492 from KhronosGroup/non-native-matrix-fix
9c220a8247 Merge pull request #1490 from KhronosGroup/fix-1488
23a0cfc842 Merge pull request #1494 from cdavis5e/msl-tesc-tess-level-cast
3e6010d8c5 MSL: Don't use a bitcast for tessellation levels in tesc shaders.
120af42616 GLSL: Use need_transpose when checking for non-native matrix.
bd1ee4344e MSL: Support querying and modifying generated combined sampler suffix.
7332b44c3c Merge pull request #1489 from cdavis5e/msl-fix-atomic-image-coord
21d38f74ce MSL: Fix calculation of atomic image buffer address.
e827a06984 Merge pull request #1487 from cdavis5e/msl-atomic-image-interlock
7a5d0d6b29 MSL: Add missing interlock handling to atomic image buffers.
fab6ad234e Merge pull request #1486 from cdavis5e/atomic-image-argument-buffer
cc7aabce72 Merge pull request #1485 from cdavis5e/msl23-demote-to-helper
9cafea6cf8 MSL: Support atomic access to images from argument buffers.
2219c4a392 MSL: Support SPV_EXT_demote_to_helper_invocation for MSL 2.3.
401af49326 Merge pull request #1482 from KhronosGroup/gl-subgroup-merge
5619329665 Style nits for GL subgroup implementation.
a6f6547cf1 Add missing VK variant of the test file.
28994a3186 Update GL subgroup test file.
819c599ecd Merge branch 'issues1350-2' of git://github.com/devshgraphicsprogramming/SPIRV-Cross into master
db52e277b9 Resolved issues 1350, 1351, 1352
5cc2e4f634 Merge pull request #1475 from KhronosGroup/fix-1474
e0c9aad934 GLSL: Add support for transform_feedback3 geometry streams.
7a99d1cb72 GLSL: Use literal array size for cull/clip array sizes.
e6f5ce6b89 Merge pull request #1471 from KhronosGroup/fix-1467
6254be910e Merge pull request #1470 from KhronosGroup/fix-1469
34a6a45fba Work around MSVC warning.
5ea576ece2 Allow flip_vert_y in all relevant stages.
ea3cd74426 Merge pull request #1468 from dj2/roll-09-22
9880b05572 Roll dependencies.
8891bd3512 Merge pull request #1466 from KhronosGroup/fix-1465
2144274a91 Clean up conditional branch codegen.
54cc0b01f6 Deal with case where a selection construct conditionally merges/breaks.
16d9fea77c Merge pull request #1463 from KhronosGroup/fix-1462
66afe8c499 Implement a simple evaluator of specialization constants.
bdbef7b1f3 Merge pull request #1461 from Kangz/fix-warnings
bcd71536e2 Fix -Wduplicate-enum and -Wrange-for-analysis.
ba2d0e17d3 Merge pull request #1460 from KhronosGroup/fix-1458
446596643a Roll glslang/SPIRV-Tools deps.
18d03b3ea6 Handle OpUndef %void.
bad9dab8df Merge pull request #1457 from cdavis5e/msl-layered-subpass-data
4cf840ee7b MSL: Support layered input attachments.
c7507e39d4 Merge pull request #1456 from KhronosGroup/fix-1455
3360daa6f3 MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
9e3dbdc8d6 Merge pull request #1454 from cdavis5e/msl-multiview-non-layered
cab7335e64 MSL: Don't set the layer for multiview if the device doesn't support it.
4752a44f9e Merge pull request #1453 from cdavis5e/msl-multiview-base-instance
53080ecca8 MSL: Fix multiview view index calculation with a non-zero base instance.
685f86471e Merge pull request #1452 from KhronosGroup/minor-nits
95993f78af Run format_all.sh.
ee1b4e7042 Work around annoying warning on GCC 10.2.
eec76b04c7 Merge pull request #1450 from KhronosGroup/fix-1440
a07441568e Overhaul how we deal with reserved identifiers.
f0fe4442e3 Merge pull request #1448 from KhronosGroup/fix-1437
4f0f0e5a07 Merge pull request #1449 from KhronosGroup/fix-1443
fdbc80d131 HLSL: Fix FragCoord.w.
fad36a6b28 HLSL: Deal with partially filled 16-byte word in cbuffers.
dd1f53ff15 HLSL: Fix bug in is_packing_standard for cbuffer.
4c7944bb42 Merge pull request #1446 from kakashidinho/master
ab8eb70af1 Fix#1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
82d1c43e40 Merge pull request #1441 from cdavis5e/msl-tesc-composite-out
3347b1076d MSL: Fix handling of matrices and structs in the output control point array.
c333445ada Merge pull request #1436 from KhronosGroup/fix-1408
8a1843ab20 Add some test cases for complex type aliasing scenario.
eb580d6656 Ensure that we use primary alias type when emitting flattened members.
aac6885950 GLSL: Be more aggressive about using type_alias.
038b0bf238 Only rewrite type aliases for the base type.
7778792aec Merge pull request #1434 from KhronosGroup/glsl-force-flattened-io
57c93d44ac GLSL: Add option to force flattening IO blocks.
f5e9f4a172 Merge pull request #1432 from ponitka/hlsl-sample-mask
ba58f78395 Adding BuiltInSampleMask in HLSL
0376576d2d Merge pull request #1429 from ponitka/master
18f23c47d9 Enabling setting a fixed sampleMask in Metal fragment shaders.
934825a6a2 Merge pull request #1294 from cdavis5e/msl-multi-patch-workgroup
688c5fcbda MSL: Add support for processing more than one patch per workgroup.
3dcc23a5b3 Merge pull request #1431 from dj2/roll-07-22
ac08a89cf0 Merge pull request #1430 from cdavis5e/msl-refactoring
c4f3d4ae29 Roll GLSLang, SPIRV-Headers and SPIRV-Tools.
884bc6df65 MSL: Factor creating a uint type into its own method.
5e13f7fdf2 MSL: Factor a really gnarly condition into its own method.
6575e451f5 Merge pull request #1423 from KhronosGroup/msvc-2013-fix
36c999ae3f MSVC 2013: Fix silently broken builds.
39ce5b46de Merge pull request #1421 from troughton/patch-3
b74a84e4cb MSL: Ensure OpStore source operands are marked for inclusion in function arguments
559b21c6c9 Merge pull request #1420 from dj2/roll-07-06
63fbdaca93 Roll deps.
3b366db7f1 Merge pull request #1416 from KhronosGroup/fix-1415
711300baed MSL: Do not emit swizzled writes in packing fixups.
fa5b206d97 MSL: Workaround broken vector -> scalar access chain in MSL.
fab75792a9 Merge pull request #1419 from KhronosGroup/msl-input-attachment-index-fallback
e1600d4df8 MSL: Use input attachment index directly for resource index fallback.
c465cd5004 Merge pull request #1417 from KhronosGroup/fix-351
2ac8f51b06 GLSL: Support I/O flattening with arrays as final type.
2d43103a55 GLSL: Support multi-level struct flattening for I/O.
d573a95a9c Run format_all.sh.
8f716947c2 test: Use --hlsl-dx9-compatible when attempting to compile SM 3.0 shaders.
2894b40868 Merge pull request #1412 from KhronosGroup/fix-1411
70f17142de GLSL: Fix nested legacy switch workarounds.
b1082c10af Merge pull request #1410 from KhronosGroup/fix-1406
42096ca4a1 Merge pull request #1409 from KhronosGroup/fix-1405
4d79d634f5 GLSL: Implement switch on ESSL 1.0.
bae76d7915 GLSL: Use for-loop fallback instead of do/while for legacy ESSL.
3afbfdb090 Implement context-sensitive expression read tracking.
05188aca69 Fix bug with control dependent expression tracking.
2e7a562583 Merge pull request #1404 from KhronosGroup/fix-1402
eb0f0323d3 HLSL: Workaround FXC bugs with degenerate switch blocks.
f9ae06512e Merge pull request #1401 from dj2/roll-deps-22
9eb615c63b Merge pull request #1400 from KhronosGroup/fix-1399
0abc017501 Roll deps and update tests.
f9da366ae6 MSL: Remove the old VertexAttr API.
7edaea87cf Merge pull request #1398 from Kangz/fix-deprecation
6add77aa97 Merge pull request #1397 from KhronosGroup/fix-1396
8aee532f56 Fix placement of SPIRV_CROSS_DEPRECATED.
f141521ebe Fix duplicated initialization for loop variables with initializers.
d7976b7b24 Merge pull request #1395 from KhronosGroup/fix-1394
ace4d25222 MSL: Add test case for constructing struct with non-value-type array.
7314f51a32 MSL: Deal with loading non-value-type arrays.
02db4c1f16 MSL: Add tests for array copies in and out of buffers.
03d4bcea68 MSL: Improve handling of array types in buffer objects.
11832b6e14 Clean up some deprecation warnings when building with Makefile.
5e509b159a Remove unused member in MSLShaderInput.
a64484f62b Merge pull request #1392 from cdavis5e/msl-frag-input-vecsize
5281d9997e MSL: Fix up input variables' vector lengths in all stages.
7073ed2edb Merge pull request #1393 from KhronosGroup/fix-1391
d13dc0ce47 HLSL: Fix texProj in legacy HLSL.
9e3df69d4e Merge pull request #1390 from rdb/master
031cbaa5a2 GLSL: Require GL_ARB_draw_instanced for gl_InstanceID in GLSL < 1.40
92fcd7d2b0 Merge pull request #1389 from KhronosGroup/sparse-clamp
f383cc98f2 GLSL: Handle the rest of GL_ARB_sparse_texture_clamp.
bbefea2b02 Merge pull request #1388 from KhronosGroup/uint-sparse-residency-query
857e1c445c GLSL: Support uint code for sparse residency query.
553a7f959b Merge pull request #1385 from KhronosGroup/fix-1237
cbe0cca73b Refactor texture fetch function generation.
b73c047faf Merge pull request #1387 from Lichtso/master
1f5875e23e Fix missing switch cases in Y'CbCr conversion
3ce81c0025 Merge pull request #1384 from KhronosGroup/fix-1380
757c10bbe4 Merge pull request #1383 from KhronosGroup/fix-1381
275974e062 GLSL: Implement sparse feedback.
6600793884 MSL: Remove obsolete MSLVertexAttr members.
2d5200650a HLSL: Add native support for 16-bit types.
d385bf096f Merge pull request #1378 from bbernhar/issue_410
32bead81c8 Prefer set/binding API
999a7b5256 Merge pull request #1379 from KhronosGroup/fix-1377
165392a2b0 Document all CLI options.
d31bc0247e Do not mask writes to remapped variables in all cases.
17bccc9f7e HLSL: Add option to treat certain SSBO bindings as UAV, even with readonly.
61cddd6307 Merge pull request #1376 from KhronosGroup/fix-1374
58dad82fcb Handle physical pointers in reflection API.
f992548434 Merge pull request #1372 from KhronosGroup/gl-draw-parameters
ef247e75ec GLSL: Improve support for GL_ARB_shader_draw_parameters in desktop GLSL.
ec558bc98e Merge pull request #1371 from dj2/roll-deps-21
3d01d1bf50 Roll SPIRV-Tools, SPIRV-Headers and GLSLang.
287e93ff80 Merge pull request #1370 from dj2/roll_deps_20
29ad40e93e Merge pull request #1369 from KhronosGroup/more-rt-tests
8bf916f575 Roll dependencies
b4dd0b6fb1 GLSL: Add more test shaders for hit attribute types.
66ec3e3e54 GLSL: Support ray payloads and hit attributes declared as Block.
271ad33380 GLSL: Add some more focused RT test shaders.
3c43f055df Merge pull request #1366 from KhronosGroup/fix-1365
f3a362b1aa HLSL: Implement image queries for UAV images.
d638d2df9c Merge pull request #1363 from KhronosGroup/rt-gl-instance-id
86380acf4d Support gl_InstanceID in RT shaders.
b7823ec389 Merge pull request #1361 from KhronosGroup/msl-single-element-array-refinement
107ab7c2b7 MSL: Avoid packed arrays in more cases.
de3698f0e0 Add missing reference files from PR merge.
b8ba89a1ac Merge branch 'master' of git://github.com/kakashidinho/SPIRV-Cross
9ddfe6db6d Fix#1359: MSL: If the packed type is scalar, don't emit "pack_" prefix.
92f7d36c72 Merge pull request #1356 from KhronosGroup/fix-1354
0ebb88cc39 MSL: Redirect member indices when buffer has been sorted by Offset.
137dbeb7f1 Merge pull request #1355 from Kangz/fix-microsoft-enum-value
a3a590a82e Fix -Wmicrosoft-enum-value
7e0295abf8 Merge pull request #1353 from zoddicus/updateSPIRVHeaders
76658247ac Update SPIR-V Headers to 1.5 rev 3
471990d4dc Merge pull request #1349 from KhronosGroup/fix-1348
35a9b793d6 Work around odd deadlock in test_shaders.py in --parallel mode.
d7d630a0b7 Merge pull request #1347 from KhronosGroup/fix-1343
4330b046be Merge pull request #1346 from KhronosGroup/fix-1340
9b7140e2ba Implement OpAtomicLoad/OpAtomicStore.
cbaaa02af9 Merge pull request #1345 from apayen/master
6ef47d6657 MSL: Fix case where subpassInput is passed to leaf functions.
4edfe96739 Fixed recursion in combined_decoration_for_member Members in nested structs were not properly iterated on, and as a result, flags like row major for matrices could be not propagated properly.
7ba0f8f087 Merge pull request #1342 from dj2/roll
171c646474 Roll GLSLang, SPIRV-Tools and SPIRV-Headers.
1ad1662a2b Merge pull request #1339 from KhronosGroup/fix-1338
5e5d1c27ce GLSL: Support f16x2 <-> f32 bitcast.
c58839bfd4 Merge pull request #1336 from KhronosGroup/fix-1333
bf289c37a2 Merge pull request #1337 from KhronosGroup/nonuniform-propagation-fix
bdb343ea06 Be a bit more careful what nonuniform state is propagated.
6b0e558169 Handle RayQueryKHR type.
78b4d9379b Update SPIR-V headers.
b2e934b53f Merge pull request #1328 from devshgraphicsprogramming/patch-1
5cb0f0a640 Merge pull request #1335 from KhronosGroup/fix-1325
127224d816 Fix issue #1327
58548e25a2 Merge pull request #1334 from KhronosGroup/fix-1332
7b9cba7424 HLSL: Add parens in unpackUint2x32 for clarity.
e4e4791c4e HLSL: Only allow 64-bit integers in SM 6.0.
a396744f89 Ensure unpack/pack2x32 tests are compatible with test suite.
55dfbead2f GLSL/HLSL: Support packUint2x32 and unpackUint2x32
f8592ecdfc MSL: Deal correctly with initializers on Private variables.
3fb86e4385 Merge pull request #1331 from KhronosGroup/fix-1321
17ad62eea4 MSL: Support edge case with DX layout in scalar block layout.
f38cbeb814 Merge pull request #1330 from KhronosGroup/fix-1320
ebf463674d MSL: Allow removing clip distance user varyings.
aa5fbc004b Merge pull request #1329 from godlikepanos/master
b3109b8ad0 Reflection: Add specialization constant name
90198199df Merge pull request #1324 from cdavis5e/msl-disabled-builtin-names
96f7008aa8 MSL: Force disabled fragment builtins to have the right name.
fbc560782c Merge pull request #1323 from cdavis5e/msl-disable-frag-only
495e48de44 MSL: Only disable output variables in fragment shaders.
54658d6255 Merge pull request #1319 from cdavis5e/msl-frag-outputs
b29f83c383 MSL: Add options to control emission of fragment outputs.
fcbc590937 Merge pull request #1316 from Malacath-92/master
4560ee24fd Improve compatibility with clang-cl
a1d9b474b5 Merge pull request #1314 from KhronosGroup/fix-1313
c7b75a8fe6 MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
6637610b16 Merge pull request #1309 from KhronosGroup/fix-1305
941cceedb4 Expose a query if samplers or images are comparison resources.
b691b7d1e3 Do not add NonWritable/NonReadable decorations for regular images.
14f24d71ab Merge pull request #1308 from KhronosGroup/fix-1306
cfcd84319b Merge pull request #1310 from KhronosGroup/msl-force-declare-implicit-builtins
d9d3359ffb MSL: Deal with cases where builtin is implicitly needed, declared, but unused.
01cee74b02 Merge pull request #1307 from troughton/patch-1
28bf9057df HLSL: Add support for treating NonWritable UAV texture as SRV instead.
4cf736d753 MSL: mark BuiltInFragCoord as implicitly used for subpass reads
e58e8d5dbe Merge pull request #1303 from KhronosGroup/fix-1302
3cb6aeb480 MSL: Fix access chain for deep struct hierarchy on array of buffers.
84ec99c531 Merge pull request #1301 from dj2/roll_deps
32307df73a Roll GLSLang, SPIRV-Tools and SPIRV-Headers
9b3c5e12be Merge pull request #1299 from KhronosGroup/fix-1298
b8905bbd95 Add support for forcefully zero-initialized variables.
871c85d7f0 Merge pull request #1297 from KhronosGroup/fix-1295
04e877df12 GLSL: Implement GL_EXT_shader_framebuffer_fetch.
c2655ab291 Run format_all.sh.
c3d216c011 Merge pull request #1296 from KhronosGroup/fix-1292
05004a57ea GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics.
a3d3c80dd7 GLSL/HLSL: Implement nonuniform qualifier for image atomics.
65aa0c35d6 include/spirv_cross: Fix typo.
7d42fd7f7b Merge pull request #1290 from KhronosGroup/fix-1289
185551bfaf HLSL: Do not emit globallycoherent for SRV ByteAddressBuffer.
d19f30a90e Merge pull request #1287 from KhronosGroup/read-write-decoration-tweaks
95cd20f1c7 Add test for disable-storage-image-qualifier-deduction.
c27e1efbf1 HLSL: Add option to always treat SSBO as UAV, even with readonly.
01968c4486 Add option to disable storage image qualifier deduction.
3ebc83da46 Remove old hack which forces NonWritable/NonReadable.
9deb6ffbba Merge pull request #1285 from KhronosGroup/vulkan-semantics-shorthand
3f2de0d5d3 Add -V alias for --vulkan-semantics.
c5f7b55756 Merge pull request #1284 from KhronosGroup/fix-1282
16796e92be MSL: Add C API for force native arrays.
d91e134500 MSL: Add native array test for composite array initialization.
30343f3e95 MSL: Reintroduce workaround for constant arrays being passed by value.
20b28f72fa MSL: Reinstate workaround for returning arrays.
c9d4f9cd74 MSL: Add a workaround path to force native arrays for everything.
f19fdb94d7 Merge pull request #1283 from dj2/roll
7ec16b64c8 Roll GLSLang, SPIRV-Tools and SPIRV-Headers
dffd33dd9d Merge pull request #1280 from KhronosGroup/fix-1278
92a4294c57 Reject SPIR-V modules with garbage ID bound.
c53b34765d Merge pull request #1277 from KhronosGroup/fix-1276
e81c1b1d98 HLSL: Declare undef variables as static.
7ac5c38838 Merge pull request #1275 from KhronosGroup/fix-1274
cec0502ba5 Remove old memory_scope flag from iOS barriers.
6b2add8e2c Merge pull request #1272 from KhronosGroup/fix-1271
6f5cb00148 Use GNUInstallDirs for include path as well.
cb0aca91ef Merge pull request #1273 from orbea/cmake
8b90526911 cmake: Don't hardcode the pkg-config file.
74544caa16 cmake: Use GNUInstallDirs.
d67c3393da CMake: Avoid warning when parent project uses VERSION in project().
68bf0f824c Merge pull request #1270 from KhronosGroup/fix-1266
dfffbb1cf3 Compile fix on older compilers.
655312cb47 GLSL: Support GL_ARB_enchanced_layouts for XFB.
306cb31bad Merge pull request #1239 from cdavis5e/msl-inline-uniform-blocks
ae6c05f6f4 MSL: Move inline uniform blocks to the end of the argument buffer.
fedbc35315 MSL: Support inline uniform blocks in argument buffers.
f9376058ce Merge pull request #1269 from KhronosGroup/fix-1267
8bbb5fb763 Make SmallVector noexcept.
883de24f79 Merge pull request #1268 from barath121/patch-1
eac76d9473 Typo at line 324
f9818f0804 Update license headers to 2020.
7a411258af Run format_all.sh.
af787a8a79 Merge pull request #1264 from KhronosGroup/msl-argument-buffer-persist
4054d650cf Merge pull request #1263 from KhronosGroup/fix-1232
c3bd136df1 MSL: Add support for force-activating IAB resources.
f79c1e2fed Deal with illegal names in types as well.
79700d5412 Merge pull request #1262 from KhronosGroup/json-reflection-improvements
57b70225ef Merge pull request #1261 from KhronosGroup/fix-379
762c87a7bb Reflection: Add array stride/matrix stride reflection.
18e24c3ca2 Reflection: Emit reflection information for array size literalness.
55fe6050fe GLSL: Implement geometry shader passthrough extension.
172e39f039 Merge pull request #1257 from KhronosGroup/fix-1236
74107a04d1 Merge pull request #1256 from KhronosGroup/fix-1252
cc153f8d7f HLSL: Add a resource remapping API similar to MSL.
2bbb012e9c MSL: Deal with sign on wave min/max.
88ddeec49a HLSL: Deal with casting for WaveActiveMin/Max.
5253da9e63 GLSL: Deal with sign in subgroup Min/Max operations.
34ba8ea4f2 Merge pull request #1255 from KhronosGroup/fix-1254
c256525c7b Run format_all.sh.
1cbd71b354 HLSL: Fix bug when reading and writing structs from SSBO.
151ff1e870 HLSL: Implement stores for complex composites in ByteAddressBuffers.
ca9398c122 HLSL: Su…
* Build fix with new SPIRV-Cross
* WiiU build fix with new SPIRV-Cross
* msg_hash_us.c contents to Crowdin, phase 2
Remaining part of the fixed strings moved to msg_hash_us.h, and some other changes:
- added help text for individual menu drivers
- prepared help labels for video drivers
- prepared help labels for input drivers
- old entries from the now defunct help menu are hidden from compilation
(may be added back later, when the menu is again visible)
- moved notification color/bgcolor items to sublabels
- language fixes from phase 1 comments
* c89 compilation fixes
* Compilation fix for Android builds
* msg_hash_us.c contents to Crowdin, phase 2
Remaining part of the fixed strings moved to msg_hash_us.h, and some other changes:
- added help text for individual menu drivers
- prepared help labels for video drivers
- prepared help labels for input drivers
- old entries from the now defunct help menu are hidden from compilation
(may be added back later, when the menu is again visible)
- moved notification color/bgcolor items to sublabels
- language fixes from phase 1 comments
correctly get list size in xmb.c for playing scrolling sound when switching categories, play the scrolling sound when pressing cancel in ozone, play the sound when scrolling with ZL and ZR, play the correct sound when scrolling with L
The closing info box sound (NOTICE_BACK) plays if you have the regular notice sound on, implemented generally.
audio_driver_mixer_play_menu_sound(i) will now stop sound i before playing it, so when you for example, cancel in rapid succession, it will properly play all canceling sound effects instead of not doing anything if the sound is already playing.
This scrolling implementation is a lot more general than the first one, to the point where RGUI plays all the correct sounds without any special additions. However, the Ozone sidebar scrolling or category switching in XMB or MaterialUI are still handled inside their driver .c files.
This implementation also fixes an issue where if wraparound was disabled the sound would still play if you held on a direction. I've also fixed it manually for XMB category switching, since it's still handled there individually (turns out, Ozone sidebar and MaterialUI categories just don't respect the no wraparound option, so there's no need to implement a fix there as well)
The change to apply shaders would be executed and then a command to
apply shaders would immeidately be enqueued, to run asynchronously
after the current event handler, which then did exactly the same
thing, creating a busy loop.
- 'Unlocks/Mastery' split into two options
- 'Account/Login Messages' split off from 'Verbose', gated all login success/error messages
- menu_cbs_sublabel.c - Now in same order as menu options
- menu_setting.c - VISIBILITY_UNLOCK default value now uses define
- All suggested text/cleanup changes from Jamiras
- Startup Summary split off from Verbose Mode, added option to hide for games with zero core cheevos
- Some existing options moved into this submenu
- Leaderboard-related options coming in future PR
When running on Android, RetroArch considers most devices that emit dpad events as gamepads, even if they also emit other keyboard events; this is usually the right thing to do, but it has the side effect of not letting some actual keyboards (e.g.: Logitech K480) act as such inside RetroArch. This configuration option allows users to manually select a specific input device to act as a physical keyboard instead of a gamepad, which is handy when emulating computers as opposed to consoles.
After calling enterFullScreenMode on the GL view, it becomes the "key"
window, meaning it gets all of the input. This is problematic as that
view doesn't forward the input on to the input driver.
Help texts can be activated for some menu items using Select / RShift.
These text items were hardcoded in msg_hash_us.c (and related translations).
This commit changes the simple text items to get the source from msg_hash_us.h
(or its translations).
also adds audio_driver_mixer_play_scroll_sound to menu_cbs_left and menu_cbs_right which are (seemingly) responsible for the large scroll on some menus (and also bumper scrolling on glui's playlist menu?).
using roughly the same implementation for the ok/notice/cancel sounds, but i've made an exclusive function for scrolling since it's going to be called a lot more than those sounds
IS_JOYCONFIG was removed back in 2015 (1b7576aa), but there are still
some mentions of retroarch-joyconfig in the docs and Makefiles. Clean
these up so folk aren't confused about the fact it's no longer
available.
* Allow repositioning of achievement notifications
* PS4/ORBIS build fix
Would have thought cheevos-related notification code was wrapped in HAVE_CHEEVOS, but guess not.
Display translation completeness categories in the language selection options.
Generate the progress report for RetroArch menu file instead of all files.
* Allow disabling "Update Core Info" from Online Updater
* Add ASSETS_DIR as an alternative to DEFAULT_DIR_ASSETS
* Add FILTERS_DIR configuration option
* Fix other platform_unix.c platforms
* Conditionally use ASSETS_DIR/FILTERS_DIR
WIP version of Append and Prepend preset, Includes UI for Standard Retroarch, but not the QT UI companion
Co-authored-by: HyperspaceMadness <[email protected]>
* Add xdelta in deps
* Include <assert.h> in xdelta3.h
- Otherwise the static_assert calls can fail
* Build xdelta3 in Makefile.common
* Add xdelta support to the softpatching infrastructure
- The patching itself isn't fully implemented yet
* Adjust how xdelta3.h checks the sizes of some types
- Now checks max values instead of relying on autotools
* First crack at xdelta softpatching support
- There may be undiscovered edge cases or bugs
* Add xdelta in deps
* Include <assert.h> in xdelta3.h
- Otherwise the static_assert calls can fail
* Build xdelta3 in Makefile.common
* Add xdelta support to the softpatching infrastructure
- The patching itself isn't fully implemented yet
* Adjust how xdelta3.h checks the sizes of some types
- Now checks max values instead of relying on autotools
* First crack at xdelta softpatching support
- There may be undiscovered edge cases or bugs
* Remove trailing commas from the enums I modified
- C89 doesn't allow them
* Remove stray whitespace
* Adjust SIZE macros in xdelta3.h
- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX
* Add some RARCH_DBG calls for xdelta patching
* Enable support for xdelta's secondary compressors
- Necessary for some patches
* Fix some format specifiers
* Remove unnecessary files from xdelta
* Include xdelta3.h with a relative path
* Add xdelta3 headers to HEADERS variable
* Gate Xdelta support behind HAVE_XDELTA
- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found
* Disable HAVE_XDELTA on platforms where the build recently failed
- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong
* Fix a potential memory leak
- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream
* Split the --help printout for --xdelta into its own strlcat call
- GCC was complaining about #ifdefs within macro arguments being non-portable
* Fix some incorrect printf format specifiers
* Modify Xdelta to adhere to C89
- It's mostly using RetroArch's INLINE macro instead of the inline keyword
All help texts were removed, which fell into one of the categories below:
1. there is sublabel for the menu item and it contains same or better text.
Such texts and translations should be maintained as sublabel, located in
msg_hash_xx.h. Since PR#14714, sublabel will be displayed as help if present.
2. it could be confirmed that this help text is currently not shown anywhere.
Examples are deprecated features (like DEBUG_INFO) or fully removed (like
CONFIRM_EXIT)
Some enum labels were just fixed to enable display.
Information can also be updated in several places, but let's keep it separate.
* include libavcodec/version.h in video_buffer.h
Without this header video_decoder_context_t may be defined as different structure
in video_buffer.c and ffmpeg_core.c
* Fix the wrong data pointer for glTexImage2D when OpenGL ES enabled
This is to add a separate Makefile for the Leapfrog devices (primarily Leapster Explorer and LeapsterGS Explorer), intended to be used with the Retroleap project (https://github.com/mac2612/retroleap) The Leapster Explorer SoC is essentially the same as the Miyoo v1, and as such I've based it on the Makefile for this device, but intend making a few config changes after a bit more testing and tailoring to both LF devices.
Added support for break on errors in d3d12 (development aid)
Added support for DRED (device remove extended data) in d3d12 (development aid)
Made d3d12 viewport and scissors to behave more like vulkan drivers (or be more correct)
Fixed validation error on start up due to buffers not being setup correctly for one frame
#12521 fixes blank screens on the sdl_dingux driver, so just replicating that change here on the standard sdl_gfx driver. Also, fix a problem where the menu will never show up in this driver, because you cannot blit to a surface in SDL while it is locked (i.e. after issuing an SDL_LockSurface command.
- Fix analog drift blocking touch input (could occur on overlay_next if physical inputs shown on overlay)
- Fix overlay_next buttons lighting up in unison
- Skip meta keys in input_overlay_add_inputs (not supported by input_state_internal)
description:This is not a forum or a help section, this is strictly developer oriented.
body:
- type:checkboxes
attributes:
label:Is there an existing issue for this?
description:Only RetroArch bugs should be filed here. Not core bugs or game bugs
options:
- label:This is a bug in RetroArch frontend
required:true
- label:I have searched the existing issues
- type:textarea
id:description
attributes:
label:Description
description:Description of the actual behavior of the bug
placeholder:What is actually happening
validations:
required:true
- type:textarea
id:expected
attributes:
label:Expected behavior
description:What you expected to happen
- type:textarea
id:reproduce_steps
attributes:
label:Steps to reproduce the bug
description:List all steps to reproduce the problem
placeholder:|
1. [First step]
2. [Second step]
3. [and so on...]
validations:
required:true
- type:input
id:version
attributes:
label:Version/Commit
description:You can find this information under Information/System Information
placeholder:1.20.0(Git ab3b175)
validations:
required:true
- type:input
id:bisecting
attributes:
label:Bisect Results
description:Did this work with any older RetroArch version? Can you point to a version (or even commit) where it broke?
placeholder:43105ab
- type:dropdown
id:nigthly
attributes:
label:Present in the nightly version
description:Is the issue reproducible with current [nightly builds](https://buildbot.libretro.com/nightly/)?
options:
- I don't know
- Yes,this is reproduced in the nightly build
- No,looks like this is already resolved
default:0
validations:
required:true
- type:input
id:platform
attributes:
label:Platform & operating system
description:The system you're running RetroArch on
placeholder:Linux aarch64, Windows 11 23H2, Android 14, PS Vita
validations:
required:true
- type:input
id:cores
attributes:
label:Affected Cores
description:List the affected cores and their versions here, if applicable. If the issue **only occurs with a single core** then the bug may not be with RetroArch; in that case, you should report it in that core's repository instead of here.
description:Additional information about hardware and software
placeholder:|
* Window Manager: dwm/X11
* Affected video drivers: sdl2, glcore
* Installed through Flatpak
- type:textarea
id:logs
attributes:
label:Relevant log output
description:Paste [RetroArch log](https://docs.libretro.com/guides/generating-retroarch-logs/) and/or [GDB backtrace](https://docs.libretro.com/development/retroarch/debugging/). This will be automatically formatted into code, so no need for backticks.
RetroArch is a frontend for the libretro API. The main functionality is fulfilled by invoking other binary libraries ("cores") which are not restricted by RetroArch in any way. Cores are able to read/write/delete files, spawn processes, communicate over the network. Also, source for cores is not necessarily in control by libretro team, and core binaries / RetroArch binaries are not signed. For this reason, it is a bad idea to use RetroArch or any other libretro frontend on security critical systems.
Also, RetroArch and cores have been packaged in several ways. Content on the [official download site](https://buildbot.libretro.com/) is built from a direct mirror of the original RetroArch and core repositories, no binaries are reused. Note that source for the core repositories may be outside libretro team control.
## Supported Versions
For most delivery channels, libretro team does not have control over the version. The exceptions are:
- note that Google Play Store version is years behind and can not be updated
You may report vulnerability against any recent version, but be reasonable.
## Reporting a Vulnerability
Please report security vulnerabilities at libretro@gmail.com
## Possible remediation
Due to the variety of delivery channels, RetroArch team can not recall any given version universally. Security fixes are accepted for next release, and notice may be posted in the channels controlled by RetroArch team, depending on the severity assessed by RetroArch team.
Loaded 100 of 4778 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.