Commit Graph

372 Commits

Author SHA1 Message Date
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
12dcb9fcc2 glasm: Implement ImageQueryLod 2021-07-22 21:51:32 -04:00
4a22942f45 glasm: Implement ImageFetch 2021-07-22 21:51:32 -04:00
3777592ada glasm: Implement IADD.CC 2021-07-22 21:51:32 -04:00