summaryrefslogtreecommitdiff
path: root/src/shader_recompiler
AgeCommit message (Collapse)Author
2021-07-22shader: Add loggingReinUsesLisp
2021-07-22shader: Add shader loop safety check settingslat9nq
Also add a setting for enable Nsight Aftermath.
2021-07-22shader: Comment why the array component is not read in TMMLReinUsesLisp
2021-07-22tmml: Remove index component from coords vecameerj
The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
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-22shader_environment: Add shader_local_memory_crs_size to local memory sizeameerj
Fixes DOOM 2016 missing local memory
2021-07-22shader: Fix VertexA Shaders.FernandoS27
2021-07-22shader: Add 2D and 3D variants to SUATOM and SUREDReinUsesLisp
Used by Claybook.
2021-07-22shader: Avoid CPU side undefined behavior on I2FReinUsesLisp
2021-07-22glasm: Use ARB_derivative_control conditionallyReinUsesLisp
2021-07-22buffer_cache: Reduce uniform buffer size from shader usageReinUsesLisp
Increases performance significantly on certain titles.
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: Track 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-22shader: Implement ISCADD32IReinUsesLisp
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-22shader: Always initialize up reference in structure control flowReinUsesLisp
Fixes ubsan issue.
2021-07-22shader: Fix ImageWrite indexingReinUsesLisp
2021-07-22spirv: Fix image and image buffer descriptor index usageReinUsesLisp
2021-07-22glasm: Fix immediate texture coordinateReinUsesLisp
2021-07-22shader: Clang-format secondary texturesReinUsesLisp
2021-07-22shader: Fix secondary texturesReinUsesLisp
2021-07-22shader: Fix TMML queriesReinUsesLisp
2021-07-22shader: Fix FSwizzleAdd folding when going through phi nodesReinUsesLisp
2021-07-22shader/exception: Fix compilation errors on gccReinUsesLisp
2021-07-22glasm: Reduce reg allocation leaks from an exception to a logReinUsesLisp
2021-07-22shader: Handle host exceptionsReinUsesLisp
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-22video_core,shader: Clang-format fixesReinUsesLisp
2021-07-22glasm: Release phi node registers after they are no longer neededReinUsesLisp
2021-07-22glasm: Remove unintentionally committed fmt::printsReinUsesLisp
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