summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode/conversion.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader/conversion: Fix F2F rounding operations with different sizesReinUsesLisp2020-03-261-5/+10
| | | | | | | | | 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.
* shader_conversion: I2F : add Assert for case src_size is ShortNguyen Dac Nam2020-02-191-0/+3
|
* fix warningNguyen Dac Nam2020-02-191-1/+1
|
* clang-format fixNguyen Dac Nam2020-02-191-1/+1
|
* shader_conversion: add conversion I2F for ShortNguyen Dac Nam2020-02-191-9/+6
|
* shader/conversion: Implement byte selector in I2FReinUsesLisp2019-12-181-2/+13
| | | | | | | I2F's byte selector is used to choose what bytes to convert to float. e.g. if the input is 0xaabbccdd and the selector is ".B3" it will convert 0xaa. The default (when it's not shown in nvdisasm) is ".B0", in that example the default would convert 0xdd to float.
* shader_ir/conversion: Split int and float selector and implement F2F H1ReinUsesLisp2019-08-281-18/+16
|
* shader_ir/conversion: Implement F2I F16 Ra.H1ReinUsesLisp2019-08-281-4/+16
|
* Shader_Ir: Implement F16 Variants of F2F, F2I, I2F.Fernando Sahmkow2019-07-201-5/+25
| | | | | This commit takes care of implementing the F16 Variants of the conversion instructions and makes sure conversions are done.
* shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp2019-06-061-0/+1
| | | | | | | | | Instead of having a vector of unique_ptr stored in a vector and returning star pointers to this, use shared_ptr. While changing initialization code, move it to a separate file when possible. This is a first step to allow code analysis and node generation beyond the ShaderIR class.
* Merge pull request #2322 from ReinUsesLisp/wswitchbunnei2019-04-291-3/+4
|\ | | | | video_core: Silent -Wswitch warnings
| * video_core: Silent -Wswitch warningsReinUsesLisp2019-04-181-3/+4
| |
* | Do some corrections in conversion shader instructions.Fernando Sahmkow2019-04-161-16/+53
|/ | | | | | Corrects encodings for I2F, F2F, I2I and F2I Implements Immediate variants of all four conversion types. Add assertions to unimplemented stuffs.
* Corrected F2I None mode to RoundEven.Fernando Sahmkow2019-02-111-3/+3
|
* shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-031-1/+1
| | | | It's not always used as a basic block. Rename it for consistency.
* shader_ir: Pass decoded nodes as a whole instead of per basic blocksReinUsesLisp2019-02-031-1/+1
| | | | | | | | | Some games call LDG at the top of a basic block, making the tracking heuristic to fail. This commit lets the heuristic the decoded nodes as a whole instead of per basic blocks. This may lead to some false positives but allows it the heuristic to track cases it previously couldn't.
* shader_ir: Unify constant buffer offset valuesReinUsesLisp2019-01-301-3/+3
| | | | | | | Constant buffer values on the shader IR were using different offsets if the access direct or indirect. cbuf34 has a non-multiplied offset while cbuf36 does. On shader decoding this commit multiplies it by four on cbuf34 queries.
* shader_ir: Pass to decoder functions basic block's codeReinUsesLisp2019-01-151-1/+1
|
* shader_decode: Improve zero flag implementationReinUsesLisp2019-01-151-8/+3
|
* video_core: Return safe values after an assert hitsReinUsesLisp2019-01-151-4/+4
|
* shader_decode: Implement F2F_CReinUsesLisp2019-01-151-2/+10
|
* shader_decode: Implement I2IReinUsesLisp2019-01-151-0/+26
|
* shader_decode: Implement F2IReinUsesLisp2019-01-151-0/+37
|
* shader_decode: Implement I2FReinUsesLisp2019-01-151-0/+23
|
* shader_decode: Implement F2FReinUsesLisp2019-01-151-1/+37
|
* shader_ir: Initial implementationReinUsesLisp2019-01-151-0/+24