Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | shader_recompiler: use float image operations on load/store when required | Liam | 2023-12-21 | 3 | -15/+31 |
| | |||||
* | shader_recompiler: use minimal clip distance array | Liam | 2023-12-19 | 1 | -1/+2 |
| | |||||
* | shader_recompiler: ignore clip distances beyond driver support level | Liam | 2023-12-19 | 2 | -1/+6 |
| | |||||
* | Merge branch 'master' into ssbo-align | Ameer J | 2023-11-27 | 4 | -30/+34 |
|\ | |||||
| * | renderer_vulkan: ignore viewport stores on non-supporting drivers | Liam | 2023-11-19 | 2 | -1/+5 |
| | | |||||
| * | shader_recompiler: Fix spelling of "derivate" (#12067) | Ameer J | 2023-11-18 | 2 | -29/+29 |
| | | |||||
* | | shader_recompiler: Align SSBO offsets in GlobalMemory functions | Ameer J | 2023-11-01 | 1 | -1/+3 |
|/ | |||||
* | Manually robust on Maxwell and earlier | Kelebek1 | 2023-10-19 | 2 | -3/+56 |
| | |||||
* | emit_spirv: fix incorrect use of descriptor index in image atomics | Liam | 2023-09-22 | 2 | -13/+9 |
| | |||||
* | shader_recompiler: skip sampler for buffer textures (#11435) | liamwhite | 2023-09-14 | 3 | -6/+2 |
| | |||||
* | shader_recompiler: always declare image format for image buffers | Liam | 2023-09-02 | 1 | -1/+6 |
| | |||||
* | shader_recompiler: fix emulation of 3D textureGrad | Liam | 2023-09-02 | 1 | -2/+33 |
| | |||||
* | Remove memory allocations in some hot paths | Kelebek1 | 2023-06-22 | 2 | -2/+2 |
| | |||||
* | video_core: Enable support_descriptor_aliasing on Turnip, disable storage atomic otherwise. | bunnei | 2023-06-03 | 1 | -0/+10 |
| | |||||
* | Avoid using VectorExtractDynamic for subgroup mask on Adreno GPUs | Billy Laws | 2023-06-03 | 1 | -1/+16 |
| | | | | This crashes their shader compiler for some reason. | ||||
* | Implement scaled vertex buffer format emulation | Billy Laws | 2023-06-03 | 3 | -49/+72 |
| | | | | These formats are unsupported by mobile GPUs so they need to be emulated in shaders instead. | ||||
* | Fix Tears of the Kingdom flickering clouds and depths. | Kelebek1 | 2023-05-11 | 1 | -6/+2 |
| | |||||
* | Define SampleMask as an array | Kelebek1 | 2023-04-30 | 2 | -2/+4 |
| | |||||
* | shader_recompiler: Use vector arithmetic rather than component-wise in ImageGatherSubpixelOffset | Wollnashorn | 2023-04-08 | 1 | -18/+9 |
| | | | | Should be more efficient and better readable | ||||
* | shader_recompiler: Add subpixel offset for correct rounding at `ImageGather` | Wollnashorn | 2023-04-08 | 1 | -0/+39 |
| | | | | | | | On AMD a subpixel offset of 1/512 of the texel size is applied to the texture coordinates at a ImageGather call to ensure the rounding at the texel centers is done the same way as in Maxwell or other Nvidia architectures. See https://www.reedbeta.com/blog/texture-gathers-and-coordinate-precision/ for more details why this might be necessary. This should fix shadow artifacts at object edges in Zelda: Breath of the Wild (#9957, #6956). | ||||
* | spirv: Fix TXQ with MSAA textures | ameerj | 2023-01-29 | 3 | -8/+19 |
| | |||||
* | Merge pull request #9694 from ameerj/txq-mips | liamwhite | 2023-01-29 | 2 | -3/+6 |
|\ | | | | | shader_recompiler: TXQ: Skip QueryLevels when possible | ||||
| * | shader_recompiler: TXQ: Skip QueryLevels when possible | ameerj | 2023-01-28 | 2 | -3/+6 |
| | | |||||
* | | Merge pull request #9682 from ameerj/shader-s32 | bunnei | 2023-01-28 | 2 | -5/+0 |
|\ \ | |/ |/| | shader_recompiler: Remove S32 IR type | ||||
| * | shader_recompiler: Remove S32 IR type | ameerj | 2023-01-26 | 2 | -5/+0 |
| | | | | | | | | | | | | The frontend IR opcodes do not distinguish between signed and unsigned integer types. Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32 | ||||
* | | spirv: fix multisampled image fetch | Liam | 2023-01-23 | 2 | -2/+7 |
|/ | |||||
* | Run clang-format | Billy Laws | 2023-01-05 | 2 | -7/+9 |
| | |||||
* | shader_recompiler: Fix shuffle partitioning for >64 invoc-per-subgroup GPUs | Billy Laws | 2023-01-05 | 1 | -30/+28 |
| | | | | The existing implementation only supports 64 invoc-per-subgroup GPUs, and misbehaves on adreno when invocations need to be split into 4 emulated subgroups. | ||||
* | shader_recompiler: SPIRV: Only enable int64 feature when supported | Billy Laws | 2023-01-05 | 1 | -1/+1 |
| | |||||
* | Vulkan: Add a workaround for input_position on Adreno drivers | Billy Laws | 2023-01-05 | 3 | -11/+39 |
| | | | | Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct. | ||||
* | Video_core: Address feedback | Fernando Sahmkow | 2023-01-04 | 3 | -0/+8 |
| | |||||
* | MacroHLE: Add HLE replacement for base vertex and base instance. | Fernando Sahmkow | 2023-01-01 | 2 | -0/+18 |
| | |||||
* | Merge pull request #7450 from FernandoS27/ndc-vulkan | liamwhite | 2022-12-17 | 2 | -3/+4 |
|\ | | | | | Vulkan: Add support for VK_EXT_depth_clip_control. | ||||
| * | Vulkan: Add support for VK_EXT_depth_clip_control. | FernandoS27 | 2022-12-14 | 2 | -3/+4 |
| | | |||||
* | | spirv_emit_context: declare GroupNonUniform capability for SubgroupLocalInvocationId | Liam | 2022-12-14 | 1 | -0/+2 |
|/ | |||||
* | Vulkan: update initialization | Liam | 2022-11-27 | 3 | -19/+31 |
| | | | | Co-authored-by: bylaws <bylaws@users.noreply.github.com> | ||||
* | spirv_emit_context: add missing flat decoration | Liam | 2022-11-19 | 1 | -0/+1 |
| | |||||
* | Merge pull request #9253 from vonchenplus/attr_layer | liamwhite | 2022-11-19 | 2 | -0/+6 |
|\ | | | | | shader: Implement miss attribute layer | ||||
| * | shader: Implement miss attribute layer | FengChen | 2022-11-17 | 2 | -0/+6 |
| | | |||||
* | | video_core: Fix few issues in Tess stage | FengChen | 2022-11-07 | 4 | -0/+18 |
|/ | |||||
* | video_core: Fix SNORM texture buffer emulating error (#9001) | Feng Chen | 2022-11-04 | 2 | -1/+6 |
| | |||||
* | video_core: Generate mipmap texture by drawing | FengChen | 2022-09-20 | 5 | -1/+51 |
| | |||||
* | video_code: support rectangle texture | FengChen | 2022-08-25 | 2 | -0/+2 |
| | |||||
* | Add missed shader defines. Fixes Xenoblade Chronicles 3 booting with Vulkan. | Kelebek1 | 2022-07-29 | 1 | -2/+3 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 23 | -69/+46 |
| | | | | | 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. | ||||
* | shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-V | Liam | 2022-04-01 | 1 | -10/+11 |
| | |||||
* | Include <bit> header when std::count{r,l}_zero is used | Billy Laws | 2022-03-22 | 3 | -0/+4 |
| | | | | Needed for compilation with older libc++ releases | ||||
* | shader_recompiler: Reduce unused includes | ameerj | 2022-03-20 | 16 | -18/+0 |
| | |||||
* | Address review comments | Liam | 2022-03-17 | 2 | -19/+7 |
| | |||||
* | shader_recompiler: Use functions for indirect const buffer accesses | Liam | 2022-03-17 | 3 | -39/+91 |
| | |||||
* | Address review comments | Liam | 2022-03-17 | 1 | -16/+15 |
| | |||||
* | shader: add support for const buffer indirect addressing | Liam | 2022-03-15 | 1 | -10/+41 |
| | |||||
* | emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors | ameerj | 2022-03-12 | 1 | -1/+1 |
| | |||||
* | shaders: Add U64->U32x2 Atomic fallback functions | ameerj | 2022-01-30 | 2 | -1/+148 |
| | |||||
* | spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics | ameerj | 2022-01-29 | 1 | -2/+2 |
| | | | | | | 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 | ||||
* | emit_spirv: Add Xfb execution mode when transform feedback is used | ameerj | 2022-01-28 | 1 | -3/+9 |
| | | | | Fixes Transform Feedback on Vulkan AMD drivers. | ||||
* | shader_recompiler: fix potential OOB access | v1993 | 2022-01-17 | 1 | -3/+4 |
| | | | | Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it. | ||||
* | Merge pull request #7629 from ameerj/nv-driver-fixes | Fernando S | 2022-01-03 | 2 | -0/+26 |
|\ | | | | | shaders: Add fixes for NVIDIA drivers 495+ | ||||
| * | shader: Add integer attribute get optimization pass | ameerj | 2021-12-30 | 2 | -0/+26 |
| | | | | | | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0. | ||||
* | | Empty spaces | Matías Locatti | 2021-12-28 | 1 | -1/+1 |
| | | |||||
* | | Changes to avoid warnings in SSE4.2 optimized SPIR-V | Matías Locatti | 2021-12-28 | 1 | -0/+9 |
|/ | |||||
* | Remove spirv handle legacy related code | vonchenplus | 2021-12-18 | 3 | -189/+0 |
| | |||||
* | emit_spirv: Reduce emit_spirv.h include overhead | ameerj | 2021-12-06 | 20 | -3/+20 |
| | | | | emit_spirv.h is included in video_core, which was propagating further includes that video_core did not depend on. | ||||
* | shader_recompiler: Adjust emit_context includes | ameerj | 2021-12-06 | 2 | -2/+2 |
| | |||||
* | shader_recompiler: Rename backend emit_context files | ameerj | 2021-12-05 | 2 | -0/+0 |
| | |||||
* | vulkan: Fix rescaling push constant usage | ameerj | 2021-11-16 | 4 | -34/+36 |
| | |||||
* | shader, video_core: Fix GCC build errors | ameerj | 2021-11-16 | 1 | -4/+0 |
| | |||||
* | emit_spirv: Fix RescalingLayout alignment | ameerj | 2021-11-16 | 1 | -0/+1 |
| | |||||
* | emit_spirv: Fix RescalingLayout alignment | ameerj | 2021-11-16 | 1 | -2/+2 |
| | |||||
* | shader: Properly scale image reads and add GL SPIR-V support | ReinUsesLisp | 2021-11-16 | 6 | -44/+136 |
| | | | | Thanks for everything! | ||||
* | spirv: Implement rescaling patching | ReinUsesLisp | 2021-11-16 | 5 | -5/+72 |
| | |||||
* | shader: Add IsTextureScaled opcode | ReinUsesLisp | 2021-11-16 | 2 | -0/+5 |
| | |||||
* | shader: Add integer division opcodes | ReinUsesLisp | 2021-11-16 | 2 | -0/+10 |
| | |||||
* | shader: Add resolution down factor opcode | ReinUsesLisp | 2021-11-16 | 2 | -0/+6 |
| | |||||
* | Merge pull request #7260 from vonchenplus/spirv_support_legacy_attribute_v2 | bunnei | 2021-11-14 | 3 | -71/+153 |
|\ | | | | | shader: Spirv support legacy attribute v2 | ||||
| * | Simply legacy attribute implement | Feng Chen | 2021-11-04 | 3 | -152/+125 |
| | | |||||
| * | Support gl_FogFragCoord attribute | vonchenplus | 2021-10-31 | 3 | -48/+58 |
| | | |||||
| * | Support gl_BackSecondaryColor attribute | vonchenplus | 2021-10-26 | 3 | -0/+33 |
| | | |||||
| * | Support gl_FrontSecondaryColor attribute | vonchenplus | 2021-10-26 | 3 | -0/+33 |
| | | |||||
| * | Support gl_BackColor attribute | vonchenplus | 2021-10-26 | 3 | -0/+33 |
| | | |||||
* | | emit_spirv_image: Fix depth image implicit lod sample in compute | ameerj | 2021-10-17 | 1 | -5/+16 |
|/ | | | | Ensures all drivers behave the same way in this case. | ||||
* | Spir-V: Rescale the frag depth to 0,1 mode when -1,1 mode is used in Vulkan. | Fernando Sahmkow | 2021-09-15 | 1 | -1/+7 |
| | |||||
* | Merge pull request #6948 from ameerj/amd-warp-fix | Morph | 2021-09-12 | 1 | -6/+35 |
|\ | | | | | shaders: Fix warp instructions on 64-thread warp devices | ||||
| * | emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes | ameerj | 2021-08-31 | 1 | -1/+29 |
| | | |||||
| * | emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes | ameerj | 2021-08-31 | 1 | -10/+11 |
| | | |||||
* | | Merge pull request #6962 from vonchenplus/spirv_support_legacy_attribute | bunnei | 2021-09-08 | 3 | -0/+107 |
|\ \ | |/ |/| | renderer_vulkan: Spirv support glsl legacy attribute | ||||
| * | Detail adjustment | Feng Chen | 2021-09-08 | 1 | -13/+14 |
| | | |||||
| * | Detail adjustment | Feng Chen | 2021-09-08 | 2 | -28/+35 |
| | | |||||
| * | Re-implement get unused location | Feng Chen | 2021-09-07 | 1 | -30/+30 |
| | | |||||
| * | Move attribute related definitions to spirv anonymous namespace | Feng Chen | 2021-09-07 | 2 | -5/+26 |
| | | |||||
| * | Dynamic get unused location | Feng Chen | 2021-09-06 | 1 | -27/+49 |
| | | |||||
| * | Implement intput and output fixed fnc textures | Feng Chen | 2021-09-06 | 3 | -19/+23 |
| | | |||||
| * | Rename parameters | Feng Chen | 2021-09-03 | 3 | -9/+9 |
| | | |||||
| * | Fix create GraphicsPipelines crash | Feng Chen | 2021-09-03 | 1 | -5/+5 |
| | | |||||
| * | Add input/output location | Feng Chen | 2021-09-02 | 1 | -5/+13 |
| | | |||||
| * | Add colorfront and txtcoord support | Feng Chen | 2021-08-31 | 3 | -0/+44 |
| | | |||||
* | | emit_spirv_context_get_set: Fix Get FrontFace return value | ameerj | 2021-08-27 | 1 | -2/+3 |
|/ | | | | The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead. | ||||
* | SPIR-V: Merge two ifs in EmitGetAttribute | Valeri | 2021-08-19 | 1 | -6/+2 |
| | |||||
* | emit_spirv_instructions: Add missing header guard | Lioncash | 2021-07-26 | 1 | -0/+2 |
| | |||||
* | shader: Fix disabled attribute default values | ameerj | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader_recompiler, video_core: Resolve clang errors | lat9nq | 2021-07-23 | 1 | -5/+10 |
| | | | | | | | | | | Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors | ||||
* | shader: Ignore global memory ops on devices lacking int64 support | ameerj | 2021-07-23 | 2 | -7/+31 |
| | |||||
* | emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia | ReinUsesLisp | 2021-07-23 | 1 | -5/+8 |
| | | | | Fix regression on Fire Emblem: Three Houses when using native fp16. | ||||
* | shader: GCC fmt 8.0.0 fixes | lat9nq | 2021-07-23 | 1 | -2/+3 |
| | |||||
* | shader: Fix disabled and unwritten attributes and varyings | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | spirv: Fix code emission when descriptor aliasing is unsupported | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | | | | Fixes OpenGL. | ||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 4 | -50/+70 |
| | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
* | shader: Remove IAbs64 | ReinUsesLisp | 2021-07-23 | 2 | -5/+0 |
| | |||||
* | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-23 | 3 | -11/+18 |
| | |||||
* | spirv: Properly handle devices without int8 and int16 | ReinUsesLisp | 2021-07-23 | 2 | -39/+67 |
| | |||||
* | spirv: Handle small storage buffer loads on devices with no support | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | shader: Properly manage attributes not written from previous stages | ReinUsesLisp | 2021-07-23 | 2 | -1/+4 |
| | |||||
* | shader: Split profile and runtime info headers | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | spirv: Reduce log severity of mismatching denorm rules | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 4 | -11/+11 |
| | |||||
* | shader: Add shader loop safety check settings | lat9nq | 2021-07-23 | 2 | -8/+18 |
| | | | | Also add a setting for enable Nsight Aftermath. | ||||
* | spirv/convert: Catch more signed operations oversights | ameerj | 2021-07-23 | 1 | -5/+5 |
| | | | | The sign bit on integers of size < 32 was not properly preserved in casts | ||||
* | spirv/convert: Catch more broken signed operations on Nvidia OpenGL | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | | | | | BitCast U32 to S32 before converting to float on drivers with broken signed operations. | ||||
* | shader: Add support for "negative" and unaligned offsets | ReinUsesLisp | 2021-07-23 | 1 | -6/+3 |
| | | | | | | | | | "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. | ||||
* | spirv: Fix output generics with components | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | opengl: Declare fragment outputs even if they are not used | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | | | 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. | ||||
* | spirv: Fix image and image buffer descriptor index usage | ReinUsesLisp | 2021-07-23 | 1 | -5/+7 |
| | |||||
* | shader: Split profile and runtime information in separate structs | ReinUsesLisp | 2021-07-23 | 6 | -33/+42 |
| | |||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 2 | -2/+11 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 1 | -16/+16 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | emit_spirv: Jump to loop body with local variable | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | Silence unused variable warning | ||||
* | emit_spirv: Add missing block in case | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | glasm: Initial implementation of phi nodes on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -2/+7 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 5 | -49/+74 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | glasm: Implement shuffle and vote instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -2/+4 |
| | |||||
* | shader: Fixup SPIR-V emit header namespaces | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | Move SPIR-V emission functions to their own header | ReinUsesLisp | 2021-07-23 | 22 | -572/+610 |
| | |||||
* | shader: Optimize NVN Fallthrough | FernandoS27 | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement Int32 SUATOM/SURED | ameerj | 2021-07-23 | 5 | -0/+233 |
| | |||||
* | spirv: Be aware of NAN unaware drivers | ReinUsesLisp | 2021-07-23 | 1 | -18/+40 |
| | |||||
* | spirv: Add SSBO read fallbacks when no aliasing is available | ReinUsesLisp | 2021-07-23 | 1 | -37/+99 |
| | |||||
* | spirv: Add OpKill fallback to demote | ReinUsesLisp | 2021-07-23 | 1 | -2/+6 |
| | |||||
* | spirv: Do not enable ShaderLayer | ReinUsesLisp | 2021-07-23 | 1 | -3/+0 |
| | | | | This is enabled by an extension instead of the capability. | ||||
* | spirv: Enable DemoteToHelperInvocationEXT only when supported | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Use OriginLowerLeft when requested | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | spirv: Only add image operands mask when needed | ReinUsesLisp | 2021-07-23 | 1 | -5/+9 |
| | |||||
* | spirv: Workaround image unsigned offset bug | ReinUsesLisp | 2021-07-23 | 2 | -9/+26 |
| | | | | | Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned texture offsets. | ||||
* | spirv: Add int8 and int16 capabilities only when supported | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | spirv: Add integer clamping workarounds | ReinUsesLisp | 2021-07-23 | 1 | -4/+34 |
| | | | | Workaround more bugs on Nvidia's OpenGL SPIR-V compiler. | ||||
* | spirv: Implement int8 and int16 conversion fallbacks | ReinUsesLisp | 2021-07-23 | 1 | -19/+80 |
| | |||||
* | spirv: Support OpenGL uniform buffers and change bindings | ReinUsesLisp | 2021-07-23 | 5 | -56/+163 |
| | |||||
* | spirv: Desambiguate descriptor names | ReinUsesLisp | 2021-07-23 | 1 | -9/+37 |
| | | | | | Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are used for name matching. | ||||
* | shader: Implement VertexA stage | FernandoS27 | 2021-07-23 | 2 | -0/+5 |
| | |||||
* | shader: Fix storage type when reading patches on tess control | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Implement indexed textures | ReinUsesLisp | 2021-07-23 | 3 | -56/+92 |
| | |||||
* | shader: Move microinstruction header to the value header | ReinUsesLisp | 2021-07-23 | 2 | -2/+0 |
| | |||||
* | shader: Add NVN storage buffer fallbacks | ReinUsesLisp | 2021-07-23 | 5 | -24/+109 |
| | | | | | | | 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. | ||||
* | spirv: Fix ViewportMask | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | spirv: Replace Constant/ConstantComposite with Const helper | ameerj | 2021-07-23 | 12 | -112/+101 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 2 | -5/+2 |
| | |||||
* | shader: Add coarse derivatives | FernandoS27 | 2021-07-23 | 2 | -0/+12 |
| | |||||
* | shader: Implement fine derivates constant propagation | FernandoS27 | 2021-07-23 | 3 | -0/+15 |
| | |||||
* | shader: Implement SR_Y_DIRECTION | FernandoS27 | 2021-07-23 | 2 | -0/+8 |
| | |||||
* | shader: Fix memory barriers | ReinUsesLisp | 2021-07-23 | 2 | -12/+7 |
| | |||||
* | spirv: Fix implicit lod type | ReinUsesLisp | 2021-07-23 | 2 | -1/+5 |
| | |||||
* | spirv: Use explicit lods outside of fragment shaders | ReinUsesLisp | 2021-07-23 | 1 | -5/+16 |
| | |||||
* | spirv: Use ConstOffset instead of Offset when possible | ReinUsesLisp | 2021-07-23 | 3 | -21/+67 |
| | |||||
* | shader: Implement BFE and BFI CC | ameerj | 2021-07-23 | 1 | -2/+1 |
| | | | | Fix two bugs in BFI. | ||||
* | shader: Implement SampleMask | ReinUsesLisp | 2021-07-23 | 4 | -1/+10 |
| | |||||
* | shader: Implement PIXLD.MY_INDEX | ReinUsesLisp | 2021-07-23 | 5 | -0/+12 |
| | |||||
* | spirv: Bitcast non-F32 output attributes to their type before store | ReinUsesLisp | 2021-07-23 | 1 | -13/+28 |
| | |||||
* | spirv: Implement ViewportMask with NV_viewport_array2 | ReinUsesLisp | 2021-07-23 | 4 | -0/+15 |
| | |||||
* | spirv: Bitcast non-F32 attributes to F32 | ReinUsesLisp | 2021-07-23 | 1 | -7/+9 |
| | |||||
* | shader: Implement PrimitiveId | ReinUsesLisp | 2021-07-23 | 3 | -0/+6 |
| | |||||
* | shader: Implement tessellation shaders, polygon mode and invocation id | ReinUsesLisp | 2021-07-23 | 5 | -55/+232 |
| | |||||
* | spirv: Implement image buffers | ReinUsesLisp | 2021-07-23 | 3 | -22/+58 |
| | |||||
* | spirv: Implement Layer stores | ReinUsesLisp | 2021-07-23 | 4 | -9/+26 |
| | |||||
* | spirv: Fix alpha test | FernandoS27 | 2021-07-23 | 1 | -0/+5 |
| | |||||
* | spirv: Fix non-atomic 64-bit store | ameerj | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Implement alpha test | ameerj | 2021-07-23 | 1 | -0/+45 |
| | |||||
* | shader: Implement transform feedbacks and define file format | ReinUsesLisp | 2021-07-23 | 5 | -16/+97 |
| | |||||
* | shader: Implement early Z tests | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | spirv: Rework storage buffers and shader memory | ReinUsesLisp | 2021-07-23 | 6 | -492/+487 |
| | |||||
* | shader: Fix fixed pipeline point size on geometry shaders | ReinUsesLisp | 2021-07-23 | 1 | -10/+18 |
| | |||||
* | shader: Implement geometry shaders | ReinUsesLisp | 2021-07-23 | 5 | -65/+163 |
| | |||||
* | shader: Implement OUT | ReinUsesLisp | 2021-07-23 | 2 | -0/+10 |
| | |||||
* | spirv: Define StorageImageWriteWithoutFormat capability when used | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | shader: Implement LOP CC | ReinUsesLisp | 2021-07-23 | 2 | -9/+18 |
| | |||||
* | shader: Implement SR_THREAD_KILL | ReinUsesLisp | 2021-07-23 | 4 | -0/+9 |
| | |||||
* | shader: Implement ATOM/S and RED | ameerj | 2021-07-23 | 5 | -4/+800 |
| | |||||
* | spirv: Move phi node patching to a separate function | ReinUsesLisp | 2021-07-23 | 1 | -13/+16 |
| | |||||
* | spirv: Guard against typeless image reads on unsupported devices | ReinUsesLisp | 2021-07-23 | 2 | -1/+7 |
| | |||||
* | shader: Move LaneId to the warp emission file and fix AMD | ReinUsesLisp | 2021-07-23 | 3 | -5/+9 |
| | |||||
* | spirv: Fix forward declarations on phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -47/+25 |
| | |||||
* | shader: Implement SULD and SUST | ReinUsesLisp | 2021-07-23 | 5 | -29/+130 |
| | |||||
* | shader: Address feedback + clang format | lat9nq | 2021-07-23 | 2 | -5/+0 |
| | |||||
* | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 2021-07-23 | 4 | -14/+22 |
| | | | | | | | | | | | | | | | | | 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> | ||||
* | shader: Interact texture buffers with buffer cache | ReinUsesLisp | 2021-07-23 | 2 | -28/+28 |
| | |||||
* | shader: Fix TextureGrad | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Implement texture buffers | ReinUsesLisp | 2021-07-23 | 4 | -5/+54 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -20/+20 |
| | |||||
* | shader: Implement indexed Position and ClipDistances | FernandoS27 | 2021-07-23 | 1 | -0/+40 |
| | |||||
* | shader: Implement indexed attributes | FernandoS27 | 2021-07-23 | 4 | -6/+134 |
| | |||||
* | shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Add subgroup masks | ReinUsesLisp | 2021-07-23 | 4 | -10/+56 |
| | |||||
* | shader: Implement BAR and fix memory barriers | ReinUsesLisp | 2021-07-23 | 2 | -3/+13 |
| | |||||
* | shader: Reimplement GetCbufU64 as GetCbufU32x2 | ReinUsesLisp | 2021-07-23 | 4 | -6/+6 |
| | | | | It may generate better code on some compilers and it's easier to handle. | ||||
* | shader: Address Feedback | FernandoS27 | 2021-07-23 | 6 | -71/+26 |
| | |||||
* | shader: Implement SR_LaneId | FernandoS27 | 2021-07-23 | 2 | -0/+5 |
| | |||||
* | shader: Fix shared memory on cool drivers | FernandoS27 | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | shader: Implement MEMBAR | FernandoS27 | 2021-07-23 | 2 | -0/+41 |
| | |||||
* | shader: Improve VOTE.VTG stub | FernandoS27 | 2021-07-23 | 2 | -0/+40 |
| | |||||
* | shader: Implement ViewportIndex | FernandoS27 | 2021-07-23 | 4 | -2/+27 |
| | |||||
* | shader: Stub TLD4's PTP when it isn't constant | FernandoS27 | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | shader: Fix branches to visited virtual blocks | ReinUsesLisp | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Fix dependency on identity removal pass | ReinUsesLisp | 2021-07-23 | 2 | -3/+8 |
| | |||||
* | spirv: Remove unnecesary variable for clip distances | ReinUsesLisp | 2021-07-23 | 2 | -6/+2 |
| | |||||
* | shader: Implement ClipDistance | FernandoS27 | 2021-07-23 | 3 | -0/+25 |
| | |||||
* | shader: Fix TXD | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | shader: Address feedback | FernandoS27 | 2021-07-23 | 1 | -15/+15 |
| | |||||
* | shader: Implement ImageGradient | FernandoS27 | 2021-07-23 | 2 | -1/+54 |
| | |||||
* | shader: Implement TMML partially | FernandoS27 | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader,spirv: Implement ImageQueryLod. | FernandoS27 | 2021-07-23 | 4 | -0/+20 |
| | |||||
* | shader: Implement TLD | FernandoS27 | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | spirv: Add fixed pipeline point size | ReinUsesLisp | 2021-07-23 | 2 | -1/+5 |
| | |||||
* | shader: Add PointCoord attribute | FernandoS27 | 2021-07-23 | 3 | -0/+11 |
| | |||||
* | shader: Add PointSize attribute | ameerj | 2021-07-23 | 3 | -0/+9 |
| | |||||
* | shader: Store type of phi nodes in flags | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | | | | This is needed because pseudo-instructions where invalidated. | ||||
* | spirv: Fix default output attribute initialization | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | shader: Implement FSWZADD | ameerj | 2021-07-23 | 4 | -0/+27 |
| | |||||
* | shader: Implement BRX | FernandoS27 | 2021-07-23 | 3 | -2/+15 |
| | |||||
* | shader: Implement I2I CC | ameerj | 2021-07-23 | 2 | -21/+41 |
| | |||||
* | shader: Implement I2I SAT | ameerj | 2021-07-23 | 2 | -0/+10 |
| | |||||
* | shader: Implement LDS, STS, LDL, and STS and use SPIR-V 1.4 when available | ReinUsesLisp | 2021-07-23 | 5 | -1/+334 |
| | |||||
* | shader: Better interpolation and disabled attributes support | ReinUsesLisp | 2021-07-23 | 2 | -12/+46 |
| | |||||
* | spirv: Remove dependencies on Environment when generating SPIR-V | ReinUsesLisp | 2021-07-23 | 2 | -9/+7 |
| | |||||
* | shader: Implement front face | ReinUsesLisp | 2021-07-23 | 3 | -0/+8 |
| | |||||
* | shader: Implement TXQ and fix FragDepth | ReinUsesLisp | 2021-07-23 | 5 | -8/+64 |
| | |||||
* | shader: Refactor PTP and other minor changes | ReinUsesLisp | 2021-07-23 | 5 | -56/+46 |
| | |||||
* | shader: Add IR opcode for ImageFetch | FernandoS27 | 2021-07-23 | 3 | -3/+35 |
| | |||||
* | shader: Implement TLD4.PTP | FernandoS27 | 2021-07-23 | 5 | -9/+40 |
| | |||||
* | shader: Implement FragDepth | FernandoS27 | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | shader: Implement TLD4 and TLD4_B | FernandoS27 | 2021-07-23 | 2 | -0/+48 |
| | |||||
* | shader: Implement SHFL | ameerj | 2021-07-23 | 5 | -60/+151 |
| | |||||
* | shader: Fix F2I | FernandoS27 | 2021-07-23 | 2 | -4/+19 |
| | |||||
* | shader: Implement NDC [-1, 1], attribute types and default varying initialization | ReinUsesLisp | 2021-07-23 | 5 | -39/+112 |
| | |||||
* | shader: Implement VOTE | ameerj | 2021-07-23 | 5 | -1/+77 |
| | |||||
* | shader: Implement DMNMX, DSET, DSETP | ameerj | 2021-07-23 | 3 | -18/+26 |
| | |||||
* | shader: Add support for fp16 comparisons and misc fixes | ReinUsesLisp | 2021-07-23 | 2 | -0/+10 |
| | |||||
* | spirv: Implement VertexId and InstanceId, refactor code | ReinUsesLisp | 2021-07-23 | 6 | -144/+234 |
| | |||||
* | shader: Implement I2F | ReinUsesLisp | 2021-07-23 | 4 | -0/+67 |
| | |||||
* | shader: Add partial rasterizer integration | ReinUsesLisp | 2021-07-23 | 6 | -50/+172 |
| | |||||
* | shader: Implement DADD | ameerj | 2021-07-23 | 1 | -0/+2 |
| | |||||
* | shader: Implement FSET and FSETP | ameerj | 2021-07-23 | 1 | -2/+4 |
| | | | | Also fix oversight with adding SignedZeroInfNanPreserve execution mode. | ||||
* | shader: Implement TEXS | ReinUsesLisp | 2021-07-23 | 1 | -1/+10 |
| | |||||
* | shader: Implement CAL inlining function calls | ReinUsesLisp | 2021-07-23 | 2 | -15/+8 |
| | |||||
* | spirv: Add SignedZeroInfNanPreserve logic | ameerj | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | shader: Implement FMNMX | ameerj | 2021-07-23 | 2 | -12/+12 |
| | | | | And add a const in FCMP | ||||
* | shader: Implement FCMP | ameerj | 2021-07-23 | 2 | -0/+5 |
| | | | | still need to configure some settings for NV denorm flush and intel NaN | ||||
* | shader: Partial implementation of LDC | ReinUsesLisp | 2021-07-23 | 4 | -25/+124 |
| | |||||
* | shader: Initial support for textures and TEX | ReinUsesLisp | 2021-07-23 | 7 | -5/+327 |
| | |||||
* | shader: Implement R2P | ameerj | 2021-07-23 | 3 | -3/+13 |
| | |||||
* | shader: Implement SHF | ameerj | 2021-07-23 | 2 | -9/+19 |
| | |||||
* | shader: Implement LEA | ameerj | 2021-07-23 | 3 | -3/+13 |
| | |||||
* | shader: Implement HADD2 | ReinUsesLisp | 2021-07-23 | 3 | -18/+98 |
| | |||||
* | shader: Implement FLO | ameerj | 2021-07-23 | 2 | -3/+13 |
| | |||||
* | shader: Implement IMNMX | ameerj | 2021-07-23 | 2 | -0/+20 |
| | |||||
* | shader: Implement POPC | ameerj | 2021-07-23 | 2 | -0/+10 |
| | |||||
* | shader: Implement SHR | ameerj | 2021-07-23 | 2 | -6/+11 |
| | |||||
* | spirv: Move phi arguments emit to a separate function | ReinUsesLisp | 2021-07-23 | 1 | -27/+27 |
| | |||||
* | spirv: Add support for self-referencing phi nodes | ReinUsesLisp | 2021-07-23 | 1 | -3/+10 |
| | |||||
* | shader: Implement more of XMAD and FFMA32I and fix XMAD.CBCC | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | shader: FMUL, select, RRO, and MUFU fixes | ReinUsesLisp | 2021-07-23 | 3 | -52/+228 |
| | |||||
* | shader: Fix MOV(reg), add SHL variants and emit neg and abs instructions | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | spirv: Fixes and Intel specific workarounds | ReinUsesLisp | 2021-07-23 | 6 | -20/+31 |
| | |||||
* | shader: Rename, implement FADD.SAT and P2R (imm) | ReinUsesLisp | 2021-07-23 | 4 | -79/+98 |
| | |||||
* | shader: Add denorm flush support | ReinUsesLisp | 2021-07-23 | 3 | -9/+64 |
| | |||||
* | spirv: Add lower fp16 to fp32 pass | ReinUsesLisp | 2021-07-23 | 12 | -210/+255 |
| | |||||
* | shader: Primitive Vulkan integration | ReinUsesLisp | 2021-07-23 | 13 | -467/+461 |
| | |||||
* | spirv: Implement EmitIdentity | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | spirv: Initial bindings support | ReinUsesLisp | 2021-07-23 | 12 | -218/+408 |
| | |||||
* | shader: Add support for forward declarations | ReinUsesLisp | 2021-07-23 | 2 | -52/+49 |
| | |||||
* | shader: Support SSA loops on IR | ReinUsesLisp | 2021-07-23 | 3 | -15/+15 |
| | |||||
* | shader: Misc fixes | ReinUsesLisp | 2021-07-23 | 2 | -0/+11 |
| | |||||
* | shader: Initial implementation of an AST | ReinUsesLisp | 2021-07-23 | 5 | -41/+67 |
| | |||||
* | spirv: Initial SPIR-V support | ReinUsesLisp | 2021-07-23 | 12 | -3/+1359 |
| | |||||
* | shader: Add pools and rename files | ReinUsesLisp | 2021-07-23 | 1 | -0/+21 |