Valeri
1510efac15
SPIR-V: Merge two ifs in EmitGetAttribute
4 years ago
ReinUsesLisp
ecc05bdcb6
shader: Fold UnpackFloat2x16 and PackFloat2x16
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
4 years ago
ReinUsesLisp
d84b81fdfb
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass.
4 years ago
Lioncash
b5ce444508
exception: Make constructors explicit
Ensures that exception construction is always explicit.
4 years ago
Lioncash
b650c38a31
exception: Make what() member function nodiscard
4 years ago
Lioncash
d04bbd8207
exception: Narrow down specific header
We can use the <exception> header instead of pulling in all of the
exception-style classes.
4 years ago
Lioncash
00bd622334
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
This should be LINES_ADJACENCY
4 years ago
Lioncash
0692818106
emit_spirv_instructions: Add missing header guard
4 years ago
Lioncash
05201f4f88
shader_recompiler: Remove unnecessary [[nodiscard]] instances
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
4 years ago
Lioncash
9d5aa3d65a
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
4 years ago
Lioncash
23da07e8e5
object_pool: Add missing return in Chunk move assignment operator
Prevents undefined behavior from occurring.
4 years ago
ReinUsesLisp
4f19303fe0
shader: Fold integer FMA from Nvidia's pattern
Fold shaders doing "a * b + c" on integers from the pattern generated by
Nvidia's GL compiler.
On a somewhat complex compute shader it reduces the code size by 16
instructions from 2 matches on Turing GPUs.
On Intel as extracted from KHR_pipeline_executable_properties:
Before the optimization:
```
Instruction Count: 2057
Basic Block Count: 45
Scratch Memory Size: 14752
Spill Count: 232
Fill Count: 261
SEND Count: 610
Cycle Count: 11325
```
After the optimization:
```
Instruction Count: 2046
Basic Block Count: 44
Scratch Memory Size: 13728
Spill Count: 219
Fill Count: 268
SEND Count: 604
Cycle Count: 11367
```
4 years ago
ReinUsesLisp
c6e1483e17
shader: Use TryInstRecursive on XMAD multiply folding
Simplify a bit the logic.
4 years ago
ReinUsesLisp
222a6542ab
shader: Add TryInstRecursive utility to values
4 years ago
ReinUsesLisp
ba89444667
shader: Support out of bound local memory reads and immediate writes
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
4 years ago
ameerj
3927809a63
shader: Fix disabled attribute default values
5 years ago
ameerj
e6d3a301f2
glsl: Simplify FCMP emission
5 years ago
ameerj
4f3e869dd0
glsl: Update TessellationControl gl_in
Adheres to GL_ARB_separate_shader_objects requirements
5 years ago
ameerj
ffe72f8d37
shader: Implement ISETP.X
5 years ago
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
5 years ago
ameerj
a23f05c215
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
5 years ago
lat9nq
b557314001
shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
5 years ago
ReinUsesLisp
cdb3837085
shader: Manually convert from array<u32> to bitset instead of using bit_cast
5 years ago
ameerj
f2f16e3a1d
glsl: Fix tracking of info.uses_shadow_lod
5 years ago
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
ameerj
d54c4880d1
dual_vertex_pass: Clang format
5 years ago
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
5 years ago
ameerj
79e317ad7d
shader: Account for 33-bit IADD3 scenario
5 years ago
ReinUsesLisp
611797a7c6
shader: Only apply shift on register mode for IADD3
5 years ago
ReinUsesLisp
b48b4b0600
shader: Fix disabled and unwritten attributes and varyings
5 years ago
ameerj
d77dc5919c
glsl: Fix shared and local memory declarations
account for the fact that program.*memory_size is in units of bytes.
5 years ago
ameerj
33d21ac2db
opengl: Implement LOP.CC
Used by MH:Rise
5 years ago
ReinUsesLisp
7dc8577529
spirv: Fix code emission when descriptor aliasing is unsupported
Fixes OpenGL.
5 years ago
ameerj
c446ada33e
glsl: Declare local memory in main
5 years ago
ameerj
0810714e46
glsl: Add passthrough geometry shader support
5 years ago
ReinUsesLisp
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
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
6db3ba6542
shader: Only verify shader when graphics debugging is enabled
5 years ago
ReinUsesLisp
c0705f79b8
shader: Unify shader stage types
5 years ago
lat9nq
0f092f17af
lower_int64_to_int32: Add missing include
5 years ago
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
5 years ago
ReinUsesLisp
e3df2285ca
shader: Add int64 to int32 lowering pass
5 years ago
ReinUsesLisp
ba211323ab
shader: Teach global memory base tracker to follow vectors
5 years ago
ReinUsesLisp
f54fa4a1f5
shader: Add constant propagation to integer vectors
5 years ago
ameerj
99e8164b43
glsl: Better IAdd Overflow CC fix
This ensures the original operand values are not overwritten when being used in the overflow detection.
5 years ago
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
5 years ago
ameerj
516c17d4d3
glsl: Fix IADD CC
5 years ago
ameerj
58a052072c
shader_recompiler: Fix IADD3 input partitioning
5 years ago