ameerj
9f64e023df
glasm: Add MS sampler types
3 years ago
FengChen
12f2ab01bb
shader: Implement miss attribute layer
3 years ago
Andrea Pappacoda
b1585fed5a
chore: fix some typos
Fix some typos reported by Lintian
3 years ago
FengChen
38e9c78843
video_core: Generate mipmap texture by drawing
3 years ago
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
4 years ago
ameerj
efd428c747
shader_recompiler: Adjust emit_context includes
4 years ago
ReinUsesLisp
0d12e498ab
glsl/glasm: Pass and use scaling parameters in shaders
4 years ago
Lioncash
00bd622334
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
This should be LINES_ADJACENCY
4 years ago
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
5 years ago
ReinUsesLisp
362888dcb0
glasm: Add passthrough geometry shader support
5 years ago
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.
5 years ago
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
5 years ago
ameerj
1d99187d4c
glasm: Implement SetAttribute ViewportMask
5 years ago
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
5 years ago
ReinUsesLisp
f40daa777e
shader: Add logging
5 years ago
ReinUsesLisp
5fa6d7a3b9
glasm: Use ARB_derivative_control conditionally
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
1a02dee23a
glasm: Reduce reg allocation leaks from an exception to a log
5 years ago
ReinUsesLisp
ec19b0d7eb
glasm: Implement Y direction
5 years ago
ReinUsesLisp
3e5b0c116d
glasm: Release phi node registers after they are no longer needed
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
94d3b4d7e3
gl_shader_cache,glasm: Conditionally use typeless image reads extension
5 years ago
ReinUsesLisp
16c95ab56d
glasm: Implement forced early Z
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ameerj
68fb25a223
glasm: Implement FSWZADD
5 years ago
ReinUsesLisp
53705226c6
glasm: Fix tessellation headers
5 years ago
ReinUsesLisp
e8289a4e5f
glasm: Add tessellation shader declarations
5 years ago
ReinUsesLisp
1efc77e510
glasm: Declare geometry program headers
5 years ago
ReinUsesLisp
96d2dd78b0
glasm: Implement ImageRead
5 years ago
ReinUsesLisp
601f7bfd00
glasm: Implement stores to gl_ViewportIndex
5 years ago
ReinUsesLisp
0c82ee3444
glasm: Support textures used in more than one stage
5 years ago
ReinUsesLisp
5c6dc51c69
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
0b3a3f35e8
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
5 years ago
ReinUsesLisp
22fb9cc538
emit_glasm: Enable ARB_draw_buffers when needed
5 years ago
lat9nq
69210028b4
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
58cf7baaea
glasm: Add Void type to GLASM values
5 years ago
ReinUsesLisp
6758e3d946
glasm: Add graphics specific shader declarations to GLASM
5 years ago
ameerj
d0c4cca02d
glasm: Implement local memory for glasm
5 years ago
ReinUsesLisp
f2ae32fa76
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
ffdaa42529
glasm: Declare NV_shader_thread_group when needed
5 years ago
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.
5 years ago
ameerj
8a556b49cf
glasm: Implement Storage atomics
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
5 years ago
ReinUsesLisp
8331e533f4
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.
5 years ago
ReinUsesLisp
d9a11b2388
glasm: Enable unintentionally disabled register aliasing on GLASM
5 years ago
ReinUsesLisp
7273fcab95
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
ReinUsesLisp
cfff5bad59
glasm: Fix register allocation when moving immediate on GLASM
5 years ago
ReinUsesLisp
b5b5006016
glasm: Fix moving U64 immediates to registers in GLASM
5 years ago