summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend
AgeCommit message (Collapse)Author
2021-07-22glsl: Use std::string_view for Emit function args.ameerj
2021-07-22glsl: Pass IR::Inst& to Emit functionsameerj
2021-07-22glsl: INeg and IAdd negate testsameerj
2021-07-22glsl: Reusable typed variables. IADD32ameerj
2021-07-22glsl: Fix program linking and cbufameerj
2021-07-22glsl: Fix "reg" allocingameerj
based on glasm with some tweaks
2021-07-22glsl: Initial backendameerj
2021-07-22spirv: Reduce log severity of mismatching denorm rulesReinUsesLisp
2021-07-22shader: Add loggingReinUsesLisp
2021-07-22shader: Add shader loop safety check settingslat9nq
Also add a setting for enable Nsight Aftermath.
2021-07-22spirv/convert: Catch more signed operations oversightsameerj
The sign bit on integers of size < 32 was not properly preserved in casts
2021-07-22spirv/convert: Catch more broken signed operations on Nvidia OpenGLReinUsesLisp
BitCast U32 to S32 before converting to float on drivers with broken signed operations.
2021-07-22glasm: Use ARB_derivative_control conditionallyReinUsesLisp
2021-07-22emit_glasm_context_get_set: Remove unused variablelat9nq
2021-07-22shader,glasm: Implement legacy texcoord loadsReinUsesLisp
2021-07-22glasm: Implement legacy varyingsReinUsesLisp
2021-07-22shader: Add support for "negative" and unaligned offsetsReinUsesLisp
"Negative" offsets don't exist. They are shown as such due to a bug in nvdisasm. Unaligned offsets have been proved to read the aligned offset. For example, when reading an U32, if the offset is 6, the offset read will be 4.
2021-07-22spirv: Fix output generics with componentsReinUsesLisp
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-22spirv: Fix image and image buffer descriptor index usageReinUsesLisp
2021-07-22glasm: Fix immediate texture coordinateReinUsesLisp
2021-07-22glasm: Reduce reg allocation leaks from an exception to a logReinUsesLisp
2021-07-22glasm: Use integer lod for TXQReinUsesLisp
2021-07-22glasm: Fix global memory fallbacksReinUsesLisp
2021-07-22Revert "glasm: Skip phi moves on undefined instructions"ReinUsesLisp
Causes regressions on Bowser's Fury.
2021-07-22glasm: Remove unintentional '\n' on Undef32ReinUsesLisp
2021-07-22glasm: Use storage buffers instead of global memory when possibleReinUsesLisp
2021-07-22glasm: Implement Y directionReinUsesLisp
2021-07-22glasm: Skip phi moves on undefined instructionsReinUsesLisp
2021-07-22glasm: Implement undef instructionsReinUsesLisp
2021-07-22glasm: Fix global memory callbacksReinUsesLisp
2021-07-22glasm: Release phi node registers after they are no longer neededReinUsesLisp
2021-07-22glasm: Fix INeg32 on negative immediatesReinUsesLisp
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-22glasm: Implement global memory fallbacksReinUsesLisp
2021-07-22glasm: Implement int64 add and subtractReinUsesLisp
2021-07-22emit_glasm_context_get_set: Remove unused variablelat9nq
2021-07-22glasm: Implement indirect attribute loadsReinUsesLisp
2021-07-22glasm: Implement image atomicsReinUsesLisp
2021-07-22glasm: Reorder unreachable image atomic instsReinUsesLisp
Reorder them to the bottom of the file for readability.
2021-07-22glasm: Implement gl_Layer storesReinUsesLisp
2021-07-22glasm: Implement SampleIdReinUsesLisp
2021-07-22glasm: Implement IsHelperInvocationReinUsesLisp
2021-07-22glasm: Fix EmitVertex's optimizationReinUsesLisp
2021-07-22gl_shader_cache,glasm: Conditionally use typeless image reads extensionReinUsesLisp
2021-07-22glasm: Implement forced early ZReinUsesLisp
2021-07-22glasm: Simplify patch readsReinUsesLisp