* replace psn_signed_in settings with shad_net_enabled and added shadnet_server setting
* improved user manager to update new fields and add new variables
* clang
* better message :D
* prototype settings look
* put categories on top instead of on the side, plays nicer with input system
* added profiles + saving and loading framework
* add helper functions
* fix autofocusing
* add code for using embedded image files
* put settings in different files
* clang
* remove sdl_image submodule, unify functions when possible
* Always display selected profile in settings content areas
* Fix focusing, logs, highlight profile text
* persist highlight on focused buttons, add all categories placeholders
* All settings added
* navigate tabs with l1/r1
* Replace sdl mixer library with minimp3 header
* clang
* set spec before putting in audiostream
* respect main audio output device setting
* fixup
* replace file with submodule
* cleanup
* capitalize functions like the others
* move buffer to heap
* use vector for pcm buffer instead
* imguitest
* button tests
* fix gamepad nav
* placeholder hardcoded eboot path
* set focus correctly, move to own files
* get installed game information
* dynamically adjust rows
* use slider for ui scale
* launch big picture with CLI arg
* Use emulator settings for UI scale and window size
* center scrolling on focused item
* fix item focus on scrolling when navigating with keyboard or pad
* minor fixups and comments
* fix performance degradation
* adjust fonts to show TM symbol and higher overscale
* reuse and clang
* add exists check before iterator
* flatten navigation (gamepad navigation crosses child window container)
* cleanup and comments
* simplify update checker a bit
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* resource_tracking_pass: Adjust buffer type if host doesn't support float buffer atomic
* resource_tracking_pass: Implement data append/consume as buffer atomics in IR level
This was previously done in spirv backend, the implementation was exactly the same as the buffer atomics, so unify them
* ir: Bump instruction flag to 8 bytes
* frontend: Pass pc to buffer flags for better debugging when sharp tracking fails
* clang format
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* fixed Unsynchronized free_threads.size()` Read in ThreadState::Free
* fixed data race in posix_pthread_key_create , allocated and seqno are atomic now
* fixed playtime thread
* argv array size fix
* destroy mutex on object deletion with pthread_mutex_destroy
* fixed object_pool
* used atomics for thread safety
* equeue: Save filter/ident before std:move since we access them out of the locked loop
* fixed kqueues memory leak
* clean storage objects effectively
* fixed memory leak
* fix some races
* fixed race condition
* Implement mods folder
* Add logging when modified files exist
* get mod folder entries in MntPoints::IterateDirectory
* support eboot from mods folder
[Render.Vulkan] <error> (shadPS4:Main) vk_platform.cpp:58 DebugUtilsCallback: VUID-vkDestroyImage-image-01000: vkDestroyImage(): can't be called on VkImage 0x850000000085[Frame image #2] that is currently in use by VkCommandBuffer 0x560ea08752c0[CommandPool: Command Buffer 2].
The Vulkan spec states: All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution (https://docs.vulkan.org/spec/latest/chapters/resources.html#VUID-vkDestroyImage-image-01000)
Finish needed because of:
[Render.Vulkan] <error> (shadPS4:Main) vk_platform.cpp:58 DebugUtilsCallback: VUID-vkEndCommandBuffer-commandBuffer-00059: vkEndCommandBuffer(): Cannot be called for VkCommandBuffer 0x55c62bfbb580[CommandPool: Command Buffer 3] when it is not in a recording state, vkBeginCommandBuffer() must first be called.
The Vulkan spec states: commandBuffer must be in the recording state (https://docs.vulkan.org/spec/latest/chapters/cmdbuffers.html#VUID-vkEndCommandBuffer-commandBuffer-00059)
Validation Error: [ VUID-vkDestroyDevice-device-05137 ] | MessageID = 0x4872eaa0
vkDestroyDevice(): Object Tracking - For VkDevice 0x55ac6bd22670, VkDescriptorPool 0x300000000030 has not been destroyed.
The Vulkan spec states: All child objects created on device that can be destroyed or freed must have been destroyed or freed prior to destroying device (https://docs.vulkan.org/spec/latest/chapters/devsandqueues.html#VUID-vkDestroyDevice-device-05137)
Objects: 1
[0] VkDescriptorPool 0x300000000030