Commit graph

52 commits

Author SHA1 Message Date
ReinUsesLisp
b1df436cef 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
ReinUsesLisp
9389e71b12 shader: Split profile and runtime info headers 2021-07-22 21:51:38 -04:00
ReinUsesLisp
9452fe2dc6 shader: Split profile and runtime information in separate structs 2021-07-22 21:51:33 -04:00
ReinUsesLisp
03f6d424ce 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
ReinUsesLisp
055db41f19 Move SPIR-V emission functions to their own header 2021-07-22 21:51:30 -04:00
ameerj
455872a4af shader: Implement Int32 SUATOM/SURED 2021-07-22 21:51:30 -04:00
ReinUsesLisp
59668831b7 spirv: Workaround image unsigned offset bug
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned
texture offsets.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
884a937022 spirv: Support OpenGL uniform buffers and change bindings 2021-07-22 21:51:29 -04:00
ReinUsesLisp
052317e748 shader: Implement indexed textures 2021-07-22 21:51:28 -04:00
ReinUsesLisp
e54171c1a9 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
ameerj
688c89590c spirv: Replace Constant/ConstantComposite with Const helper 2021-07-22 21:51:28 -04:00
ReinUsesLisp
0623915e2e spirv: Fix implicit lod type 2021-07-22 21:51:28 -04:00
ReinUsesLisp
f771d1fc52 spirv: Use ConstOffset instead of Offset when possible 2021-07-22 21:51:28 -04:00
ReinUsesLisp
ad1507b4a5 shader: Implement SampleMask 2021-07-22 21:51:28 -04:00
ReinUsesLisp
cc96469019 shader: Implement PIXLD.MY_INDEX 2021-07-22 21:51:28 -04:00
ReinUsesLisp
b6b541e36a spirv: Implement ViewportMask with NV_viewport_array2 2021-07-22 21:51:28 -04:00
ReinUsesLisp
10c96c7484 shader: Implement PrimitiveId 2021-07-22 21:51:27 -04:00
ReinUsesLisp
38908d0f7e shader: Implement tessellation shaders, polygon mode and invocation id 2021-07-22 21:51:27 -04:00
ReinUsesLisp
03c16b085a spirv: Implement image buffers 2021-07-22 21:51:27 -04:00
ReinUsesLisp
bba876f192 spirv: Implement Layer stores 2021-07-22 21:51:27 -04:00
ReinUsesLisp
e59971ea1b shader: Implement transform feedbacks and define file format 2021-07-22 21:51:27 -04:00
ReinUsesLisp
c84c2ab88c spirv: Rework storage buffers and shader memory 2021-07-22 21:51:27 -04:00
ReinUsesLisp
879fb08101 shader: Implement SR_THREAD_KILL 2021-07-22 21:51:27 -04:00
ameerj
62c3bef607 shader: Implement ATOM/S and RED 2021-07-22 21:51:27 -04:00
ReinUsesLisp
5ab1ac4f29 shader: Implement SULD and SUST 2021-07-22 21:51:26 -04:00
ReinUsesLisp
3e6cb6362d shader: Interact texture buffers with buffer cache 2021-07-22 21:51:26 -04:00
ReinUsesLisp
96da029a74 shader: Implement texture buffers 2021-07-22 21:51:26 -04:00
FernandoS27
1fe6a22cff shader: Implement indexed attributes 2021-07-22 21:51:26 -04:00
ReinUsesLisp
ba2130d5a5 shader: Add subgroup masks 2021-07-22 21:51:26 -04:00
ReinUsesLisp
9db035faec 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
FernandoS27
741b21715a shader: Address Feedback 2021-07-22 21:51:26 -04:00
FernandoS27
68bad0e922 shader: Implement ViewportIndex 2021-07-22 21:51:25 -04:00
ReinUsesLisp
4d60dd7eb5 spirv: Remove unnecesary variable for clip distances 2021-07-22 21:51:25 -04:00
FernandoS27
40ace25859 shader: Implement ClipDistance 2021-07-22 21:51:25 -04:00
FernandoS27
56c8c42cf8 shader,spirv: Implement ImageQueryLod. 2021-07-22 21:51:25 -04:00
FernandoS27
a8c2a85610 shader: Add PointCoord attribute 2021-07-22 21:51:25 -04:00
ameerj
357a47d944 shader: Add PointSize attribute 2021-07-22 21:51:25 -04:00
ameerj
d5d6d4ce74 shader: Implement FSWZADD 2021-07-22 21:51:25 -04:00
ReinUsesLisp
6044946495 shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available 2021-07-22 21:51:25 -04:00
ReinUsesLisp
63ea42e0d5 shader: Implement front face 2021-07-22 21:51:24 -04:00
ReinUsesLisp
e4ba306750 shader: Implement TXQ and fix FragDepth 2021-07-22 21:51:24 -04:00
ReinUsesLisp
4cd2c1588b shader: Refactor PTP and other minor changes 2021-07-22 21:51:24 -04:00
FernandoS27
f573d3642e shader: Implement TLD4.PTP 2021-07-22 21:51:24 -04:00
ReinUsesLisp
24bc872af3 shader: Implement NDC [-1, 1], attribute types and default varying initialization 2021-07-22 21:51:24 -04:00
ameerj
0705eff8f6 shader: Implement VOTE 2021-07-22 21:51:24 -04:00
ReinUsesLisp
5cd8970e73 spirv: Implement VertexId and InstanceId, refactor code 2021-07-22 21:51:23 -04:00
ReinUsesLisp
33090a74dd shader: Add partial rasterizer integration 2021-07-22 21:51:23 -04:00
ReinUsesLisp
83c7592d3d shader: Partial implementation of LDC 2021-07-22 21:51:23 -04:00
ReinUsesLisp
a956d3cdb3 shader: Initial support for textures and TEX 2021-07-22 21:51:23 -04:00
ReinUsesLisp
16a5b4f494 spirv: Fixes and Intel specific workarounds 2021-07-22 21:51:22 -04:00