ameerj
3d950a8d18
glsl: implement phi nodes
5 years ago
ameerj
659eecb295
glsl: Wip storage atomic ops
5 years ago
ameerj
b3fce08191
glsl: Implement FCMP
5 years ago
ameerj
7febd59ce1
glsl: Add a more robust fp formatter
5 years ago
ameerj
bf40d10805
glsl: More FP fixes
5 years ago
ameerj
d7656077bf
glsl: FP function fixes
5 years ago
ameerj
30f47ec831
glsl: More FP instructions/fixes
5 years ago
ameerj
1dae770c9d
glsl: Add many FP32/64 instructions
5 years ago
ameerj
1df4541247
glsl: Implement more Integer ops
5 years ago
ameerj
fc36d45a97
glsl: Implement BF*
5 years ago
ameerj
eea0726cd5
glsl: Implement a few Integer instructions
5 years ago
ameerj
0c315dae67
glsl: Use std::string_view for Emit function args.
5 years ago
ameerj
b2cd8e4588
glsl: Pass IR::Inst& to Emit functions
5 years ago
ameerj
c01220d25a
glsl: INeg and IAdd negate tests
5 years ago
ameerj
6ee142d3e4
glsl: Reusable typed variables. IADD32
5 years ago
ameerj
690e6a79c7
glsl: Fix program linking and cbuf
5 years ago
ameerj
3355c467e0
glsl: Fix "reg" allocing
based on glasm with some tweaks
5 years ago
ameerj
fda83fe3c5
glsl: Initial backend
5 years ago
ReinUsesLisp
04fed81921
spirv: Reduce log severity of mismatching denorm rules
5 years ago
ReinUsesLisp
f40daa777e
shader: Add logging
5 years ago
lat9nq
3a70b6c79b
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
5 years ago
ameerj
60b33bdc9f
spirv/convert: Catch more signed operations oversights
The sign bit on integers of size < 32 was not properly preserved in casts
5 years ago
ReinUsesLisp
4fedf2c20a
spirv/convert: Catch more broken signed operations on Nvidia OpenGL
BitCast U32 to S32 before converting to float on drivers with broken
signed operations.
5 years ago
ReinUsesLisp
5fa6d7a3b9
glasm: Use ARB_derivative_control conditionally
5 years ago
lat9nq
6e9eab2c32
emit_glasm_context_get_set: Remove unused variable
5 years ago
ReinUsesLisp
34d1a2ffe5
shader,glasm: Implement legacy texcoord loads
5 years ago
ReinUsesLisp
b9a0a742fa
glasm: Implement legacy varyings
5 years ago
ReinUsesLisp
4744a21bd4
shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
5 years ago
ReinUsesLisp
d27dbec3e6
spirv: Fix output generics with components
5 years ago
ReinUsesLisp
9750e0410b
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.
5 years ago
ReinUsesLisp
f7508aa014
spirv: Fix image and image buffer descriptor index usage
5 years ago
ReinUsesLisp
bd96e0a436
glasm: Fix immediate texture coordinate
5 years ago
ReinUsesLisp
1a02dee23a
glasm: Reduce reg allocation leaks from an exception to a log
5 years ago
ReinUsesLisp
50e491f101
glasm: Use integer lod for TXQ
5 years ago
ReinUsesLisp
5339775f96
glasm: Fix global memory fallbacks
5 years ago
ReinUsesLisp
0ca75be20a
Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
5 years ago
ReinUsesLisp
e607d856c2
glasm: Remove unintentional '\n' on Undef32
5 years ago
ReinUsesLisp
df14567fcc
glasm: Use storage buffers instead of global memory when possible
5 years ago
ReinUsesLisp
ec19b0d7eb
glasm: Implement Y direction
5 years ago
ReinUsesLisp
459e3b17e6
glasm: Skip phi moves on undefined instructions
5 years ago
ReinUsesLisp
91a375b557
glasm: Implement undef instructions
5 years ago
ReinUsesLisp
93b8943fae
glasm: Fix global memory callbacks
5 years ago
ReinUsesLisp
3e5b0c116d
glasm: Release phi node registers after they are no longer needed
5 years ago
ReinUsesLisp
8d77a943cc
glasm: Fix INeg32 on negative immediates
5 years ago
ReinUsesLisp
42a91d4366
glasm: Remove unnecessary value types
5 years ago
ReinUsesLisp
6bf6015548
glasm: Throw when there are register leaks
5 years ago
ReinUsesLisp
143db4b112
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.
5 years ago
ReinUsesLisp
a5ce5f4a65
glasm: Fix usage counting on phi nodes
5 years ago
ReinUsesLisp
09ad2b5994
glasm: Implement global memory fallbacks
5 years ago
ReinUsesLisp
46edc93371
glasm: Implement int64 add and subtract
5 years ago