Herman S.
6de637b794
[Vulkan] Smear scalar bools.
...
Addresses some shader validation warnings
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.
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.
83d776fa39
[Vulkan] Add tesselation support
...
Pretty much just following the D3D12 implementation
2026-02-18 00:02:21 +09:00
Herman S.
3e3aee1ef2
[App] Update title to show apu and remove vulkan incomplete warning
2026-02-17 23:50:40 +09:00
Herman S.
48c13be2d5
[Vulkan] Add gamma_render_target_as_srgb support
2026-02-17 23:35:59 +09:00
Herman S.
5d74d69aa8
[Vulkan] Alpha to coverage FSI implementation
2026-02-17 22:46:18 +09:00
Herman S.
792e61f6e2
[Vulkan] Alpha to coverage improvements
...
Refactor redundant code, fix 2x MSAA sample mapping and
only declare gl_FragCoord when alpha to coverage can run
2026-02-17 22:46:14 +09:00
Herman S.
cba315cf38
[Vulkan] Implement alpha to coverage (FBO)
...
Fixes the foliage rendering in places like Red Dead Redemption menu
2026-02-17 22:43:27 +09:00
Herman S.
75589de0a4
[Vulkan] Ensure descriptor sets always initialized for user_clip_planes
2026-02-17 22:18:21 +09:00
Herman S.
f13ee6ec38
[Vulkan] Add support for user clip planes
2026-02-17 22:18:02 +09:00
Herman S.
0b7abf0241
[Vulkan] Add resolution scaling mips support
2026-02-17 21:46:50 +09:00
Herman S.
cd7b47235d
[GPU] Properly handle scaled textures and weights
...
Fix d3d12 logic wrt scaling weights, add vulkan impelementation for using
scaled texture offsets and fix resolution-scaled texture detection
2026-02-17 21:44:18 +09:00
Herman S.
55f0333182
[Vulkan] Fix incorrect scaling EDRAM tile span parameters
...
These parameters are EDRAM tile coordinates in guest space and shouldn't
be scaled. Fixes visual issues in certain games when upscaling.
2026-02-17 21:43:05 +09:00
Herman S.
5897de3eaf
[Vulkan] Implement tiled_shared_memory for resolution scaling
...
Adds support for >3x resolution scaling to vulkan by implementing
sparse scaled resolve similar to the d3d12 implementation.
2026-02-17 21:31:25 +09:00
Herman S.
a092551735
[Vulkan/D3D12] Validate upload range bounds before vastcpy
...
The D3D12 backend's existing check only validated the last page of the
range. The Vulkan backend had no check at all and did not respect the
gpu_allow_invalid_upload_range cvar. Both now verify start and
end pages are mapped before copying, preventing access violations when
games reference unmapped guest physical memory during transitions.
2026-02-17 21:22:48 +09:00
Herman S.
3e1b0c715a
[Vulkan] Vertex buffer residency caching
...
Cache vertex buffer address/size per fetch constant, invalidate on fetch
constant write, reset at frame boundaries
2026-02-17 21:22:00 +09:00
Herman S.
2ad412a141
[Vulkan] Add support for vkPipelineCache
2026-02-17 21:21:56 +09:00
Herman S.
6057b0a7c7
[Vulkan] Implement ClearCache to clear upload_buffer_pool
2026-02-17 21:10:38 +09:00
Herman S.
4d15f0afea
[Vulkan] Implement same vastcpy upload_buffer optimization as d3d12
2026-02-17 21:10:13 +09:00
Herman S.
ef505fbe3d
[Vulkan] add no_discard_stencil_in_transfer_pipelines support
2026-02-17 17:54:01 +09:00
Herman S.
24f90c0efc
[Vulkan] Fix stencil bit transfer shaders not discarding pixels
...
"packed" was never set because source_depth_texture isn't created for
stencil bit output. This caused the discard logic to be skipped
resulting in stencil being incorrectly incremented on every transfer
draw until it saturated at 0xFF.
Fixes many remaining Vulkan rendering issues, e.g. Brothers, Orange Box,
Arkham Origins, many others.
2026-02-17 17:44:23 +09:00
Herman S.
878de4c352
[Vulkan] Fix sampler params
2026-02-17 17:44:08 +09:00
Herman S.
dc66d67a31
[Vulkan] Use VK_FORMAT_A2B10G10R10 for xenos::ColorRenderTargetFormat::k_2_10_10_10
...
Aligns with D3D12's DXGI_FORMAT_R10G10B10A2_UNORM
2026-02-17 17:43:55 +09:00
Herman S.
1a4b78e377
[Vulkan] Invalidate descriptor set bindings for incompatible sets
...
The code to do this was set up but it seems it was never implemented.
2026-02-17 17:43:45 +09:00
Herman S.
a716dc6fac
[Vulkan] Fix kComputeWrite access mask
...
Access mask was incorrectly set to VK_ACCESS_SHADER_READ_BIT
2026-02-17 17:41:21 +09:00
Herman S.
5be503da77
[Vulkan] Don't try to create geometry shader for rectangle list
2026-02-17 17:40:59 +09:00
Herman S.
ec5816a278
[Vulkan] Use vertex_fetch_bitmap instead of vertex_bindings()
...
Avoids using cached/stale vertex binding indices
2026-02-17 17:40:26 +09:00
Herman S.
434644c301
Merge commit 'f2fabfdf0' into canary_experimental
...
Sync changes from master up to before the recent GPU changes, those will be
merged later
2026-02-17 16:59:38 +09:00
Herman S.
20b226dbdf
[Vulkan] Update glslang to 16.0.0 and introduce compat layer
2026-02-17 15:34:23 +09:00
Herman S.
f722b6b85f
[Vulkan] Workaround for glslang 11.6.0+ change in accesschain semantics
2026-02-17 14:58:10 +09:00
Herman S.
f9d4dbc8e9
[Build] Use clang 20 for clang format consistently across Win/Lin
2026-02-15 01:25:43 +09:00
goldislead
1a9613705d
Rework max anisotropy override to sampler creation (D3D12/Vulkan)
...
Revert ac6fd65 fetch additions and implement context-sensitive AF override.
2026-02-07 17:47:12 +01:00
Stayd
ac6fd65385
[GPU] Add anisotropic filtering override
2026-01-28 08:28:53 +01:00
Triang3l
f2fabfdf04
[GPU] Change "bpe" to "bpb" (bytes per block) in comments
...
Forgotten in the other "element" to "block" change.
2026-01-15 20:48:26 +03:00
Triang3l
88f95a8bd6
[GPU] Change "element" name back to "block" in texture addressing
...
The 32_32_32_FLOAT format seems to be vertex-only, so it looks like there
can't be storage elements smaller than a single texel.
So, use a more precise name that can't be confused with "picture element"
(pixel) or "texture element" (texel) that represents a single logical pixel
rather than a storage block of pixels.
2026-01-15 11:56:45 +03:00
Triang3l
9535e610b0
[GPU] Change texture address local X offsetting back to addition
...
More likely to be emitted as an immediate load/store offset in host
hardware shaders.
2026-01-14 00:15:08 +03:00
Triang3l
6db6192170
[GPU] Use XOR to flip X texel group in all load/resolve shaders
...
For visual consistency (missed in the commit that added LocalXAddressXor).
2026-01-13 23:37:01 +03:00
Triang3l
7db772bfeb
[GPU] XeResolveLocalXAddressXor comment typo correction
2026-01-13 23:22:30 +03:00
Triang3l
0f23f05683
[GPU] Simplify local X offsetting with resolution scaling
...
Switch between even and odd 16-byte element sequences along X by simply
flipping a bit rather than going to a different resolution-scaled group of
pixels, by increasing the size of the group within the constraints imposed
by tiling.
2026-01-13 23:14:15 +03:00
Triang3l
76c531bff2
[GPU] Rename AddressTiled in TiledAddress in shaders
...
There will possibly be more `XenosTextureTiled*` functions in the future
where the word "Address" would make the names excessively long.
2026-01-13 21:20:26 +03:00
Triang3l
80a9af4277
[GPU] Add macro tile size constants to texture addressing headers
2026-01-13 21:18:25 +03:00
Triang3l
ea8ae81bfd
[GPU] Remove now-unused texture_conversion.cc/h
2026-01-06 17:59:20 +03:00
Triang3l
28b69c21be
[GPU] Document tiled texture address bits
...
Will be useful for calculating memory extents more precisely in the future.
2026-01-06 17:47:19 +03:00
Triang3l
cbbaae8ead
[Vulkan] Recompile internal shaders with Vulkan SDK 1.4.335.0
...
spirv-remap was replaced with spirv-opt --canonicalize-ids, and debug
information is preserved now.
2026-01-04 17:03:37 +03:00
Herman S.
fcebdfb255
[GPU] Fix scaled resolve tracking for blocks outside write range
2025-12-27 19:02:29 +01:00