* Error return on sceNpGetAccountIdA
Confirmed through hardware testing, this returns ORBIS_NP_ERROR_SIGNED_OUT on a signed out console.
Parameters are based on fpPS4 code.
* Fix compile
* Move errors to separate file
* Cleanup function headers
Swaps user_ids to use our OrbisUserServiceUserId type, and fixes parameter names to align with our coding standards.
* Add proper parameter checks
* Implement sceNpGetAccountId
This function takes an online_id, uses an NpManager function to get the user_id, then uses that user_id to perform the same internal functions as sceNpGetAccountIdA.
* Implement sceNpHasSignedUp
* Fix sceNpGetAccountId
Further hardware testing shows that these always write 0 to account_id when failing.
* Update np_manager.cpp
* presenter: render the game inside a ImGui window
* presenter: render the previous frame to keep the render rendering
* swapchain: fix swapchain image view format not being converted to unorm
* devtools: fix frame graph timing
* Add show game size toggle
* Fix (#7)
* Fix
I removed the gameSizeCheckBox from the 'Emulator' group and put it in 'GUI settings'
hLayoutTrophy which contains the Trophy information was inside the GUIMusicLayout, so I fixed that too.
* TR
* Use cached sizes if the feature is enabled
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
* Auto-generate libSceHttp2
* Improved stub for sceHttp2Init
Needed for updated versions of Cyberpunk 2077.
Parameters are based on fpPS4, while the stub itself is based on similar stubs in our other networking libraries.
* Clang
I guess the line length calculations in the moduleGenerator are still not perfect?
* Auto-generate libSceSsl2 stubs
* Copy over sceSslInit stub
* Update CMakeLists.txt
* Swap to Lib_Ssl2 log category
* Fix compile
Since libSceSsl has many functions of the same name, these functions get treated as overloaded functions and break compiling.
* Clang
* shader_recompiler: Account for instruction array flag in image type.
* shader_recompiler: Check da flag for all mimg instructions.
* shader_recompiler: Convert cube images into 2D arrays.
* shader_recompiler: Move image resource functions into sharp type.
* shader_recompiler: Use native AMD cube instructions when possible.
* specialization: Fix buffer storage mistake.
* Support for true fullscreen
* clang
* Re-add mistakenly deleted line
* Size
I adjusted the size of the entire screen.
trophies font size and added a margin so it wouldn't be so spaced out.
---------
Co-authored-by: DanielSvoboda <daniel.svoboda@hotmail.com>
* video_core: Implement conversion for uncommon/unsupported number formats.
* shader_recompiler: Reinterpret image sample output as well.
* liverpool_to_vk: Remove mappings for remapped number formats.
These were poorly supported by drivers anyway.
* resource_tracking_pass: Fix image write swizzle mistake.
* amdgpu: Add missing specialization and move format mapping data to types
* reinterpret: Fix U/SToF input type.
* Adding Swedish translation
* Updated Swedish translation with additional strings
Updated the Swedish translations using lupdate to found additional strings
cd src/qt_gui/treanslations
lupdate ../../../../shadPS4/ -tr-function-alias QT_TRANSLATE_NOOP+=TRANSLATE,QT_TRANSLATE_NOOP+=TRANSLATE_SV,QT_TRANSLATE_NOOP+=TRANSLATE_STR,QT_TRANSLATE_NOOP+=TRANSLATE_FS,QT_TRANSLATE_N_NOOP3+=TRANSLATE_FMT,QT_TRANSLATE_NOOP+=TRANSLATE_NOOP,translate+=TRANSLATE_PLURAL_STR,translate+=TRANSLATE_PLURAL_FS -no-obsolete -locations none -source-language en -ts sv.ts
* Update sv.ts
* texture_cache: Stricter barriers on image upload
* buffer_cache: Stricter barrier for vkCmdUpdateBuffer
* vk_rasterizer: Barrier also normal buffers and make it apply to all stages
* texture_cache: Minor barrier cleanup
* Batch image and buffer barriers in a single command
* clang format
* Speed up LiverpoolToVK::SurfaceFormat
In Bloodborne this shows up as the function with the very highest cumulative "exclusive time". This is true both in scenes that perform poorly, and scenes that perform well.
I took (approximately) 10s samples using an 8khz sampling profiler.
In the Nightmare Grand Cathedral (looking towards the stairs, at the rest of the level):
- Reduced total time from 757.34ms to 82.61ms (out of ~10000ms).
- Reduced average frame times by 2ms (though according to the graph, the gap may be as big as 9ms every N frames).
In the Hunter's Dream (in the spawn position):
- Reduced the total time from 486.50ms to 53.83ms (out of ~10000ms).
- Average frame times appear to be roughly the same.
These are profiles of the change vs the version currently in the main branch. These improvements also improve things in the `threading` branch. They might improve them even more in that branch, but I didn't bother keeping track of my measurements as well in that branch. I believe this change will still be useful even when that branch is stabilized and merged.
It could be there are other bottlenecks in rendering on this branch that are preventing this code from being the critical path in places like the Hunter's Dream, where performance isn't currently as constrained. That might explain why the reduction in call times isn't resulting in a higher frame rate.
* Implement SurfaceFormat with derived lookup table instead of switch
* Clang format fixes
* shader_recompiler: Add swizzle support for unsupported formats.
* renderer_vulkan: Rework MRT swizzles and add unsupported format swizzle support.
* shader_recompiler: Clean up swizzle handling and handle ImageRead storage swizzle.
* shader_recompiler: Fix type errors
* liverpool_to_vk: Remove redundant clear color swizzles.
* shader_recompiler: Reduce CompositeConstruct to constants where possible.
* shader_recompiler: Fix ImageRead/Write and StoreBufferFormatF32 types.
* amdgpu: Add a few more unsupported format remaps.
* Fix SDL version cannot launch game using game ID
Missing from https://github.com/shadps4-emu/shadPS4/pull/1507.
* Added --add-game-folder argument
Also added "treat the last argument as the game, if it isn't found already" option to the qt version
---------
Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com>
* Implement IMAGE_GATHER4_O
Used by The Last of Us Remastered.
* Fix type on IMAGE_GATHER4_C_LZ
Had a different set of types compared to the other IMAGE_GATHER4 ops.
* IMAGE_GATHER4
* GUI: TR Units - Size and Time
Added translation for these units:
B, KB, MB, GB, TB
h, m, s
Added missing text:
Games: - text in the lower left corner
Compatibility...
Update database
View report
Submit a report
Fixed the size of the settings menu
* Audio Backend
* Fixed the size of the settings menu
* devtools: fix popen in non-windows environment
* devtools: fix frame crash assertion when hidden
* devtools: add search to shader list
* devtools: add copy name to shader list
* devtools: frame dump: search by shader name
* compatibility_data: added compatibility related settings to gui
* New game compatibility section in settings dialog
* Context menu now has a compatibility section
* Adjusted minimum size of updater section to 265
* update translations
* revert to deprecated statechanged
* fix display compatibility data option
* Fixes artifacts in TLG when using NVIDIA gpus. When LDS is written and read in the same basic block, the barrier pass wont handle it properly, so insert a barrier before reads
* Clear RT if FCE was invoked before any draws
Co-authored-by: psucien <bad_cast@protonmail.com>
* address review comments
---------
Co-authored-by: psucien <bad_cast@protonmail.com>
* wip: added basic gui for compat data
* data is currently pulled directly from github API, awaiting server infra
* removed unused initalizer
* fixes
* fix cmake
* wip: add some testing date / version
* add tooltip
* fix nested QJsonObject
* fix tooltip color
* fix clang-format
* Edit style
* Add clickable status
* formatting
* import order
* typo
* fix clang format 2
---------
Co-authored-by: georgemoralis <giorgosmrls@gmail.com>
* ir: Add heuristic based LDS barrier pass
* Attempts to insert barriers after zero-depth divergant conditional blocks in shaders that use shared memory
* lds_barriers: Limit to nvidia
* Intel has historically had problems with cs barriers, will debug other time
* Add ExecLo case to S_SAVEEXEC_B64
Seen in CUSA38209
* S_BCNT1_I32_B32
Turtle said our implementation of S_BCNT1_I32_B64 was meant to be for S_BCNT1_I32_B32, so renaming the opcode is the fix.
* handle getdents + fix condition + add info to description
* fix not handling dents errors
* to not overwrite it, only gather separate update entries when normal folder is done
* fix always setting entries to 0 and guest name including "UPDATE"
* reset indexes on completion
* don't use concat, fixes long standing bug
* make sce_module module loading take both paths into account
* coroutine code prettification
* asc queues submission refactoring
* better asc ring context handling
* final touches and review notes
* even more simplification for context saving
* shader_recompiler: Tessellation WIP
* fix compiler errors after merge
DONT MERGE set log file to /dev/null
DONT MERGE linux pthread bb fix
save work
DONT MERGE dump ir
save more work
fix mistake with ES shader
skip list
add input patch control points dynamic state
random stuff
* WIP Tessellation partial implementation. Squash commits
* test: make local/tcs use attr arrays
* attr arrays in TCS/TES
* dont define empty attr arrays
* switch to special opcodes for tess tcs/tes reads and tcs writes
* impl tcs/tes read attr insts
* rebase fix
* save some work
* save work probably broken and slow
* put Vertex LogicalStage after TCS and TES to fix bindings
* more refactors
* refactor pattern matching and optimize modulos (disabled)
* enable modulo opt
* copyright
* rebase fixes
* remove some prints
* remove some stuff
* Add TCS/TES support for shader patching and use LogicalStage
* refactor and handle wider DS instructions
* get rid of GetAttributes for special tess constants reads. Immediately replace some upon seeing readconstbuffer. Gets rid of some extra passes over IR
* stop relying on GNMX HsConstants struct. Change runtime_info.hs_info and some regs
* delete some more stuff
* update comments for current implementation
* some cleanup
* uint error
* more cleanup
* remove patch control points dynamic state (because runtime_info already depends on it)
* fix potential problem with determining passthrough
---------
Co-authored-by: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com>