Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Merge remote-tracking branch 'origin/master' into typos3 | Viktor Szépe | 2024-01-16 | 3 | -8/+86 |
|\ | |||||
| * | shader_recompiler: emulate 8-bit and 16-bit storage writes with cas loop | Liam | 2024-01-11 | 3 | -8/+86 |
| | | |||||
* | | Fix more typos | Viktor Szépe | 2024-01-16 | 1 | -2/+2 |
|/ | |||||
* | Merge pull request #12437 from ameerj/gl-amd-fixes | liamwhite | 2024-01-04 | 3 | -8/+8 |
|\ | | | | | OpenGL: Fixes and workaround updates for AMD | ||||
| * | spirv_emit_context: Fix BaseInstance for OGL spirv | Ameer J | 2023-12-22 | 1 | -1/+1 |
| | | |||||
| * | emit_glsl_image: Use inlined texelFetch offsets | Ameer J | 2023-12-21 | 2 | -7/+7 |
| | | |||||
* | | shader_recompiler: use default value for clip distances array | Liam | 2023-12-27 | 1 | -7/+13 |
| | | |||||
* | | shader_recompiler: respect clip distance limits in indexed store | Liam | 2023-12-27 | 1 | -18/+28 |
| | | |||||
* | | 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 pull request #12196 from ameerj/glsl-cbuf-sizes | liamwhite | 2023-12-03 | 1 | -1/+4 |
|\ | | | | | GLSL: Use known cbuf sizes when possible | ||||
| * | GLSL: Prefer known used cbuf sizes | Ameer J | 2023-11-27 | 1 | -1/+4 |
| | | |||||
* | | Merge branch 'master' into ssbo-align | Ameer J | 2023-11-27 | 6 | -36/+40 |
|\| | |||||
| * | 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 | 4 | -35/+35 |
| | | |||||
* | | shader_recompiler: Align SSBO offsets in GlobalMemory functions | Ameer J | 2023-11-01 | 3 | -5/+13 |
|/ | |||||
* | Merge pull request #11847 from ameerj/glsl-shfl-fix | liamwhite | 2023-10-23 | 2 | -4/+9 |
|\ | | | | | emit_glsl_warp: Fix shfl_in_bounds conditional | ||||
| * | emit_glsl_warp: Fix shfl_in_bounds conditional | Ameer J | 2023-10-22 | 2 | -4/+9 |
| | | |||||
* | | Manually robust on Maxwell and earlier | Kelebek1 | 2023-10-19 | 2 | -3/+56 |
|/ | |||||
* | ci: fix new codespell errors | Liam | 2023-10-03 | 1 | -1/+1 |
| | |||||
* | 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 | 2 | -3/+34 |
| | |||||
* | Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagation | Fernando Sahmkow | 2023-08-19 | 2 | -5/+26 |
| | |||||
* | emit_glasm: Fix lmem size computation | ameerj | 2023-06-26 | 1 | -1/+1 |
| | |||||
* | Remove memory allocations in some hot paths | Kelebek1 | 2023-06-22 | 3 | -3/+3 |
| | |||||
* | 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 | 2 | -0/+68 |
| | | | | | | | 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). | ||||
* | general: fix spelling mistakes | Liam | 2023-03-12 | 2 | -41/+41 |
| | |||||
* | glsl_emit_context: Remove redeclarations of gl_SampleID and gl_SampleMask | ameerj | 2023-02-09 | 1 | -6/+0 |
| | | | | These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth | ||||
* | spirv: Fix TXQ with MSAA textures | ameerj | 2023-01-29 | 3 | -8/+19 |
| | |||||
* | emit_glasm_image: Fix TXQ with MSAA textures | ameerj | 2023-01-29 | 1 | -1/+9 |
| | |||||
* | emit_glsl_image: Implement TXQ with MSAA textures | ameerj | 2023-01-29 | 1 | -9/+23 |
| | | | | Also fixes for texture buffers, which do not have mips eithers. | ||||
* | Merge pull request #9694 from ameerj/txq-mips | liamwhite | 2023-01-29 | 6 | -16/+19 |
|\ | | | | | shader_recompiler: TXQ: Skip QueryLevels when possible | ||||
| * | shader_recompiler: TXQ: Skip QueryLevels when possible | ameerj | 2023-01-28 | 6 | -16/+19 |
| | | |||||
* | | Merge pull request #9687 from ameerj/ogl-shader-ms | bunnei | 2023-01-29 | 4 | -33/+46 |
|\ \ | | | | | | | glasm, glsl: Implement multisampled Image Fetch | ||||
| * | | emit_glsl_image: Fix ImageFetch for MSAA textures | ameerj | 2023-01-28 | 1 | -6/+11 |
| | | | |||||
| * | | glasm: Add MS sampler types | ameerj | 2023-01-27 | 2 | -5/+8 |
| | | | |||||
| * | | glsl: Add MS sampler types | ameerj | 2023-01-27 | 1 | -22/+27 |
| |/ | |||||
* | | Merge pull request #9682 from ameerj/shader-s32 | bunnei | 2023-01-28 | 6 | -15/+0 |
|\ \ | |/ |/| | shader_recompiler: Remove S32 IR type | ||||
| * | shader_recompiler: Remove S32 IR type | ameerj | 2023-01-26 | 6 | -15/+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 | 5 | -0/+32 |
| | |||||
* | MacroHLE: Add OpenGL Support | Fernando Sahmkow | 2023-01-01 | 2 | -1/+13 |
| | |||||
* | 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 | 5 | -0/+13 |
|\ | | | | | shader: Implement miss attribute layer | ||||
| * | shader: Implement miss attribute layer | FengChen | 2022-11-17 | 5 | -0/+13 |
| | | |||||
* | | video_core: Fix few issues in Tess stage | FengChen | 2022-11-07 | 9 | -0/+48 |
|/ | |||||
* | video_core: Fix SNORM texture buffer emulating error (#9001) | Feng Chen | 2022-11-04 | 6 | -1/+16 |
| | |||||
* | Merge pull request #8858 from vonchenplus/mipmap | bunnei | 2022-11-04 | 11 | -1/+67 |
|\ | | | | | video_core: Generate mipmap texture by drawing | ||||
| * | video_core: Generate mipmap texture by drawing | FengChen | 2022-09-20 | 11 | -1/+67 |
| | | |||||
* | | CMakeLists: Disable C4100 and C4324 | Morph | 2022-10-22 | 2 | -8/+0 |
| | | | | | | | | Disabling C4100 is similar to -Wno-unused-parameter | ||||
* | | shader_recompiler: add extended LDC to GLASM backend | Liam | 2022-10-02 | 1 | -4/+21 |
| | | |||||
* | | chore: fix some typos | Andrea Pappacoda | 2022-09-23 | 2 | -2/+2 |
|/ | | | | Fix some typos reported by Lintian | ||||
* | video_code: support rectangle texture | FengChen | 2022-08-25 | 5 | -0/+6 |
| | |||||
* | 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 | 73 | -219/+146 |
| | | | | | 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_compiler: support const buffer indirect addressing in GLSL | Liam | 2022-04-01 | 3 | -8/+37 |
| | |||||
* | 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 | 29 | -45/+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 |
| | |||||
* | emit_glsl_atomic: Implement 32x2 fallback atomic ops | ameerj | 2022-01-30 | 1 | -9/+55 |
| | |||||
* | shaders: Add U64->U32x2 Atomic fallback functions | ameerj | 2022-01-30 | 6 | -1/+413 |
| | |||||
* | 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 | 2 | -6/+8 |
| | | | | Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it. | ||||
* | glsl: Remove unreachable return | Narr the Reg | 2022-01-05 | 1 | -1/+0 |
| | |||||
* | Merge pull request #7629 from ameerj/nv-driver-fixes | Fernando S | 2022-01-03 | 11 | -23/+96 |
|\ | | | | | shaders: Add fixes for NVIDIA drivers 495+ | ||||
| * | glsl: Add boolean reference workaround | ameerj | 2021-12-30 | 2 | -2/+6 |
| | | |||||
| * | glsl_context_get_set: Add alternative cbuf type for broken drivers | ameerj | 2021-12-30 | 2 | -17/+25 |
| | | | | | | | | some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed. | ||||
| * | emit_glsl_integer: Use negation work around | ameerj | 2021-12-30 | 1 | -2/+2 |
| | | |||||
| * | shader: Add integer attribute get optimization pass | ameerj | 2021-12-30 | 6 | -0/+61 |
| | | | | | | | | Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0. | ||||
| * | emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers | ameerj | 2021-12-25 | 1 | -2/+2 |
| | | |||||
* | | Merge pull request #7618 from goldenx86/patch-4 | bunnei | 2021-12-29 | 1 | -0/+9 |
|\ \ | | | | | | | Increase boost requirement to 1.78.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 |
| |/ | |||||
* / | emit_glasm_context_get_set: Fix GetAttribute return value type. | ameerj | 2021-12-25 | 1 | -4/+4 |
|/ | | | | GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32 | ||||
* | Remove spirv handle legacy related code | vonchenplus | 2021-12-18 | 3 | -189/+0 |
| | |||||
* | Remove glsl handle legacy related code | vonchenplus | 2021-12-18 | 3 | -103/+1 |
| | |||||
* | 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. | ||||
* | glasm: Move implemented instructions from not_implemented.cpp | ameerj | 2021-12-06 | 7 | -169/+220 |
| | |||||
* | shader_recompiler: Adjust emit_context includes | ameerj | 2021-12-06 | 37 | -37/+37 |
| | |||||
* | shader_recompiler: Rename backend emit_context files | ameerj | 2021-12-05 | 6 | -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 | 14 | -47/+163 |
| | | | | Thanks for everything! | ||||
* | glsl/glasm: Pass and use scaling parameters in shaders | ReinUsesLisp | 2021-11-16 | 6 | -7/+11 |
| | |||||
* | gl_graphics_pipeline: Add downscale factor to shader uniforms | ameerj | 2021-11-16 | 3 | -4/+5 |
| | |||||
* | spirv: Implement rescaling patching | ReinUsesLisp | 2021-11-16 | 5 | -5/+72 |
| | |||||
* | shader: Add IsTextureScaled opcode | ReinUsesLisp | 2021-11-16 | 6 | -0/+24 |
| | |||||
* | shader: Add integer division opcodes | ReinUsesLisp | 2021-11-16 | 6 | -0/+30 |
| | |||||
* | shader: Add resolution down factor opcode | ReinUsesLisp | 2021-11-16 | 6 | -0/+18 |
| | |||||
* | 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 |
| | | |||||
* | | Merge pull request #7262 from FernandoS27/Buffalo-buffalo-Buffalo-buffalo-buffalo | bunnei | 2021-11-03 | 2 | -3/+3 |
|\ \ | | | | | | | ShaderCache: Order Phi Arguments from farthest away to nearest. | ||||
| * | | Shader Cahe: Fix Phi Nodes on GLASM. | Fernando Sahmkow | 2021-11-02 | 1 | -1/+1 |
| | | | |||||
| * | | ShaderCache: Fix Phi Nodes Type on OGL. | Fernando Sahmkow | 2021-11-01 | 1 | -2/+2 |
| |/ | |||||
* / | 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. | ||||
* | style: Remove extra space preceding the :: operator | Morph | 2021-09-29 | 1 | -2/+2 |
| | |||||
* | 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 | 2 | -54/+109 |
|\ | | | | | shaders: Fix warp instructions on 64-thread warp devices | ||||
| * | emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes | ameerj | 2021-08-31 | 1 | -24/+36 |
| | | |||||
| * | emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes | ameerj | 2021-08-31 | 1 | -24/+38 |
| | | |||||
| * | 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 |
| | |||||
* | Merge pull request #6726 from lioncash/hguard | Rodrigo Locatti | 2021-07-26 | 1 | -0/+2 |
|\ | | | | | emit_spirv_instructions: Add missing header guard | ||||
| * | emit_spirv_instructions: Add missing header guard | Lioncash | 2021-07-26 | 1 | -0/+2 |
| | | |||||
* | | emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive() | Lioncash | 2021-07-26 | 1 | -1/+1 |
|/ | | | | This should be LINES_ADJACENCY | ||||
* | shader: Fix disabled attribute default values | ameerj | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glsl: Simplify FCMP emission | ameerj | 2021-07-23 | 1 | -6/+4 |
| | |||||
* | glsl: Update TessellationControl gl_in | ameerj | 2021-07-23 | 1 | -0/+28 |
| | | | | Adheres to GL_ARB_separate_shader_objects requirements | ||||
* | shader: Avoid usage of C++20 ranges to build in clang | ReinUsesLisp | 2021-07-23 | 2 | -4/+12 |
| | |||||
* | glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE | ameerj | 2021-07-23 | 1 | -2/+9 |
| | |||||
* | shader_recompiler, video_core: Resolve clang errors | lat9nq | 2021-07-23 | 4 | -9/+13 |
| | | | | | | | | | | 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 | 4 | -16/+62 |
| | |||||
* | 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 | 5 | -11/+14 |
| | |||||
* | shader: Fix disabled and unwritten attributes and varyings | ReinUsesLisp | 2021-07-23 | 2 | -3/+11 |
| | |||||
* | glsl: Fix shared and local memory declarations | ameerj | 2021-07-23 | 1 | -3/+3 |
| | | | | account for the fact that program.*memory_size is in units of bytes. | ||||
* | opengl: Implement LOP.CC | ameerj | 2021-07-23 | 2 | -6/+38 |
| | | | | Used by MH:Rise | ||||
* | spirv: Fix code emission when descriptor aliasing is unsupported | ReinUsesLisp | 2021-07-23 | 1 | -1/+2 |
| | | | | Fixes OpenGL. | ||||
* | glsl: Declare local memory in main | ameerj | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | glsl: Add passthrough geometry shader support | ameerj | 2021-07-23 | 3 | -7/+27 |
| | |||||
* | glasm: Add passthrough geometry shader support | ReinUsesLisp | 2021-07-23 | 2 | -7/+26 |
| | |||||
* | shader: Rework varyings and implement passthrough geometry shaders | ReinUsesLisp | 2021-07-23 | 11 | -97/+116 |
| | | | | | | Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's. | ||||
* | glsl: Better IAdd Overflow CC fix | ameerj | 2021-07-23 | 2 | -11/+13 |
| | | | | This ensures the original operand values are not overwritten when being used in the overflow detection. | ||||
* | shader: Remove IAbs64 | ReinUsesLisp | 2021-07-23 | 6 | -15/+0 |
| | |||||
* | glsl: Fix IADD CC | ameerj | 2021-07-23 | 2 | -5/+7 |
| | |||||
* | shader: Move loop safety tests to code emission | ReinUsesLisp | 2021-07-23 | 11 | -32/+48 |
| | |||||
* | glsl: Remove frag color initialization | ameerj | 2021-07-23 | 1 | -9/+0 |
| | |||||
* | glasm: Implement SetAttribute ViewportMask | ameerj | 2021-07-23 | 2 | -1/+10 |
| | |||||
* | emit_glsl_special: Skip initialization of frag_color0 | ameerj | 2021-07-23 | 1 | -1/+1 |
| | | | | Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest. | ||||
* | glsl: Add missing ; in EmitSetSampleMask | Morph | 2021-07-23 | 1 | -1/+1 |
| | | | | Fixes shader compilation in Okami HD | ||||
* | glsl: Fix output varying initialization when transform feedback is used | ameerj | 2021-07-23 | 1 | -3/+37 |
| | |||||
* | 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 |
| | |||||
* | glsl: Fix cbuf component indexing bug falback | ameerj | 2021-07-23 | 1 | -7/+6 |
| | |||||
* | shader: Properly manage attributes not written from previous stages | ReinUsesLisp | 2021-07-23 | 6 | -30/+26 |
| | |||||
* | glsl: Only declare fragment outputs on fragment shaders | ReinUsesLisp | 2021-07-23 | 1 | -4/+6 |
| | |||||
* | shader: Split profile and runtime info headers | ReinUsesLisp | 2021-07-23 | 8 | -4/+7 |
| | |||||
* | glsl: Obey need_declared_frag_colors to declare and initialize all frag_color | ameerj | 2021-07-23 | 2 | -1/+10 |
| | | | | Fixes Ori and the blind forest title screen | ||||
* | glsl: Address rest of feedback | ameerj | 2021-07-23 | 4 | -19/+51 |
| | |||||
* | glsl: Move gl_Position/generic attribute initialization to EmitProlgue | ameerj | 2021-07-23 | 2 | -14/+12 |
| | |||||
* | glsl: Conditionally use fine/coarse derivatives based on device support | ameerj | 2021-07-23 | 2 | -4/+27 |
| | |||||
* | glsl: Cleanup/Address feedback | ameerj | 2021-07-23 | 8 | -28/+20 |
| | |||||
* | glsl: Add Shader_GLSL logging | ameerj | 2021-07-23 | 3 | -28/+32 |
| | |||||
* | glsl: Add LoopSafety instructions | ameerj | 2021-07-23 | 2 | -0/+10 |
| | |||||
* | glsl: Conditionally add EXT_texture_shadow_lod | ameerj | 2021-07-23 | 1 | -3/+5 |
| | |||||
* | glsl: Add stubs for sparse queries and variable aoffi when not supported | ameerj | 2021-07-23 | 3 | -13/+37 |
| | |||||
* | glsl: Implement legacy varyings | ameerj | 2021-07-23 | 4 | -7/+71 |
| | |||||
* | glsl: Minor cleanup | ameerj | 2021-07-23 | 2 | -19/+15 |
| | |||||
* | glsl: Fix Cbuf getters for F32 type | ameerj | 2021-07-23 | 1 | -12/+15 |
| | |||||
* | glsl: Add immediate index oob checking for Cbuf getters | ameerj | 2021-07-23 | 1 | -0/+16 |
| | |||||
* | glsl: Refactor GetCbuf functions to reduce code duplication | ameerj | 2021-07-23 | 1 | -104/+66 |
| | |||||
* | glsl: Address more feedback. Implement indexed texture reads | ameerj | 2021-07-23 | 5 | -111/+109 |
| | |||||
* | glsl: Remove Signed Integer variables | ameerj | 2021-07-23 | 8 | -43/+13 |
| | |||||
* | glsl: Address Rodrigo's feedback | ameerj | 2021-07-23 | 13 | -75/+87 |
| | |||||
* | glsl: Reorganize backend code, remove unneeded [[maybe_unused]] | ameerj | 2021-07-23 | 11 | -314/+251 |
| | |||||
* | glsl: Implement SampleId and SetSampleMask | ameerj | 2021-07-23 | 3 | -30/+35 |
| | | | | plus some minor refactoring of implementations | ||||
* | glsl: Add gl_PerVertex in for GS | ameerj | 2021-07-23 | 1 | -1/+2 |
| | |||||
* | glsl: Use existing tracking for enabling EXT_shader_image_load_formatted | ameerj | 2021-07-23 | 1 | -15/+1 |
| | |||||
* | glsl: Enable early fragment tests | ameerj | 2021-07-23 | 2 | -4/+7 |
| | |||||
* | glsl: Implement more attribute getters and setters | ameerj | 2021-07-23 | 2 | -12/+60 |
| | |||||
* | glsl: Implement fswzadd | ameerj | 2021-07-23 | 3 | -5/+43 |
| | | | | and wip nv thread shuffle impl | ||||
* | glsl: Implement indexed attribute loads | ameerj | 2021-07-23 | 5 | -29/+64 |
| | |||||
* | glsl: Conditionally add GL_ARB_sparse_texture2 | ameerj | 2021-07-23 | 1 | -2/+3 |
| | |||||
* | glsl: Conditionally use GL_EXT_shader_image_load_formatted | ameerj | 2021-07-23 | 1 | -2/+18 |
| | | | | Fix for SULD.D | ||||
* | glsl: Remove output generic indexing for geometry stage | ameerj | 2021-07-23 | 1 | -5/+3 |
| | |||||
* | glsl: Allow dynamic tracking of variable allocation | ameerj | 2021-07-23 | 3 | -21/+35 |
| | |||||
* | glsl: Implement barriers | ameerj | 2021-07-23 | 3 | -13/+21 |
| | |||||
* | glsl: Implement image atomics and set layer | ameerj | 2021-07-23 | 4 | -152/+202 |
| | | | | along with some more cleanup/oversight fixes | ||||
* | glsl: Fix image gather logic | ameerj | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | glsl: Add cbuf access workaround for devices with component indexing bug | ameerj | 2021-07-23 | 1 | -51/+110 |
| | |||||
* | glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported | ameerj | 2021-07-23 | 2 | -8/+40 |
| | |||||
* | emit_glsl_image: Use immediate offsets when possible | ameerj | 2021-07-23 | 1 | -12/+33 |
| | |||||
* | glsl: Fix <32-bit SSBO writes | ameerj | 2021-07-23 | 4 | -50/+43 |
| | | | | and more cleanup | ||||
* | glsl: Cleanup and address feedback | ameerj | 2021-07-23 | 10 | -86/+69 |
| | |||||
* | glsl: Refactor Global memory functions | ameerj | 2021-07-23 | 2 | -71/+73 |
| | |||||
* | glsl: Increase NUM_VARS that can be allocated | ameerj | 2021-07-23 | 1 | -1/+1 |
| | | | | needed for HW:AoC. | ||||
* | glsl: Implement Load/WriteGlobal | ameerj | 2021-07-23 | 9 | -98/+185 |
| | | | | along with some other misc changes and fixes | ||||
* | glsl: Implement Images | ameerj | 2021-07-23 | 2 | -9/+74 |
| | |||||
* | glsl: skip gl_ViewportIndex write if device does not support it | ameerj | 2021-07-23 | 3 | -8/+16 |
| | |||||
* | glsl: Implement transform feedback | ameerj | 2021-07-23 | 3 | -13/+63 |
| | |||||
* | glsl: Yet another gl_ViewportIndex fix attempt | ameerj | 2021-07-23 | 1 | -3/+19 |
| | |||||
* | glsl: Add gl_ViewportIndex out attribute | ameerj | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | emit_glsl_context_get_set: Remove unused function | lat9nq | 2021-07-23 | 1 | -4/+0 |
| | |||||
* | glsl: Fix precise variable declaration | ameerj | 2021-07-23 | 3 | -24/+25 |
| | | | | and add some more separation in the shader for better debugability when dumped | ||||
* | glsl: Implement tessellation shaders | ameerj | 2021-07-23 | 5 | -27/+146 |
| | |||||
* | glsl: Implement ImageGradient and other texture function variants | ameerj | 2021-07-23 | 2 | -32/+73 |
| | |||||
* | glsl: Fix atomic SSBO offsets | ameerj | 2021-07-23 | 4 | -67/+74 |
| | | | | and implement misc getters | ||||
* | glsl: Implement geometry shaders | ameerj | 2021-07-23 | 4 | -9/+62 |
| | |||||
* | glsl: Use NotImplemented macro with function name output | ameerj | 2021-07-23 | 10 | -104/+103 |
| | |||||
* | glsl: Implement gl_ViewportIndex | ameerj | 2021-07-23 | 3 | -5/+14 |
| | | | | SSBU now working | ||||
* | glsl: SHFL fix and prefer shift operations over divide in glsl shader | ameerj | 2021-07-23 | 5 | -63/+64 |
| | |||||
* | glsl: Implement precise fp variable allocation | ameerj | 2021-07-23 | 4 | -8/+67 |
| | |||||
* | HACK glsl: Write defaults to unused generic attributes | ameerj | 2021-07-23 | 2 | -2/+11 |
| | |||||
* | glsl: Fix ssbo indexing and name shadowing between shader stages | ameerj | 2021-07-23 | 3 | -77/+101 |
| | |||||
* | glsl: implement set clip distance | ameerj | 2021-07-23 | 2 | -0/+15 |
| | | | | and missed a diff in emit_glsl relating to var alloc ref counting | ||||
* | glsl: Rework var alloc to not assign unused results | ameerj | 2021-07-23 | 9 | -49/+91 |
| | |||||
* | glsl: Rework variable allocator to allow for variable reuse | ameerj | 2021-07-23 | 13 | -351/+480 |
| | |||||
* | glsl: Fix ATOM and implement ATOMS | ameerj | 2021-07-23 | 4 | -114/+130 |
| | |||||
* | glsl: Use gl_SubGroupInvocationARB | ameerj | 2021-07-23 | 2 | -8/+7 |
| | |||||
* | glsl: Implement VOTE for subgroup size potentially larger | ameerj | 2021-07-23 | 2 | -19/+36 |
| | |||||
* | glsl: Implement VOTE | ameerj | 2021-07-23 | 4 | -50/+64 |
| | |||||
* | glsl: Implement ST{LS} | ameerj | 2021-07-23 | 6 | -69/+106 |
| | |||||
* | glsl: Implement more instructions used by SMO | ameerj | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | glsl: Implement more instructions used by SMO | ameerj | 2021-07-23 | 5 | -10/+16 |
| | |||||
* | glsl: Fix GetAttribute return values | ameerj | 2021-07-23 | 2 | -7/+9 |
| | | | | fixes font rendering issues as these were used to index into the ssbos | ||||
* | glsl: minor cleanup | ameerj | 2021-07-23 | 4 | -20/+19 |
| | |||||
* | glsl: Fix and implement rest of cbuf access | ameerj | 2021-07-23 | 1 | -7/+43 |
| | |||||
* | glsl: Implement TXQ and other misc changes | ameerj | 2021-07-23 | 5 | -6/+36 |
| | |||||
* | glsl: TLD4 implementation | ameerj | 2021-07-23 | 1 | -2/+89 |
| | |||||
* | glsl: Implement TLD instruction | ameerj | 2021-07-23 | 1 | -1/+55 |
| | |||||
* | glsl: Implement TEXS | ameerj | 2021-07-23 | 1 | -1/+29 |
| | |||||
* | glsl: Cleanup texture functions | ameerj | 2021-07-23 | 1 | -13/+11 |
| | |||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 14 | -3/+13 |
| | |||||
* | glsl: Implement TEX depth functions | ameerj | 2021-07-23 | 2 | -4/+46 |
| | |||||
* | glsl: Implement TEX ImageSample functions | ameerj | 2021-07-23 | 3 | -11/+71 |
| | |||||
* | glsl: Rework Shuffle emit instructions to align with SPIR-V | ameerj | 2021-07-23 | 1 | -19/+40 |
| | |||||
* | glsl: Better Storage access and wip warps | ameerj | 2021-07-23 | 8 | -62/+133 |
| | |||||
* | glsl: Fix integer conversions, implement clamp CC | ameerj | 2021-07-23 | 2 | -27/+36 |
| | |||||
* | glsl: Implement IADD CC | ameerj | 2021-07-23 | 2 | -2/+17 |
| | |||||
* | glsl: SSBO access fixes and wip SampleExplicitLod implementation. | ameerj | 2021-07-23 | 2 | -4/+19 |
| | |||||
* | glsl: WIP var forward declaration | ameerj | 2021-07-23 | 6 | -49/+60 |
| | | | | to fix Loop control flow. | ||||
* | glsl: Fix bindings, add some CC ops | ameerj | 2021-07-23 | 8 | -57/+91 |
| | |||||
* | glsl: remove unused headers | ameerj | 2021-07-23 | 14 | -34/+10 |
| | |||||
* | glsl: Implement derivatives and YDirection | ameerj | 2021-07-23 | 8 | -81/+87 |
| | | | | plus some other misc additions/changed | ||||
* | glsl: Fix non-immediate buffer access | ameerj | 2021-07-23 | 12 | -72/+133 |
| | | | | and many other misc implementations | ||||
* | glsl: textures wip | ameerj | 2021-07-23 | 9 | -75/+139 |
| | |||||
* | glsl: Implement some attribute getters and setters | ameerj | 2021-07-23 | 9 | -191/+337 |
| | |||||
* | glsl: Track S32 atomics | ameerj | 2021-07-23 | 1 | -3/+6 |
| | |||||
* | glsl: Update phi node management | ameerj | 2021-07-23 | 4 | -21/+53 |
| | |||||
* | glsl: Fix floating point compare ops | ameerj | 2021-07-23 | 1 | -28/+28 |
| | | | | Logic for ordered/unordered ops was wrong. | ||||
* | glsl: Query GL Device for FP16 extension support | ameerj | 2021-07-23 | 1 | -2/+7 |
| | |||||
* | glsl: Simply FP storage atomics | ameerj | 2021-07-23 | 2 | -48/+28 |
| | |||||
* | glsl: F16x2 storage atomics | ameerj | 2021-07-23 | 7 | -58/+64 |
| | |||||
* | glsl: Revert ssbo aliasing. Storage Atomics impl | ameerj | 2021-07-23 | 4 | -68/+132 |
| | |||||
* | glsl: implement phi nodes | ameerj | 2021-07-23 | 4 | -20/+54 |
| | |||||
* | glsl: Wip storage atomic ops | ameerj | 2021-07-23 | 8 | -325/+406 |
| | |||||
* | glsl: Implement FCMP | ameerj | 2021-07-23 | 3 | -242/+185 |
| | |||||
* | glsl: Add a more robust fp formatter | ameerj | 2021-07-23 | 4 | -9/+14 |
| | |||||
* | glsl: More FP fixes | ameerj | 2021-07-23 | 2 | -9/+16 |
| | |||||
* | glsl: FP function fixes | ameerj | 2021-07-23 | 7 | -17/+25 |
| | |||||
* | glsl: More FP instructions/fixes | ameerj | 2021-07-23 | 5 | -28/+41 |
| | |||||
* | glsl: Add many FP32/64 instructions | ameerj | 2021-07-23 | 12 | -765/+1011 |
| | |||||
* | glsl: Implement more Integer ops | ameerj | 2021-07-23 | 3 | -119/+72 |
| | |||||
* | glsl: Implement BF* | ameerj | 2021-07-23 | 3 | -9/+10 |
| | |||||
* | glsl: Implement a few Integer instructions | ameerj | 2021-07-23 | 10 | -260/+398 |
| | |||||
* | glsl: Use std::string_view for Emit function args. | ameerj | 2021-07-23 | 6 | -760/+838 |
| | |||||
* | glsl: Pass IR::Inst& to Emit functions | ameerj | 2021-07-23 | 6 | -171/+169 |
| | |||||
* | glsl: INeg and IAdd negate tests | ameerj | 2021-07-23 | 3 | -94/+106 |
| | |||||
* | glsl: Reusable typed variables. IADD32 | ameerj | 2021-07-23 | 6 | -203/+311 |
| | |||||
* | glsl: Fix program linking and cbuf | ameerj | 2021-07-23 | 2 | -3/+5 |
| | |||||
* | glsl: Fix "reg" allocing | ameerj | 2021-07-23 | 10 | -898/+938 |
| | | | | based on glasm with some tweaks | ||||
* | glsl: Initial backend | ameerj | 2021-07-23 | 26 | -0/+3266 |
| | |||||
* | spirv: Reduce log severity of mismatching denorm rules | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | shader: Add logging | ReinUsesLisp | 2021-07-23 | 9 | -21/+23 |
| | |||||
* | shader: Add shader loop safety check settings | lat9nq | 2021-07-23 | 4 | -8/+28 |
| | | | | 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. | ||||
* | glasm: Use ARB_derivative_control conditionally | ReinUsesLisp | 2021-07-23 | 2 | -7/+29 |
| | |||||
* | emit_glasm_context_get_set: Remove unused variable | lat9nq | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | shader,glasm: Implement legacy texcoord loads | ReinUsesLisp | 2021-07-23 | 1 | -2/+10 |
| | |||||
* | glasm: Implement legacy varyings | ReinUsesLisp | 2021-07-23 | 1 | -17/+56 |
| | |||||
* | shader: Add support for "negative" and unaligned offsets | ReinUsesLisp | 2021-07-23 | 2 | -6/+11 |
| | | | | | | | | | "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 | 3 | -10/+5 |
| | | | | | | 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 |
| | |||||
* | glasm: Fix immediate texture coordinate | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | glasm: Reduce reg allocation leaks from an exception to a log | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Use integer lod for TXQ | ReinUsesLisp | 2021-07-23 | 2 | -2/+2 |
| | |||||
* | glasm: Fix global memory fallbacks | ReinUsesLisp | 2021-07-23 | 1 | -9/+10 |
| | |||||
* | Revert "glasm: Skip phi moves on undefined instructions" | ReinUsesLisp | 2021-07-23 | 1 | -3/+1 |
| | | | | Causes regressions on Bowser's Fury. | ||||
* | glasm: Remove unintentional '\n' on Undef32 | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Use storage buffers instead of global memory when possible | ReinUsesLisp | 2021-07-23 | 4 | -369/+380 |
| | |||||
* | glasm: Implement Y direction | ReinUsesLisp | 2021-07-23 | 4 | -3/+9 |
| | |||||
* | glasm: Skip phi moves on undefined instructions | ReinUsesLisp | 2021-07-23 | 1 | -1/+3 |
| | |||||
* | glasm: Implement undef instructions | ReinUsesLisp | 2021-07-23 | 2 | -15/+15 |
| | |||||
* | glasm: Fix global memory callbacks | ReinUsesLisp | 2021-07-23 | 1 | -5/+6 |
| | |||||
* | glasm: Release phi node registers after they are no longer needed | ReinUsesLisp | 2021-07-23 | 2 | -38/+54 |
| | |||||
* | glasm: Fix INeg32 on negative immediates | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | glasm: Remove unnecessary value types | ReinUsesLisp | 2021-07-23 | 3 | -47/+6 |
| | |||||
* | glasm: Throw when there are register leaks | ReinUsesLisp | 2021-07-23 | 2 | -0/+7 |
| | |||||
* | glasm: Catch more register leaks | ReinUsesLisp | 2021-07-23 | 8 | -41/+114 |
| | | | | | | | | | | | | | 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. | ||||
* | glasm: Fix usage counting on phi nodes | ReinUsesLisp | 2021-07-23 | 3 | -8/+22 |
| | |||||
* | glasm: Implement global memory fallbacks | ReinUsesLisp | 2021-07-23 | 2 | -50/+89 |
| | |||||
* | glasm: Implement int64 add and subtract | ReinUsesLisp | 2021-07-23 | 2 | -8/+6 |
| | |||||
* | emit_glasm_context_get_set: Remove unused variable | lat9nq | 2021-07-23 | 1 | -1/+0 |
| | |||||
* | glasm: Implement indirect attribute loads | ReinUsesLisp | 2021-07-23 | 4 | -6/+65 |
| | |||||
* | glasm: Implement image atomics | ReinUsesLisp | 2021-07-23 | 2 | -165/+153 |
| | |||||
* | glasm: Reorder unreachable image atomic insts | ReinUsesLisp | 2021-07-23 | 1 | -66/+66 |
| | | | | Reorder them to the bottom of the file for readability. | ||||
* | glasm: Implement gl_Layer stores | ReinUsesLisp | 2021-07-23 | 1 | -0/+7 |
| | |||||
* | glasm: Implement SampleId | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | glasm: Implement IsHelperInvocation | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | glasm: Fix EmitVertex's optimization | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | gl_shader_cache,glasm: Conditionally use typeless image reads extension | ReinUsesLisp | 2021-07-23 | 1 | -2/+4 |
| | |||||
* | glasm: Implement forced early Z | ReinUsesLisp | 2021-07-23 | 1 | -2/+6 |
| | |||||
* | glasm: Simplify patch reads | ReinUsesLisp | 2021-07-23 | 1 | -5/+2 |
| | |||||
* | glasm: Fix output patch reads | ReinUsesLisp | 2021-07-23 | 2 | -13/+22 |
| | | | | With this, Luigi's Mansion's sand renders properly. | ||||
* | shader: Split profile and runtime information in separate structs | ReinUsesLisp | 2021-07-23 | 10 | -66/+80 |
| | |||||
* | emit_glasm_context_get_and_set.cpp: Add missing semicolons | ameerj | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Fix patch attribute declarations | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement FSWZADD | ameerj | 2021-07-23 | 3 | -4/+28 |
| | |||||
* | glasm: Implement PrimitiveId attribute read | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Implement clip distance stores | ReinUsesLisp | 2021-07-23 | 2 | -0/+15 |
| | |||||
* | glasm: Fix tessellation input attributes | ReinUsesLisp | 2021-07-23 | 1 | -2/+5 |
| | |||||
* | glasm: Add missing semicolon on tesscoord reading | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Fix tessellation headers | ReinUsesLisp | 2021-07-23 | 1 | -2/+2 |
| | |||||
* | glasm: Add tessellation shader declarations | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Implement TessellationEvaluationPoint | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | glasm: Implement patch memory | ReinUsesLisp | 2021-07-23 | 3 | -6/+51 |
| | |||||
* | glasm: Fix InvocationId declaration | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement InvocationId | ReinUsesLisp | 2021-07-23 | 2 | -2/+5 |
| | |||||
* | glasm: Optimize EmitVertex into EMIT | ReinUsesLisp | 2021-07-23 | 1 | -1/+5 |
| | |||||
* | glasm: Implement geometry shader attribute reads | ReinUsesLisp | 2021-07-23 | 2 | -4/+18 |
| | |||||
* | glasm: Properly declare attributes on geometry programs | ReinUsesLisp | 2021-07-23 | 3 | -6/+14 |
| | |||||
* | glasm: Declare geometry program headers | ReinUsesLisp | 2021-07-23 | 1 | -0/+35 |
| | |||||
* | glasm: Fix potential aliasing bug on cube array samples | ReinUsesLisp | 2021-07-23 | 2 | -35/+44 |
| | |||||
* | glasm: Implement ImageWrite | ReinUsesLisp | 2021-07-23 | 1 | -4/+7 |
| | |||||
* | glasm: Implement ImageRead | ReinUsesLisp | 2021-07-23 | 4 | -4/+56 |
| | |||||
* | glasm: Implement EmitVertex and EndPrimitive | ReinUsesLisp | 2021-07-23 | 2 | -4/+8 |
| | |||||
* | glasm: Implement ImageGradient | ReinUsesLisp | 2021-07-23 | 2 | -7/+65 |
| | |||||
* | glasm: Implement 64-bit shifts | ReinUsesLisp | 2021-07-23 | 2 | -12/+14 |
| | |||||
* | glasm: Implement barriers | ReinUsesLisp | 2021-07-23 | 1 | -3/+3 |
| | |||||
* | glasm: Fix compute stage name | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Fix phi instruction types | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement PREC on relevant instructions | ReinUsesLisp | 2021-07-23 | 1 | -6/+12 |
| | |||||
* | glasm: Implement stores to gl_ViewportIndex | ReinUsesLisp | 2021-07-23 | 4 | -7/+29 |
| | |||||
* | glasm: Implement gl_PointSize stores | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Implement gl_PointCoord | ReinUsesLisp | 2021-07-23 | 1 | -0/+4 |
| | |||||
* | glasm: Implement ImageQueryLod | ReinUsesLisp | 2021-07-23 | 1 | -3/+5 |
| | |||||
* | glasm: Implement ImageFetch | ReinUsesLisp | 2021-07-23 | 4 | -13/+38 |
| | |||||
* | glasm: Implement IADD.CC | ameerj | 2021-07-23 | 1 | -1/+26 |
| | |||||
* | glasm: Implement BFE.CC | ReinUsesLisp | 2021-07-23 | 1 | -0/+8 |
| | |||||
* | glasm: Implement SelectU1 | ReinUsesLisp | 2021-07-23 | 2 | -4/+5 |
| | |||||
* | glasm: Implement gl_WorkGroupID | ReinUsesLisp | 2021-07-23 | 2 | -3/+3 |
| | |||||
* | glasm: Implement TXQ and improve texture info reads | ReinUsesLisp | 2021-07-23 | 2 | -50/+51 |
| | |||||
* | glasm: Implement gl_FrongFacing attribute | ReinUsesLisp | 2021-07-23 | 1 | -0/+3 |
| | |||||
* | glasm: Support textures used in more than one stage | ReinUsesLisp | 2021-07-23 | 3 | -4/+24 |
| | |||||
* | glasm: Implement textureGather instructions | ReinUsesLisp | 2021-07-23 | 2 | -15/+97 |
| | |||||
* | glasm: Implement gl_FragDepth and gl_SampleMask stores | ReinUsesLisp | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | glasm: Do not alias ConditionRef for now | ReinUsesLisp | 2021-07-23 | 2 | -3/+2 |
| | | | | | Immediate condition refs where not handled correctly. Just move the value for now. | ||||
* | shader: Read branch conditions from an instruction | ReinUsesLisp | 2021-07-23 | 7 | -5/+20 |
| | | | | Fixes the identity removal pass. | ||||
* | glasm: Implement InstanceId and VertexId | ReinUsesLisp | 2021-07-23 | 1 | -0/+6 |
| | |||||
* | glasm: Add missing return value on move assignment | ReinUsesLisp | 2021-07-23 | 1 | -0/+1 |
| | |||||
* | glasm: Fix aliased bitcasts ref counting | ReinUsesLisp | 2021-07-23 | 3 | -13/+42 |
| | |||||
* | glasm: Remove unintentional comma on vector insert | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | |||||
* | glasm: Implement TEX and TEXS instructions | ReinUsesLisp | 2021-07-23 | 6 | -47/+258 |
| | | | | | Remove lod clamp from texture instructions with lod, as this is not needed (nor supported). | ||||
* | glasm: Add support for non-2D texture samples | ReinUsesLisp | 2021-07-23 | 1 | -4/+26 |
| | |||||
* | glasm: Reorder unreachable image instructions to the bottom | ReinUsesLisp | 2021-07-23 | 1 | -97/+97 |
| | |||||
* | glasm: Add support for texture offsets | ReinUsesLisp | 2021-07-23 | 1 | -11/+15 |
| | |||||
* | glasm: Improve texture sampling instructions | ReinUsesLisp | 2021-07-23 | 2 | -50/+70 |
| | |||||
* | emit_glasm: Enable ARB_draw_buffers when needed | ReinUsesLisp | 2021-07-23 | 2 | -1/+5 |
| | |||||
* | emit_glasm: Add support for reading position attributes | ReinUsesLisp | 2021-07-23 | 1 | -3/+13 |
| | |||||
* | shader_recompiler: GCC fixes | lat9nq | 2021-07-23 | 3 | -25/+25 |
| | | | | | Fixes members of unnamed union not being accessible, and one function without a declaration. | ||||
* | glasm: Implement rest of shared mem | ameerj | 2021-07-23 | 2 | -35/+29 |
| | |||||
* | emit_spirv: Jump to loop body with local variable | ReinUsesLisp | 2021-07-23 | 1 | -1/+1 |
| | | | | Silence unused variable warning | ||||
* | glasm: Implement derivative instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -12/+12 |
| | |||||
* | glasm: Initial (broken) implementation of TEX on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -299/+386 |
| | |||||
* | glasm: Implement some graphics instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+5 |
| | |||||
* | glasm: Add Void type to GLASM values | ReinUsesLisp | 2021-07-23 | 3 | -0/+15 |
| | |||||
* | glasm: Add graphics specific shader declarations to GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+63 |
| | |||||
* | glasm: Implement local memory for glasm | ameerj | 2021-07-23 | 4 | -9/+12 |
| | |||||
* | 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 | 5 | -10/+88 |
| | |||||
* | glasm: Write result to scalar on integer comparison instructions | ReinUsesLisp | 2021-07-23 | 1 | -10/+10 |
| | |||||
* | glasm: Declare NV_shader_thread_group when needed | ReinUsesLisp | 2021-07-23 | 1 | -3/+4 |
| | |||||
* | glasm: Rework control flow introducing a syntax list | ReinUsesLisp | 2021-07-23 | 9 | -88/+116 |
| | | | | | This commit regresses VertexA shaders, their transformation pass has to be adapted to the new control flow. | ||||
* | glasm: Implement Storage atomics | ameerj | 2021-07-23 | 5 | -109/+156 |
| | | | | | StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit result into the register | ||||
* | glasm: Ensure reg alloc order across compilers on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -11/+14 |
| | | | | | | | | | | | | | | | | | | Use a struct constructor to serialize register allocation arguments to ensure registers are allocated in the same order regardless of the compiler used. The A and B functions can be called in any order when passed as arguments to "foo": foo(A(), B()) But the order is guaranteed for curly-braced constructor calls in classes: Foo{A(), B()} Use this to get consistent behavior. | ||||
* | glasm: Enable unintentionally disabled register aliasing on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -16/+11 |
| | |||||
* | glasm: Review all GLASM insts to be aware of register aliasing | ReinUsesLisp | 2021-07-23 | 4 | -20/+51 |
| | |||||
* | glasm: Implement shuffle and vote instructions on GLASM | ReinUsesLisp | 2021-07-23 | 8 | -99/+162 |
| | |||||
* | glasm: Add MUFU instructions to GLASM | ReinUsesLisp | 2021-07-23 | 2 | -21/+22 |
| | |||||
* | glasm: Implement IAbs64 and INeg64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -6/+6 |
| | |||||
* | glasm: Properly clamp Fp64 on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | |||||
* | glasm: Fix register allocation when moving immediate on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -42/+89 |
| | |||||
* | glasm: Implement SelectU64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -4/+20 |
| | |||||
* | glasm: Fix clamps so the min value has priority on NAN on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -12/+15 |
| | |||||
* | glasm: Fix moving U64 immediates to registers in GLASM | ReinUsesLisp | 2021-07-23 | 2 | -3/+4 |
| | |||||
* | glasm: Implement storage atomic ops | ameerj | 2021-07-23 | 4 | -305/+358 |
| | |||||
* | glasm: Add conversion instructions to GLASM | ReinUsesLisp | 2021-07-23 | 9 | -282/+351 |
| | |||||
* | glasm: Add fp min/max insts and fix store for fp64 on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -10/+8 |
| | |||||
* | glasm: Add logical instructions on GLASM | ReinUsesLisp | 2021-07-23 | 2 | -12/+12 |
| | |||||
* | glasm: Remove duplicated Fp64 pack instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -8/+0 |
| | |||||
* | glasm: Remove unnecesary new white space on Clamp GLASM | ReinUsesLisp | 2021-07-23 | 1 | -4/+4 |
| | |||||
* | glasm: Add floating-point comparisons on GLASM | ReinUsesLisp | 2021-07-23 | 3 | -120/+116 |
| | |||||
* | emit_glasm: Implement more integer alu ops | ameerj | 2021-07-23 | 2 | -47/+41 |
| | |||||
* | glasm: Reimplement bitwise ops and BFI/BFE | ameerj | 2021-07-23 | 4 | -88/+108 |
| | |||||
* | glasm: Initial GLASM fp64 support | ReinUsesLisp | 2021-07-23 | 9 | -55/+152 |
| | |||||
* | glasm: Implement GLASM fp16 packing and move bitwise insns | ReinUsesLisp | 2021-07-23 | 4 | -66/+77 |
| | |||||
* | glasm: Remove unused functions left from rebase | ReinUsesLisp | 2021-07-23 | 1 | -12/+0 |
| | |||||
* | glasm: Specify namespace when using FormatTo | ReinUsesLisp | 2021-07-23 | 1 | -6/+6 |
| | |||||
* | glasm: Implement more GLASM composite instructions | ReinUsesLisp | 2021-07-23 | 2 | -54/+63 |
| | |||||
* | glasm: Make GLASM aware of types | ReinUsesLisp | 2021-07-23 | 12 | -1244/+1380 |
| | |||||
* | glasm: Use CMP.S for Select32 | ameerj | 2021-07-23 | 3 | -12/+8 |
| | | | | also fixes ADD and SUB to use U modifier | ||||
* | glasm: Implement more logical ops | ameerj | 2021-07-23 | 2 | -5/+5 |
| | |||||
* | glasm: Implement BFI, BFE | ameerj | 2021-07-23 | 4 | -138/+164 |
| | | | | Along with implementations of common instructions along the way | ||||
* | glasm: Use BitField instead of C bitfields | ReinUsesLisp | 2021-07-23 | 2 | -8/+12 |
| | |||||
* | glasm: Remove unused argument in identity instructions on GLASM | ReinUsesLisp | 2021-07-23 | 1 | -7/+7 |
| | |||||
* | glasm: Implement basic GLASM instructions | ReinUsesLisp | 2021-07-23 | 9 | -840/+1167 |
| | |||||
* | glasm: Changes to GLASM register allocator and emit context | ReinUsesLisp | 2021-07-23 | 4 | -26/+64 |
| | |||||
* | glasm: Add GLASM backend infrastructure | ReinUsesLisp | 2021-07-23 | 26 | -0/+3079 |
| | |||||
* | 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 | 23 | -572/+629 |
| | |||||
* | 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 |