ReinUsesLisp
f79cbbf814
glasm: Implement ImageGradient
2021-07-22 21:51:32 -04:00
ReinUsesLisp
291f220be3
glasm: Implement 64-bit shifts
2021-07-22 21:51:32 -04:00
ReinUsesLisp
d957b3a8fe
glasm: Implement barriers
2021-07-22 21:51:32 -04:00
ReinUsesLisp
b60b3fa113
glasm: Fix compute stage name
2021-07-22 21:51:32 -04:00
ReinUsesLisp
96962c1d3c
glasm: Fix phi instruction types
2021-07-22 21:51:32 -04:00
ReinUsesLisp
91a3c2c1c0
glasm: Implement PREC on relevant instructions
2021-07-22 21:51:32 -04:00
ReinUsesLisp
accad56ee7
glasm: Implement stores to gl_ViewportIndex
2021-07-22 21:51:32 -04:00
ReinUsesLisp
2494dbe183
glasm: Implement gl_PointSize stores
2021-07-22 21:51:32 -04:00
ReinUsesLisp
9415c435fc
glasm: Implement gl_PointCoord
2021-07-22 21:51:32 -04:00
ReinUsesLisp
12dcb9fcc2
glasm: Implement ImageQueryLod
2021-07-22 21:51:32 -04:00
ReinUsesLisp
4a22942f45
glasm: Implement ImageFetch
2021-07-22 21:51:32 -04:00
ameerj
3777592ada
glasm: Implement IADD.CC
2021-07-22 21:51:32 -04:00
ReinUsesLisp
98ed8ff103
glasm: Implement BFE.CC
2021-07-22 21:51:32 -04:00
ReinUsesLisp
2e0d56da7e
glasm: Implement SelectU1
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e8ed904805
glasm: Implement gl_WorkGroupID
2021-07-22 21:51:32 -04:00
ReinUsesLisp
0a42277a4f
glasm: Implement TXQ and improve texture info reads
2021-07-22 21:51:32 -04:00
ReinUsesLisp
c560bf99c2
glasm: Implement gl_FrongFacing attribute
2021-07-22 21:51:32 -04:00
ReinUsesLisp
8b7d5912d6
glasm: Support textures used in more than one stage
2021-07-22 21:51:32 -04:00
ReinUsesLisp
3d3ed53511
glasm: Implement textureGather instructions
2021-07-22 21:51:32 -04:00
ReinUsesLisp
0fa421f82f
glasm: Implement gl_FragDepth and gl_SampleMask stores
2021-07-22 21:51:32 -04:00
ReinUsesLisp
1ee7f8b943
glasm: Do not alias ConditionRef for now
...
Immediate condition refs where not handled correctly. Just move the
value for now.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
...
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
4bad415bca
glasm: Implement InstanceId and VertexId
2021-07-22 21:51:31 -04:00
ReinUsesLisp
afcb140185
glasm: Add missing return value on move assignment
2021-07-22 21:51:31 -04:00
ReinUsesLisp
fb3ba62b3a
glasm: Fix aliased bitcasts ref counting
2021-07-22 21:51:31 -04:00
ReinUsesLisp
f1b334b9f9
glasm: Remove unintentional comma on vector insert
2021-07-22 21:51:31 -04:00
ReinUsesLisp
ec6fc5fe78
glasm: Implement TEX and TEXS instructions
...
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
2021-07-22 21:51:31 -04:00
ReinUsesLisp
c42a6143a5
glasm: Add support for non-2D texture samples
2021-07-22 21:51:31 -04:00
ReinUsesLisp
bee9fb0563
glasm: Reorder unreachable image instructions to the bottom
2021-07-22 21:51:31 -04:00
ReinUsesLisp
e6b4d461d2
glasm: Add support for texture offsets
2021-07-22 21:51:31 -04:00
ReinUsesLisp
bf2949df10
glasm: Improve texture sampling instructions
2021-07-22 21:51:31 -04:00
ReinUsesLisp
db2f0f4108
emit_glasm: Enable ARB_draw_buffers when needed
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3c06293e20
emit_glasm: Add support for reading position attributes
2021-07-22 21:51:31 -04:00
lat9nq
f7a2340205
shader_recompiler: GCC fixes
...
Fixes members of unnamed union not being accessible, and one function
without a declaration.
2021-07-22 21:51:31 -04:00
ameerj
d4f9c798d6
glasm: Implement rest of shared mem
2021-07-22 21:51:31 -04:00
ReinUsesLisp
776ab3ea12
shader: Use a non-trivial dummy to construct ASL node union
2021-07-22 21:51:31 -04:00
ReinUsesLisp
38e7b8c805
emit_spirv: Jump to loop body with local variable
...
Silence unused variable warning
2021-07-22 21:51:31 -04:00
ReinUsesLisp
464f13fe0b
glasm: Implement derivative instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
9fb2ea08e8
glasm: Initial (broken) implementation of TEX on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
1f3446b47e
glasm: Implement some graphics instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
31d402ee74
glasm: Add Void type to GLASM values
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3764750339
glasm: Add graphics specific shader declarations to GLASM
2021-07-22 21:51:31 -04:00
ameerj
057dee4856
glasm: Implement local memory for glasm
2021-07-22 21:51:31 -04:00
ReinUsesLisp
ab5dbe7c29
emit_spirv: Add missing block in case
2021-07-22 21:51:31 -04:00
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
0f88fb5d72
glasm: Write result to scalar on integer comparison instructions
2021-07-22 21:51:31 -04:00
ReinUsesLisp
d4385c34e3
glasm: Declare NV_shader_thread_group when needed
2021-07-22 21:51:31 -04:00
ReinUsesLisp
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
ameerj
7ff5851608
glasm: Implement Storage atomics
...
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
2021-07-22 21:51:31 -04:00
ReinUsesLisp
8c81a20ace
glasm: Ensure reg alloc order across compilers on GLASM
...
Use a struct constructor to serialize register allocation arguments to
ensure registers are allocated in the same order regardless of the
compiler used.
The A and B functions can be called in any order when passed as
arguments to "foo":
foo(A(), B())
But the order is guaranteed for curly-braced constructor calls in
classes:
Foo{A(), B()}
Use this to get consistent behavior.
2021-07-22 21:51:31 -04:00