aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
AgeCommit message (Collapse)Author
2023-12-18shader_recompiler: use minimal clip distance arrayLiam
2023-06-25shaders: Track local memory usageameerj
2022-11-07video_core: Fix few issues in Tess stageFengChen
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.
2022-04-01shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-VLiam
2022-03-17Address review commentsLiam
2022-03-17shader_recompiler: Use functions for indirect const buffer accessesLiam
2022-03-14shader: add support for const buffer indirect addressingLiam
2022-01-29shaders: Add U64->U32x2 Atomic fallback functionsameerj
2022-01-28spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomicsameerj
Some drivers do not support 64-bit atomics, and fallback to atomically modifying U32x2 vectors. This change ensures that U32x2 storage vectors are defined in the spir-v shader when 64-bit atomics are used. Fixes a hang on some devices, notably Intel GPUs, when booting Pokemon Legends Arceus
2021-12-29shader: Add integer attribute get optimization passameerj
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-11-16shader: Properly scale image reads and add GL SPIR-V supportReinUsesLisp
Thanks for everything!
2021-11-16shader: Add IsTextureScaled opcodeReinUsesLisp
2021-11-16shader: Fix resolution scaling passReinUsesLisp
2021-07-27shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructionsReinUsesLisp
Fixes instances where fp16 types are not declared on SPIR-V but they are used. This shouldn't happen on master, as it's been uncovered by an additional optimization pass.
2021-07-22glsl: Fix tracking of info.uses_shadow_lodameerj
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: Align constant buffer sizes to 16 bytesReinUsesLisp
WAR for AMD reading zeroes on uniform buffers of size 2.
2021-07-22shader: Properly manage attributes not written from previous stagesReinUsesLisp
2021-07-22glsl: Conditionally add EXT_texture_shadow_lodameerj
2021-07-22glsl: Implement legacy varyingsameerj
2021-07-22glsl: Fix ATOM and implement ATOMSameerj
2021-07-22glsl: Track S32 atomicsameerj
2021-07-22glsl: Revert ssbo aliasing. Storage Atomics implameerj
2021-07-22glsl: Wip storage atomic opsameerj
2021-07-22buffer_cache: Reduce uniform buffer size from shader usageReinUsesLisp
Increases performance significantly on certain titles.
2021-07-22shader,glasm: Implement legacy texcoord loadsReinUsesLisp
2021-07-22shader: Track legacy varyingsReinUsesLisp
2021-07-22glasm: Implement shuffle and vote instructions on GLASMReinUsesLisp
2021-07-22shader: Optimize NVN FallthroughFernandoS27
2021-07-22shader: Implement Int32 SUATOM/SUREDameerj
2021-07-22shader: Move microinstruction header to the value headerReinUsesLisp
2021-07-22shader: Add NVN storage buffer fallbacksReinUsesLisp
When we can't track the SSBO origin of a global memory instruction, leave it as a global memory operation and assume these pointers are in the NVN storage buffer slots, then apply a linear search in the shader's runtime.
2021-07-22shader: Address feedbackFernandoS27
2021-07-22shader: Add coarse derivativesFernandoS27
2021-07-22shader: Implement fine derivates constant propagationFernandoS27
2021-07-22shader: Implement SampleMaskReinUsesLisp
2021-07-22shader: Implement PIXLD.MY_INDEXReinUsesLisp
2021-07-22spirv: Implement ViewportMask with NV_viewport_array2ReinUsesLisp
2021-07-22shader: Implement PrimitiveIdReinUsesLisp
2021-07-22shader: Implement tessellation shaders, polygon mode and invocation idReinUsesLisp
2021-07-22spirv: Implement Layer storesReinUsesLisp
2021-07-22spirv: Rework storage buffers and shader memoryReinUsesLisp
2021-07-22spirv: Define StorageImageWriteWithoutFormat capability when usedReinUsesLisp
2021-07-22shader: Implement SR_THREAD_KILLReinUsesLisp
2021-07-22shader: Implement ATOM/S and REDameerj
2021-07-22spirv: Guard against typeless image reads on unsupported devicesReinUsesLisp
2021-07-22shader: Move LaneId to the warp emission file and fix AMDReinUsesLisp
2021-07-22shader: Implement SULD and SUSTReinUsesLisp
2021-07-22shader_recompiler,video_core: Cleanup some GCC and Clang errorslat9nq
Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>