summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glsl (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-11-18shader_recompiler: Fix spelling of "derivate" (#12067)Ameer J1-3/+3
2023-11-01shader_recompiler: Align SSBO offsets in GlobalMemory functionsAmeer J1-1/+4
2023-10-22emit_glsl_warp: Fix shfl_in_bounds conditionalAmeer J2-4/+9
2023-09-02shader_recompiler: fix emulation of 3D textureGradLiam1-1/+1
2023-08-19Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagationFernando Sahmkow1-1/+7
2023-06-22Remove memory allocations in some hot pathsKelebek11-1/+1
2023-04-08shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`Wollnashorn1-0/+29
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).
2023-03-12general: fix spelling mistakesLiam2-41/+41
2023-02-14remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistencyarades791-1/+1
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation where possiblearades791-1/+1
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-09glsl_emit_context: Remove redeclarations of gl_SampleID and gl_SampleMaskameerj1-6/+0
These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth
2023-01-29emit_glsl_image: Implement TXQ with MSAA texturesameerj1-9/+23
Also fixes for texture buffers, which do not have mips eithers.
2023-01-28shader_recompiler: TXQ: Skip QueryLevels when possibleameerj2-11/+11
2023-01-28emit_glsl_image: Fix ImageFetch for MSAA texturesameerj1-6/+11
2023-01-27glsl: Add MS sampler typesameerj1-22/+27
2023-01-26shader_recompiler: Remove S32 IR typeameerj2-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
2023-01-04Video_core: Address feedbackFernando Sahmkow1-0/+6
2023-01-01MacroHLE: Add OpenGL SupportFernando Sahmkow2-1/+13
2022-11-17shader: Implement miss attribute layerFengChen1-0/+3
2022-11-07video_core: Fix few issues in Tess stageFengChen2-0/+13
2022-11-04video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen2-0/+5
2022-10-22CMakeLists: Disable C4100 and C4324Morph1-4/+0
Disabling C4100 is similar to -Wno-unused-parameter
2022-09-23chore: fix some typosAndrea Pappacoda1-1/+1
Fix some typos reported by Lintian
2022-09-20video_core: Generate mipmap texture by drawingFengChen3-0/+8
2022-08-25video_code: support rectangle textureFengChen2-0/+2
2022-04-23general: Convert source file copyright comments over to SPDXMorph25-75/+50
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-01shader_compiler: support const buffer indirect addressing in GLSLLiam3-8/+37
2022-03-20shader_recompiler: Reduce unused includesameerj7-13/+0
2022-01-30emit_glsl_atomic: Implement 32x2 fallback atomic opsameerj1-9/+55
2022-01-30shaders: Add U64->U32x2 Atomic fallback functionsameerj2-0/+127
2022-01-17shader_recompiler: fix potential OOB accessv19931-3/+4
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
2022-01-05glsl: Remove unreachable returnNarr the Reg1-1/+0
2021-12-30glsl: Add boolean reference workaroundameerj2-2/+6
2021-12-30glsl_context_get_set: Add alternative cbuf type for broken driversameerj2-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.
2021-12-30emit_glsl_integer: Use negation work aroundameerj1-2/+2
2021-12-30shader: Add integer attribute get optimization passameerj2-0/+18
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-25emit_glsl_floating_point: Fix FPNeg on newer Nvidia driversameerj1-2/+2
2021-12-18Remove glsl handle legacy related codevonchenplus3-103/+1
2021-12-06shader_recompiler: Adjust emit_context includesameerj20-20/+20
2021-12-05shader_recompiler: Rename backend emit_context filesameerj2-0/+0
2021-11-16shader: Properly scale image reads and add GL SPIR-V supportReinUsesLisp2-1/+9
Thanks for everything!
2021-11-16glsl/glasm: Pass and use scaling parameters in shadersReinUsesLisp3-4/+4
2021-11-16gl_graphics_pipeline: Add downscale factor to shader uniformsameerj2-2/+4
2021-11-16shader: Add IsTextureScaled opcodeReinUsesLisp2-0/+10
2021-11-16shader: Add integer division opcodesReinUsesLisp2-0/+10
2021-11-16shader: Add resolution down factor opcodeReinUsesLisp2-0/+6
2021-11-01ShaderCache: Fix Phi Nodes Type on OGL.Fernando Sahmkow1-2/+2
2021-09-29style: Remove extra space preceding the :: operatorMorph1-2/+2
2021-08-31emit_glsl_warp: Fix shuffle ops for 64-thread warp sizesameerj1-24/+36
2021-08-31emit_glsl_warp: Fix ballot related ops for 64-thread warp sizesameerj1-24/+38
2021-07-23glsl: Simplify FCMP emissionameerj1-6/+4
2021-07-23glsl: Update TessellationControl gl_inameerj1-0/+28
Adheres to GL_ARB_separate_shader_objects requirements
2021-07-23shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp1-2/+7
2021-07-23glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZEameerj1-2/+9
2021-07-23shader_recompiler, video_core: Resolve clang errorslat9nq1-1/+1
Silences the following warnings-turned-errors: -Wsign-conversion -Wunused-private-field -Wbraced-scalar-init -Wunused-variable And some other errors
2021-07-23shader: Ignore global memory ops on devices lacking int64 supportameerj2-9/+31
2021-07-23shader: GCC fmt 8.0.0 fixeslat9nq3-6/+6
2021-07-23shader: Fix disabled and unwritten attributes and varyingsReinUsesLisp1-2/+6
2021-07-23glsl: Fix shared and local memory declarationsameerj1-3/+3
account for the fact that program.*memory_size is in units of bytes.
2021-07-23opengl: Implement LOP.CCameerj1-3/+11
Used by MH:Rise
2021-07-23glsl: Declare local memory in mainameerj1-3/+3
2021-07-23glsl: Add passthrough geometry shader supportameerj3-7/+27
2021-07-23shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp4-34/+32
Put all varyings into a single std::bitset with helpers to access it. Implement passthrough geometry shaders using host's.
2021-07-23glsl: Better IAdd Overflow CC fixameerj2-11/+13
This ensures the original operand values are not overwritten when being used in the overflow detection.
2021-07-23shader: Remove IAbs64ReinUsesLisp2-5/+0
2021-07-23glsl: Fix IADD CCameerj2-5/+7
2021-07-23shader: Move loop safety tests to code emissionReinUsesLisp4-11/+12
2021-07-23glsl: Remove frag color initializationameerj1-9/+0
2021-07-23emit_glsl_special: Skip initialization of frag_color0ameerj1-1/+1
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
2021-07-23glsl: Add missing ; in EmitSetSampleMaskMorph1-1/+1
Fixes shader compilation in Okami HD
2021-07-23glsl: Fix output varying initialization when transform feedback is usedameerj1-3/+37
2021-07-23glsl: Fix cbuf component indexing bug falbackameerj1-7/+6
2021-07-23shader: Properly manage attributes not written from previous stagesReinUsesLisp4-29/+22
2021-07-23glsl: Only declare fragment outputs on fragment shadersReinUsesLisp1-4/+6
2021-07-23shader: Split profile and runtime info headersReinUsesLisp3-3/+2
2021-07-23glsl: Obey need_declared_frag_colors to declare and initialize all frag_colorameerj2-1/+10
Fixes Ori and the blind forest title screen
2021-07-23glsl: Address rest of feedbackameerj4-19/+51
2021-07-23glsl: Move gl_Position/generic attribute initialization to EmitProlgueameerj2-14/+12
2021-07-23glsl: Conditionally use fine/coarse derivatives based on device supportameerj2-4/+27
2021-07-23glsl: Cleanup/Address feedbackameerj8-28/+20
2021-07-23glsl: Add Shader_GLSL loggingameerj3-28/+32
2021-07-23glsl: Add LoopSafety instructionsameerj2-0/+10
2021-07-23glsl: Conditionally add EXT_texture_shadow_lodameerj1-3/+5
2021-07-23glsl: Add stubs for sparse queries and variable aoffi when not supportedameerj3-13/+37
2021-07-23glsl: Implement legacy varyingsameerj4-7/+71
2021-07-23glsl: Minor cleanupameerj2-19/+15
2021-07-23glsl: Fix Cbuf getters for F32 typeameerj1-12/+15
2021-07-23glsl: Add immediate index oob checking for Cbuf gettersameerj1-0/+16
2021-07-23glsl: Refactor GetCbuf functions to reduce code duplicationameerj1-104/+66
2021-07-23glsl: Address more feedback. Implement indexed texture readsameerj5-111/+109
2021-07-23glsl: Remove Signed Integer variablesameerj8-43/+13
2021-07-23glsl: Address Rodrigo's feedbackameerj13-75/+87
2021-07-23glsl: Reorganize backend code, remove unneeded [[maybe_unused]]ameerj11-314/+251
2021-07-23glsl: Implement SampleId and SetSampleMaskameerj3-30/+35
plus some minor refactoring of implementations
2021-07-23glsl: Add gl_PerVertex in for GSameerj1-1/+2
2021-07-23glsl: Use existing tracking for enabling EXT_shader_image_load_formattedameerj1-15/+1
2021-07-23glsl: Enable early fragment testsameerj2-4/+7
2021-07-23glsl: Implement more attribute getters and settersameerj2-12/+60
2021-07-23glsl: Implement fswzaddameerj3-5/+43
and wip nv thread shuffle impl
2021-07-23glsl: Implement indexed attribute loadsameerj5-29/+64
2021-07-23glsl: Conditionally add GL_ARB_sparse_texture2ameerj1-2/+3
2021-07-23glsl: Conditionally use GL_EXT_shader_image_load_formattedameerj1-2/+18
Fix for SULD.D
2021-07-23glsl: Remove output generic indexing for geometry stageameerj1-5/+3
2021-07-23glsl: Allow dynamic tracking of variable allocationameerj3-21/+35
2021-07-23glsl: Implement barriersameerj3-13/+21
2021-07-23glsl: Implement image atomics and set layerameerj4-152/+202
along with some more cleanup/oversight fixes
2021-07-23glsl: Fix image gather logicameerj1-0/+4
2021-07-23glsl: Add cbuf access workaround for devices with component indexing bugameerj1-51/+110
2021-07-23glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupportedameerj2-8/+40
2021-07-23emit_glsl_image: Use immediate offsets when possibleameerj1-12/+33
2021-07-23glsl: Fix <32-bit SSBO writesameerj4-50/+43
and more cleanup
2021-07-23glsl: Cleanup and address feedbackameerj10-86/+69
2021-07-23glsl: Refactor Global memory functionsameerj2-71/+73
2021-07-23glsl: Increase NUM_VARS that can be allocatedameerj1-1/+1
needed for HW:AoC.
2021-07-23glsl: Implement Load/WriteGlobalameerj9-98/+185
along with some other misc changes and fixes
2021-07-23glsl: Implement Imagesameerj2-9/+74
2021-07-23glsl: skip gl_ViewportIndex write if device does not support itameerj3-8/+16
2021-07-23glsl: Implement transform feedbackameerj3-13/+63
2021-07-23glsl: Yet another gl_ViewportIndex fix attemptameerj1-3/+19
2021-07-23glsl: Add gl_ViewportIndex out attributeameerj1-1/+3
2021-07-23emit_glsl_context_get_set: Remove unused functionlat9nq1-4/+0
2021-07-23glsl: Fix precise variable declarationameerj3-24/+25
and add some more separation in the shader for better debugability when dumped
2021-07-23glsl: Implement tessellation shadersameerj5-27/+146
2021-07-23glsl: Implement ImageGradient and other texture function variantsameerj2-32/+73
2021-07-23glsl: Fix atomic SSBO offsetsameerj4-67/+74
and implement misc getters
2021-07-23glsl: Implement geometry shadersameerj4-9/+62
2021-07-23glsl: Use NotImplemented macro with function name outputameerj10-104/+103
2021-07-23glsl: Implement gl_ViewportIndexameerj3-5/+14
SSBU now working
2021-07-23glsl: SHFL fix and prefer shift operations over divide in glsl shaderameerj5-63/+64
2021-07-23glsl: Implement precise fp variable allocationameerj4-8/+67
2021-07-23HACK glsl: Write defaults to unused generic attributesameerj2-2/+11
2021-07-23glsl: Fix ssbo indexing and name shadowing between shader stagesameerj3-77/+101
2021-07-23glsl: implement set clip distanceameerj2-0/+15
and missed a diff in emit_glsl relating to var alloc ref counting
2021-07-23glsl: Rework var alloc to not assign unused resultsameerj9-49/+91
2021-07-23glsl: Rework variable allocator to allow for variable reuseameerj13-351/+480
2021-07-23glsl: Fix ATOM and implement ATOMSameerj4-114/+130
2021-07-23glsl: Use gl_SubGroupInvocationARBameerj2-8/+7
2021-07-23glsl: Implement VOTE for subgroup size potentially largerameerj2-19/+36
2021-07-23glsl: Implement VOTEameerj4-50/+64
2021-07-23glsl: Implement ST{LS}ameerj6-69/+106
2021-07-23glsl: Implement more instructions used by SMOameerj1-3/+3
2021-07-23glsl: Implement more instructions used by SMOameerj5-10/+16
2021-07-23glsl: Fix GetAttribute return valuesameerj2-7/+9
fixes font rendering issues as these were used to index into the ssbos
2021-07-23glsl: minor cleanupameerj4-20/+19
2021-07-23glsl: Fix and implement rest of cbuf accessameerj1-7/+43
2021-07-23glsl: Implement TXQ and other misc changesameerj5-6/+36
2021-07-23glsl: TLD4 implementationameerj1-2/+89
2021-07-23glsl: Implement TLD instructionameerj1-1/+55
2021-07-23glsl: Implement TEXSameerj1-1/+29
2021-07-23glsl: Cleanup texture functionsameerj1-13/+11
2021-07-23shader_recompiler: GCC fixeslat9nq14-3/+13
2021-07-23glsl: Implement TEX depth functionsameerj2-4/+46
2021-07-23glsl: Implement TEX ImageSample functionsameerj3-11/+71
2021-07-23glsl: Rework Shuffle emit instructions to align with SPIR-Vameerj1-19/+40
2021-07-23glsl: Better Storage access and wip warpsameerj8-62/+133
2021-07-23glsl: Fix integer conversions, implement clamp CCameerj2-27/+36
2021-07-23glsl: Implement IADD CCameerj2-2/+17
2021-07-23glsl: SSBO access fixes and wip SampleExplicitLod implementation.ameerj2-4/+19
2021-07-23glsl: WIP var forward declarationameerj6-49/+60
to fix Loop control flow.
2021-07-23glsl: Fix bindings, add some CC opsameerj8-57/+91
2021-07-23glsl: remove unused headersameerj14-34/+10
2021-07-23glsl: Implement derivatives and YDirectionameerj8-81/+87
plus some other misc additions/changed
2021-07-23glsl: Fix non-immediate buffer accessameerj12-72/+133
and many other misc implementations
2021-07-23glsl: textures wipameerj9-75/+139
2021-07-23glsl: Implement some attribute getters and settersameerj9-191/+337
2021-07-23glsl: Track S32 atomicsameerj1-3/+6
2021-07-23glsl: Update phi node managementameerj4-21/+53
2021-07-23glsl: Fix floating point compare opsameerj1-28/+28
Logic for ordered/unordered ops was wrong.
2021-07-23glsl: Query GL Device for FP16 extension supportameerj1-2/+7
2021-07-23glsl: Simply FP storage atomicsameerj2-48/+28
2021-07-23glsl: F16x2 storage atomicsameerj7-58/+64
2021-07-23glsl: Revert ssbo aliasing. Storage Atomics implameerj4-68/+132
2021-07-23glsl: implement phi nodesameerj4-20/+54
2021-07-23glsl: Wip storage atomic opsameerj8-325/+406
2021-07-23glsl: Implement FCMPameerj3-242/+185
2021-07-23glsl: Add a more robust fp formatterameerj4-9/+14
2021-07-23glsl: More FP fixesameerj2-9/+16
2021-07-23glsl: FP function fixesameerj7-17/+25
2021-07-23glsl: More FP instructions/fixesameerj5-28/+41
2021-07-23glsl: Add many FP32/64 instructionsameerj12-765/+1011
2021-07-23glsl: Implement more Integer opsameerj3-119/+72
2021-07-23glsl: Implement BF*ameerj3-9/+10
2021-07-23glsl: Implement a few Integer instructionsameerj10-260/+398
2021-07-23glsl: Use std::string_view for Emit function args.ameerj6-760/+838
2021-07-23glsl: Pass IR::Inst& to Emit functionsameerj6-171/+169
2021-07-23glsl: INeg and IAdd negate testsameerj3-94/+106
2021-07-23glsl: Reusable typed variables. IADD32ameerj6-203/+311
2021-07-23glsl: Fix program linking and cbufameerj2-3/+5
2021-07-23glsl: Fix "reg" allocingameerj10-898/+938
based on glasm with some tweaks
2021-07-23glsl: Initial backendameerj26-0/+3266