Commit Graph

18947 Commits

Author SHA1 Message Date
ReinUsesLisp e607d856c2 glasm: Remove unintentional '\n' on Undef32 2021-07-22 21:51:33 -04:00
ReinUsesLisp df14567fcc glasm: Use storage buffers instead of global memory when possible 2021-07-22 21:51:33 -04:00
ReinUsesLisp ec19b0d7eb glasm: Implement Y direction 2021-07-22 21:51:33 -04:00
ReinUsesLisp 459e3b17e6 glasm: Skip phi moves on undefined instructions 2021-07-22 21:51:33 -04:00
ReinUsesLisp 91a375b557 glasm: Implement undef instructions 2021-07-22 21:51:33 -04:00
ReinUsesLisp 93b8943fae glasm: Fix global memory callbacks 2021-07-22 21:51:33 -04:00
ReinUsesLisp 58b5083052 gl_shader_cache: Add disk shader cache 2021-07-22 21:51:33 -04:00
ReinUsesLisp 205bf15e71 video_core,shader: Clang-format fixes 2021-07-22 21:51:33 -04:00
ReinUsesLisp ddb24146b6 gl_shader_cache: Rename Program abstractions into Pipeline 2021-07-22 21:51:33 -04:00
ReinUsesLisp 3e5b0c116d glasm: Release phi node registers after they are no longer needed 2021-07-22 21:51:33 -04:00
ReinUsesLisp d284ce48e2 glasm: Remove unintentionally committed fmt::prints 2021-07-22 21:51:33 -04:00
ReinUsesLisp 8d77a943cc glasm: Fix INeg32 on negative immediates 2021-07-22 21:51:33 -04:00
ReinUsesLisp 42a91d4366 glasm: Remove unnecessary value types 2021-07-22 21:51:33 -04:00
ReinUsesLisp 6bf6015548 glasm: Throw when there are register leaks 2021-07-22 21:51:33 -04:00
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.
2021-07-22 21:51:33 -04:00
ReinUsesLisp a5ce5f4a65 glasm: Fix usage counting on phi nodes 2021-07-22 21:51:33 -04:00
ReinUsesLisp 921b6b48be gl_shader_cache: Do not flip tessellation on OpenGL 2021-07-22 21:51:33 -04:00
ReinUsesLisp 548871e127 gl_graphics_program: Fix texture buffer bindings 2021-07-22 21:51:33 -04:00
ReinUsesLisp 09ad2b5994 glasm: Implement global memory fallbacks 2021-07-22 21:51:33 -04:00
ReinUsesLisp 46edc93371 glasm: Implement int64 add and subtract 2021-07-22 21:51:33 -04:00
lat9nq 90e2710052 emit_glasm_context_get_set: Remove unused variable 2021-07-22 21:51:33 -04:00
ReinUsesLisp e9a5390a92 glasm: Implement indirect attribute loads 2021-07-22 21:51:33 -04:00
ReinUsesLisp 2e2d1986b1 glasm: Implement image atomics 2021-07-22 21:51:33 -04:00
ReinUsesLisp 9a2176f883 glasm: Reorder unreachable image atomic insts
Reorder them to the bottom of the file for readability.
2021-07-22 21:51:33 -04:00
ReinUsesLisp 26ba81b9bf glasm: Implement gl_Layer stores 2021-07-22 21:51:33 -04:00
ReinUsesLisp dd41025472 glasm: Implement SampleId 2021-07-22 21:51:33 -04:00
ReinUsesLisp 5f9dd18113 glasm: Implement IsHelperInvocation 2021-07-22 21:51:33 -04:00
ReinUsesLisp b0b43d2a66 glasm: Fix EmitVertex's optimization 2021-07-22 21:51:33 -04:00
ReinUsesLisp 712afb51d4 gl_shader_cache: Conditionally use viewport mask 2021-07-22 21:51:33 -04:00
ReinUsesLisp 94d3b4d7e3 gl_shader_cache,glasm: Conditionally use typeless image reads extension 2021-07-22 21:51:33 -04:00
ReinUsesLisp 8aa7240b7f gl_shader_cache: Improve GLASM error print logic 2021-07-22 21:51:33 -04:00
ReinUsesLisp 16c95ab56d glasm: Implement forced early Z 2021-07-22 21:51:33 -04:00
ReinUsesLisp 220e679fdf glasm: Set transform feedback state 2021-07-22 21:51:33 -04:00
ReinUsesLisp 06ae1bff4b video_core: Abstract transform feedback translation utility 2021-07-22 21:51:33 -04:00
ReinUsesLisp 9960abf482 glasm: Simplify patch reads 2021-07-22 21:51:33 -04:00
ReinUsesLisp 8499797b68 glasm: Fix output patch reads
With this, Luigi's Mansion's sand renders properly.
2021-07-22 21:51:33 -04:00
ReinUsesLisp c45503bcb7 gl_shader_cache: Pass shader runtime information 2021-07-22 21:51:33 -04:00
ReinUsesLisp 9452fe2dc6 shader: Split profile and runtime information in separate structs 2021-07-22 21:51:33 -04:00
ameerj 22f261e954 emit_glasm_context_get_and_set.cpp: Add missing semicolons 2021-07-22 21:51:33 -04:00
ReinUsesLisp 83ff44531b glasm: Fix patch attribute declarations 2021-07-22 21:51:33 -04:00
ameerj 68fb25a223 glasm: Implement FSWZADD 2021-07-22 21:51:33 -04:00
ReinUsesLisp 8fa82725d1 glasm: Implement PrimitiveId attribute read 2021-07-22 21:51:33 -04:00
ReinUsesLisp 62f0368ce4 glasm: Implement clip distance stores 2021-07-22 21:51:32 -04:00
ReinUsesLisp 7d0baaa1c9 glasm: Fix tessellation input attributes 2021-07-22 21:51:32 -04:00
ReinUsesLisp 35db68e859 glasm: Add missing semicolon on tesscoord reading 2021-07-22 21:51:32 -04:00
ReinUsesLisp 53705226c6 glasm: Fix tessellation headers 2021-07-22 21:51:32 -04:00
ReinUsesLisp e8289a4e5f glasm: Add tessellation shader declarations 2021-07-22 21:51:32 -04:00
ReinUsesLisp 539a4ef59c glasm: Implement TessellationEvaluationPoint 2021-07-22 21:51:32 -04:00
ReinUsesLisp d4bc962012 gl_shader_manager: Zero initialize current assembly programs 2021-07-22 21:51:32 -04:00
ReinUsesLisp bde1749606 gl_shader_manager: Remove unintentionally committed #pragma 2021-07-22 21:51:32 -04:00