aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/decode
AgeCommit message (Collapse)Author
2020-04-02shader/memory: Silence no return value warningReinUsesLisp
Silences a warning about control paths not all returning a value.
2020-04-01shader_decompiler: Remove FragCoord.w hack and change IPA implementationReinUsesLisp
Credits go to gdkchan and Ryujinx. The pull request used for this can be found here: https://github.com/Ryujinx/Ryujinx/pull/1082 yuzu was already using the header for interpolation, but it was missing the FragCoord.w multiplication described in the linked pull request. This commit finally removes the FragCoord.w == 1.0f hack from the shader decompiler. While we are at it, this commit renames some enumerations to match Nvidia's documentation (linked below) and fixes component declaration order in the shader program header (z and w were swapped). https://github.com/NVIDIA/open-gpu-doc/blob/master/Shader-Program-Header/Shader-Program-Header.html
2020-03-31Merge pull request #3561 from ReinUsesLisp/f2f-conversionFernando Sahmkow
shader/conversion: Fix F2F rounding operations with different sizes
2020-03-31Merge pull request #3577 from ReinUsesLisp/leaFernando Sahmkow
shader/lea: Fix LEA implementation
2020-03-31clang-formatNguyen Dac Nam
2020-03-31shader_decode: fix by suggestionNguyen Dac Nam
2020-03-30clang-formatnamkazy
2020-03-30shader_decode: ATOM/ATOMS: add function to avoid code repetitionnamkazy
2020-03-30shader_decode: implement ATOM operation for S32 and U32Nguyen Dac Nam
2020-03-30clang-formatnamkazy
2020-03-30shader_decode: implement ATOMS instr partial.Nguyen Dac Nam
2020-03-28shader/lea: Simplify generated LEA codeReinUsesLisp
2020-03-27shader/lea: Fix op_a and op_b usagesReinUsesLisp
They were swapped.
2020-03-27shader/lea: Remove const and use move when possibleReinUsesLisp
2020-03-26shader/conversion: Fix F2F rounding operations with different sizesReinUsesLisp
Rounding operations only matter when the conversion size of source and destination is the same, i.e. .F16.F16, .F32.F32 and .F64.F64. When there is a mismatch (.F16.F32), these bits are used for IEEE rounding, we don't emulate this because GLSL and SPIR-V don't support configuring it per operation.
2020-03-23xmad: fix clang build errormakigumo
2020-03-19Merge pull request #3505 from namkazt/patch-8bunnei
shader_decode: implement XMAD mode CSfu
2020-03-15Merge pull request #3502 from namkazt/patch-3Rodrigo Locatti
shader_decode: Reimplement BFE instructions
2020-03-14clang-formatNguyen Dac Nam
2020-03-14nitNguyen Dac Nam
2020-03-13nit & remove some optional paramNguyen Dac Nam
2020-03-13shader_decode: implement XMAD mode CSfuNguyen Dac Nam
2020-03-13clang-formatNguyen Dac Nam
2020-03-13Apply suggestions from code reviewNguyen Dac Nam
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-03-13shader_decode: BFE add ref of reverse parallel method.Nguyen Dac Nam
2020-03-13shader_decode: implement BREV on BFENguyen Dac Nam
Implement reverse parallel follow: https://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel
2020-03-13shader_decode: Reimplement BFE instructionsNguyen Dac Nam
2020-03-09video_core: Rename "const buffer locker" to "registry"ReinUsesLisp
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