aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader
AgeCommit message (Collapse)Author
2020-02-27shader: FMUL switch to using LUT (#3441)Nguyen Dac Nam
* shader: add FmulPostFactor LUT table * shader: FMUL apply LUT * Update src/video_core/engines/shader_bytecode.h Co-Authored-By: Mat M. <mathew1800@gmail.com> * nit: mistype * clang-format & add missing import * shader: remove post factor LUT. * shader: move post factor LUT to function and fix incorrect order. * clang-format * shader: FMUL: add static to post factor LUT * nit: typo Co-authored-by: Mat M. <mathew1800@gmail.com>
2020-02-26Merge pull request #3440 from namkazt/patch-6bunnei
shader: implement LOP3 fast replace for old function
2020-02-21shader/texture: Fix illegal 3D texture assertReinUsesLisp
Fix typo in the illegal 3D texture assert logic. We care about catching arrayed 3D textures or 3D shadow textures, not regular 3D textures.
2020-02-21nit: add const to where it need.Nguyen Dac Nam
2020-02-21shader: implement LOP3 fast replace for old functionNguyen Dac Nam
ref: https://devtalk.nvidia.com/default/topic/1070081/cuda-programming-and-performance/reverse-lut-for-lop3-lut/
2020-02-19Merge pull request #3415 from ReinUsesLisp/texture-codebunnei
shader/texture: Allow 2D shadow arrays and simplify code
2020-02-19shader_conversion: I2F : add Assert for case src_size is ShortNguyen Dac Nam
2020-02-19fix warningNguyen Dac Nam
2020-02-19clang-format fixNguyen Dac Nam
2020-02-19shader_conversion: add conversion I2F for ShortNguyen Dac Nam
2020-02-15shader/texture: Allow 2D shadow arrays and simplify codeReinUsesLisp
Shadow sampler 2D arrays are supported on OpenGL, so there's no reason to forbid these. Enable textureLod usage on these. Minor style changes.
2020-02-14Merge pull request #3379 from ReinUsesLisp/cbuf-offsetbunnei
shader/decode: Fix constant buffer offsets
2020-02-07Merge pull request #3369 from ReinUsesLisp/shfbunnei
shader/shift: Implement SHF
2020-02-05shader/decode: Fix constant buffer offsetsReinUsesLisp
Some instances were using cbuf34.offset instead of cbuf34.GetOffset(). This returned the an invalid offset. Address those instances and rename offset to "shifted_offset" to avoid future bugs.
2020-02-04Merge pull request #3357 from ReinUsesLisp/bfi-rcbunnei
shader/bfi: Implement register-constant buffer variant
2020-02-04Merge pull request #3356 from ReinUsesLisp/fcmpbunnei
shader/arithmetic: Implement FCMP
2020-02-03Merge pull request #3337 from ReinUsesLisp/vulkan-stagedbunnei
yuzu: Implement Vulkan frontend
2020-02-01shader: Remove curly braces initializers on shared pointersReinUsesLisp
2020-02-01Merge pull request #3282 from FernandoS27/indexed-samplersbunnei
Partially implement Indexed samplers in general and specific code in GLSL
2020-02-01shader/shift: Implement SHIFT_RIGHT_{IMM,R}ReinUsesLisp
Shifts a pair of registers to the right and returns the low register.
2020-02-01shader/shift: Implement SHF_LEFT_{IMM,R}ReinUsesLisp
Shifts a pair of registers to the left and returns the high register.
2020-01-30Merge pull request #3347 from ReinUsesLisp/local-membunnei
shader/memory: Implement LDL.S16, LDS.S16, STL.S16 and STS.S16
2020-01-29shader/other: Fix skips for SYNC and BRKReinUsesLisp
2020-01-29shader/other: Stub S2R LaneIdReinUsesLisp
2020-01-27shader/bfi: Implement register-constant buffer variantReinUsesLisp
It's the same as the variant that was implemented, but it takes the operands from another source.
2020-01-27shader/arithmetic: Implement FCMPReinUsesLisp
Compares the third operand with zero, then selects between the first and second.
2020-01-26shader/memory: Implement ATOM.ADDReinUsesLisp
ATOM operates atomically on global memory. For now only add ATOM.ADD since that's what was found in commercial games. This asserts for ATOM.ADD.S32 (handling the others as unimplemented), although ATOM.ADD.U32 shouldn't be any different. This change forces us to change the default type on SPIR-V storage buffers from float to uint. We could also alias the buffers, but it's simpler for now to just use uint. While we are at it, abstract the code to avoid repetition.
2020-01-25Shader_IR: Address feedback.Fernando Sahmkow
2020-01-25shader/memory: Implement STL.S16 and STS.S16ReinUsesLisp
2020-01-25shader/memory: Implement unaligned LDL.S16 and LDS.S16ReinUsesLisp
2020-01-25shader/memory: Move unaligned load/store to functionsReinUsesLisp
2020-01-25shader/memory: Implement LDL.S16 and LDS.S16ReinUsesLisp
2020-01-24Shader_IR: Change name of TrackSampler function so it does not confuse with ↵Fernando Sahmkow
the type.
2020-01-24Shader_IR: Corrections, styling and extras.Fernando Sahmkow
2020-01-24Shader_IR: Propagate bindless index into the GL compiler.Fernando Sahmkow
2020-01-24Shader_IR: Implement Injectable Custom Variables to the IR.Fernando Sahmkow
2020-01-24Shader_IR: deduce size of indexed samplersFernando Sahmkow
2020-01-24Shader_IR: Setup Indexed Samplers on the IRFernando Sahmkow
2020-01-24Shader_IR: Implement initial code for tracking indexed samplers.Fernando Sahmkow
2020-01-24Shader_IR: Address FeedbackFernando Sahmkow
2020-01-24Shader_IR: Allow constant access of guest driver.Fernando Sahmkow
2020-01-24Shader_IR: Address FeedbackFernando Sahmkow
2020-01-24Shader_IR: Store Bound buffer on Shader UsageFernando Sahmkow
2020-01-24GPU: Implement guest driver profile and deduce texture handler sizes.Fernando Sahmkow
2020-01-24Merge pull request #3273 from FernandoS27/txd-arraybunnei
Shader_IR: Implement TXD Array.
2020-01-16shader/memory: Implement ATOMS.ADD.U32ReinUsesLisp
2020-01-14control_flow: Silence -Wreorder warning for CFGRebuildStateLioncash
Organizes the initializer list in the same order that the variables would actually be initialized in.
2020-01-14Merge pull request #3287 from ReinUsesLisp/ldg-stg-16bunnei
shader_ir/memory: Implement u16 and u8 for STG and LDG
2020-01-09shader_ir/texture: Simplify AOFFI codeReinUsesLisp
2020-01-09shader_ir/memory: Implement u16 and u8 for STG and LDGReinUsesLisp
Using the same technique we used for u8 on LDG, implement u16. In the case of STG, load memory and insert the value we want to set into it with bitfieldInsert. Then set that value.