70c9281fbf
glasm: Fix INeg32 on negative immediates
2021-07-22 21:51:33 -04:00
75fd0079db
glasm: Remove unnecessary value types
2021-07-22 21:51:33 -04:00
379b305b4b
glasm: Throw when there are register leaks
2021-07-22 21:51:33 -04:00
ca05a13c62
glasm: Catch more register leaks
...
Add support for null registers. These are used when an instruction has
no usages.
This comes handy when an instruction is only used for its CC value, with
the caveat of having to invalidate all pseudo-instructions before
defining the instruction itself in the register allocator. This commits
changes this.
Workaround a bug on Nvidia's condition codes conditional execution using
branches.
2021-07-22 21:51:33 -04:00
9fbfe7d676
glasm: Fix usage counting on phi nodes
2021-07-22 21:51:33 -04:00
c721767bcc
glasm: Implement global memory fallbacks
2021-07-22 21:51:33 -04:00
0794273870
glasm: Implement int64 add and subtract
2021-07-22 21:51:33 -04:00
7fdf0d7d33
emit_glasm_context_get_set: Remove unused variable
2021-07-22 21:51:33 -04:00
e30d4fa976
glasm: Implement indirect attribute loads
2021-07-22 21:51:33 -04:00
c8414e686f
glasm: Implement image atomics
2021-07-22 21:51:33 -04:00
3a7ca6a7db
glasm: Reorder unreachable image atomic insts
...
Reorder them to the bottom of the file for readability.
2021-07-22 21:51:33 -04:00
e565eb361a
glasm: Implement gl_Layer stores
2021-07-22 21:51:33 -04:00
89e341d56a
glasm: Implement SampleId
2021-07-22 21:51:33 -04:00
77d8c44b68
glasm: Implement IsHelperInvocation
2021-07-22 21:51:33 -04:00
ddf601919f
glasm: Fix EmitVertex's optimization
2021-07-22 21:51:33 -04:00
c31521512f
gl_shader_cache,glasm: Conditionally use typeless image reads extension
2021-07-22 21:51:33 -04:00
84feabac88
glasm: Implement forced early Z
2021-07-22 21:51:33 -04:00
7dadb2bef3
glasm: Simplify patch reads
2021-07-22 21:51:33 -04:00
b382f57b28
glasm: Fix output patch reads
...
With this, Luigi's Mansion's sand renders properly.
2021-07-22 21:51:33 -04:00
9e7b6622c2
shader: Split profile and runtime information in separate structs
2021-07-22 21:51:33 -04:00
eb15667905
emit_glasm_context_get_and_set.cpp: Add missing semicolons
2021-07-22 21:51:33 -04:00
781a87175c
glasm: Fix patch attribute declarations
2021-07-22 21:51:33 -04:00
36d040da70
glasm: Implement FSWZADD
2021-07-22 21:51:33 -04:00
3da7b98d37
glasm: Implement PrimitiveId attribute read
2021-07-22 21:51:33 -04:00
394b96a2fe
glasm: Implement clip distance stores
2021-07-22 21:51:32 -04:00
a5d978e91e
glasm: Fix tessellation input attributes
2021-07-22 21:51:32 -04:00
0d7d85c81e
glasm: Add missing semicolon on tesscoord reading
2021-07-22 21:51:32 -04:00
48d4e26326
glasm: Fix tessellation headers
2021-07-22 21:51:32 -04:00
9ec2303ad6
glasm: Add tessellation shader declarations
2021-07-22 21:51:32 -04:00
2913ca811e
glasm: Implement TessellationEvaluationPoint
2021-07-22 21:51:32 -04:00
a569ac418e
glasm: Implement patch memory
2021-07-22 21:51:32 -04:00
164b8c1ec5
glasm: Fix InvocationId declaration
2021-07-22 21:51:32 -04:00
d5db96386d
glasm: Implement InvocationId
2021-07-22 21:51:32 -04:00
679e7146a7
glasm: Optimize EmitVertex into EMIT
2021-07-22 21:51:32 -04:00
79929be833
glasm: Implement geometry shader attribute reads
2021-07-22 21:51:32 -04:00
83cef0426b
glasm: Properly declare attributes on geometry programs
2021-07-22 21:51:32 -04:00
fad139a3e6
glasm: Declare geometry program headers
2021-07-22 21:51:32 -04:00
0a54291c9c
glasm: Fix potential aliasing bug on cube array samples
2021-07-22 21:51:32 -04:00
8fdb00a2b5
glasm: Implement ImageWrite
2021-07-22 21:51:32 -04:00
dadd192b30
glasm: Implement ImageRead
2021-07-22 21:51:32 -04:00
3d0ffc6ad0
glasm: Implement EmitVertex and EndPrimitive
2021-07-22 21:51:32 -04:00
f79cbbf814
glasm: Implement ImageGradient
2021-07-22 21:51:32 -04:00
291f220be3
glasm: Implement 64-bit shifts
2021-07-22 21:51:32 -04:00
d957b3a8fe
glasm: Implement barriers
2021-07-22 21:51:32 -04:00
b60b3fa113
glasm: Fix compute stage name
2021-07-22 21:51:32 -04:00
96962c1d3c
glasm: Fix phi instruction types
2021-07-22 21:51:32 -04:00
91a3c2c1c0
glasm: Implement PREC on relevant instructions
2021-07-22 21:51:32 -04:00
accad56ee7
glasm: Implement stores to gl_ViewportIndex
2021-07-22 21:51:32 -04:00
2494dbe183
glasm: Implement gl_PointSize stores
2021-07-22 21:51:32 -04:00
9415c435fc
glasm: Implement gl_PointCoord
2021-07-22 21:51:32 -04:00