ameerj
|
56478bc9ac
|
shader: Fix disabled attribute default values
|
2021-07-22 21:51:40 -04:00 |
|
ameerj
|
56c30dd9e0
|
glsl: Simplify FCMP emission
|
2021-07-22 21:51:40 -04:00 |
|
ameerj
|
79d2684261
|
glsl: Update TessellationControl gl_in
Adheres to GL_ARB_separate_shader_objects requirements
|
2021-07-22 21:51:40 -04:00 |
|
ReinUsesLisp
|
bf2956d77a
|
shader: Avoid usage of C++20 ranges to build in clang
|
2021-07-22 21:51:40 -04:00 |
|
ameerj
|
94af0a00f6
|
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
|
2021-07-22 21:51:40 -04:00 |
|
lat9nq
|
49946cf780
|
shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
|
2021-07-22 21:51:40 -04:00 |
|
ameerj
|
11f04f1022
|
shader: Ignore global memory ops on devices lacking int64 support
|
2021-07-22 21:51:40 -04:00 |
|
ReinUsesLisp
|
8722668b3c
|
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
|
2021-07-22 21:51:40 -04:00 |
|
lat9nq
|
2e5af95541
|
shader: GCC fmt 8.0.0 fixes
|
2021-07-22 21:51:40 -04:00 |
|
ReinUsesLisp
|
5643a909bc
|
shader: Fix disabled and unwritten attributes and varyings
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
65daec8b75
|
glsl: Fix shared and local memory declarations
account for the fact that program.*memory_size is in units of bytes.
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
8289eb108f
|
opengl: Implement LOP.CC
Used by MH:Rise
|
2021-07-22 21:51:39 -04:00 |
|
ReinUsesLisp
|
5b2b0634a1
|
spirv: Fix code emission when descriptor aliasing is unsupported
Fixes OpenGL.
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
00fa09dc45
|
glsl: Declare local memory in main
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
f7352411f0
|
glsl: Add passthrough geometry shader support
|
2021-07-22 21:51:39 -04:00 |
|
ReinUsesLisp
|
8a3427a4c8
|
glasm: Add passthrough geometry shader support
|
2021-07-22 21:51:39 -04:00 |
|
ReinUsesLisp
|
7dafa96ab5
|
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
27ca8a0e13
|
glsl: Better IAdd Overflow CC fix
This ensures the original operand values are not overwritten when being used in the overflow detection.
|
2021-07-22 21:51:39 -04:00 |
|
ReinUsesLisp
|
4397053d5c
|
shader: Remove IAbs64
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
bc6e399ae3
|
glsl: Fix IADD CC
|
2021-07-22 21:51:39 -04:00 |
|
ReinUsesLisp
|
808ef97a08
|
shader: Move loop safety tests to code emission
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
cbce9ddd4a
|
glsl: Remove frag color initialization
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
3a2dd1b483
|
glasm: Implement SetAttribute ViewportMask
|
2021-07-22 21:51:39 -04:00 |
|
ameerj
|
1c648f176c
|
emit_glsl_special: Skip initialization of frag_color0
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
|
2021-07-22 21:51:38 -04:00 |
|
Morph
|
cfbc85839d
|
glsl: Add missing ; in EmitSetSampleMask
Fixes shader compilation in Okami HD
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
9e066dcb15
|
glsl: Fix output varying initialization when transform feedback is used
|
2021-07-22 21:51:38 -04:00 |
|
ReinUsesLisp
|
59fead3a47
|
spirv: Properly handle devices without int8 and int16
|
2021-07-22 21:51:38 -04:00 |
|
ReinUsesLisp
|
b5e78607ad
|
spirv: Handle small storage buffer loads on devices with no support
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
ccbd24fe00
|
glsl: Fix cbuf component indexing bug falback
|
2021-07-22 21:51:38 -04:00 |
|
ReinUsesLisp
|
374eeda1a3
|
shader: Properly manage attributes not written from previous stages
|
2021-07-22 21:51:38 -04:00 |
|
ReinUsesLisp
|
892b8aa2ad
|
glsl: Only declare fragment outputs on fragment shaders
|
2021-07-22 21:51:38 -04:00 |
|
ReinUsesLisp
|
0ffea97e2e
|
shader: Split profile and runtime info headers
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
12ef06ba8b
|
glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
Fixes Ori and the blind forest title screen
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
d36f667bc0
|
glsl: Address rest of feedback
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
c5dfa0b630
|
glsl: Move gl_Position/generic attribute initialization to EmitProlgue
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
3b339fbbf6
|
glsl: Conditionally use fine/coarse derivatives based on device support
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
6eea88d614
|
glsl: Cleanup/Address feedback
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
ae4e452759
|
glsl: Add Shader_GLSL logging
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
6c6a451d6a
|
glsl: Add LoopSafety instructions
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
a0d0704aff
|
glsl: Conditionally add EXT_texture_shadow_lod
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
5e7b2b9661
|
glsl: Add stubs for sparse queries and variable aoffi when not supported
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
6aa1bf7b6f
|
glsl: Implement legacy varyings
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
39c29664f9
|
glsl: Minor cleanup
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
427a2596a1
|
glsl: Fix Cbuf getters for F32 type
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
7c82f20b52
|
glsl: Add immediate index oob checking for Cbuf getters
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
84c86e03cd
|
glsl: Refactor GetCbuf functions to reduce code duplication
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
e81c73a874
|
glsl: Address more feedback. Implement indexed texture reads
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
7d89a82a48
|
glsl: Remove Signed Integer variables
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
4759db28d0
|
glsl: Address Rodrigo's feedback
|
2021-07-22 21:51:38 -04:00 |
|
ameerj
|
85399e119d
|
glsl: Reorganize backend code, remove unneeded [[maybe_unused]]
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
e7c8f8911f
|
glsl: Implement SampleId and SetSampleMask
plus some minor refactoring of implementations
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
d1a68f7997
|
glsl: Add gl_PerVertex in for GS
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
a926695234
|
glsl: Use existing tracking for enabling EXT_shader_image_load_formatted
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
14bd73db36
|
glsl: Enable early fragment tests
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
3f31a547e0
|
glsl: Implement more attribute getters and setters
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
8bb8bbf4ae
|
glsl: Implement fswzadd
and wip nv thread shuffle impl
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
c542204113
|
glsl: Implement indexed attribute loads
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
2a504b4765
|
glsl: Conditionally add GL_ARB_sparse_texture2
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
fc0db612ab
|
glsl: Conditionally use GL_EXT_shader_image_load_formatted
Fix for SULD.D
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
fb839061fb
|
glsl: Remove output generic indexing for geometry stage
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
258106038e
|
glsl: Allow dynamic tracking of variable allocation
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
465903468e
|
glsl: Implement barriers
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
421847cf1e
|
glsl: Implement image atomics and set layer
along with some more cleanup/oversight fixes
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
d41aef03c7
|
glsl: Fix image gather logic
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
35e78d558d
|
glsl: Add cbuf access workaround for devices with component indexing bug
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
747b8556a4
|
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
d12f2b8ccf
|
emit_glsl_image: Use immediate offsets when possible
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
0a0b0a73d8
|
glsl: Fix <32-bit SSBO writes
and more cleanup
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
34fdb6471d
|
glsl: Cleanup and address feedback
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
5355568a2d
|
glsl: Refactor Global memory functions
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
a68fabf6d5
|
glsl: Increase NUM_VARS that can be allocated
needed for HW:AoC.
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
8d8ce24f20
|
glsl: Implement Load/WriteGlobal
along with some other misc changes and fixes
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
af9696059c
|
glsl: Implement Images
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
6577a63d36
|
glsl: skip gl_ViewportIndex write if device does not support it
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
f4799e8fa1
|
glsl: Implement transform feedback
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
31147ffe69
|
glsl: Yet another gl_ViewportIndex fix attempt
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
9f3970f837
|
glsl: Add gl_ViewportIndex out attribute
|
2021-07-22 21:51:37 -04:00 |
|
lat9nq
|
fc29de7d5b
|
emit_glsl_context_get_set: Remove unused function
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
59576b82a8
|
glsl: Fix precise variable declaration
and add some more separation in the shader for better debugability when dumped
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
8c684b3e23
|
glsl: Implement tessellation shaders
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
c7d085b505
|
glsl: Implement ImageGradient and other texture function variants
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
68d075d1e8
|
glsl: Fix atomic SSBO offsets
and implement misc getters
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
19247ba4fa
|
glsl: Implement geometry shaders
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
df53046d68
|
glsl: Use NotImplemented macro with function name output
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
3a024b3026
|
glsl: Implement gl_ViewportIndex
SSBU now working
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
b7561226ed
|
glsl: SHFL fix and prefer shift operations over divide in glsl shader
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
e10366974e
|
glsl: Implement precise fp variable allocation
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
14bfb4719a
|
HACK glsl: Write defaults to unused generic attributes
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
4b5a4ea72e
|
glsl: Fix ssbo indexing and name shadowing between shader stages
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
8ec0028e68
|
glsl: implement set clip distance
and missed a diff in emit_glsl relating to var alloc ref counting
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
9f3ffb996b
|
glsl: Rework var alloc to not assign unused results
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
1269a0cf8b
|
glsl: Rework variable allocator to allow for variable reuse
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
9ccbd74991
|
glsl: Fix ATOM and implement ATOMS
|
2021-07-22 21:51:37 -04:00 |
|
ameerj
|
68ef3803bf
|
glsl: Use gl_SubGroupInvocationARB
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
e35ffbbeb0
|
glsl: Implement VOTE for subgroup size potentially larger
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
770b754afd
|
glsl: Implement VOTE
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
181a4ffdc4
|
glsl: Implement ST{LS}
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
57d354b02c
|
glsl: Implement more instructions used by SMO
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
7df0815117
|
glsl: Implement more instructions used by SMO
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
80eec85867
|
glsl: Fix GetAttribute return values
fixes font rendering issues as these were used to index into the ssbos
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
1542f31e79
|
glsl: minor cleanup
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
005eecffcd
|
glsl: Fix and implement rest of cbuf access
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
3047eb6688
|
glsl: Implement TXQ and other misc changes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
5fd92780b2
|
glsl: TLD4 implementation
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
697eacd095
|
glsl: Implement TLD instruction
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
e4ba755705
|
glsl: Implement TEXS
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
59a692e9ed
|
glsl: Cleanup texture functions
|
2021-07-22 21:51:36 -04:00 |
|
lat9nq
|
c9a25855bc
|
shader_recompiler: GCC fixes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
7619b7d427
|
glsl: Implement TEX depth functions
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
55e0211a5e
|
glsl: Implement TEX ImageSample functions
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
b98de76ea8
|
glsl: Rework Shuffle emit instructions to align with SPIR-V
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
8ba814efb2
|
glsl: Better Storage access and wip warps
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
86d4a05cec
|
glsl: Fix integer conversions, implement clamp CC
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
21797efa54
|
glsl: Implement IADD CC
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
453cd25da5
|
glsl: SSBO access fixes and wip SampleExplicitLod implementation.
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
f6bbc76336
|
glsl: WIP var forward declaration
to fix Loop control flow.
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
2a71333716
|
glsl: Fix bindings, add some CC ops
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
6674637853
|
glsl: remove unused headers
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
a752ec88d0
|
glsl: Implement derivatives and YDirection
plus some other misc additions/changed
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
ed14d31f66
|
glsl: Fix non-immediate buffer access
and many other misc implementations
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
d171083d53
|
glsl: textures wip
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
3d086e6130
|
glsl: Implement some attribute getters and setters
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
5399906c26
|
glsl: Track S32 atomics
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
b95716e543
|
glsl: Update phi node management
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
67f881e714
|
glsl: Fix floating point compare ops
Logic for ordered/unordered ops was wrong.
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
bd24fa9713
|
glsl: Query GL Device for FP16 extension support
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
3482df1176
|
glsl: Simply FP storage atomics
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
9cc1b8a873
|
glsl: F16x2 storage atomics
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
11ba190462
|
glsl: Revert ssbo aliasing. Storage Atomics impl
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
e99d01ff53
|
glsl: implement phi nodes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
3d9ecbe998
|
glsl: Wip storage atomic ops
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
df793fc049
|
glsl: Implement FCMP
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
cdde730219
|
glsl: Add a more robust fp formatter
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
ac7b0ebcb7
|
glsl: More FP fixes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
3064bde415
|
glsl: FP function fixes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
65c6f73e43
|
glsl: More FP instructions/fixes
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
5e9095ef22
|
glsl: Add many FP32/64 instructions
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
ef7bd53f18
|
glsl: Implement more Integer ops
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
266a3d60e3
|
glsl: Implement BF*
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
0f40b0e61c
|
glsl: Implement a few Integer instructions
|
2021-07-22 21:51:36 -04:00 |
|
ameerj
|
fb75d122a2
|
glsl: Use std::string_view for Emit function args.
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
115c162b9a
|
glsl: Pass IR::Inst& to Emit functions
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
78f5eb90d7
|
glsl: INeg and IAdd negate tests
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
e221baccdd
|
glsl: Reusable typed variables. IADD32
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
faf4cd72c5
|
glsl: Fix program linking and cbuf
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
64337f004d
|
glsl: Fix "reg" allocing
based on glasm with some tweaks
|
2021-07-22 21:51:35 -04:00 |
|
ameerj
|
eaff1030de
|
glsl: Initial backend
|
2021-07-22 21:51:35 -04:00 |
|
ReinUsesLisp
|
3d822faea1
|
spirv: Reduce log severity of mismatching denorm rules
|
2021-07-22 21:51:35 -04:00 |
|
ReinUsesLisp
|
61cd7dd301
|
shader: Add logging
|
2021-07-22 21:51:35 -04:00 |
|
lat9nq
|
373f75d944
|
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
|
2021-07-22 21:51:35 -04:00 |
|