ReinUsesLisp
9280cd649a
shader: Move LaneId to the warp emission file and fix AMD
2021-07-22 21:51:27 -04:00
ReinUsesLisp
1030b612a3
vk_rasterizer: Request outside render pass execution context for compute
2021-07-22 21:51:27 -04:00
ReinUsesLisp
e5e79648cf
pipeline_helper: Add missing [[maybe_unused]]
2021-07-22 21:51:27 -04:00
ReinUsesLisp
2e71e4c5c0
spirv: Fix forward declarations on phi nodes
2021-07-22 21:51:27 -04:00
ReinUsesLisp
d404b871d5
shader: Mark ImageWrite with side effects
2021-07-22 21:51:27 -04:00
FernandoS27
1be6705408
shader: Implement CC for ISET, FSET, PSET, CSET, and DSET
...
Throw when other instructions are missing CC.
2021-07-22 21:51:27 -04:00
ReinUsesLisp
8cea39b5a6
shader: Remove outdated comment in F2I
2021-07-22 21:51:27 -04:00
ReinUsesLisp
7cb2ab3585
shader: Implement SULD and SUST
2021-07-22 21:51:26 -04:00
ReinUsesLisp
094da34456
shader: Fix Windows build issues
2021-07-22 21:51:26 -04:00
lat9nq
5bfcafa0a2
shader: Address feedback + clang format
2021-07-22 21:51:26 -04:00
lat9nq
0bb85f6a75
shader_recompiler,video_core: Cleanup some GCC and Clang errors
...
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22 21:51:26 -04:00
ReinUsesLisp
5cd3d00167
shader: Fix FCMP immediate variant
2021-07-22 21:51:26 -04:00
ReinUsesLisp
233e39bb7b
shader: Fix dangling labels
2021-07-22 21:51:26 -04:00
ReinUsesLisp
e9a91bc5cc
shader: Interact texture buffers with buffer cache
2021-07-22 21:51:26 -04:00
ReinUsesLisp
56b92bd89c
shader: Fix F2I
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ef88552224
shader: Fix TextureGrad
2021-07-22 21:51:26 -04:00
ReinUsesLisp
1f3eb601ac
shader: Implement texture buffers
2021-07-22 21:51:26 -04:00
FernandoS27
dcaf0e9150
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
73cb17f41b
shader: Implement indexed Position and ClipDistances
2021-07-22 21:51:26 -04:00
FernandoS27
1d51803169
shader: Implement indexed attributes
2021-07-22 21:51:26 -04:00
FernandoS27
0df7e509db
shader: Implement AL2P
2021-07-22 21:51:26 -04:00
FernandoS27
20ba0ea0a9
shader: Fix BRX tracking
2021-07-22 21:51:26 -04:00
ReinUsesLisp
bfeeb23ddc
vk_pipeline_cache: Fix num of pipeline workers on weird platforms
2021-07-22 21:51:26 -04:00
ReinUsesLisp
417fb5d385
shader: Move recursive SSA rewrite to the heap
2021-07-22 21:51:26 -04:00
FernandoS27
72daa2a039
shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware
2021-07-22 21:51:26 -04:00
ReinUsesLisp
9e6fe430bd
shader: Fix splits on blocks using indirect branches
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ffca21487f
shader: Eliminate orphan blocks more efficiently
2021-07-22 21:51:26 -04:00
ReinUsesLisp
da6cf2632c
shader: Add subgroup masks
2021-07-22 21:51:26 -04:00
ReinUsesLisp
fc93bc2abd
shader: Implement BAR and fix memory barriers
2021-07-22 21:51:26 -04:00
ReinUsesLisp
85795de99f
shader: Abstract breadth searches and use the abstraction
2021-07-22 21:51:26 -04:00
ReinUsesLisp
3f594dd86b
shader: Reimplement GetCbufU64 as GetCbufU32x2
...
It may generate better code on some compilers and it's easier to handle.
2021-07-22 21:51:26 -04:00
ReinUsesLisp
5b3c6d59c2
vk_compute_pass: Fix compute passes
2021-07-22 21:51:26 -04:00
ReinUsesLisp
5ed68e83db
shader: Remove atomic flags and use mutex + cond variable for pipelines
2021-07-22 21:51:26 -04:00
ReinUsesLisp
0b26f2b90e
shader: Remove unused header in VOTE
2021-07-22 21:51:26 -04:00
ReinUsesLisp
6ff2e9ba09
vk_pipeline_cache: Remove unnecesary scope in pipeline cache locking
2021-07-22 21:51:26 -04:00
ReinUsesLisp
9a342f5605
shader: Rework global memory tracking to use breadth-first search
2021-07-22 21:51:26 -04:00
ReinUsesLisp
c4aab5c40e
shader: Fix fp16 merge when using native fp16
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ca7ebdc471
shader: Fix FADD32I
2021-07-22 21:51:26 -04:00
FernandoS27
e7700aad18
shader: Fix undetected bug from review
2021-07-22 21:51:26 -04:00
FernandoS27
ed6a1b1a3d
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
80df541a08
shader: "Implement" NOP
2021-07-22 21:51:26 -04:00
FernandoS27
480dc0d5e6
vk_pipeline_cache: Small fixes to the pipeline cache
2021-07-22 21:51:26 -04:00
FernandoS27
baec84247f
shader: Address Feedback
2021-07-22 21:51:26 -04:00
FernandoS27
45d547af11
shader: Implement SR_LaneId
2021-07-22 21:51:26 -04:00
FernandoS27
595806fb1c
shader: Fix shared memory on cool drivers
2021-07-22 21:51:26 -04:00
FernandoS27
655f7a570a
shader: Implement MEMBAR
2021-07-22 21:51:26 -04:00
FernandoS27
ecb30c9072
shader: Improve VOTE.VTG stub
2021-07-22 21:51:25 -04:00
FernandoS27
12f5f32098
shader: Mark SSBOs as written when they are
2021-07-22 21:51:25 -04:00
FernandoS27
d819ba4489
shader: Implement ViewportIndex
2021-07-22 21:51:25 -04:00
FernandoS27
fd496d0401
shader: Stub TLD4's PTP when it isn't constant
2021-07-22 21:51:25 -04:00
FernandoS27
5ed8f24384
shader: Stub VOTE.VTG
2021-07-22 21:51:25 -04:00
FernandoS27
bee8188799
shader: Fold composite extract
2021-07-22 21:51:25 -04:00
FernandoS27
c3bace756f
shader: Fold comparisons and Pack/Unpack16
2021-07-22 21:51:25 -04:00
ReinUsesLisp
b4a5e767d0
shader: Fix branches to visited virtual blocks
2021-07-22 21:51:25 -04:00
ReinUsesLisp
d0a529683a
vulkan: Serialize pipelines on a separate thread
2021-07-22 21:51:25 -04:00
ReinUsesLisp
8771639d1e
vulkan: Create pipeline layouts in separate threads
2021-07-22 21:51:25 -04:00
ReinUsesLisp
2fc698b040
vulkan: Build pipelines in parallel at runtime
...
Wait from the worker thread for a pipeline to build before binding it to
the command buffer. This allows queueing pipelines to multiple threads.
2021-07-22 21:51:25 -04:00
ReinUsesLisp
f1dd743731
shader: Fix dependency on identity removal pass
2021-07-22 21:51:25 -04:00
ReinUsesLisp
5f22cd89e2
shader: Fix constant propagation to use reverse post order
2021-07-22 21:51:25 -04:00
ReinUsesLisp
eaafd53cfe
shader: Implement LDG .U.128 as .128
2021-07-22 21:51:25 -04:00
ReinUsesLisp
c826220733
shader: Unroll "using enum" for opcode declarations
2021-07-22 21:51:25 -04:00
ReinUsesLisp
0c933e20de
vk_pipeline_cache: Name SPIR-V modules
2021-07-22 21:51:25 -04:00
ReinUsesLisp
09e1927b70
spirv: Remove unnecesary variable for clip distances
2021-07-22 21:51:25 -04:00
FernandoS27
0c4cf3b9eb
shader: Implement ClipDistance
2021-07-22 21:51:25 -04:00
FernandoS27
67afdaf566
shader: Fix TXD
2021-07-22 21:51:25 -04:00
FernandoS27
4d0d29fc20
shader: Address feedback
2021-07-22 21:51:25 -04:00
ReinUsesLisp
cb6fc03e55
shader: Always pass a lod for TexelFetch
2021-07-22 21:51:25 -04:00
FernandoS27
630273b629
shader: Implement TXD
2021-07-22 21:51:25 -04:00
FernandoS27
d5bfc63088
shader: Implement ImageGradient
2021-07-22 21:51:25 -04:00
FernandoS27
be3e94ae55
shader: Implement TMML partially
2021-07-22 21:51:25 -04:00
FernandoS27
613b48c4a2
shader,spirv: Implement ImageQueryLod.
2021-07-22 21:51:25 -04:00
FernandoS27
2c276ec6eb
shader: Implement TLDS
2021-07-22 21:51:25 -04:00
FernandoS27
dc1a9a3bed
shader: Implement TLD
2021-07-22 21:51:25 -04:00
ReinUsesLisp
7a1c14269e
spirv: Add fixed pipeline point size
2021-07-22 21:51:25 -04:00
FernandoS27
9d7422d967
shader: Add PointCoord attribute
2021-07-22 21:51:25 -04:00
ameerj
b7589fe115
shader: Add PointSize attribute
2021-07-22 21:51:25 -04:00
ReinUsesLisp
514a6b07ee
shader: Store type of phi nodes in flags
...
This is needed because pseudo-instructions where invalidated.
2021-07-22 21:51:25 -04:00
ReinUsesLisp
b0d5572abf
shader: Fix indirect branches to scheduler instructions
2021-07-22 21:51:25 -04:00
ReinUsesLisp
55b960a20f
spirv: Fix default output attribute initialization
2021-07-22 21:51:25 -04:00
ReinUsesLisp
12783f8105
shader: Add missing new lines
2021-07-22 21:51:25 -04:00
ameerj
6c51f49632
shader: Implement FSWZADD
2021-07-22 21:51:25 -04:00
FernandoS27
34aba9627a
shader: Implement BRX
2021-07-22 21:51:25 -04:00
ReinUsesLisp
39a379632e
shader: Fix alignment checks on RZ
2021-07-22 21:51:25 -04:00
ameerj
73af0d2e0d
shader: Implement I2I CC
2021-07-22 21:51:25 -04:00
ameerj
dbc1e5cde7
shader: Implement I2I SAT
2021-07-22 21:51:25 -04:00
ReinUsesLisp
3c758d9b53
vk_pipeline_cache: Fix size hashing of shaders
2021-07-22 21:51:25 -04:00
ameerj
cd9f75e223
shader: Fix ISCADD logic for PO/CC
2021-07-22 21:51:25 -04:00
ReinUsesLisp
e860870dd2
shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available
2021-07-22 21:51:25 -04:00
ameerj
84298ce191
shader: Implement ISCADD CC
2021-07-22 21:51:24 -04:00
ameerj
51475e21ba
shader: Implement VMAD, VMNMX, VSETP
2021-07-22 21:51:24 -04:00
ReinUsesLisp
0e1b213fa7
shader: Add missing I2I exception when CC is used
2021-07-22 21:51:24 -04:00
ReinUsesLisp
dbd882ddeb
shader: Better interpolation and disabled attributes support
2021-07-22 21:51:24 -04:00
ReinUsesLisp
675a82416d
spirv: Remove dependencies on Environment when generating SPIR-V
2021-07-22 21:51:24 -04:00
ReinUsesLisp
cb6039ccea
vk_pipeline_cache: Fix pipeline and shader caches
2021-07-22 21:51:24 -04:00
ReinUsesLisp
f0031babeb
shader: Implement front face
2021-07-22 21:51:24 -04:00
ReinUsesLisp
a806b29cb9
shader: Fix structured control flow on KIL instructions
...
This could potentially leave unvisited blocks, leading to illegal phi
nodes.
2021-07-22 21:51:24 -04:00
FernandoS27
cdf0cc3869
shader: Fix TXQ
2021-07-22 21:51:24 -04:00
ReinUsesLisp
ec005be99d
shader: Fix rasterizer integration order issues
2021-07-22 21:51:24 -04:00
ReinUsesLisp
17063d16a3
shader: Implement TXQ and fix FragDepth
2021-07-22 21:51:24 -04:00
ReinUsesLisp
d9c5bd9509
shader: Refactor PTP and other minor changes
2021-07-22 21:51:24 -04:00
FernandoS27
b5db38f50e
shader: Add IR opcode for ImageFetch
2021-07-22 21:51:24 -04:00
FernandoS27
742d11c2ad
shader: Implement TLD4.PTP
2021-07-22 21:51:24 -04:00
FernandoS27
981eb6f43b
shader: Fix Array Indices in TEX/TLD4
2021-07-22 21:51:24 -04:00
FernandoS27
f5672777c8
shader: Implement FragDepth
2021-07-22 21:51:24 -04:00
FernandoS27
fda0835300
shader: Implement TLD4S.
2021-07-22 21:51:24 -04:00
FernandoS27
c7c518e280
shader: Implement TLD4 and TLD4_B
2021-07-22 21:51:24 -04:00
ameerj
32c5483beb
shader: Implement SHFL
2021-07-22 21:51:24 -04:00
ReinUsesLisp
49e87ea8ab
shader: Track first bindless argument instead of the instruction itself
2021-07-22 21:51:24 -04:00
ReinUsesLisp
d3dad6b632
shader: Properly insert Prologue instruction
2021-07-22 21:51:24 -04:00
ReinUsesLisp
83a283fa86
shader: Minor style nits
2021-07-22 21:51:24 -04:00
FernandoS27
8cb9443cb9
shader: Fix F2I
2021-07-22 21:51:24 -04:00
ReinUsesLisp
68a9505d8a
shader: Implement NDC [-1, 1], attribute types and default varying initialization
2021-07-22 21:51:24 -04:00
ReinUsesLisp
1d2db78398
shader: Fix use-after-free bug in object_pool
2021-07-22 21:51:24 -04:00
ameerj
3d07cef009
shader: Implement VOTE
2021-07-22 21:51:24 -04:00
ReinUsesLisp
d40faa1db0
vk_pipeline_cache: Fix ReleaseContents order
2021-07-22 21:51:24 -04:00
ReinUsesLisp
a8d8fd40f7
shader: Fix TEX mask
2021-07-22 21:51:24 -04:00
ReinUsesLisp
f8115a6a9e
vk_pipeline_cache: Add pipeline cache
2021-07-22 21:51:24 -04:00
ReinUsesLisp
c63cf4fa2e
vk_pipeline_cache: Add pipeline cache
2021-07-22 21:51:24 -04:00
ReinUsesLisp
2be5c7eff4
shader: Fold interpolation multiplications
2021-07-22 21:51:24 -04:00
ReinUsesLisp
96b7ced6ec
shader: Better but still partial interpolation support
2021-07-22 21:51:24 -04:00
ameerj
e4e1cc11b8
shader: Implement DMNMX, DSET, DSETP
2021-07-22 21:51:24 -04:00
FernandoS27
56be556eee
shader: Implement FADD32I
2021-07-22 21:51:24 -04:00
FernandoS27
a62f04efab
shader: Implement F2F
2021-07-22 21:51:24 -04:00
ReinUsesLisp
8b3b9c3371
shader: Add missing fp64 usage flags
2021-07-22 21:51:24 -04:00
ameerj
c858b8ba97
shader: Implement DMUL and DFMA
...
Also add a missing const on DADD
2021-07-22 21:51:24 -04:00
ameerj
112b8f00f0
shader: Add FP64 register load/store helpers
2021-07-22 21:51:24 -04:00
ReinUsesLisp
a77e764726
shader: Add support for fp16 comparisons and misc fixes
2021-07-22 21:51:24 -04:00
FernandoS27
27fb97377e
shader: Fix floating point comparison for FP16
2021-07-22 21:51:23 -04:00
FernandoS27
e10d9c1b8e
shader: Implement HSETP2
2021-07-22 21:51:23 -04:00
FernandoS27
9e213fd861
shader: Implement HSET2
2021-07-22 21:51:23 -04:00
FernandoS27
ed6cd3c94a
shader: Implement HMUL2
2021-07-22 21:51:23 -04:00
FernandoS27
28dff6a629
shader: Implement HFMA2
2021-07-22 21:51:23 -04:00
ReinUsesLisp
76c8a962ac
spirv: Implement VertexId and InstanceId, refactor code
2021-07-22 21:51:23 -04:00
FernandoS27
e802512d8e
shader: Refactor half floating instructions
2021-07-22 21:51:23 -04:00
ReinUsesLisp
f91859efd2
shader: Implement I2F
2021-07-22 21:51:23 -04:00
ReinUsesLisp
c97d03efb9
shader: Implement ISCADD (imm)
2021-07-22 21:51:23 -04:00
ReinUsesLisp
eeb1efa2d2
shader: Implement LOP32I
2021-07-22 21:51:23 -04:00
ReinUsesLisp
260743f371
shader: Add partial rasterizer integration
2021-07-22 21:51:23 -04:00
ameerj
72990df7ba
shader: Implement DADD
2021-07-22 21:51:23 -04:00
ameerj
3b7fd3ad0f
shader: Implement CSET and CSETP
2021-07-22 21:51:23 -04:00
ReinUsesLisp
32b6c63485
shader: Reorder phi nodes when redefined as undefined opcodes
2021-07-22 21:51:23 -04:00
ReinUsesLisp
8dd0acfaeb
shader: Fix instruction transitions in and out of Phi
2021-07-22 21:51:23 -04:00
ameerj
fa2f6e38f4
shader: Implement FSET and FSETP
...
Also fix oversight with adding SignedZeroInfNanPreserve execution mode.
2021-07-22 21:51:23 -04:00
ReinUsesLisp
17a82b56d7
shader: Implement TEXS
2021-07-22 21:51:23 -04:00
ReinUsesLisp
71f96fa636
shader: Implement CAL inlining function calls
2021-07-22 21:51:23 -04:00
ameerj
b9f7bf4472
spirv: Add SignedZeroInfNanPreserve logic
2021-07-22 21:51:23 -04:00
ameerj
8d470c2e63
shader: Implement FMNMX
...
And add a const in FCMP
2021-07-22 21:51:23 -04:00
ReinUsesLisp
2d422b2498
shader: Fix rebase issue
2021-07-22 21:51:23 -04:00
ameerj
ba8c1d2eb4
shader: Implement FCMP
...
still need to configure some settings for NV denorm flush and intel NaN
2021-07-22 21:51:23 -04:00
ReinUsesLisp
3a63fa0477
shader: Partial implementation of LDC
2021-07-22 21:51:23 -04:00
ReinUsesLisp
ab46371247
shader: Initial support for textures and TEX
2021-07-22 21:51:23 -04:00
ameerj
7d6ba5b984
shader: Implement R2P
2021-07-22 21:51:23 -04:00
ameerj
924f0a9149
shader: Implement SHF
2021-07-22 21:51:23 -04:00
ameerj
5465cb1561
shader: Implement LEA
2021-07-22 21:51:23 -04:00
ReinUsesLisp
d1edc16ba8
shader: Deduplicate HADD2 code
2021-07-22 21:51:23 -04:00
ameerj
81f72471e8
shader: Implement I2I
2021-07-22 21:51:23 -04:00
ReinUsesLisp
4006929c98
shader: Implement HADD2
2021-07-22 21:51:23 -04:00
ameerj
980cafdc27
shader: Implement LOP and LOP3
2021-07-22 21:51:23 -04:00
ameerj
382cba94ed
shader: Implement IADD3
2021-07-22 21:51:23 -04:00
ameerj
c2155f04d4
shader: Implement PSETP
2021-07-22 21:51:23 -04:00
ameerj
ce9b116cfe
Implement PSET, refactor common comparison funcs
2021-07-22 21:51:23 -04:00
ameerj
103b9da4f7
shader: Implement FLO
2021-07-22 21:51:23 -04:00
ameerj
e038928616
shader: Implement ISET, add common_funcs
2021-07-22 21:51:23 -04:00
ameerj
bec7d3111d
shader: Make IMNMX, SHR, SEL stylistically more consistent
2021-07-22 21:51:22 -04:00
ameerj
bce0b1dcca
shader: Implement ICMP
2021-07-22 21:51:22 -04:00
ameerj
20390c0548
shader: Implement IMNMX
2021-07-22 21:51:22 -04:00
ameerj
08a9e95905
shader: Implement BFI
2021-07-22 21:51:22 -04:00
ameerj
34ac9b4d7e
shader: Implement BFE
2021-07-22 21:51:22 -04:00
ameerj
a8c41c50d3
shader: Implement POPC
2021-07-22 21:51:22 -04:00
ameerj
cc55d28949
shader: Implement SHR
2021-07-22 21:51:22 -04:00
ameerj
8810c88b7e
shader: Implement SEL
2021-07-22 21:51:22 -04:00
ReinUsesLisp
726625cf50
spirv: Move phi arguments emit to a separate function
2021-07-22 21:51:22 -04:00
ReinUsesLisp
3bc857f2f3
shader: Avoid infinite recursion when tracking global memory
2021-07-22 21:51:22 -04:00
ReinUsesLisp
622d676202
shader: Fix conditional execution of exit instructions
2021-07-22 21:51:22 -04:00
ReinUsesLisp
7496bbf758
spirv: Add support for self-referencing phi nodes
2021-07-22 21:51:22 -04:00
ReinUsesLisp
e87a502da2
shader: Fix control flow
2021-07-22 21:51:22 -04:00
ReinUsesLisp
9d6a98d950
shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC
2021-07-22 21:51:22 -04:00
ReinUsesLisp
e44752ddc8
shader: FMUL, select, RRO, and MUFU fixes
2021-07-22 21:51:22 -04:00
ReinUsesLisp
18a766b362
shader: Fix MOV(reg), add SHL variants and emit neg and abs instructions
2021-07-22 21:51:22 -04:00
ReinUsesLisp
274897dfd5
spirv: Fixes and Intel specific workarounds
2021-07-22 21:51:22 -04:00
ReinUsesLisp
704c6f353f
shader: Rename, implement FADD.SAT and P2R (imm)
2021-07-22 21:51:22 -04:00
ReinUsesLisp
e2bc05b17d
shader: Add denorm flush support
2021-07-22 21:51:22 -04:00
ReinUsesLisp
6db69990da
spirv: Add lower fp16 to fp32 pass
2021-07-22 21:51:22 -04:00
ReinUsesLisp
85cce78583
shader: Primitive Vulkan integration
2021-07-22 21:51:22 -04:00
ReinUsesLisp
c67d64365a
shader: Remove old shader management
2021-07-22 21:51:22 -04:00
ReinUsesLisp
58914796c0
shader: Add XMAD multiplication folding optimization
2021-07-22 21:51:22 -04:00
ReinUsesLisp
4b438f94cf
shader: Simplify ISCADD
2021-07-22 21:51:22 -04:00
ReinUsesLisp
3633e43377
shader: Add utility to resolve identities on a value
2021-07-22 21:51:22 -04:00
ReinUsesLisp
3a59fffaa1
spirv: Implement EmitIdentity
2021-07-22 21:51:22 -04:00
ReinUsesLisp
b5d7279d87
spirv: Initial bindings support
2021-07-22 21:51:22 -04:00
ReinUsesLisp
d5d468cf2c
shader: Improve object pool
2021-07-22 21:51:22 -04:00
ReinUsesLisp
1c0b8bca5e
shader: Fix tracking
2021-07-22 21:51:22 -04:00
ReinUsesLisp
1b0cf2309c
shader: Add support for forward declarations
2021-07-22 21:51:22 -04:00
ReinUsesLisp
cbfb7d182a
shader: Support SSA loops on IR
2021-07-22 21:51:22 -04:00
ReinUsesLisp
8af9297f09
shader: Misc fixes
2021-07-22 21:51:22 -04:00
ReinUsesLisp
9170200a11
shader: Initial implementation of an AST
2021-07-22 21:51:22 -04:00
ReinUsesLisp
2930dccecc
spirv: Initial SPIR-V support
2021-07-22 21:51:22 -04:00
ReinUsesLisp
6dafb08f52
shader: Better constant folding
2021-07-22 21:51:22 -04:00
ReinUsesLisp
da8096e6e3
shader: Properly store phi on Inst
2021-07-22 21:51:21 -04:00
ReinUsesLisp
16cb00c521
shader: Add pools and rename files
2021-07-22 21:51:21 -04:00
ReinUsesLisp
be94ee88d2
shader: Make typed IR
2021-07-22 21:51:21 -04:00
ReinUsesLisp
dc04a50ac2
shader: Remove illegal character in SSA pass
2021-07-22 21:51:21 -04:00
ReinUsesLisp
e81739493a
shader: Constant propagation and global memory to storage buffer
2021-07-22 21:51:21 -04:00
ReinUsesLisp
d24a16045f
shader: Initial instruction support
2021-07-22 21:51:21 -04:00
ReinUsesLisp
6c4cc0cd06
shader: SSA and dominance
2021-07-22 21:51:21 -04:00
ReinUsesLisp
2d48a7b4d0
shader: Initial recompiler work
2021-07-22 21:51:21 -04:00
ameerj
75059c46d6
thread_worker: Fix compile time error
...
state is unused in the branch where with_state is false
2021-07-22 21:51:21 -04:00
bunnei
db46f8a70c
Merge pull request #6686 from ReinUsesLisp/vk-optimal-copy
...
vk_texture_cache: Use VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL when possible
2021-07-22 12:51:13 -04:00
Morph
233bf018d6
Merge pull request #6693 from lat9nq/cmd-fullscreen-mode-2
...
yuzu_cmd: Make use of fullscreen_mode setting
2021-07-22 00:55:01 -04:00
bunnei
dff438e219
Merge pull request #6654 from german77/custom_threshold
...
input_common: Make button threshold customizable
2021-07-21 20:31:33 -04:00
lat9nq
9befe7047b
yuzu_cmd: Make use of fullscreen_mode setting
...
Reverts 48259de0c1a6a1aca77eec31cb8aca5ca2b680dd to the previous
hierarchy and fixes the resolution issue with this fullscreen mode.
yuzu-cmd will now read the fullscreen_mode setting and use it
appropriately.
2021-07-21 19:48:03 -04:00
san
583a10fded
yuzu-cmd: Fullscreen Improvements ( #6656 )
...
* emu_window_sdl2_vk: Use the generated SDL config
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.
This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
* emu_window_sdl2_vk: Specify the window manager if it should be supported
The original language "not implemented" is wrong if the implementation
exists but is not compiled. This causes a bit of a debugging headache
when it goes wrong. Log it if the window manager is known before
exiting.
* sdl_impl, emu_window: Remove clang ignore
Fixed upstream by
libsdl-org/SDL@25fc40b0bd
* Enable fullscreen support for Vulkan on yuzu-cmd
Hooked up the existing SDL2 logic for fullscreen support in the Vulkan window of yuzu-cmd.
* Change fullscreen logic to attempt desktop resolution first on yuzu-cmd
Changed the order in which we attempt to switch to fullscreen. First try desktop resolution first, if it fails fall back to streched fullscreen using windowed resolution.
Co-authored-by: lat9nq <22451773+lat9nq@users.noreply.github.com>
Co-authored-by: san <san+gitkraken@smederijmerlijn.nl>
2021-07-21 11:56:42 -07:00
bunnei
2e93df7e48
Merge pull request #6660 from Morph1984/controller_applet_rev8
...
applet_controller: Add preliminary support for version 8
2021-07-21 00:01:46 -04:00
bunnei
29fb110049
Merge pull request #6649 from german77/toggle_sdl
...
input_common: Support SDL toggle buttons
2021-07-20 20:35:20 -04:00
bunnei
c53b688411
Merge pull request #6629 from FernandoS27/accel-dma-2
...
DMAEngine: Accelerate BufferClear [accelerateDMA Part 2]
2021-07-20 17:35:05 -04:00
bunnei
263a201dae
Merge pull request #6658 from Morph1984/render-window-fix
...
bootmanager: Create a dummy render widget
2021-07-20 15:55:48 -04:00
Fernando S
f460bf937e
Merge pull request #6685 from ReinUsesLisp/radeonsi-client
...
gl_texture_cache: Workaround slow PBO downloads on radeonsi
2021-07-20 20:33:07 +02:00
ReinUsesLisp
ad189488b3
vk_texture_cache: Use VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL when possible
...
Silences performance warnings generated from validation layers on each frame.
2021-07-20 14:38:58 -03:00
ReinUsesLisp
2e2d6cf5e5
gl_texture_cache: Workaround slow PBO downloads on radeonsi
...
There's an optimization bug on non-git mesa versions where not
specifying GL_CLIENT_STORAGE_BIT causes very slow reads on the CPU
side.
Add this bit for all vendors.
2021-07-20 14:02:11 -03:00
Chloe Marcec
75e9d3b992
uuid: Directly compare UUID instead of checking per element
...
We can now update this for C++20
2021-07-21 02:36:57 +10:00
Fernando S
9a26d96c98
vk_buffer_cache: Fix quad index array with 0 vertices ( #6627 )
2021-07-20 05:05:28 -03:00
Nicolas Jallamion
6573ff64b4
input/sdl_impl: fix rumble support on DualSense. ( #6683 )
...
- value return can be different 0, is not error is normal, error is only -1.
2021-07-20 04:00:07 -04:00
Morph
9b7e57f3f4
applet_controller: Add preliminary support for version 8
...
Version 8 adds support for key remapping introduced in FW 11.0, we will not be implementing this for now.
2021-07-20 01:45:19 -04:00
Morph
747a33a41e
bootmanager: Create a dummy render widget
...
This ensures that Qt positions the render window at the correct position on initializing the respective render backends.
2021-07-20 01:40:18 -04:00
Feng Chen
07073734ed
file_sys: Support load game collection ( #6582 )
...
Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
2021-07-20 01:10:05 -04:00
Rodrigo Locatti
16f983d33a
Merge pull request #6580 from ReinUsesLisp/xfb-radv
...
vk_buffer_cache: Use emulated null buffers for transform feedback
2021-07-19 23:01:19 -03:00
bunnei
ffc78ce9c1
Merge pull request #6652 from lat9nq/cmd-vulkan-fixes
...
yuzu-cmd: Linux Vulkan fixes
2021-07-19 20:54:03 -04:00
bunnei
f85bbf3a8f
Merge pull request #6651 from lat9nq/update-settings
...
yuzu-cmd: Update settings
2021-07-19 12:46:40 -04:00
Fernando S
b405a81a9c
Merge pull request #6679 from yzct12345/fix-lets-go
...
Fix Pokemon Let's Go on Vulkan
2021-07-19 03:29:54 +02:00
Fernando S
053860d9cb
Merge pull request #6670 from ReinUsesLisp/prepare-rt
...
texture_cache: Always prepare image views on render targets
2021-07-19 03:21:25 +02:00
Fernando S
41f4edd256
Merge pull request #6669 from ReinUsesLisp/fix-samples-sizes
...
texture_cache/util: Fix size calculations of multisampled images
2021-07-19 03:21:03 +02:00
yzct12345
03a7131563
Update src/video_core/renderer_vulkan/vk_texture_cache.cpp
...
Co-authored-by: Vitor K <vitor-kiguchi@hotmail.com>
2021-07-18 22:23:32 +00:00
yzct12345
b727b6784f
Update src/video_core/renderer_vulkan/vk_texture_cache.cpp
...
Co-authored-by: Vitor K <vitor-kiguchi@hotmail.com>
2021-07-18 22:23:12 +00:00
yzct12345
9e7f41cec6
Ignore wrong blit format
2021-07-18 21:56:06 +00:00
ReinUsesLisp
29c39838fe
vk_texture_cache: Finalize renderpass when downloading images
2021-07-18 18:00:30 -03:00
ReinUsesLisp
7850dd0a76
vk_compute_pass: Fix pipeline barriers on non-initialized ASTC images
2021-07-18 18:00:14 -03:00
ReinUsesLisp
a3ce26ae01
vk_compute_pass: Fix ASTC buffer setup synchronization
2021-07-18 17:59:31 -03:00
ReinUsesLisp
6d9f347e22
texture_cache/util: Fix size calculations of multisampled images
...
On the texture cache we handle multisampled images by keeping their real
size in samples (e.g. 1920x1080 with 4 samples is 3840x2160).
This works nicely with size matches and other comparisons, but the
calculation for guest sizes was not having this in mind, and the size
was being multiplied (again) by the number of samples per dimension.
For example a 3840x2160 texture cache image had its width and height
multiplied by 2, resulting in a much larger texture.
Fix this issue.
- Fixes performance regression on cooking related titles when an
unrelated bug was fixed.
2021-07-18 01:15:48 -03:00
ReinUsesLisp
cb08e5bdd2
texture_cache: Always prepare image views on render targets
...
Images used as render targets were not being "prepared", causing
desynchronizations on the texture cache. Needs #6669 to avoid
performance regressions on certain cooking titles.
- Fixes black shadows on Age of Calamity.
2021-07-18 00:49:32 -03:00
Ameer J
c42c3561b8
Merge pull request #6659 from german77/mouse_panning
...
input_common: Fix mouse panning behaivour
2021-07-17 16:32:43 -04:00
german77
2c339a5114
configure/ui: Add sliders for trigger buttons
2021-07-17 13:30:43 -05:00
german77
14d5202da6
input_common: Fix mouse panning behaivour
2021-07-16 18:57:29 -05:00
lat9nq
f785933125
sdl_impl, emu_window: Remove clang ignore
...
Fixed upstream by
libsdl-org/SDL@25fc40b0bd
2021-07-16 15:43:12 -04:00
lat9nq
0e6ba0cd0d
emu_window_sdl2_vk: Specify the window manager if it should be supported
...
The original language "not implemented" is wrong if the implementation
exists but is not compiled. This causes a bit of a debugging headache
when it goes wrong. Log it if the window manager is known before
exiting.
2021-07-16 15:43:12 -04:00
lat9nq
d3748cad73
emu_window_sdl2_vk: Use the generated SDL config
...
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.
This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
2021-07-16 15:43:02 -04:00
Morph
b804f77fa5
configure_audio: Fix volume clamping to 0
2021-07-16 10:36:08 -04:00
lat9nq
15ed73a6eb
yuzu_cmd: Add missing or update current settings
...
Many settings in common/settings.h are missing from yuzu-cmd, either
they were added to default_ini.h but not read in, or vice versa, or the
setting was altogether omitted from yuzu-cmd. Some defaults were
reported wrong, so those were fixed where noticed.
2021-07-16 02:46:14 -04:00
german77
240019feca
input_common: Make button threshold customizable
2021-07-15 23:56:57 -05:00
lat9nq
7dfd2715b7
default_ini: Remove deprecated settings
...
These settings are not being read in config.cpp AND they do not exist in
common/settings.h. Remove their references.
2021-07-15 23:27:42 -04:00
bunnei
3cd3230295
Merge pull request #6579 from ameerj/float-settings
...
settings: Eliminate usage of float-point setting values
2021-07-15 18:03:11 -04:00
german77
c7478642a6
input_common: Support SDL toggle buttons
2021-07-15 14:31:58 -05:00
Fernando S
96703b82bc
Merge pull request #6635 from ameerj/intel-vk-sm3dw
...
vk_rasterizer: Only clear valid color attachments
2021-07-15 16:52:51 +02:00
Fernando S
da4ca4f2f9
Merge pull request #6525 from ameerj/nvdec-fixes
...
nvdec: Fix Submit Ioctl data source, vic frame dimension computations
2021-07-15 15:17:50 +02:00
ameerj
b7fa264749
vic: Fix dimension compuation of YUV frames
...
Fixes out of bound memory crashes in Mario Golf
2021-07-15 00:51:50 -04:00
Morph
0d88a2bc05
applets/web: Resolve Nintendo CDN URLs
...
This fixes the hint videos in New Super Mario Bros. U Deluxe
2021-07-15 00:31:46 -04:00
ameerj
8943f2158d
nvhost_nvdec_common: Read Submit ioctl data from object addr
...
Fixes Mario Golf intro video decoding.
2021-07-14 23:56:24 -04:00
ameerj
3f601ed8bc
nvhost_nvdec_common: Fix {Slice/Write}Vectors return
...
Plus some minor cleanup for consistency.
2021-07-14 22:30:58 -04:00
Fernando Sahmkow
1ae4b684ff
Buffer cache: Fixes, Clang and Feedback.
2021-07-15 02:02:08 +02:00
Fernando Sahmkow
1a95a7cdd9
GPUMemoryManager: Force inmediate invalidation when writting block.
2021-07-14 18:39:31 +02:00
Fernando Sahmkow
a0eb3f8a3e
Buffer Cache: Fixes to DMA Copy.
2021-07-14 18:25:33 +02:00
Fernando Sahmkow
495b8e31b5
DMAEngine: Revert flushing from Pitch to BlpockLinear.
2021-07-14 16:44:53 +02:00
Fernando Sahmkow
8039be8b19
BufferCache: fix clearing on forced download.
2021-07-14 16:44:15 +02:00
Morph
c6d7da88c7
service: Append service name prefix to common filenames
2021-07-14 02:09:14 -04:00
Morph
79824d7d1b
applets: Append applet_ prefix to backend applets
2021-07-14 01:07:09 -04:00
Morph
9a48f252ae
applets: Append qt_ prefix to Qt frontend applets
2021-07-14 01:07:09 -04:00
Ameer J
f2599534f8
Merge pull request #6599 from german77/disable_rumble
...
npad: Disable vibration check if disabled
2021-07-13 16:11:59 -04:00
ameerj
e0978931e8
vk_rasterizer: Only clear valid color attachments
2021-07-13 16:04:27 -04:00
bunnei
00ce8eff65
Merge pull request #6574 from lioncash/i18n
...
qt/main: Make title string more i18n-friendly
2021-07-12 22:12:09 -07:00
bunnei
af79911017
Merge pull request #6593 from german77/no_sdl
...
input_common: Fix build with SDL disabled
2021-07-12 22:11:39 -07:00
bunnei
b8becb0608
Merge pull request #6615 from ReinUsesLisp/httplib-debug-warnings
...
boxcat,web_service: Silence -Wmaybe-uninitialized when including httplib.h
2021-07-12 22:11:19 -07:00
bunnei
81b2ba1479
Merge pull request #6618 from ReinUsesLisp/bad-ranges
...
content_archive: Remove unnecessary include to <ranges>
2021-07-12 22:10:50 -07:00
bunnei
7d464f73c9
Merge pull request #6571 from Kelebek1/Mix
...
audio_core: Replace NaN mix volume samples with silence
2021-07-12 22:09:05 -07:00
Fernando Sahmkow
b780d5b5c5
DMAEngine: Accelerate BufferClear
2021-07-13 03:49:47 +02:00
Ameer J
776f391ff6
Merge pull request #6597 from FernandoS27/accelerate-dma
...
DMAEngine: Introduce Accelerate DMA.
2021-07-12 12:49:11 -04:00
Fernando Sahmkow
bc19d28963
accelerateDMA: Fixes and feedback.
2021-07-12 10:33:35 +02:00
ReinUsesLisp
1ef64112b3
content_archive: Remove unnecessary include to <ranges>
...
Fixes build issues on clang.
2021-07-12 03:37:56 -03:00
ReinUsesLisp
4503a4ac43
web_service: Silence -Wmaybe-uninitialized on httplib.h
2021-07-12 03:30:45 -03:00
ReinUsesLisp
69214ef678
boxcat: Silence -Wmaybe-uninitialized in httplib.h
2021-07-12 03:30:45 -03:00
Morph
1bfe950acb
Merge pull request #6576 from ameerj/unlock-fps-setting
...
settings: Disable FPS unlimit setting between title launches
2021-07-11 13:59:06 -04:00
german77
ed5f1a45b7
npad: Disable vibration check if disabled
2021-07-10 20:06:07 -05:00
german77
289f59dabd
input_common: Fix build with sdl disabled
2021-07-10 20:02:02 -05:00
Fernando Sahmkow
be1a3f7a0f
accelerateDMA: Accelerate Buffer Copies.
2021-07-11 01:33:17 +02:00
Fernando Sahmkow
977904dd84
Buffer Cache: Address Feedback.
2021-07-10 21:34:55 +02:00
ameerj
58219d1f36
settings: Disable FPS unlimit setting between title launches
...
Some titles crash if the FPS limit is disabled when launching. This change ensures that titles launch with the limit in-place to avoid issues.
In order to simplify the change, the UI toggle was removed as it will always be overridden at launch to be disabled.
The setting can still be toggled during gameplay with the hotkey, and indicated by the fps label in the status bar.
2021-07-10 15:11:17 -04:00
Fernando Sahmkow
5e78ad4378
Buffer Cache: Fix GCC copmpile error
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
4a09517336
Fence Manager: remove reference fencing.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
2c8f4ed27f
BufferCache: Additional download fixes.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
f75544a943
Buffer Cache: Revert unnecessary range reduction.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
cf38faee9b
Fence Manager: Force ordering on WFI.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
73638ca593
Buffer Cache: Eliminate the AC Hack as the base game is fixed in Hades.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
63915bf2de
Fence Manager: Add fences on Reference Count.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
35327dbde3
Videocore: Address Feedback & CLANG Format.
2021-07-09 22:20:36 +02:00
Fernando Sahmkow
0e4d4b4beb
Buffer Cache: Fix High Downloads and don't predownload on Extreme.
2021-07-09 22:20:36 +02:00
Fernando S
7dca756f30
Merge pull request #6573 from lat9nq/cpu-settings-cleanup-2
...
core,common,yuzu qt: Add CPU accuracy option 'Auto'
2021-07-09 21:45:45 +02:00
lat9nq
420987c5bf
yuzu qt: config: Only save renderer_debug as a global setting
...
This is a bug fix. Enabling graphics debug mode, then saving a custom
configuration causes graphics debugging to be saved and read from the
custom configuration.
Isolate it the same way we isolate the CPU settings.
2021-07-09 10:49:56 -04:00
ReinUsesLisp
5a45d295da
vk_buffer_cache: Use emulated null buffers for transform feedback
...
Vulkan does not support null buffers on transform feedback bindings.
Emulate these using the same null buffer we were using for index
buffers.
2021-07-09 01:27:47 -03:00
ameerj
0ed1077763
configure_input: Use u8 for mouse sensitivity
2021-07-08 23:24:31 -04:00
ameerj
f9139ddab7
config: Remove float {Read,Write}Setting variants
2021-07-08 22:04:24 -04:00
ameerj
8284658bac
configure_graphics: Use u8 for bg_color values
2021-07-08 21:45:01 -04:00
ameerj
386cd45f07
configure_audio: Use u8 for volume value
2021-07-08 20:58:38 -04:00