Commit Graph

5024 Commits

Author SHA1 Message Date
Gliniak 4cc2dad005 [Object] Remove object name from name_table on object removal 2021-06-25 23:14:39 -05:00
emoose 052ce3d389 [Kernel] Make KeEnter/LeaveCriticalRegion only affect the caller thread
Adds a new X_KTHREAD::apc_disable_count field at 0xB0 into X_KTHREAD based on where 360 kernel seems to store it, and made CriticalRegion funcs act on that, instead of locking things between all threads, and changes DeliverAPCs to check that field before running the APCs.

XThread::LockApc/UnlockApc were also updated too as those previously called into EnterCrit/LeaveCrit to work, but AFAIK the code that uses LockApc/UnlockApc does have an actual need for locking between threads, so changed them to work on XThread::global_critical_region_ directly instead.
2021-06-25 23:11:14 -05:00
Rick Gibbed 0d3ef65dcd Add more UTF-8 path tests.
Add more UTF-8 path tests to catch newly discovered issues.
2021-06-25 23:07:57 -05:00
Gliniak dcffc1a4d5 [Base] Remove multiple trailing separators in path 2021-06-25 23:07:57 -05:00
Sandy Carter 005e0e21c1
[linux graphics] Remove GLEW
OpenGL is not used in the whole stack.
All references are removed.
2021-06-19 13:08:12 -04:00
Sandy Carter 0380067105
[linux vulkan] Remove linking directly with vulkan
Using volk means vulkan linking is done at runtime with the dl library.
2021-06-19 13:08:12 -04:00
Sandy Carter 271c91e115
[ui gtk] Fix init, resize and destroy
Prevent Vulkan Swap before display context is assigned.
Prevent resize while fullscreen (like in windows impl).
Use superclass Resize implementation to reduce code duplication.
Remove recursive call to GTKWindow::Close().
Destroy xcb window after superclass Close().
Set hwnd to null after closing on windows implementation.
2021-06-19 13:08:12 -04:00
Sandy Carter 0b5ff8332e
[ui gtk] Fix file dialog
Use drawing area for vulkan but window for dialogs
2021-06-19 13:08:12 -04:00
Doug Johnson cdf77d21bc
UI: Improve GTK GUI Abstractions for Linux 2021-06-19 13:08:03 -04:00
Triang3l 3a2c7894d2 [D3D12] Remove unused D3D12RenderTargetCache ref from D3D12RenderTarget 2021-06-19 14:06:37 +03:00
Triang3l 4a95f72fba [GPU] RT size function adjustments for Vulkan convenience 2021-06-19 13:57:14 +03:00
Joel Linn f6e48d5386 [Base] Fix Clock platform functions on POSIX. 2021-06-18 16:10:19 +03:00
Triang3l 8e83042bdf [GPU] Fix host_depth_store_2xmsaa CS after 2x MSAA sample swap 2021-06-14 19:12:12 +03:00
Triang3l e48a678ac7 [GPU] Undo depth_and_color_formats_out renaming 2021-06-14 19:00:57 +03:00
Triang3l 357aa1cdd3 [GPU] Fix RT view and pipeline sRGB mismatch 2021-06-14 17:30:56 +03:00
Joel Linn f15e3d07e7 [APU] Use vectorized converter in xaudio2 backend 2021-06-12 18:57:39 +03:00
Joel Linn 0ad939b2f1 [APU] Add AVX intrinsic variants for conversion 2021-06-12 18:57:39 +03:00
Joel Linn cd631fc447 [APU, SDL] Refactor sample submission
- Move sample conversion to SDL callback thread
- Add early channel down-conversion
2021-06-12 18:57:39 +03:00
Triang3l 14bac72f0d [D3D12] DirectComposition basic initialization 2021-06-09 22:56:36 +03:00
Triang3l 50bb35b4b4 [GPU] Polygon offset scale factor in xenos.h 2021-06-09 20:46:24 +03:00
Triang3l 9e6aec4535 [D3D12] Tiny IssueDraw initialization cleanup 2021-06-09 20:23:02 +03:00
Triang3l d00dd5a2bc [GPU] Disable primitive reset for non-list types in primitive processor 2021-06-09 20:22:24 +03:00
Triang3l 70a3919f9f [D3D12] Primitive processor frame_index_buffers_.clear() in shutdown for safety 2021-06-08 21:28:30 +03:00
Triang3l 796eb0f430 [D3D12] Update shader bytecode .h path in premake5.lua 2021-06-07 21:28:39 +03:00
Triang3l 89ddf6456a [GPU] Disable 3D slice pitch assertion for non-3D textures 2021-06-07 16:40:45 +03:00
Triang3l 22ee200f3e [GPU] Use polygon mode only for DualMode, not non-Disabled 2021-06-07 16:40:01 +03:00
Triang3l 3f156f26c4 [D3D12] Take 0 being bottom-right sample with 2x MSAA in D3D12 into account 2021-06-06 20:58:50 +03:00
Triang3l c4a5048e62 [GPU] More specific note about slope-scaled depth bias 2021-06-06 18:33:06 +03:00
Triang3l dce6938827 [D3D12] ROV sample depth via ddxy(z), DSV depth bias cleanup 2021-06-06 18:27:43 +03:00
emoose e3c14419f6 [CPU/XEX] Use correct size for XEXP-patched header buffer 2021-06-06 04:50:21 -05:00
Triang3l 12a907bfa5 [GPU] Shaders to common, xb buildshaders instead of buildhlsl 2021-06-05 18:53:53 +03:00
Gliniak 313fb3e5a3 [XMA] GetFrameNumber: Return correct frame_idx at stream end 2021-06-05 08:54:22 -05:00
Triang3l ca7036707b [APU] XMA: Instruction name comment typo correction 2021-06-05 16:43:49 +03:00
Triang3l add65318c2 [APU] XMA: ConvertFrame always returns true 2021-06-05 16:27:40 +03:00
Triang3l 60b24b2d3a [APU] XMA: Vectorize 2-channel ConvertFrame 2021-06-05 16:10:41 +03:00
Triang3l 866a29e153 [Base] saturate_signed NaN comment 2021-06-05 15:04:06 +03:00
Triang3l 3c20a83972 [Base] Float clamping cleanup 2021-06-05 14:55:55 +03:00
Joel Linn 89a7c8f41f [APU] Add vectorized audio frame conversion 2021-06-05 14:08:16 +03:00
Triang3l 538aa91015 [GPU] Primitive processor with Vulkan 1.0 base cases, 24-bit indices and clamping 2021-06-04 23:57:46 +03:00
Joel Linn 10ff77a24f [Base] Add workaround for GCC bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100801
2021-06-02 22:28:43 -05:00
Joel Linn ceb382f8ec Update Catch2 test framework
- Use their main() method to fix command line options. Fix CLion testing
- Change to correct tag syntax.
2021-06-02 22:28:43 -05:00
Joel Linn 0e019f96b4 [Base, Linux] Make thread exit non returning
- Use pthread_exit() instead of pthread_cancel() if current thread
- Modify tests to ensure Exit does not return
2021-06-02 22:28:43 -05:00
Joel Linn fa7f292432 [CPU] `ResolveFunction()` Fix declaration mismatch 2021-06-02 22:28:43 -05:00
Joel Linn 6d548f51b3 [Kernel] net: name anonymous struct
- fixes GCC compilation error due to
  "member with constructor in anonymous struct"
