summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glsl (follow)
Commit message (Collapse)AuthorAgeFilesLines
* emit_glsl_warp: Fix shfl_in_bounds conditionalAmeer J2023-10-222-4/+9
|
* shader_recompiler: fix emulation of 3D textureGradLiam2023-09-021-1/+1
|
* Shader Recomnpiler: implement textuzreGrad 3D emulation constant propagationFernando Sahmkow2023-08-191-1/+7
|
* Remove memory allocations in some hot pathsKelebek12023-06-221-1/+1
|
* shader_recompiler: Add subpixel offset for correct rounding at `ImageGather`Wollnashorn2023-04-081-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).
* general: fix spelling mistakesLiam2023-03-122-41/+41
|
* glsl_emit_context: Remove redeclarations of gl_SampleID and gl_SampleMaskameerj2023-02-091-6/+0
| | | | These built-ins seem to be available without needing to be declared for fragment shaders, similar i.e. to gl_FragDepth
* emit_glsl_image: Implement TXQ with MSAA texturesameerj2023-01-291-9/+23
| | | | Also fixes for texture buffers, which do not have mips eithers.
* Merge pull request #9694 from ameerj/txq-mipsliamwhite2023-01-292-11/+11
|\ | | | | shader_recompiler: TXQ: Skip QueryLevels when possible
| * shader_recompiler: TXQ: Skip QueryLevels when possibleameerj2023-01-282-11/+11
| |
* | Merge pull request #9687 from ameerj/ogl-shader-msbunnei2023-01-292-28/+38
|\ \ | | | | | | glasm, glsl: Implement multisampled Image Fetch
| * | emit_glsl_image: Fix ImageFetch for MSAA texturesameerj2023-01-281-6/+11
| | |
| * | glsl: Add MS sampler typesameerj2023-01-271-22/+27
| |/
* / shader_recompiler: Remove S32 IR typeameerj2023-01-262-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
* Video_core: Address feedbackFernando Sahmkow2023-01-041-0/+6
|
* MacroHLE: Add OpenGL SupportFernando Sahmkow2023-01-012-1/+13
|
* Merge pull request #9253 from vonchenplus/attr_layerliamwhite2022-11-191-0/+3
|\ | | | | shader: Implement miss attribute layer
| * shader: Implement miss attribute layerFengChen2022-11-171-0/+3
| |
* | video_core: Fix few issues in Tess stageFengChen2022-11-072-0/+13
|/
* video_core: Fix SNORM texture buffer emulating error (#9001)Feng Chen2022-11-042-0/+5
|
* Merge pull request #8858 from vonchenplus/mipmapbunnei2022-11-043-0/+8
|\ | | | | video_core: Generate mipmap texture by drawing
| * video_core: Generate mipmap texture by drawingFengChen2022-09-203-0/+8
| |
* | CMakeLists: Disable C4100 and C4324Morph2022-10-221-4/+0
| | | | | | | | Disabling C4100 is similar to -Wno-unused-parameter
* | chore: fix some typosAndrea Pappacoda2022-09-231-1/+1
|/ | | | Fix some typos reported by Lintian
* video_code: support rectangle textureFengChen2022-08-252-0/+2
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-2325-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.
* shader_compiler: support const buffer indirect addressing in GLSLLiam2022-04-013-8/+37
|
* shader_recompiler: Reduce unused includesameerj2022-03-207-13/+0
|
* emit_glsl_atomic: Implement 32x2 fallback atomic opsameerj2022-01-301-9/+55
|
* shaders: Add U64->U32x2 Atomic fallback functionsameerj2022-01-302-0/+127
|
* shader_recompiler: fix potential OOB accessv19932022-01-171-3/+4
| | | | 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 returnNarr the Reg2022-01-051-1/+0
|
* glsl: Add boolean reference workaroundameerj2021-12-302-2/+6
|
* glsl_context_get_set: Add alternative cbuf type for broken driversameerj2021-12-302-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 aroundameerj2021-12-301-2/+2
|
* shader: Add integer attribute get optimization passameerj2021-12-302-0/+18
| | | | 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 driversameerj2021-12-251-2/+2
|
* Remove glsl handle legacy related codevonchenplus2021-12-183-103/+1
|
* shader_recompiler: Adjust emit_context includesameerj2021-12-0620-20/+20
|
* shader_recompiler: Rename backend emit_context filesameerj2021-12-052-0/+0
|
* shader: Properly scale image reads and add GL SPIR-V supportReinUsesLisp2021-11-162-1/+9
| | | | Thanks for everything!
* glsl/glasm: Pass and use scaling parameters in shadersReinUsesLisp2021-11-163-4/+4
|
* gl_graphics_pipeline: Add downscale factor to shader uniformsameerj2021-11-162-2/+4
|
* shader: Add IsTextureScaled opcodeReinUsesLisp2021-11-162-0/+10
|
* shader: Add integer division opcodesReinUsesLisp2021-11-162-0/+10
|
* shader: Add resolution down factor opcodeReinUsesLisp2021-11-162-0/+6
|
* ShaderCache: Fix Phi Nodes Type on OGL.Fernando Sahmkow2021-11-011-2/+2
|
* style: Remove extra space preceding the :: operatorMorph2021-09-291-2/+2
|
* emit_glsl_warp: Fix shuffle ops for 64-thread warp sizesameerj2021-08-311-24/+36
|
* emit_glsl_warp: Fix ballot related ops for 64-thread warp sizesameerj2021-08-311-24/+38
|
* glsl: Simplify FCMP emissionameerj2021-07-231-6/+4
|
* glsl: Update TessellationControl gl_inameerj2021-07-231-0/+28
| | | | Adheres to GL_ARB_separate_shader_objects requirements
* shader: Avoid usage of C++20 ranges to build in clangReinUsesLisp2021-07-231-2/+7
|
* glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZEameerj2021-07-231-2/+9
|
* shader_recompiler, video_core: Resolve clang errorslat9nq2021-07-231-1/+1
| | | | | | | | | | 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 supportameerj2021-07-232-9/+31
|
* shader: GCC fmt 8.0.0 fixeslat9nq2021-07-233-6/+6
|
* shader: Fix disabled and unwritten attributes and varyingsReinUsesLisp2021-07-231-2/+6
|
* glsl: Fix shared and local memory declarationsameerj2021-07-231-3/+3
| | | | account for the fact that program.*memory_size is in units of bytes.
* opengl: Implement LOP.CCameerj2021-07-231-3/+11
| | | | Used by MH:Rise
* glsl: Declare local memory in mainameerj2021-07-231-3/+3
|
* glsl: Add passthrough geometry shader supportameerj2021-07-233-7/+27
|
* shader: Rework varyings and implement passthrough geometry shadersReinUsesLisp2021-07-234-34/+32
| | | | | | 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 fixameerj2021-07-232-11/+13
| | | | This ensures the original operand values are not overwritten when being used in the overflow detection.
* shader: Remove IAbs64ReinUsesLisp2021-07-232-5/+0
|
* glsl: Fix IADD CCameerj2021-07-232-5/+7
|
* shader: Move loop safety tests to code emissionReinUsesLisp2021-07-234-11/+12
|
* glsl: Remove frag color initializationameerj2021-07-231-9/+0
|
* emit_glsl_special: Skip initialization of frag_color0ameerj2021-07-231-1/+1
| | | | Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
* glsl: Add missing ; in EmitSetSampleMaskMorph2021-07-231-1/+1
| | | | Fixes shader compilation in Okami HD
* glsl: Fix output varying initialization when transform feedback is usedameerj2021-07-231-3/+37
|
* glsl: Fix cbuf component indexing bug falbackameerj2021-07-231-7/+6
|
* shader: Properly manage attributes not written from previous stagesReinUsesLisp2021-07-234-29/+22
|
* glsl: Only declare fragment outputs on fragment shadersReinUsesLisp2021-07-231-4/+6
|
* shader: Split profile and runtime info headersReinUsesLisp2021-07-233-3/+2
|
* glsl: Obey need_declared_frag_colors to declare and initialize all frag_colorameerj2021-07-232-1/+10
| | | | Fixes Ori and the blind forest title screen
* glsl: Address rest of feedbackameerj2021-07-234-19/+51
|
* glsl: Move gl_Position/generic attribute initialization to EmitProlgueameerj2021-07-232-14/+12
|
* glsl: Conditionally use fine/coarse derivatives based on device supportameerj2021-07-232-4/+27
|
* glsl: Cleanup/Address feedbackameerj2021-07-238-28/+20
|
* glsl: Add Shader_GLSL loggingameerj2021-07-233-28/+32
|
* glsl: Add LoopSafety instructionsameerj2021-07-232-0/+10
|
* glsl: Conditionally add EXT_texture_shadow_lodameerj2021-07-231-3/+5
|
* glsl: Add stubs for sparse queries and variable aoffi when not supportedameerj2021-07-233-13/+37
|
* glsl: Implement legacy varyingsameerj2021-07-234-7/+71
|
* glsl: Minor cleanupameerj2021-07-232-19/+15
|
* glsl: Fix Cbuf getters for F32 typeameerj2021-07-231-12/+15
|
* glsl: Add immediate index oob checking for Cbuf gettersameerj2021-07-231-0/+16
|
* glsl: Refactor GetCbuf functions to reduce code duplicationameerj2021-07-231-104/+66
|
* glsl: Address more feedback. Implement indexed texture readsameerj2021-07-235-111/+109
|
* glsl: Remove Signed Integer variablesameerj2021-07-238-43/+13
|
* glsl: Address Rodrigo's feedbackameerj2021-07-2313-75/+87
|
* glsl: Reorganize backend code, remove unneeded [[maybe_unused]]ameerj2021-07-2311-314/+251
|
* glsl: Implement SampleId and SetSampleMaskameerj2021-07-233-30/+35
| | | | plus some minor refactoring of implementations
* glsl: Add gl_PerVertex in for GSameerj2021-07-231-1/+2
|
* glsl: Use existing tracking for enabling EXT_shader_image_load_formattedameerj2021-07-231-15/+1
|
* glsl: Enable early fragment testsameerj2021-07-232-4/+7
|
* glsl: Implement more attribute getters and settersameerj2021-07-232-12/+60
|
* glsl: Implement fswzaddameerj2021-07-233-5/+43
| | | | and wip nv thread shuffle impl
* glsl: Implement indexed attribute loadsameerj2021-07-235-29/+64
|
* glsl: Conditionally add GL_ARB_sparse_texture2ameerj2021-07-231-2/+3
|
* glsl: Conditionally use GL_EXT_shader_image_load_formattedameerj2021-07-231-2/+18
| | | | Fix for SULD.D
* glsl: Remove output generic indexing for geometry stageameerj2021-07-231-5/+3
|
* glsl: Allow dynamic tracking of variable allocationameerj2021-07-233-21/+35
|
* glsl: Implement barriersameerj2021-07-233-13/+21
|
* glsl: Implement image atomics and set layerameerj2021-07-234-152/+202
| | | | along with some more cleanup/oversight fixes
* glsl: Fix image gather logicameerj2021-07-231-0/+4
|
* glsl: Add cbuf access workaround for devices with component indexing bugameerj2021-07-231-51/+110
|
* glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupportedameerj2021-07-232-8/+40
|
* emit_glsl_image: Use immediate offsets when possibleameerj2021-07-231-12/+33
|
* glsl: Fix <32-bit SSBO writesameerj2021-07-234-50/+43
| | | | and more cleanup
* glsl: Cleanup and address feedbackameerj2021-07-2310-86/+69
|
* glsl: Refactor Global memory functionsameerj2021-07-232-71/+73
|
* glsl: Increase NUM_VARS that can be allocatedameerj2021-07-231-1/+1
| | | | needed for HW:AoC.
* glsl: Implement Load/WriteGlobalameerj2021-07-239-98/+185
| | | | along with some other misc changes and fixes
* glsl: Implement Imagesameerj2021-07-232-9/+74
|
* glsl: skip gl_ViewportIndex write if device does not support itameerj2021-07-233-8/+16
|
* glsl: Implement transform feedbackameerj2021-07-233-13/+63
|
* glsl: Yet another gl_ViewportIndex fix attemptameerj2021-07-231-3/+19
|
* glsl: Add gl_ViewportIndex out attributeameerj2021-07-231-1/+3
|
* emit_glsl_context_get_set: Remove unused functionlat9nq2021-07-231-4/+0
|
* glsl: Fix precise variable declarationameerj2021-07-233-24/+25
| | | | and add some more separation in the shader for better debugability when dumped
* glsl: Implement tessellation shadersameerj2021-07-235-27/+146
|
* glsl: Implement ImageGradient and other texture function variantsameerj2021-07-232-32/+73
|
* glsl: Fix atomic SSBO offsetsameerj2021-07-234-67/+74
| | | | and implement misc getters
* glsl: Implement geometry shadersameerj2021-07-234-9/+62
|
* glsl: Use NotImplemented macro with function name outputameerj2021-07-2310-104/+103
|
* glsl: Implement gl_ViewportIndexameerj2021-07-233-5/+14
| | | | SSBU now working
* glsl: SHFL fix and prefer shift operations over divide in glsl shaderameerj2021-07-235-63/+64
|
* glsl: Implement precise fp variable allocationameerj2021-07-234-8/+67
|
* HACK glsl: Write defaults to unused generic attributesameerj2021-07-232-2/+11
|
* glsl: Fix ssbo indexing and name shadowing between shader stagesameerj2021-07-233-77/+101
|
* glsl: implement set clip distanceameerj2021-07-232-0/+15
| | | | and missed a diff in emit_glsl relating to var alloc ref counting
* glsl: Rework var alloc to not assign unused resultsameerj2021-07-239-49/+91
|
* glsl: Rework variable allocator to allow for variable reuseameerj2021-07-2313-351/+480
|
* glsl: Fix ATOM and implement ATOMSameerj2021-07-234-114/+130
|
* glsl: Use gl_SubGroupInvocationARBameerj2021-07-232-8/+7
|
* glsl: Implement VOTE for subgroup size potentially largerameerj2021-07-232-19/+36
|
* glsl: Implement VOTEameerj2021-07-234-50/+64
|
* glsl: Implement ST{LS}ameerj2021-07-236-69/+106
|
* glsl: Implement more instructions used by SMOameerj2021-07-231-3/+3
|
* glsl: Implement more instructions used by SMOameerj2021-07-235-10/+16
|
* glsl: Fix GetAttribute return valuesameerj2021-07-232-7/+9
| | | | fixes font rendering issues as these were used to index into the ssbos
* glsl: minor cleanupameerj2021-07-234-20/+19
|
* glsl: Fix and implement rest of cbuf accessameerj2021-07-231-7/+43
|
* glsl: Implement TXQ and other misc changesameerj2021-07-235-6/+36
|
* glsl: TLD4 implementationameerj2021-07-231-2/+89
|
* glsl: Implement TLD instructionameerj2021-07-231-1/+55
|
* glsl: Implement TEXSameerj2021-07-231-1/+29
|
* glsl: Cleanup texture functionsameerj2021-07-231-13/+11
|
* shader_recompiler: GCC fixeslat9nq2021-07-2314-3/+13
|
* glsl: Implement TEX depth functionsameerj2021-07-232-4/+46
|
* glsl: Implement TEX ImageSample functionsameerj2021-07-233-11/+71
|
* glsl: Rework Shuffle emit instructions to align with SPIR-Vameerj2021-07-231-19/+40
|
* glsl: Better Storage access and wip warpsameerj2021-07-238-62/+133
|
* glsl: Fix integer conversions, implement clamp CCameerj2021-07-232-27/+36
|
* glsl: Implement IADD CCameerj2021-07-232-2/+17
|
* glsl: SSBO access fixes and wip SampleExplicitLod implementation.ameerj2021-07-232-4/+19
|
* glsl: WIP var forward declarationameerj2021-07-236-49/+60
| | | | to fix Loop control flow.
* glsl: Fix bindings, add some CC opsameerj2021-07-238-57/+91
|
* glsl: remove unused headersameerj2021-07-2314-34/+10
|
* glsl: Implement derivatives and YDirectionameerj2021-07-238-81/+87
| | | | plus some other misc additions/changed
* glsl: Fix non-immediate buffer accessameerj2021-07-2312-72/+133
| | | | and many other misc implementations
* glsl: textures wipameerj2021-07-239-75/+139
|
* glsl: Implement some attribute getters and settersameerj2021-07-239-191/+337
|
* glsl: Track S32 atomicsameerj2021-07-231-3/+6
|
* glsl: Update phi node managementameerj2021-07-234-21/+53
|
* glsl: Fix floating point compare opsameerj2021-07-231-28/+28
| | | | Logic for ordered/unordered ops was wrong.
* glsl: Query GL Device for FP16 extension supportameerj2021-07-231-2/+7
|
* glsl: Simply FP storage atomicsameerj2021-07-232-48/+28
|
* glsl: F16x2 storage atomicsameerj2021-07-237-58/+64
|
* glsl: Revert ssbo aliasing. Storage Atomics implameerj2021-07-234-68/+132
|
* glsl: implement phi nodesameerj2021-07-234-20/+54
|
* glsl: Wip storage atomic opsameerj2021-07-238-325/+406
|
* glsl: Implement FCMPameerj2021-07-233-242/+185
|
* glsl: Add a more robust fp formatterameerj2021-07-234-9/+14
|
* glsl: More FP fixesameerj2021-07-232-9/+16
|
* glsl: FP function fixesameerj2021-07-237-17/+25
|
* glsl: More FP instructions/fixesameerj2021-07-235-28/+41
|
* glsl: Add many FP32/64 instructionsameerj2021-07-2312-765/+1011
|
* glsl: Implement more Integer opsameerj2021-07-233-119/+72
|
* glsl: Implement BF*ameerj2021-07-233-9/+10
|
* glsl: Implement a few Integer instructionsameerj2021-07-2310-260/+398
|
* glsl: Use std::string_view for Emit function args.ameerj2021-07-236-760/+838
|
* glsl: Pass IR::Inst& to Emit functionsameerj2021-07-236-171/+169
|
* glsl: INeg and IAdd negate testsameerj2021-07-233-94/+106
|
* glsl: Reusable typed variables. IADD32ameerj2021-07-236-203/+311
|
* glsl: Fix program linking and cbufameerj2021-07-232-3/+5
|
* glsl: Fix "reg" allocingameerj2021-07-2310-898/+938
| | | | based on glasm with some tweaks
* glsl: Initial backendameerj2021-07-2326-0/+3266