| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | dead_code_elimination_pass: Remove unreachable Phi arguments | 2022-03-23 | 1 | -0/+27 | ||
| | | ||||||
| * | shader_recompiler/dead_code_elimination: Add DeadBranchElimination pass | 2022-03-22 | 1 | -9/+62 | ||
| | | | | | This adds a pass to eliminate if(false) branches within the shader code | |||||
| * | shader_recompiler: Reduce unused includes | 2022-03-20 | 6 | -12/+0 | ||
| | | ||||||
| * | Address review comments | 2022-03-17 | 1 | -33/+28 | ||
| | | ||||||
| * | shader_recompiler: Use functions for indirect const buffer accesses | 2022-03-17 | 1 | -0/+2 | ||
| | | ||||||
| * | shader: add support for const buffer indirect addressing | 2022-03-14 | 1 | -8/+27 | ||
| | | ||||||
| * | Merge pull request #8008 from ameerj/rescale-offsets-array | 2022-03-15 | 1 | -2/+27 | ||
| |\ | | | | | rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets | |||||
| | * | rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets | 2022-03-12 | 1 | -2/+27 | ||
| | | | | | | | | | | | | | ImageFetch offsets for 2D array coordinates have a different composite size than the coordinates. The rescaling pass was not taking this into account. Fixes broken shaders when scaling is enabled in Astral Chain, and likely other titles. | |||||
| * | | Shader decompiler: Fix storage tracking in deko3d. | 2022-03-13 | 1 | -1/+2 | ||
| |/ | ||||||
| * | lower_int64_to_int32: Add 64-bit atomic fallbacks | 2022-01-29 | 2 | -2/+67 | ||
| | | ||||||
| * | shaders: Add U64->U32x2 Atomic fallback functions | 2022-01-29 | 1 | -0/+18 | ||
| | | ||||||
| * | spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics | 2022-01-28 | 1 | -1/+1 | ||
| | | | | | | | 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 | |||||
| * | shader: Add integer attribute get optimization pass | 2021-12-29 | 2 | -0/+24 | ||
| | | | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0. | |||||
| * | ShaderCache: Better fix for Shuffling gl_FragCoord | 2021-11-16 | 1 | -2/+13 | ||
| | | ||||||
| * | Texture Cahe/Shader decompiler: Resize PointSize on rescaling, refactor and ↵ | 2021-11-16 | 1 | -0/+21 | ||
| | | | | | make reaper more agressive on 4Gb GPUs. | |||||
| * | rescaling_pass: Fix IR errors when unscalable texture types are encountered | 2021-11-16 | 1 | -0/+28 | ||
| | | ||||||
| * | rescaling_pass: Logic simplification and minor style cleanup | 2021-11-16 | 1 | -32/+17 | ||
| | | ||||||
| * | rescaling_pass: Scale ImageFetch offset if it exists | 2021-11-16 | 1 | -59/+37 | ||
| | | | | | Plus some code deduplication | |||||
| * | rescaling_pass: Enable PatchImageQueryDimensions on fragment stages | 2021-11-16 | 1 | -5/+4 | ||
| | | ||||||
| * | gl_texture_cache/rescaling_pass: minor cleanup | 2021-11-16 | 1 | -12/+8 | ||
| | | ||||||
| * | rescaling_pass: Fix and simplify shuffle/fragcoord pass | 2021-11-16 | 1 | -26/+20 | ||
| | | ||||||
| * | Shader: Don't rescale FragCoord if used by Shuffle | 2021-11-16 | 1 | -1/+52 | ||
| | | ||||||
| * | RescalingPass: Agregate pixels on texelFetch while on Fragment Shader | 2021-11-16 | 1 | -3/+97 | ||
| | | ||||||
| * | shader: Fix TextureSize check on rescaling. | 2021-11-16 | 1 | -27/+21 | ||
| | | ||||||
| * | shader: Properly scale image reads and add GL SPIR-V support | 2021-11-16 | 2 | -2/+2 | ||
| | | | | | Thanks for everything! | |||||
| * | shader: Properly blacklist and scale image loads | 2021-11-16 | 1 | -3/+19 | ||
| | | ||||||
| * | shader/rescaling_pass: Patch more instructions | 2021-11-16 | 1 | -4/+101 | ||
| | | ||||||
| * | shader: Add IsTextureScaled opcode | 2021-11-16 | 1 | -0/+1 | ||
| | | ||||||
| * | shader: Fix rescaling pass | 2021-11-16 | 1 | -1/+1 | ||
| | | ||||||
| * | shader: Fix resolution scaling pass | 2021-11-16 | 3 | -34/+30 | ||
| | | ||||||
| * | ShaderDecompiler: Add initial support for rescaling. | 2021-11-16 | 1 | -0/+72 | ||
| | | ||||||
| * | ShaderCache: Fix Phi Nodes Type on OGL. | 2021-11-01 | 1 | -0/+24 | ||
| | | ||||||
| * | ShaderCache: Order Phi Arguments from farthest away to nearest. | 2021-10-31 | 1 | -0/+7 | ||
| | | ||||||
| * | TexturePass: Fix clamping of images as this allowed negative indices. | 2021-10-24 | 1 | -1/+1 | ||
| | | ||||||
| * | Shader Compiler: avoid overflowed indices on indixed samplers. | 2021-10-17 | 1 | -1/+2 | ||
| | | ||||||
| * | Merge pull request #6767 from ReinUsesLisp/fold-float-pack | 2021-07-30 | 1 | -0/+4 | ||
| |\ | | | | | shader: Fold UnpackFloat2x16 and PackFloat2x16 | |||||
| | * | shader: Fold UnpackFloat2x16 and PackFloat2x16 | 2021-07-29 | 1 | -0/+4 | ||
| | | | | | | | | | | | Simplifies the code a bit when possible. These instructions should be no-ops codegen wise. | |||||
| * | | Merge pull request #6722 from ReinUsesLisp/xmad-opts | 2021-07-29 | 1 | -14/+187 | ||
| |\ \ | |/ |/| | shader: Fold integer FMA from Nvidia's pattern | |||||
| | * | shader: Fold integer FMA from Nvidia's pattern | 2021-07-26 | 1 | -0/+175 | ||
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fold shaders doing "a * b + c" on integers from the pattern generated by Nvidia's GL compiler. On a somewhat complex compute shader it reduces the code size by 16 instructions from 2 matches on Turing GPUs. On Intel as extracted from KHR_pipeline_executable_properties: Before the optimization: ``` Instruction Count: 2057 Basic Block Count: 45 Scratch Memory Size: 14752 Spill Count: 232 Fill Count: 261 SEND Count: 610 Cycle Count: 11325 ``` After the optimization: ``` Instruction Count: 2046 Basic Block Count: 44 Scratch Memory Size: 13728 Spill Count: 219 Fill Count: 268 SEND Count: 604 Cycle Count: 11367 ``` | |||||
| | * | shader: Use TryInstRecursive on XMAD multiply folding | 2021-07-26 | 1 | -14/+12 | ||
| | | | | | | | | | Simplify a bit the logic. | |||||
| * | | shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions | 2021-07-27 | 1 | -0/+2 | ||
| |/ | | | | | | 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. | |||||
| * | shader: Avoid usage of C++20 ranges to build in clang | 2021-07-22 | 6 | -17/+12 | ||
| | | ||||||
| * | shader_recompiler, video_core: Resolve clang errors | 2021-07-22 | 1 | -3/+3 | ||
| | | | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors | |||||
| * | glsl: Fix tracking of info.uses_shadow_lod | 2021-07-22 | 1 | -4/+4 | ||
| | | ||||||
| * | dual_vertex_pass: Clang format | 2021-07-22 | 1 | -14/+14 | ||
| | | ||||||
| * | shader: Rework varyings and implement passthrough geometry shaders | 2021-07-22 | 1 | -137/+65 | ||
| | | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | |||||
| * | lower_int64_to_int32: Add missing include | 2021-07-22 | 1 | -0/+1 | ||
| | | ||||||
| * | shader: Add int64 to int32 lowering pass | 2021-07-22 | 2 | -0/+217 | ||
| | | ||||||
| * | shader: Teach global memory base tracker to follow vectors | 2021-07-22 | 1 | -15/+14 | ||
| | | ||||||
| * | shader: Add constant propagation to integer vectors | 2021-07-22 | 1 | -0/+9 | ||
| | | ||||||