Commit Graph

91 Commits

Author SHA1 Message Date
656adee630 spirv: Implement rescaling patching 2021-11-16 22:11:28 +01:00
f2a4204245 Simply legacy attribute implement 2021-11-04 09:26:16 +08:00
49f9a44235 Support gl_FogFragCoord attribute 2021-10-31 23:34:17 +08:00
36c21ff6cb Support gl_BackSecondaryColor attribute 2021-10-26 23:14:40 +08:00
92bebecf46 Support gl_FrontSecondaryColor attribute 2021-10-26 23:09:44 +08:00
b04c7b6343 Support gl_BackColor attribute 2021-10-26 23:01:57 +08:00
b1e655f898 Detail adjustment 2021-09-08 10:30:00 +08:00
bbc1800c1b Detail adjustment 2021-09-08 09:53:10 +08:00
e5ca733722 Re-implement get unused location 2021-09-07 13:22:52 +08:00
9cdf2383e9 Move attribute related definitions to spirv anonymous namespace 2021-09-07 12:34:35 +08:00
1de9e4e121 Dynamic get unused location 2021-09-06 10:46:03 +08:00
d994466a08 Implement intput and output fixed fnc textures 2021-09-06 10:36:45 +08:00
a7bbaa4897 Rename parameters 2021-09-03 23:52:20 +08:00
cf26f375ff Fix create GraphicsPipelines crash 2021-09-03 22:55:53 +08:00
1e2a89d306 Add input/output location 2021-09-02 23:34:51 +08:00
73b11f390e Add colorfront and txtcoord support 2021-09-01 00:07:25 +08:00
11f04f1022 shader: Ignore global memory ops on devices lacking int64 support 2021-07-22 21:51:40 -04:00
2e5af95541 shader: GCC fmt 8.0.0 fixes 2021-07-22 21:51:40 -04:00
5b2b0634a1 spirv: Fix code emission when descriptor aliasing is unsupported
Fixes OpenGL.
2021-07-22 21:51:39 -04:00
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
59fead3a47 spirv: Properly handle devices without int8 and int16 2021-07-22 21:51:38 -04:00
b5e78607ad spirv: Handle small storage buffer loads on devices with no support 2021-07-22 21:51:38 -04:00
374eeda1a3 shader: Properly manage attributes not written from previous stages 2021-07-22 21:51:38 -04:00
adc43297c5 spirv: Fix output generics with components 2021-07-22 21:51:34 -04:00
916ca74324 opengl: Declare fragment outputs even if they are not used
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
9e7b6622c2 shader: Split profile and runtime information in separate structs 2021-07-22 21:51:33 -04:00
d54d7de40e glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
c4fd6b55bc glasm: Implement shuffle and vote instructions on GLASM 2021-07-22 21:51:31 -04:00
ee61ec2c39 shader: Optimize NVN Fallthrough 2021-07-22 21:51:30 -04:00
7ecc6de56a shader: Implement Int32 SUATOM/SURED 2021-07-22 21:51:30 -04:00
4ead714910 spirv: Add int8 and int16 capabilities only when supported 2021-07-22 21:51:29 -04:00
48a17298d7 spirv: Support OpenGL uniform buffers and change bindings 2021-07-22 21:51:29 -04:00
d5d6778ba5 spirv: Desambiguate descriptor names
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are
used for name matching.
2021-07-22 21:51:29 -04:00
d10cf55353 shader: Implement indexed textures 2021-07-22 21:51:28 -04:00
7018e524f5 shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
2021-07-22 21:51:28 -04:00
6325601947 spirv: Fix ViewportMask 2021-07-22 21:51:28 -04:00
5b8afed871 spirv: Replace Constant/ConstantComposite with Const helper 2021-07-22 21:51:28 -04:00
80940b1706 shader: Implement SampleMask 2021-07-22 21:51:28 -04:00
95815a3883 shader: Implement PIXLD.MY_INDEX 2021-07-22 21:51:28 -04:00
e3514bcd6b spirv: Implement ViewportMask with NV_viewport_array2 2021-07-22 21:51:28 -04:00
b0f1255c8c shader: Implement PrimitiveId 2021-07-22 21:51:27 -04:00
183855e396 shader: Implement tessellation shaders, polygon mode and invocation id 2021-07-22 21:51:27 -04:00
416e1b7441 spirv: Implement image buffers 2021-07-22 21:51:27 -04:00
d8ec99dada spirv: Implement Layer stores 2021-07-22 21:51:27 -04:00
b126987c59 shader: Implement transform feedbacks and define file format 2021-07-22 21:51:27 -04:00
fa75b9b062 spirv: Rework storage buffers and shader memory 2021-07-22 21:51:27 -04:00
f263760c5a shader: Implement geometry shaders 2021-07-22 21:51:27 -04:00
5c61e860e4 shader: Implement SR_THREAD_KILL 2021-07-22 21:51:27 -04:00
3db2b3effa shader: Implement ATOM/S and RED 2021-07-22 21:51:27 -04:00
7cb2ab3585 shader: Implement SULD and SUST 2021-07-22 21:51:26 -04:00