2021-06-02 22:28:43 -05:00
Joel Linn c0fb300a05 [Kernel] Remove explicit SHIM calling convention
Shim exports are called from GuestToHostThunk which dictates the calling
convention. The default system calling convention is different depending
on OS (Windows vs. everything else) and architecture. PR #1339 addresses
this for x64 Linux.
There is no reason for explicit `__cdecl`. Also, it is not available in
GCC. We could use `__attribute__((ms_abi))` or
`__attribute__((sysv_abi))` but that just adds complexity.
2021-06-02 22:28:43 -05:00
Joel Linn 07a060b002 [Kernel] Solve ambiguity in `RegisterExport()`
- Remove overload for exports with `void` return type
- Use `if constexpr (std::is_void<R>::value)` to differentiate
2021-06-02 22:28:43 -05:00
Joel Linn d40dfa11c5 [Base] Use pragma pack for non msvc as well.
- Pack attributes may be ignored by GCC
2021-06-02 22:28:43 -05:00
Joel Linn d55192ea30 [Base] Refactor byte_swap
- Use builtins on non MSVC compilers
- Use `if constexpr` to reduce explicit overloads and SFINAE overhead
2021-06-02 22:28:43 -05:00
Joel Linn 4800194f0d [Base] Add faster `bit_count` variants
- Use C++20 `popcount()` when available
- Else use compiler specific built-ins
2021-06-02 22:28:43 -05:00
Joel Linn 806a33d625 [GPU] Use `le<>` type for depth sample counts 2021-06-02 22:28:43 -05:00
Joel Linn e58686c9df [Base] Add `le<>` type
- Addition to `be<>` type
2021-06-02 22:28:43 -05:00
Joel Linn 28ca58c0e9 [Base] Fix HighResolutionTimer
- Test was failing on Linux 5.11 and GLIBC 2.33
- `timer_t(0)` is a valid handle, so a `valid_` flag was added to guard
  destruction
