-
-
Notifications
You must be signed in to change notification settings - Fork 701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
videoout: Make present thread realtime on macOS. #990
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
raphaelthegreat
approved these changes
Sep 19, 2024
jnackmclain
added a commit
to LlysiX/shadPS4
that referenced
this pull request
Sep 24, 2024
* shader_recompiler/frontend: implement V_NOP * shader_recompiler/frontend: fix V_NOP instruction format * shader_recompiler/frontend: add information on instruction format assert * shader_recompiler/frontend: fix `IMAGE_GATHER4_C_LZ` format * shader_recompiler/frontend: fix `IMAGE_SAMPLE_CD` format * Seen on Dark Souls * video_core: added support for indirect draws (shadps4-emu#678) * video_core: added support for indirect draws * barriers simplified * Don't load `sync2` ext if `nv_checkpoints` isn't used * core: Fix CPU patch stack issues * savedata: Handle a missing case in saveDataMount This should potentially fix the mount issue in Resistance : Retribution (CUSA32636) Testing is welcome. * update zh_CN translation * Qt: Update Game List * libraries: gnmdriver: `sceGnmValidateCommandBuffers` added * ci: Remove translations folder from macOS upload. * ci: Remove translations folder from Windows upload. * Added Persian(Farsi) Translation (shadps4-emu#689) * Adding Persian(Farsi)Translation * Update Copyright * Added arabic translation (shadps4-emu#693) * added arabic translation * added arabic translation * whitespace added, "patch" consistency * only apply cheats at runtime * improve german translation * macos: Remove need for TLS patch by storing TCB pointer in FS. * [macOS] Place `shadPS4/user` folder in `Application Support` Partially resolves shadps4-emu#509 * include git short hash in artifact filename * include build date use pwsh instead of cmd on windows workflows * Correct machine translations * Force PIE usage on linux (shadps4-emu#625) * force PIE usage on linux * get rid of explicit -pie linker flag * change UNIX with UNIX AND NOT APPLE in CMakeLists.txt * cmake: add proper check for PIE support at link time --------- Co-authored-by: Mikhail Paulyshka <me@mixaill.net> * Adding missing data format - (1_5_5_5) (shadps4-emu#701) * added data_format=17 and num_format=0 * Set `sceSaveDataDialogIsReadyToDisplay` temporary to 1 until is properly implemented. * Implement V_READFIRSTLANE_B32 (shadps4-emu#681) * Implement V_READFIRSTLANE_B32 * refactor * Replace recursive_mutex with mutex (shadps4-emu#708) * Replace recursive_mutex with mutex * Move mutex lock outside of ObtainBuffer * Implement V_BFM_B32 and V_FFBH_U32 (shadps4-emu#663) * Implement V_BFM_B32 * Render.Recompiler: Implement V_FFBH_U32 * fix clang-format * Fix VirtualQuery Found this issue while looking at code from fpPS4. VirtualQuery was setting is_commited to true when the queried region was reserved. Also sets the protection value in the VirtualQueryInfo, as I'd assume not storing that could cause issues in games. This fixes all games currently hanging on the sceKernelmprotect stub. * Add Albanian translation * Update Albanian translation * Assign is_stack and is_pooled Properly set these values to avoid potential errors, and future proof for when these types of memory are emulated. * Fix MemoryManager::VirtualQuery header The headers for these functions were technically not the same as the actual function definition. This didn't cause any emulation issues, but caused some weird issues with my IDE. * Grammar * Always assign memory_type and offset The memory_type default is based on fpPS4 behavior. I'm not entirely sure how the offset should be handled, but since the value we use defaults to 0 anyway, that should be better than leaving random data in that area. * Clang fix * Clang * Fix download Cheats/Patches on Linux * shader_recompiler: Implement V_MOVRELS_B32 This inst indexes the vgpr's like an array to read and write at a dynamic index. Generates a ton of OpSelects to hardcode reading from the VGPR at src index if the index is equal to 1..max_allocated_vgpr. Then does that again to choose the dest vgpr. I dont know if theres a better way without significantly reworking the IR. I think the best solution would be to generate OpSwitch during spirv emitting, but it would need a case for each VGPR values to load it, then a case to store back to each VPGR at emit time. You lose that ability after ssa_rewrite, so I dont think theres a good solution. * Update linux-appimage-qt.sh * Update CMakeLists.txt * handle uninit m0 * fix amp and rb4 debug asserts * handle V_MOVRELD (TODO refactor) * proper comments for shader hashes * comment * Update CMakeLists.txt * docs: fix sdl and qt steps for MSYS2 - Add required dependencies - Add Qt steps - Fix README typo * implement m0 read/write * forgot m0 case in GetSrc * fix mistake with dst_val * Add macOS build guide. * Note macOS and Xcode version requirements. * refactor and implement V_MOVRELSD_B32 * vulkan: Better support for directly linking a Vulkan support library. * video_core: Add bounds checking for subspan use in liverpool functions (shadps4-emu#717) * shader_recompiler: Implement render target swizzles when no format is available (shadps4-emu#739) * shader_recompiler: Use null image when shader is compiled with unbound sharp * video_core: Refactor and render target swizzles * liverpool_to_vk: Add missing swap format from RDR * video_core: Refactor shader recompiler interface * Makes it much easier to pass runtime information to the recompiler and have it treated as part of the shader key. Also pulls out most runtime state from Info struct * shader_recompiler: Avoid some asserts * add TR for PR 700 * Update src/qt_gui/translations/pl_PL.ts Co-authored-by: Marcin Mitura <mitura07@wp.pl> * add more information download patches If the patch does not appear, it may be that it does not exist for the specific serial and version of the game. It may be necessary to update the game. * Update patch url (shadps4-emu#755) * Update patch url * Update cheats_patches.cpp * Set CF correctly on BLSI patch (shadps4-emu#722) * Set CF correctly on BLSI patch * Remove redundant CLC * Preserve flags on some patched instructions (shadps4-emu#720) * Preserve flags on some patched instructions * Move flag saving to Save/RestoreContext * vulkan: Improve format support info for vertex buffer formats. (shadps4-emu#753) * shader_recompiler: Limit src0 to 4-bit in V_CVT_OFF_F32_I4 (shadps4-emu#759) * Set CF correctly on BLSR/BLSMSK patch (shadps4-emu#724) * Set CF correctly on BLSR patch * Set CF correctly on BLSMSK patch * Fix warnings (shadps4-emu#749) * suppress warning in vk_mem_alloc.h * fix warnings in cheats_patches.cpp * cmp_u32 * Save,Apply,Restore Defaults,Close Save,Apply,Restore Defaults,Close * fix PL text * video_core: added `VK_LAYER_LUNARG_crash_diagnostic` (shadps4-emu#751) * Icon,Name,Serial,Region,Firmware,Size,Version,Path * vulkan: Emulate depth clip control when extension is not available. (shadps4-emu#762) * Game List * Add "support" for pad type remote control Needed for the Dragon Ball Xenoverse titles. * misc: Fix a few compiler warnings. * Get rid of unnecessary jump * shader_recompiler: change ir.SetScalarReg() -> SetDst() (shadps4-emu#777) Fixes an out-of-bounds crash on Amplitude and Rock Band 4 startup. * Implemented sceKernelMTypeProtect and sceKernelMProtect (shadps4-emu#387) * Fixed ORBIS_KERNEL_MAP_OP_TYPE_PROTECT for batchmap2 * Fix merge * Changed 4 to ORBIS_KERNEL_MAP_OP_TYPE_PROTECT * Removed MProtect from AddressSpace * Added Mtyprotect and moved Mprotect to ORBIS_KERNEL_MAP_OP_PROTECT * Changed Protect for Windows * reverted the previous function * Fixed Mtypeprotect and MProtect * '' * '' * Took out logs stopping build * clang-format issues * Fixed the order of mtypeprotect and mprotect in batchmap2 * '' * update branch * '' * Fixed nits * '' * Update submodules to latest commits * '' * reverted ffmpeg * '' * Fixed the nits * '' * '' * '' * '' * '' * Fix clang formatting, DEBUG_ASSERT, and extra spacing * Fix build issues * Revert "Fix build issues" This reverts commit 9185f96. * '' * '' * '' * Changes for MemoryProt Format * '' * '' * '' * Surface management rework (3/3) (shadps4-emu#370) * texture_cache: images overlap support * renderer_vk: log messages on surfaces which require degamma * missing barriers * forced sync2 + better barriers * Handling of depth target aliasing; added formats compatibility check * Don't bind empty texel buffers * Promote r32f textures to depth target if shader expects so * Promote textures to depth if they use depth tiling * fix for image leaking; detiler stream buffer removed * Update sceBatchMap2 (shadps4-emu#782) * Update sceKernelBatchMap2 Improves placement of new BatchMap op types, and re-adds the BatchMap2 changes from shadps4-emu#602. * Update some logs. * Forgot one (shadps4-emu#783) I forgot to readd the processed variable to the for loop. * video_core/renderer_vulkan: Ignore unsupported shader stages (shadps4-emu#778) * video_core/renderer_vulkan: Ignore unsupported shader stages * clang-format * hot-fix: don't skip draws with DS decompression * video_core: Improve handling of image buffer aliases (shadps4-emu#757) * texture_cache: Use invalidate threshhold * It's possible for shaders to bind huge buffers and only write to lower portion of it. This is a problem if upper parts of the buffer overlap with render targets. If the image is very far away from buffer base it's unlikely the shader will want to write it, so skip invalidation for it * video_core: Allow using texture cache to validate texture buffers * texture_cache: Use buffer cache in all cases for data source * Allows to correctly handle compute written micro tiled textures * texture_cache: Fix depth pitch * kernel: Remove missed code * clang format * video_core: Adjust depth format * buffer_cache: Do not cache buffer views * thread_management: Do not call createMutex on unlock * temp: Revert this when pr is done * buffer_cache: Dont skip cpu uploads with image sync * Sometimes image does not fully overlap with a region * fix build * video_core: Improve invalidate heuristic * small fixes * video_core: Hopefully fix some vertex explosions * `sceKernelWaitEventFlag` log noise reduced * Standardize game_data directory for game metadata. (shadps4-emu#809) * shader_recompiler: Add ConvertF16F32 to FP16 detection. (shadps4-emu#800) * vulkan: Add VK_KHR_format_feature_flags_2 to extensions. (shadps4-emu#803) * Updated sq translation (shadps4-emu#791) * Fix incompatible format images being passed on overlap resolve (shadps4-emu#794) * Implement V_MOVREL variants (shadps4-emu#745) * shader_recompiler: Implement V_MOVRELS_B32, V_MOVRELD_B32, V_MOVRELSD_B32 Generates a ton of OpSelects to hardcode reading or writing from each possible vgpr depending on the value of m0 Future work is to do range analysis to put an upper bound on m0 and check fewer registers. * fix runtime info after rebase * shader_recompiler: Add more opcodes (shadps4-emu#802) * Implement some missing shader opcodes Implements TBUFFER_STORE_FORMAT_XYZW, IMAGE_SAMPLE_CD, and IMAGE_GATHER4_C_LZ. These are seen in shadps4-emu#496. * Implement IMAGE_STORE_MIP Not sure if this is the right way to do this, let me know if this needs changing. * Revert "Implement IMAGE_STORE_MIP" This reverts commit cff78b5. * core/libraries/save_data: Implement wildcard searches on `sceSaveDataDirNameSearch` (shadps4-emu#817) * libraries/save_data: Implement wildcards and params * clang-format * libSceRtc HLE (shadps4-emu#697) * SetTick + GetTick, adding functions, checkvalid * format * more functions * format * implement lizardy's changes * fix linux build * various formatting improvements and fixes * fix sceRtcGetCurrentClockLocalTime, fixes sceRtcGetCurrentClockLocalTime using lizardy's suggestions. also implements various formatting improvements and logging changes * fix mac and linux builds, const for UNIX_EPOCH * fix ConvertUtcToLocalTime,RtcConvertLocalTimeToUtc * format rfc2822, format rfc3339 * format * GetDosTime, GetTime_t, GetWin32FileTime +various formatting improvements * sceRtcParseRFC3339, sceRtcParseDateTime * shader_recompiler: Implement data share append and consume operations (shadps4-emu#814) * shader_recompiler: Add more format swap modes * texture_cache: Handle stencil texture reads * emulator: Support loading font library * readme: Add thanks section * shader_recompiler: Constant buffers as integers * shader_recompiler: Typed buffers as integers * shader_recompiler: Separate thread bit scalars * We can assume guest shader never mixes them with normal sgprs. This helps avoid errors where ssa could view an sgpr write dominating a thread bit read, due to how control flow is structurized, even though its not possible in actual control flow * shader_recompiler: Implement data append/consume operations * clang format * buffer_cache: Simplify invalidation scheme * video_core: Remove some invalidation remnants * adjust * Adding Refresh icon to toolbar (shadps4-emu#816) * ci: enable cmake cache on all platforms (SDL/Qt) (shadps4-emu#622) - uses actions/cache@v4 and hendrikmuhs/ccache-action@v1.2.14 - Keeps the cache from CMake Cache configuration (Windows, Linux, macOS) - Keeps the cache from CMake build objects (Linux/macOS) - Use ccache for Linux builds - Use sccache for macOS builds - Add hashes to the s/ccache keys - Update cache names with OS-qt/sdl as a prefix - All old caches are invalidated, delete them or wait for cache eviction * core/libraries: reduce log pressure (shadps4-emu#829) * Small fix for EmitQuadToTriangleListIndices (shadps4-emu#831) * hot-fix: exclude tiling condition from promotion of textures to depth * hot-fix: linear cubemaps check assert removed (verified) * Dear ImGui Implementation (shadps4-emu#598) * added imgui as dependency * imgui renderer/basic input implementation * imgui: add layers system Add video info layer to show fps. Press F10 to toggle it. * imgui: add custom imgui config * imgui: gamepad capture, stopping propagation * imgui: changed config & log file path to use portable dir * videoout: render blank frame when video output is closed required to render imgui even when game has no video output - fixed merge compile-error * Message Dialog library (shadps4-emu#767) * system/MsgDialog: types & basic text display * system/MsgDialog: User message dialog * system/MsgDialog: RAII for MsgDialog ui * system/MsgDialog: Progress bar dialog * system/MsgDialog: System message texts * system/MsgDialog: copy all ui state to local memory handles when game release memory before close extracted all UI code to it's own file use single window instead of creating new one every single dialogOpen * system/MsgDialog: debug logging * Improved Dark theme, search bar and icon theme (shadps4-emu#830) * Improved Dark theme, search bar and icon theme * Update FR translation * Redefined ffmpeg's av_err2str macro to be c++ friendly (shadps4-emu#815) * Fixed compiler error for av_err2string by redefining in c++ friendly way * removed link from comment, putting in PR * fixed formatting * Minor fix: enable qt gui to find PKG files with lowercase extension .pkg * Added missing dependencies and instructions for enabling QT for linux builds * kernel: Delete cond attr May solve memory leaks in games that create/destroy these often * fix for image view storage flag handling * presentation barriers fixed * imgui: fix End call when window is collapsed (shadps4-emu#850) * hot-fix: nullGpu functionality restored * Initial support for compiling on ARM64. (shadps4-emu#788) * Added S_ANDN2_B32 and S_NAND_B32 opcodes (shadps4-emu#833) * Added S_ANDN2_B32 and S_NAND_B32 opcodes * Update src/shader_recompiler/frontend/translate/scalar_alu.cpp Co-authored-by: baggins183 <baggins31084@proton.me> * Fix result and src1 Co-authored-by: baggins183 <baggins31084@proton.me> * update result Co-authored-by: baggins183 <baggins31084@proton.me> * Update src1 Co-authored-by: baggins183 <baggins31084@proton.me> --------- Co-authored-by: baggins183 <baggins31084@proton.me> * [libSceAudio3d] Initialize Audio3d Library (shadps4-emu#761) * init libSceAudio3d * complete header and func params * clang * rm incl * incl stddef * revert module num * print params * correct logs * clang --------- Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com> * Fix compilation on linux (shadps4-emu#846) * Fix deadlocks by enabling reuse of exited threads (shadps4-emu#855) Simplify loop const correctness Simplify setting is_free Co-authored-by: Adam Jones <a.c.jones@outlook.com> * use github api to download patches removing this workaround makes the code cleaner * video_core: Add fallback path for pipelines with more than 32 bindings (shadps4-emu#837) * video_core: Small fixes * renderer_vulkan: Add fallback path for pipelines with more than 32 bindings * vk_resource_pool: Rewrite desc heap * work * Update Discord link (shadps4-emu#861) The current Discord link was made before we enabled the "accept the rules" on Discord. This leads to users who use the current link to enter the Discord server to skip this moderation step. Updating the link to one created after we enabled this should fix this. * support for unlocking trophies (shadps4-emu#854) * add pugixml * trophy_viewer: support for trophy unlocking * nptrophy: UnlockTrophy(), DestroyContext() * initial imgui popup * queue to handle multiple trophies at once * extract trophy info on game start + various fixes * platinum trophy support + extract trophy data on startup * format * nptrophy: GetTrophyUnlockState * implement vinicius' reviews * Add UI to configure keyboard-to-controller mapping (shadps4-emu#308) * Add UI to configure keyboard-to-controller mapping * Add an optional "---fix" argument to format-checking script * clang fix --------- Co-authored-by: georgemoralis <giorgosmrls@gmail.com> * sceNetAccept sleep and SDLAudio::AudioOutOutput latency and cpu improvements (shadps4-emu#507) * Add 5-second sleep on sceNetAccept as this can be called in an infinite loop and would normally block (this isn't ideal for non-blocking sockets but it's all stubs at the moment anyway) * SDLAudio::AudioOutOutput: protect against invalid handle, support NULL input (wait only), replace fixed 65536 with an amount based on settable latency target (20ms for now) * Fix whitespace --------- Co-authored-by: j <j@local> * vulkan: Skip draw when primitive type is None. (shadps4-emu#867) * Revert "Add UI to configure keyboard-to-controller mapping (shadps4-emu#308)" This reverts commit fdb13a3. * Revert "sceNetAccept sleep and SDLAudio::AudioOutOutput latency and cpu improvements (shadps4-emu#507)" This reverts commit d66d129. * Typo fix (shadps4-emu#820) * Update pm4_cmds.h * Update pm4_cmds.h * Misc Fixes 10 (shadps4-emu#781) * libSceRazorCpu needed for gravity rush * libSceCesCs needed for blue reflection * clang format fix * set scePadSetVibration to log debug * initial sceNetCtl module implementation * improved error codes in file system * some intial work on netctl callbacks (helps a bit CUSA10135) * misc * improved callbacks handling in sceNetCtl * small fixes * added libSceRudp.sprx to lle modules * draft work for npcallbacks * shader_recompiler: Use correct integer type for OpImageWrite. (shadps4-emu#871) * hot-fix: mark null image as tracked by default to avoid its updates * implement more nptrophy functions (shadps4-emu#874) * fix review's from last pr * save timestamp when trophies are unlocked * implement GetTrophyInfo() * use strncpy instead of strcpy_s, should fix actions * nptrophy: GetGameInfo(), GetGroupInfo() * various fixes * format * Fixed the return value of sceAvPlayerIsActive * Fix copyGpuBuffers when resize invalidates commands in flight (shadps4-emu#876) * Fix copyGpuBuffers when resize invalidates commands in flight * Use _MB macro for size constant * vulkan: Limit multisampling to supported sample counts. (shadps4-emu#828) * shader_recompiler: Add buffer offset calculation when swizzle is enabled. (shadps4-emu#834) * Silence unhandled case warns (shadps4-emu#823) * hotfix: Restore unreachable * Fix Regression 895 * Enable patches on cli builds (shadps4-emu#897) * patch support for cli * fix mac build * format * Implement S_ABSDIFF_I32 shader instruction (shadps4-emu#902) * Implement IMAGE_SAMPLE_L_O opcode (shadps4-emu#899) * Fix initialization of change_layers (shadps4-emu#907) * vulkan: Disable exceptions for getImageFormatProperties and account for errors. (shadps4-emu#906) * Map BUFFER_AUTOMIC SMIN/SAMX/AND/OR/XOR/INC/DEC (shadps4-emu#910) * Add S_XOR_B32 opcode (shadps4-emu#911) * Add S_XOR_B32 * Stub S_OR_B32 * core/libraries/save_data: Fix inaccurate behaviour on `sceSaveDataSetupSaveDataMemory` (shadps4-emu#913) * Add PM4 opcodes * Add DS_READ2ST64_B32 (shadps4-emu#916) * Add DS_READ2ST64_B32 * Fix CLANG * Fix CI again * Parameter update for DS_READ * semaphore: Fix semaphore wait list leaking (shadps4-emu#928) Co-authored-by: Daniel R. <47796739+polybiusproxy@users.noreply.github.com> * graphics_pipeline: Move some depth configuration to dynamic state (shadps4-emu#931) * graphics_pipeline: More proper masking * pipeline_cache: Skip setting depth/stencil fields when test is disabled * pipeline_cache: More fixes to depth stencil state * vk_rasterizer: Use dynamic state for depth bounds and bias * pipeline_cache: Missed depth bias enable * vk_rasterizer: Add stencil dynamic states * thread: Reduce spammy log * Remove some leftover state * pipeline_cache: Allocate pipelines from pools * vk_graphics_pipeline: Remove bindings member Saves about 1KB from each pipeline * cpu_patches: Patch just-in-time using signal handlers. (shadps4-emu#852) * cpu_patches: Patch just-in-time using illegal instruction handler. * core: Add common signal dispatch system and use for on-demand TCB patches. * page_manager: Re-add userfaultfd implementation. * shader_recompiler: Implement basic 64-bit floating point support (shadps4-emu#915) * shader_recompiler: Implement basic 64-bit floating point support * Fix formatting * Do not wait for audio packets without audio stream (shadps4-emu#939) * signals: Fix compilation on GCC. (shadps4-emu#934) * build: Ignore macOS ARM homebrew path when cross compiling. (shadps4-emu#922) * cpu_patches: Revert to ahead-of-time patching on Linux for now. (shadps4-emu#949) * hot-fix: make profiler to show real frame time * Add other 64-bit floating point shader instructions (shadps4-emu#944) * libraries: gnmdriver: `sceGnmResetVgtControl` added (shadps4-emu#965) * rb4 updates * Fix Regression shadps4-emu#932 (shadps4-emu#973) * Improve es_ES translation & fix typos (shadps4-emu#974) Replaced Latin American Spanish terms with equivalent Spain-specific vocabulary. Adjusted grammatical structures to reflect common usage in Spain. * hot fix : always check if eboot.bin is available in path * hotfix2 : fix previous fix * Cache Windows CIs, solution by @Artalus (shadps4-emu#985) * ci: Add ccache with ninja generator for Windows builds - Credits to @Artalus * ci: Don't include d3d and dxc compiler DLLs * ci: Simplify cache steps names and key names - Windows builds will no longer cause issues when merging * CI trigger * MiscFixes11 (shadps4-emu#984) * fixed an issue in sceSaveDataSetSaveDataMemory , makes chariot CUSA00739 goes ingame * added branch name into sdl window title * core: name avplayer threads * Sort opcodes by their indices. Group them too when applicable (shadps4-emu#945) * core: file_sys: fix for racing in fs mount * video_core: stride fix (shadps4-emu#986) I don't know why it was forced to be 1 while in reality it should be as is * videoout: Make present thread realtime on macOS. (shadps4-emu#990) * Set High Priority for Windows (shadps4-emu#961) * ci: Refresh CMake cache on build. (shadps4-emu#996) * QOL: Set Log Filter On Save (shadps4-emu#991) * set log filter on reset * clang format * Rewrite Save Data & Impl Save Data Dialog (shadps4-emu#824) * core: Rewrite PSF parser & add encoder add .sfo hex pattern to /scripts * core/fs: allow to mount path as read-only * common: Add CString wrapper to handle native null-terminated strings * SaveData: rewrite to implement full functionality * mock value for SYSTEM_VER * SavaData: backup features * SavaData: SaveDataMemory features * imgui Ref-counted textures - has a background thread to decode textures * imgui: rework gamepad navigation * PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum) - Add null check to CString when itself is used in a nullable field * SaveDataDialog implementation - Fix Mounting/Unmounting check of SaveInstance * Update Discord invite link.md (shadps4-emu#994) I missed one last time :P * libraries/kernel: add `sceKernelMmap` to HLE * vulkan: Upgrade format queries to use format feature flags 2. (shadps4-emu#941) * vulkan: Add alternatives when nullDescriptor is not supported. (shadps4-emu#1001) * vulkan: Add alternatives when nullDescriptor is not supported. * vulkan: Set identifying name on null image/image view/buffer * save_data: Fix save data list back button. (shadps4-emu#1003) * save_data: Fix save data list back button. * common: Add more null checks in CString. Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev> --------- Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev> * resource_tracking_pass: Allow derivatives for 2D array images. (shadps4-emu#1000) * Image subresources barriers (shadps4-emu#904) * video_core: texture: image subresources state tracking * shader_recompiler: use one binding if the same image is read and written * video_core: added rebinding of changed textures after overlap resolve * don't use pointers; slight `FindTexture` refactoring * video_core: buffer_cache: don't copy over the image size * redundant barriers removed; fixes * regression fixes * texture_cache: 3d texture layers count fixup * shader_recompiler: support for partially bound cubemaps * added support for cubemap arrays * don't bind unused color buffers * fixed depth promotion to do not use stencil * doors * bonfire lit * cubemap array index calculation * final touches * shader_recompiler: Use SetDst in more instructions. (shadps4-emu#1015) * hotfix: Revert ADDC change * SaveLib PR related fixes (shadps4-emu#1011) * Safety checks in all SFO readings * SaveData: log backup error and continue & fix possible concurrent file editing * SaveData: Fix issue with old firmwares * Optimise out unnecessary shifts (shadps4-emu#1021) * Add V_CVT_PK_U8_F32 opcode (shadps4-emu#1022) * shader_recompiler: Exclude non-float results from output modifiers. (shadps4-emu#1016) * vulkan: Use closest available equivalent to missing clamp modes. (shadps4-emu#1007) * core: Reduce some library log spam. (shadps4-emu#1023) * hotfix: Fix mipmap query for images * hot-fix: unnecessary optimization removed * shader_recompiler: Additional scope handling and user data as push constants (shadps4-emu#1013) * shader_recompiler: Use push constants for user data regs * shader: Add some GR2 instructions * shader: Add some instructions * shader: Add instructions for knack * touchups * spirv: Better names * buffer_cache: Ignore non gpu modified images * clang format * Add log * more fixes * shader_recompiler: Increase push constants user data to full capacity. (shadps4-emu#1032) * Save fixes (shadps4-emu#1031) * Add ElfInfo to track current game info in a singleton * SaveData compatibility with old firmwares * sceKernelOpen: fix for write-only mode * imgui: add font to render non-ascii characters * save_data: fix Backup Job including old backup in the new backup * Save backup: fix to avoid filling the queue Also limiting 1 backup / 10sec * Save backup: fix search not handling empty pattern *backup time improv * video_core: Separate dirty flags and better gpu invalidation (shadps4-emu#1034) * added 0.3.0 version * starting 0.3.1 WIP * Frame graph + Precise 60 fps timing (shadps4-emu#998) * video info: add frame graph Toggle advanced info with CTRL+F10. Also fixed imgui using gamepad for nav in wrong situations * 60fps! Implemented a timer that accumulates the time spent sleeping and sleeps for the remaining time. Also measure entire PresentThread time instead of just the time spent in Flip. * sceKernelGettimeofday: replace chrono by win32 api. Better performance bb uses this function too much. Consuming almost 30% of cpu time * Patch `extrq` (shadps4-emu#943) * Use a singleton for instruction decoding * Use singleton class * Patch `EXTRQ` * Fixup signal context functions * Update CMakeLists.txt --------- Co-authored-by: georgemoralis <giorgosmrls@gmail.com> * core/memory: Fix `sceKernelMTypeProtect` setting VMA type (shadps4-emu#1037) * I hate programming and will furiously smash my monitor if I ever see another oversight of this caliber ever again in my goddamn life * Merge both protect functions together * Pre-release | Unifies builds (shadps4-emu#953) * Pre-release | Unifies builds * Missing code... * + create actions for any branch, and pre-release only for MAIN * Cache windows * Delete old pre-releases and tags deletes old pre-releases and their tags to keep the repository clean * Update build.yml * core: Add wrapper for calling into guest code. (shadps4-emu#967) * merge main again * RB4 CHARACTER RENDERING * skip rivals movreld * frodo fixes for readfirstlane --------- Co-authored-by: Daniel R. <47796739+polybiusproxy@users.noreply.github.com> Co-authored-by: georgemoralis <giorgosmrls@gmail.com> Co-authored-by: psucien <168137814+psucien@users.noreply.github.com> Co-authored-by: psucien <bad_cast@protonmail.com> Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com> Co-authored-by: Exhigh <exhigh01@gmail.com> Co-authored-by: bigqy <liuguoqing0394@qq.com> Co-authored-by: Xphalnos <164882787+Xphalnos@users.noreply.github.com> Co-authored-by: Mmpr87 <115404923+Mmpr87@users.noreply.github.com> Co-authored-by: huss2342 <89368091+huss2342@users.noreply.github.com> Co-authored-by: Fabian <38659818+Fejbien@users.noreply.github.com> Co-authored-by: CrazyBloo <CrazyBloo@users.noreply.github.com> Co-authored-by: tGecko <tGecko@proton.me> Co-authored-by: Marcin Mitura <mitura07@wp.pl> Co-authored-by: Random <28494085+Random06457@users.noreply.github.com> Co-authored-by: Mikhail Paulyshka <me@mixaill.net> Co-authored-by: Emulator-Team-2 <38318848+Emulator-Team-2@users.noreply.github.com> Co-authored-by: Grégoire Hage <33609333+greggameplayer@users.noreply.github.com> Co-authored-by: Paris Oplopoios <parisoplop@gmail.com> Co-authored-by: baggins183 <baggins31084@proton.me> Co-authored-by: Stephen Miller <millerste004@gmail.com> Co-authored-by: RDN000 <109141852+RDN000@users.noreply.github.com> Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com> Co-authored-by: Plínio Larrubia <ledragox.contact@gmail.com> Co-authored-by: TheTurtle <47210458+raphaelthegreat@users.noreply.github.com> Co-authored-by: illusion0001 <37698908+illusion0001@users.noreply.github.com> Co-authored-by: oltolm <oleg.tolmatcev@gmail.com> Co-authored-by: Sebastian Kassai <8061077+xezrunner@users.noreply.github.com> Co-authored-by: menaman123 <53198002+menaman123@users.noreply.github.com> Co-authored-by: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com> Co-authored-by: Blargle <lildave05@hotmail.co.uk> Co-authored-by: Vinicius Rangel <me@viniciusrangel.dev> Co-authored-by: Zack McKevitt <49414389+zmckevitt@users.noreply.github.com> Co-authored-by: Andrew Middendorp <72170013+amiddendorp22@users.noreply.github.com> Co-authored-by: Lizardy <6063922+lzardy@users.noreply.github.com> Co-authored-by: microsoftv <6063922+microsoftv@users.noreply.github.com> Co-authored-by: Yussur Mustafa Oraji <N00byKing@hotmail.de> Co-authored-by: adjonesey <adjones3y@gmail.com> Co-authored-by: Adam Jones <a.c.jones@outlook.com> Co-authored-by: SleepingSnakezzz <71992016+SleepingSnakezzz@users.noreply.github.com> Co-authored-by: Vasyl_Baran <VasylBaran@users.noreply.github.com> Co-authored-by: kh0nsu <michaelgkoob@gmail.com> Co-authored-by: j <j@local> Co-authored-by: Pipi86 <66808852+Pipi86@users.noreply.github.com> Co-authored-by: Vladislav Mikhalin <mikhalinvlad@gmail.com> Co-authored-by: Luke Warner <65521430+LukeWarnut@users.noreply.github.com> Co-authored-by: nnn27 <51850231+nnn27@users.noreply.github.com> Co-authored-by: Raven <jacky.kk.tsui@gmail.com> Co-authored-by: TheCamrew <82264381+TheCamrew@users.noreply.github.com> Co-authored-by: korenkonder <admin@mysterious-home.net> Co-authored-by: ElBread3 <92335081+ElBread3@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a helper to set up threads with real-time scheduling, and uses it in
videoout
for the present thread to make sure the sleep timing for v-blanks is as accurate as possible. This fixes issues on macOS where presenting is too slow due to inaccurate sleep timing. I've also extended the v-blank period out to nanoseconds to make it more precise since it was actually running slightly too fast after fixing the sleep times; this may need further tuning to the exact v-blank period of the PS4, but for now it's just set for 60 FPS.Note that the real-time scheduling helper is only implemented for macOS currently. If any other platforms need it in the future, it can be implemented for them as well, but I don't have the knowledge necessary to implement this for all platforms.