Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | shader: Avoid usage of C++20 ranges to build in clang | ReinUsesLisp | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | glasm: Add passthrough geometry shader support | ReinUsesLisp | 2021-07-23 | 1 | -5/+23 |
| | |||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
* | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-23 | 1 | -0/+17 |
| | |||||
* | glasm: Implement SetAttribute ViewportMask | ameerj | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Split profile and runtime info headers | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Use ARB_derivative_control conditionally | ReinUsesLisp | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | opengl: Declare fragment outputs even if they are not used | ReinUsesLisp | 2021-07-23 | 1 | -2/+1 |
| | | | | | | 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. | ||||
* | glasm: Reduce reg allocation leaks from an exception to a log | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement Y direction | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Release phi node registers after they are no longer needed | ReinUsesLisp | 2021-07-23 | 1 | -31/+22 |
| | |||||
* | glasm: Remove unnecessary value types | ReinUsesLisp | 2021-07-23 | 1 | -11/+1 |
| | |||||
* | glasm: Throw when there are register leaks | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Catch more register leaks | ReinUsesLisp | 2021-07-23 | 1 | -1/+7 |
| | | | | | | | | | | | | | 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. | ||||
* | glasm: Fix usage counting on phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -3/+9 |
| | |||||
* | gl_shader_cache,glasm: Conditionally use typeless image reads extension | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | glasm: Implement forced early Z | ReinUsesLisp | 2021-07-23 | 1 | -2/+6 |
| | |||||
* | shader: Split profile and runtime information in separate structs | ReinUsesLisp | 2021-07-23 | 1 | -9/+10 |
| | |||||
* | glasm: Implement FSWZADD | ameerj | 2021-07-23 | 1 | -1/+15 |
| | |||||
* | glasm: Fix tessellation headers | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Add tessellation shader declarations | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Declare geometry program headers | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Implement ImageRead | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | glasm: Implement stores to gl_ViewportIndex | ReinUsesLisp | 2021-07-23 | 1 | -4/+12 |
| | |||||
* | glasm: Support textures used in more than one stage | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | emit_glasm: Enable ARB_draw_buffers when needed | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 1 | -8/+8 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | glasm: Add Void type to GLASM values | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | glasm: Add graphics specific shader declarations to GLASM | ReinUsesLisp | 2021-07-23 | 1 | -6/+26 |
| | |||||
* | glasm: Implement local memory for glasm | ameerj | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -3/+56 |
| | |||||
* | glasm: Declare NV_shader_thread_group when needed | ReinUsesLisp | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 1 | -7/+34 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | glasm: Implement Storage atomics | ameerj | 2021-07-23 | 1 | -0/+7 |
| | | | | | StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register | ||||
* | glasm: Ensure reg alloc order across compilers on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -11/+14 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | glasm: Enable unintentionally disabled register aliasing on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -16/+11 |
| | |||||
* | glasm: Implement shuffle and vote instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | glasm: Fix register allocation when moving immediate on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -11/+39 |
| | |||||
* | glasm: Fix moving U64 immediates to registers in GLASM | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | glasm: Implement storage atomic ops | ameerj | 2021-07-23 | 1 | -0/+13 |
| | |||||
* | glasm: Add conversion instructions to GLASM | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Initial GLASM fp64 support | ReinUsesLisp | 2021-07-23 | 1 | -4/+13 |
| | |||||
* | glasm: Implement GLASM fp16 packing and move bitwise insns | ReinUsesLisp | 2021-07-23 | 1 | -40/+0 |
| | |||||
* | glasm: Make GLASM aware of types | ReinUsesLisp | 2021-07-23 | 1 | -18/+77 |
| | |||||
* | glasm: Remove unused argument in identity instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -7/+7 |
| | |||||
* | glasm: Implement basic GLASM instructions | ReinUsesLisp | 2021-07-23 | 1 | -3/+63 |
| | |||||
* | glasm: Add GLASM backend infrastructure | ReinUsesLisp | 2021-07-23 | 1 | -0/+95 |