- Similar behaviour on Windows was fixed as well. The invalid values for
  `HANDLE` are API dependent.
2021-06-02 22:28:43 -05:00
Joel Linn 6dfa36d1b8 [GPU] Misc GCC build fixes 2021-06-02 22:28:43 -05:00
Joel Linn 5284075cf9 [CPU] Misc GCC build fixes 2021-06-02 22:28:43 -05:00
Joel Linn 86722be9ca [Base] Make Arena alignment aware
- Add align parameter
- Templated Alloc() implicitly aligns type correctly
- Rewind may leak padding that was added due to alignment
2021-06-02 22:28:43 -05:00
Joel Linn d8cfeac79f [Base] Remove redundant copy and move operators
- Compiler is smart enough to use 128bit vector regs by itself
2021-06-02 22:28:43 -05:00
Joel Linn 4d0d3f3ad4 [Base] Fix semaphore test
- Was using `Sleep()`
- Replaced with atomic value and bool flag
2021-06-02 22:28:43 -05:00
Joel Linn 2d9462f02b [Base] Fix unitialized variable in threading test 2021-06-02 22:28:43 -05:00
Joel Linn 4fb5244176 [Base] Fix namespacing 2021-06-02 22:28:43 -05:00
Joel Linn a86d7173e1 Refactor FourCC magic uses
- Use new fourcc_t type
- Improves compiler compatibility by removing multi chars
2021-06-02 22:28:43 -05:00
Joel Linn 4daa3f5a52 [Base] Add FourCC tests 2021-06-02 22:28:43 -05:00
Joel Linn 9bb920b104 [Base] Add FourCC type
- using fourcc_t = uint32_t
- make_fourcc() overloads
2021-06-02 22:28:43 -05:00
Gliniak fbc31652e0 [XAM/Net] inet_addr: Handle edge cases 2021-05-27 16:16:56 -05:00
Gliniak 29f7987401 [XAM] XamReadTileToTexture: tile_id safety check 2021-05-27 16:16:20 -05:00
Gliniak 29f28b8b60 [Kernel/XAM] CloseContent: Close files related to closed content 2021-05-27 16:16:01 -05:00
Gliniak f298d7620a [Kernel/XAM] XamContentGetCreator: Added check for existing content 2021-05-27 16:11:35 -05:00
Triang3l ea9625fca8 [Kernel] VdSwap virtual/physical address clarification 2021-05-25 21:31:02 +03:00
Triang3l 800db1aa49 [D3D12] Cleanup initialization log levels 2021-05-19 21:10:05 +03:00
emoose 422fc4f24e [VFS/STFS] Check fread return values, add SVOD local structs
A few minor improvements to StfsContainerDevice too, and now StfsContainerFile::ReadSync will set out_bytes_read to the actual
number of bytes read
2021-05-18 09:04:45 -05:00
emoose 478bb90922 [VFS/STFS] Use xe::filesystem::OpenFile instead of memory-mapping
Adds StfsDirectoryEntry / StfsDirectoryBlock to make it easier to fread()
2021-05-18 09:04:45 -05:00
emoose 2659b70c90 [VFS/STFS] Improved StfsHashEntry, minor struct improvements
Changed XEPACKEDSTRUCT to #pragma pack, added setters for some fields that didn't have them, named some anonymous structs which might help with other compilers.
2021-05-18 09:04:45 -05:00
emoose aa155612fb [VFS/STFS] Move x360-specific STFS structs to stfs_xbox.h 2021-05-18 09:04:45 -05:00
Gliniak 1a2282894a [GPU] Improve fake occlusion query compatibility
- Older D3D implementation used different flags
2021-05-17 19:27:23 +03:00
Sandy Carter 31a8d189f0
[vulkan] Fix typos 2021-05-17 11:14:48 -04:00
Sandy Carter c4a2dff099
[vulkan] Add Report Callback to instance create 2021-05-17 11:14:48 -04:00
Sandy Carter 5ed4f88091
[vulkan linux] Add extension requirement for XCB 2021-05-17 11:14:48 -04:00
Sandy Carter 6d591970ab
[vulkan linux] Fix native_platform_handle with gtk
Use gtk connection as handle and use it when creating surface.
2021-05-17 11:14:48 -04:00
Triang3l 0965975cbe [VFS] Fix missing unordered_map include in stfs_container_device.h 2021-05-17 02:50:01 +03:00
Triang3l 2d50fc07b4 [Linux] __builtin_ffsll instead of GNU/BSD-specific ffsll 2021-05-17 02:38:51 +03:00
Triang3l e49e26e4a0 [Kernel] shim_utils lint fix 2021-05-16 18:34:27 +03:00
Triang3l 3a5752fcb6 [D3D12] Split the tessellation VS into indexed and adaptive 2021-05-16 18:27:41 +03:00
Triang3l 9f8a432479 [DXBC] Cleanup: kSysConst_*_Vec/Comp > LoadSystemConstant 2021-05-16 17:43:18 +03:00
Triang3l ff23b1d9f9 [x64] LoadConstantXmm: Don't load -0 as +0 + cleanup 2021-05-16 14:26:57 +03:00
Triang3l f39020700a [GPU] Cleanup: XEPACKED -> static_assert_size/alignas 2021-05-16 14:03:36 +03:00
Triang3l dd5ea87213 [GPU] Linear mip tail exact extent estimation 2021-05-15 18:19:26 +03:00
Gliniak a69a058991 [XAM/App] Fixed issue when error code was handled as success 2021-05-13 23:08:02 -05:00
Gliniak 93c97fdbda [XAM/Content] Provide title ID for aggregate content 2021-05-13 23:08:02 -05:00
Triang3l 4eca2326c3 [GPU/D3D12] Support texture pitch, more precise texture extent/stride calculations 2021-05-13 23:02:11 +03:00
Triang3l 8a70ae5389 [GPU] Fix RT EDRAM range clamping when using both 32bpp and 64bpp 2021-05-12 20:17:12 +03:00
gibbed 21c28a07f1 [XAM] Write stub buffer in XamReadTileToTexture.
[XAM] Write stub texture buffer (white) in XamReadTileToTexture.
2021-05-08 11:13:30 -05:00
gibbed 8d8bab853d [XAM] Define unknown args for XamReadTileToTexture. 2021-05-08 11:13:30 -05:00
gibbed 37a733e33a [XAM] More values for dummy achievement details.
[XAM] Provide image ID and flags for dummy achievement details.
2021-05-08 11:13:30 -05:00
gibbed 0f6bfcf0d5 [XAM] Base dummy achievement details at ID 1. 2021-05-08 11:13:30 -05:00
gibbed 5d778cfef6 [XAM] Better text for dummy achievement details. 2021-05-08 11:13:30 -05:00
gibbed b2011453cc [XAM] Cap dummy achievement details to 100. 2021-05-08 11:13:30 -05:00
gibbed b735e3f40d [XAM] Fix dummy achievement details count. 2021-05-08 11:13:30 -05:00
gibbed cf2037cdf6 [XAM] Cap the number of dummy achievement details. 2021-05-08 09:10:28 -05:00
gibbed 1c78c9d75d [XAM] Fix adding dummy achievement details.
[XAM] Fix infinite loop in adding dummy achievement details when
count>255.
2021-05-08 09:10:28 -05:00
gibbed 084b8c5dbe [XAM] Fix missing buffer check on XamEnumerate. 2021-05-08 09:10:28 -05:00
Gliniak d2ca54d909 [Kernel/XAM] Dummy X_ACHIEVEMENT_DETAILS support
Co-authored-by: gibbed <rick@gibbed.us>
2021-05-08 07:47:03 -05:00
Gliniak 57ce647bb3 [APU/XMA] Prevent crash with invalid packet number 2021-05-07 16:59:17 -05:00
Triang3l 8f1f849a06 [D3D12] unordered_map instead of multimap in TextureCache 2021-05-05 21:40:00 +03:00
emoose ce19d948f0 [Base] Move XdbfLocale to xbox.h as XLanguage, let STFS headers use it
Renamed to XLanguage because AFAIK locale on Xbox is a different concept involving countries, this enum only involves languages though.
2021-05-05 12:35:51 -05:00
emoose 99b7848a34 [VFS/STFS] Cache any hash-blocks we read from in memory 2021-05-05 12:35:51 -05:00
emoose 6ba9b032a3 [VFS/STFS] Check for end-of-chain when reading dir entries, warn if chain size is wrong 2021-05-05 12:35:51 -05:00
emoose 8d7768c7fa [VFS/STFS] Secondary hash-block improvements
GetBlockHash now visits upper-level hash tables (if needed) to check the active_index flag that decides if secondary hash-block should be used or not.
This should give better support for CON packages, important for X360 profiles/game saves (some well-used profiles can be heavily fragmented)
2021-05-05 12:35:51 -05:00
emoose 09e0db029a [VFS/STFS] Add BlockToHashBlockOffsetSTFS for more accurate hash table offset 2021-05-05 12:35:51 -05:00
emoose 509f33ba27 [VFS/STFS] Fix BlockToOffsetSTFS for non-read_only_format (CON) packages
Previous code would give wrong results for those types of packages as the block_shift would cancel itself out, moving it to happen afterward let it give the right result though, probably a mistake while reversing it.
(eg. block 0 would give 0xB000, but that's wrong for non-read_only packages as 0xA000 and 0xB000 are reserved for the first hash-table there, fixed code returns the correct 0xC000 offset)

Also changed it to a multiply & renamed it to blocks_per_hash_table to make it more obvious what the purpose is.
2021-05-05 12:35:51 -05:00
emoose 14783b03f2 [VFS/STFS] Update mmap_total_size & total_allocation_units() 2021-05-05 12:35:51 -05:00
emoose 84f566d92b [VFS] STFS/XContent structure improvements
Now makes use of xe::be<T> and removes need for read() method
2021-05-05 12:35:51 -05:00
Triang3l b099d74f78 [Memory] List all partitions supporting non-FromApp memory mapping functions 2021-05-04 23:27:57 +03:00
Triang3l 40ca4abc0b [GPU] Small ring buffer setup function cleanup 2021-05-04 23:13:55 +03:00
Triang3l 330beaf552 [GPU] Screen scissor alongside window scissor 2021-05-04 22:54:05 +03:00
Triang3l fb01ccaac6 [GPU] Viewport/clipping cleanup, don't clamp oDepth 2021-05-04 21:39:34 +03:00
Joel Linn 48bd08a11b [GPU] Fix shader compiler build on Linux 2021-05-03 22:50:44 -05:00
Gliniak 1f658f9b32 [XAM/Content] Prevent deletion of open packages 2021-05-02 10:46:20 -05:00
gibbed a18f9c9dc1 Add UTF-8 path tests for trailing separator. 2021-05-02 09:36:32 -05:00
gibbed 2d2721ee7a [Base] Fix UTF-8 fnfp with trailing separator.
[Base] Fix off-by-one in UTF-8 find_name_from_path with trailing
separator.
2021-05-02 09:36:32 -05:00
gibbed fcd46d56a0 [App] Lint fix. 2021-05-02 08:21:10 -05:00
gibbed 9185c36b41 Add more UTF-8 path edge cases.
- Add macro for automatically testing both / and \ of all path
  input/outputs.
- Add more UTF-8 path edge cases.
2021-05-02 08:18:22 -05:00
gibbed b7674f0bd8 [Base] Plain string variant of UTF-8 join_paths. 2021-05-02 08:18:22 -05:00
gibbed 46dfb3449c [Base] Dedupe new/old separators in UTF-8 fps.
[Base] Dedupe new/old separators in UTF-8 fix_path_separators.
2021-05-02 08:18:22 -05:00
gibbed de3825274e [Base] Fix edge case in UTF-8 fnfp/fbp.
[Base] Fix edge case in UTF-8 find_name_from_path/find_base_path with
strings that consist of only a separator.
2021-05-02 08:18:22 -05:00
gibbed f868a10649 [App] Correctly initialize title ID. 2021-05-02 00:21:57 -05:00
gibbed ea1f2b114a [App] Improve title tracking.
[App] Improve title tracking.
[App] Show title version in emulator window title, when available.
2021-05-01 17:29:05 -05:00
gibbed 0419a9f13d [App] Build title using StringBuffer. 2021-05-01 17:29:05 -05:00
gibbed 38c3db1afb [CPU/Kernel] Transparently byteswap xex2_version. 2021-05-01 17:29:05 -05:00
gibbed 46ee68eb1d [UI] Log unsuccessful SPDA result as unsigned.
[UI] Log unsuccessful SetProcessDpiAwareness result as unsigned.
2021-05-01 17:26:54 -05:00
gibbed 653931ec8f Add and improve UTF8 tests. 2021-05-01 15:16:37 -05:00
gibbed dbd980150b [Base] Don't use reverse iterator for UTF-8.
[Base] Don't use reverse iterator for UTF-8. Fixes #1760.
2021-05-01 15:16:37 -05:00
illusion0001 b5fc1efad5 XMA: Set log level for unhandled register to warning 2021-05-01 12:47:36 -05:00
gibbed 99c9ed4c62 Stop Intellisense complaints about export decls.
Stop Visual Studio Intellisense complaints about export declarations.
2021-05-01 12:45:16 -05:00
Joel Linn b6e5719173 [APU] Fix compilation on Linux 2021-05-01 12:41:02 -05:00
Joel Linn 534e263b05 [APU] XMA: Cross-buffer split frames. 2021-05-01 12:41:02 -05:00
Joel Linn 6547fa1748 [APU] Rewrite XMA packet parser
Use new FFmpeg frame decoder
2021-05-01 12:41:02 -05:00
Joel Linn 7a0236dcc5 [Base] BitStream: Fix writing to non zeroed mem 2021-05-01 12:41:02 -05:00
Joel Linn 3675c8eac8 [APU] Disable warnings in FFmpeg. 2021-05-01 12:41:02 -05:00
Joel Linn d4cf474665 Replace references to libav. 2021-05-01 12:41:02 -05:00
Gliniak e5948bb810 [Kernel] Implemented: XeKeysHmacShaUsingKey 2021-05-01 12:31:14 -05:00
gibbed 524efcab7d [Kernel] Lint fix. 2021-05-01 12:20:14 -05:00
Gliniak d4c3d665d5 [XAM/Content] Set disposition for overlapped cases 2021-04-30 20:12:56 -05:00
Triang3l 556893177b [D3D12] Better D3D12 initialization failure error message 2021-04-28 21:13:00 +03:00
Triang3l bb55bb3e70 [D3D12] Make ROV the default RT path on Intel due to stencil 2021-04-28 20:53:07 +03:00
Triang3l 71fbfdb63e [D3D12] Fix non-ROV clearing always giving 'failed in backend' 2021-04-28 17:27:57 +03:00
Triang3l 51c2c9e5f2 [D3D12] Fix render target reference leak 2021-04-27 19:55:29 +03:00
Triang3l ec41dfc995 [D3D12] Fix bindless root signatures, ensure shaders are pre-translated 2021-04-27 18:29:23 +03:00
Triang3l 913e1e949c [GPU] Ownership-transfer-based RT cache, 3x3 resolution scaling
The ROV path is also disabled by default because of lower performance
2021-04-26 22:12:09 +03:00
Gliniak 30ea6e3ea3 [Kernel/Memory] Return error when region_size is 0 2021-04-10 07:19:59 -05:00
gibbed 4ce43369a7 Use English game title when available. 2021-04-07 03:47:17 -05:00
Gliniak 9ccdbb2153 [Kernel/Memory] Do not clear range if it was previously commited 2021-04-07 03:42:13 -05:00