Herman S.
16d2cc05c5
[GPU] Use UNorm not signed EDRAM encoding in k_16_16 resolve packing.
...
The original commit (2eea146b ) correctly added kXenosFormat_16_16_EDRAM
case labels and fixed the unpack clamp from -1.0 to -32.0, but
incorrectly changed the resolve pack functions from UNorm to signed EDRAM
encoding. The resolve destination is a regular texture sampled as UNorm
[0,1], not EDRAM. Using EDRAM packing double-encodes the [-32,32]
scaling, crushing all values by ~64x and caused visual issues
particularly in UE3 titles.
The bytecode submitted with the change was actually correct, but the
source had additional incorrect pieces that only manifested when shaders
were rebuilt.
2026-03-05 15:11:22 +09:00
Herman S.
545b8bb8e9
[Docs] Add spirv-tools related installation info for linux
2026-03-05 09:41:56 +09:00
Gliniak
e576f3d924
[Cmake] Added directory split in Visual studio (and probably other IDEs)
...
Back as it was:
- src
- third_party
There is CmakePredefinedTargets, but it cannot be hidden
There is also an issue with tests as they aren't visible
2026-03-04 20:12:09 +01:00
Herman S.
a1710699cd
[UI] Fix use-after-free in NoProfileDialog when closing
2026-03-04 20:58:00 +09:00
Herman S.
4bd93883ac
[Build] Convert buildshaders to custom build rules
2026-03-04 20:57:42 +09:00
Herman S.
a09292c98f
[Build] Fix VS to send Debug build output to the same place as Ninja
2026-03-04 20:57:41 +09:00
Gliniak
2de05ef1c1
[3PP] Removed reference to premake modules
2026-03-04 11:57:55 +01:00
Herman S.
71c5702ee8
[Build] Convert build system to raw cmake and remove premake layer
2026-03-04 17:37:36 +09:00
Ylederman153
f1bfb9416d
[Build] Remove /all_resources_bound from FXC shader compilation flags ( #901 )
...
The /all_resources_bound flag alters the generated DXBC bytecode by changing dcl_globalFlags, register allocation and instruction scheduling. This causes rendering artifacts (blue lightning/flash glitches) at scaled draw resolutions. The other FXC flags (/O3, /Qstrip_*, /Gfp) are retained as they do not affect the executable shader bytecode.
2026-03-04 13:49:27 +09:00
Herman S.
4757ab0931
[APU] Fix ffmpeg upgrade related logspam
2026-03-04 13:05:37 +09:00
Herman S.
cd5df622a9
[3PP] Switch FFmpeg to latest release with port of xmaframes codec
...
And pull out all the xenia specific build junk into
third_party/ffmpeg-xenia rather than keeping it checked in the
submodule
2026-03-04 13:05:31 +09:00
Herman S.
d6ed83f1ea
[Build] Ensure shaders are generated on devenv
2026-03-04 10:14:40 +09:00
Herman S.
3a54274076
[Docs] Add VulkanSDK dependency
2026-03-04 10:04:54 +09:00
Adrian
a7f1a3f18a
[XAM] Added profile and create content enumerator wrappers
2026-03-03 22:31:42 +01:00
Adrian
54be3c57a0
[XAM] Validate buffer_size limit in XamEnumerate
2026-03-03 22:31:42 +01:00
Adrian
8351eec1ec
[APP] Fixed potential conflicting ImGUI ID in profile menu
2026-03-03 21:19:54 +01:00
Herman S.
dbfe216754
[Vulkan] Implement extended range for f32 to f16 conversion in memexport
2026-03-03 17:16:37 +09:00
Ylederman153
02c6bc6e61
[D3D12] Implement extended range for f32 to f16 conversion in memexport ( #899 )
...
Resolves TODO(Triang3l) by implementing a mathematical workaround to allow exponent 31 for extended float16 range up to +/-131008.0f as expected by the native Xbox 360 hardware, bypassing standard D3D12 f32tof16 boundaries which incorrectly clamp/inf values.
2026-03-03 17:16:05 +09:00
Herman S.
f2ac39cfd9
[Build] Generate shaders on build instead of having them checked in
2026-03-03 16:21:30 +09:00
Ylederman153
2eea146b1b
[GPU] Fix k_16_16 and k_16_16_16_16 EDRAM packing clamping ( #898 )
...
Replaces the UNorm packing functions with custom Edram functions to preserve the native [-32.0, 32.0] float range and scale mathematically instead of using saturate(). Fixes displaced water meshes in games like Mercenaries 2.
2026-03-03 14:27:04 +09:00
Herman S.
48111e8fba
[D3D12] Fix device lost with resolution scaling in 3D-as-2D textures
2026-03-01 16:41:50 +09:00
Adrian
d4b295a578
[XAM] Fixed memcpy in XamProfileFindAccount
2026-02-28 22:45:32 +01:00
Adrian
b1aa0de766
[UI] Extend ImGUI glyph ranges
2026-02-27 21:23:51 +01:00
Herman S.
125b4c8c05
[GPU] Ensure force_special_view checks swizzle signs before using signed
...
This was causing unnecessary logspam in Blue Dragon due to
incorrectly trying to request signed when the fetch constants are
unsigned
2026-02-26 14:36:08 +09:00
Herman S.
0c8d1b763f
[D3D12] Pre-create 3D-as-2D textures before draw setup
2026-02-26 14:22:46 +09:00
Herman S.
0e2967cdb0
[D3D12] Fix 3D-to-2D texture crash under Wine/VKD3D
2026-02-26 14:22:46 +09:00
Herman S.
e7941b0c7d
[GPU] 3d-to-2d textures default enable
...
Replaced the modal cvar with bool gpu_3d_to_2d_texture with "mode 2" now enabled by
default and "mode 1" removed as unnecessary
2026-02-26 14:22:46 +09:00
Herman S.
90c48e1d21
[GPU] 3d-to-d2 texture implementation
...
Adds vulkan version of mode 1 and 2 and fixes related crashes by keeping
the 2d texture views from the texture cache.
2026-02-26 14:22:46 +09:00
Herman S.
7c9b5af236
[D3D12] add cvar to control 3d-to-2d texture mode
2026-02-26 14:22:46 +09:00
Raffaele
fc5ab60a88
[D3D12] Fix 4D5307DF fur textures
...
- Fixes issue https://github.com/xenia-canary/game-compatibility/issues/6
- Implements a load texture logic
2026-02-26 14:22:46 +09:00
Raffaele
26824edcfa
[D3D12] Fix 4D5307DF fur textures
...
- Fixes issue https://github.com/xenia-canary/game-compatibility/issues/6
- Implements a copy texture logic
2026-02-26 14:22:46 +09:00
Herman S.
bc54720559
[XMA] Fix consume-only context resetting output buffer offsets
...
And remove the now-unused HasTightOutputBuffer heuristic
2026-02-26 10:28:49 +09:00
Herman S.
aaf284a4b0
[Vulkan] Fix fullscreen corrupting HDR state on Windows
2026-02-25 12:31:18 +09:00
Herman S.
9c37af4621
[Vulkan] Add proper tracking to swap gamma correction render pass
2026-02-25 12:31:18 +09:00
Herman S.
223aa70171
[Vulkan] Add semaphor reuse workaround and cvar
2026-02-25 12:31:18 +09:00
Herman S.
6de637b794
[Vulkan] Smear scalar bools.
...
Addresses some shader validation warnings
2026-02-25 12:31:18 +09:00
Herman S.
d505b6b53a
[Vulkan] Create per-swapchain-image present semaphores
...
Fixes vulkan validation issues.
2026-02-25 12:31:18 +09:00
Herman S.
74ce1c812f
[Vulkan] Fix VUID-FragDepth-FragDepth-04216 validation issue
2026-02-25 12:31:18 +09:00
Herman S.
bf880fde0c
[Vulkan] Fix alignment related validation errors
2026-02-25 12:31:18 +09:00
Herman S.
77852914ff
[GPU] TextureCache lockless pre-check
...
lockless accessors for base_outdated/mips_outdated and skip lock
acquisition when textures appear up to date
2026-02-25 12:31:18 +09:00
Herman S.
067641668f
[GPU] Fix min/max blend operations to properly apply factors
...
Applies factors before the MIN/MAX operation - in FSI/ROV via runtime
blending, in FBO/RTV by pre-multiplying shader output when dstFactor is
ONE only, as we don't have access to dest to provide full support as we
do in the FSI/ROV paths.
2026-02-25 09:39:03 +09:00
Herman S.
966d8f0925
[Vulkan] fix FBO path reading from output variables for alpha test
...
Makes FBO follow the same pattern as FSI by using function scoped
intermediate variables
2026-02-25 09:38:58 +09:00
Herman S.
2d7ca4fb39
[GPU] Remove log spam for empty region resolve issues.
...
Affects Forza Horizon 1 and 2, does not seem to be related to any
actual rendering issues but makes it very difficult to debug real
problems.
2026-02-25 09:11:03 +09:00
Herman S.
1e23aaf4fc
Improve error handling in graphics memory init
2026-02-25 09:10:48 +09:00
Herman S.
337afcf318
[XMA] fix unsigned underflow when packet has no frames
2026-02-24 14:32:54 +09:00
Herman S.
80a78c509f
[XMA] Write back output_buffer_read_offset in StoreContextMerged
2026-02-24 14:32:54 +09:00
Herman S.
6265698eef
[XMA] Swap input buffer on unresolvable split headers
2026-02-24 14:32:54 +09:00
Herman S.
d68ff7243a
[XMA] Fix consume-only path write offset and drain check
2026-02-24 14:32:54 +09:00
Herman S.
6ee55aafb4
[XMA] Guard against subframe_decode_count being 0
2026-02-24 14:32:54 +09:00
Herman S.
013320c051
[XMA] Implement loop subframe precision
2026-02-24 14:32:54 +09:00