aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/emit_glasm.cpp
AgeCommit message (Collapse)Author
2023-06-25emit_glasm: Fix lmem size computationameerj
2023-01-27glasm: Add MS sampler typesameerj
2022-11-17shader: Implement miss attribute layerFengChen
2022-11-03Merge pull request #8858 from vonchenplus/mipmapbunnei
video_core: Generate mipmap texture by drawing
2022-09-23chore: fix some typosAndrea Pappacoda
Fix some typos reported by Lintian
2022-09-20video_core: Generate mipmap texture by drawingFengChen
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2021-12-05shader_recompiler: Adjust emit_context includesameerj
2021-11-16glsl/glasm: Pass and use scaling parameters in shadersReinUsesLisp
2021-07-26emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()Lioncash
This should be LINES_ADJACENCY
2021-07-22shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp
2021-07-22glasm: Add passthrough geometry shader supportReinUsesLisp
2021-07-22shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
2021-07-22shader: Move loop safety tests to code emissionReinUsesLisp
2021-07-22glasm: Implement SetAttribute ViewportMaskameerj
2021-07-22shader: Split profile and runtime info headersReinUsesLisp
2021-07-22shader: Add loggingReinUsesLisp
2021-07-22glasm: Use ARB_derivative_control conditionallyReinUsesLisp
2021-07-22opengl: Declare fragment outputs even if they are not usedReinUsesLisp
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.
2021-07-22glasm: Reduce reg allocation leaks from an exception to a logReinUsesLisp
2021-07-22glasm: Implement Y directionReinUsesLisp
2021-07-22glasm: Release phi node registers after they are no longer neededReinUsesLisp
2021-07-22glasm: Remove unnecessary value typesReinUsesLisp
2021-07-22glasm: Throw when there are register leaksReinUsesLisp
2021-07-22glasm: Catch more register leaksReinUsesLisp
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-22glasm: Fix usage counting on phi nodesReinUsesLisp
2021-07-22gl_shader_cache,glasm: Conditionally use typeless image reads extensionReinUsesLisp
2021-07-22glasm: Implement forced early ZReinUsesLisp
2021-07-22shader: Split profile and runtime information in separate structsReinUsesLisp
2021-07-22glasm: Implement FSWZADDameerj
2021-07-22glasm: Fix tessellation headersReinUsesLisp
2021-07-22glasm: Add tessellation shader declarationsReinUsesLisp
2021-07-22glasm: Declare geometry program headersReinUsesLisp
2021-07-22glasm: Implement ImageReadReinUsesLisp
2021-07-22glasm: Implement stores to gl_ViewportIndexReinUsesLisp
2021-07-22glasm: Support textures used in more than one stageReinUsesLisp
2021-07-22shader: Read branch conditions from an instructionReinUsesLisp
Fixes the identity removal pass.
2021-07-22glasm: Implement TEX and TEXS instructionsReinUsesLisp
Remove lod clamp from texture instructions with lod, as this is not needed (nor supported).
2021-07-22emit_glasm: Enable ARB_draw_buffers when neededReinUsesLisp
2021-07-22shader_recompiler: GCC fixeslat9nq
Fixes members of unnamed union not being accessible, and one function without a declaration.
2021-07-22glasm: Add Void type to GLASM valuesReinUsesLisp
2021-07-22glasm: Add graphics specific shader declarations to GLASMReinUsesLisp
2021-07-22glasm: Implement local memory for glasmameerj
2021-07-22glasm: Initial implementation of phi nodes on GLASMReinUsesLisp
2021-07-22glasm: Declare NV_shader_thread_group when neededReinUsesLisp
2021-07-22glasm: Rework control flow introducing a syntax listReinUsesLisp
This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow.
2021-07-22glasm: Implement Storage atomicsameerj
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register
2021-07-22glasm: Ensure reg alloc order across compilers on GLASMReinUsesLisp
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.
2021-07-22glasm: Enable unintentionally disabled register aliasing on GLASMReinUsesLisp
2021-07-22glasm: Implement shuffle and vote instructions on GLASMReinUsesLisp